X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWtBlackBox.cxx;fp=kernel%2Fsrc%2FbbtkWtBlackBox.cxx;h=cdb6b79a3d39f06cdbed86ea159780593424fef1;hb=75cedb45ce5353caf2b8cdd6c6f7fcff3b3a6555;hp=0000000000000000000000000000000000000000;hpb=c0f534b535a85f2003ed51e03071b1458b5bbc62;p=bbtk.git diff --git a/kernel/src/bbtkWtBlackBox.cxx b/kernel/src/bbtkWtBlackBox.cxx new file mode 100644 index 0000000..cdb6b79 --- /dev/null +++ b/kernel/src/bbtkWtBlackBox.cxx @@ -0,0 +1,372 @@ +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la SantÈ) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ */ + + +/*========================================================================= + Program: bbtk + Module: $RCSfile: bbtkWxBlackBox.cxx,v $ + Language: C++ + Date: $Date: 2012/11/16 08:49:01 $ + Version: $Revision: 1.45 $ +=========================================================================*/ + + + +#ifdef _USE_WT_ + +/** + * \file + * \brief + */ + +#include "bbtkWtBlackBox.h" +#include "bbtkBlackBoxOutputConnector.h" +//DELETE ME +#include + +//#include "bbtkWxContainerBlackBox.h" +//#include + +//#include "bbtkData.h" +//#include "bbtkFactory.h" + +namespace bbtk +{ + //========================================================================= + // WxFrame + //========================================================================= + + //================================================================== + class WtWContainer : public Wt::WContainerWidget + { + public: + WtWContainer(WtBlackBox::Pointer b, + Wt::WContainerWidget *parent, + Wt::WString title/*, + wxSize size);*/ + ); + ~WtWContainer(); + // void OnCloseWindow(wxCloseEvent& event); + + + WtBlackBox::WeakPointer mBox; + // DECLARE_EVENT_TABLE(); + + }; + + // BEGIN_EVENT_TABLE(WxFrame, wxFrame) + // EVT_CLOSE(WxFrame::OnCloseWindow) + //END_EVENT_TABLE(); + //================================================================== + + //================================================================== + + WtWContainer::WtWContainer(WtBlackBox::Pointer b, + Wt::WContainerWidget *parent, + Wt::WString title/*, + wxSize size) */ + ) + : + Wt::WContainerWidget( parent), + mBox(b) + { + bbtkDebugMessage("widget",9,"["<bbGetName()<<"] Wt::Widget()" + <bbSetWindow(this); + // Insert the widget into the window + //wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); + std::cout<<"Creando WebWIDGET DELETE ME ---- bbtkWtBlackBox.cxx.................30%"<objectName()<addWidget(new Wt::WContainerWidget()); + std::cout<<"Creando WebWIDGET DELETE ME ---- bbtkWtBlackBox.cxx.................58%"<bbUserCreateWidget(this); + Wt::WContainerWidget* widget = b->bbGetOutputWidget(); + this->addWidget(widget); + /* Wt::WWidget* widget = b->bbGetOutputWidget(); + sizer->Add( widget, 1, wxALL|wxGROW, 2); + SetSizer(sizer); + Layout(); +*/ + } + //================================================================== + //================================================================== + WtWContainer::~WtWContainer() + { + if (mBox.lock()) + bbtkDebugMessage("widget",9,"["<bbGetName() + <<"] $$$$$$$$$$$$$$$$$$$ ~W()" + <bbSetWindow(0); + WWt::DecNbWindowsAlive(); + } + + + + //================================================================== + + //========================================================================= + // WxDialog + //========================================================================= + + //================================================================== + // Dialog window which is modal + /* class BBTK_EXPORT WxDialog : public wxDialog + { + public: + WxDialog(WxBlackBox::Pointer box, + wxWindow *parent, + wxString title, + wxSize size); + ~WxDialog(); + void OnCloseWindow(wxCloseEvent& event); + + + WxBlackBox::WeakPointer mBox; + DECLARE_EVENT_TABLE(); + + }; + + BEGIN_EVENT_TABLE(WxDialog, wxDialog) + EVT_CLOSE(WxDialog::OnCloseWindow) + END_EVENT_TABLE(); + //========================================================================= + + //========================================================================= + WxDialog::WxDialog(WxBlackBox::Pointer b, + wxWindow *parent, + wxString title, + wxSize size) + : + wxDialog( parent, + -1, + title, + wxDefaultPosition, + size, + wxRESIZE_BORDER | + wxSYSTEM_MENU | + wxCLOSE_BOX | + wxMAXIMIZE_BOX | + wxMINIMIZE_BOX | + wxCAPTION + ), + mBox(b) + { + bbtkDebugMessage("widget",9,"WxDialog::WxDialog ["<bbGetName()<<"]" + <bbSetWindow(this); + // Insert the widget into the window + wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); + b->bbUserCreateWidget(this); + wxWindow* widget = b->bbGetOutputWidget(); + sizer->Add( widget, 1, wxALL|wxGROW, 2); + SetSizer(sizer); + Layout(); + } + //================================================================== + //================================================================== + WxDialog::~WxDialog() + { + bbtkDebugMessage("widget",9,"WxDialog::~WxDialog()"<bbSetWindow(0); + // Wx::DecNbWindowsAlive(); + } + //================================================================== + //================================================================== + void WxDialog::OnCloseWindow(wxCloseEvent& event) + { + bbtkDebugMessage("widget",9,"WxDialog::OnCloseWindow()"<bbSetWindow(0); + Wx::DecNbWindowsAlive(); + this->Destroy(); + } + //================================================================== + +*/ + //========================================================================= + // WxBlackBox + //========================================================================= + + //========================================================================= + //========================================================================= + //========================================================================= + //========================================================================= + BBTK_BLACK_BOX_IMPLEMENTATION(WtBlackBox,WidgetBlackBox); + //========================================================================= + + //========================================================================= + void WtBlackBox::bbUserSetDefaultValues() + { + bbtkBlackBoxDebugMessage("widget",5,"WtBlackBox::bbUserSetDefaultValues()"< WtBlackBox::bbUserFinalizeProcessing()"< WtBlackBox::bbCreateDialogWindow() - No Dialog must be created, it is a web app" + <(), + Wx::GetTopWindow(), + std2wx( bbGetInputWinTitle() + + " - bbtk (c) CREATIS"), + wxSize( bbGetInputWinWidth() , + bbGetInputWinHeight() ) ); + w->Show(false); + // w->ShowModal(); +*/ + } + //========================================================================= + + //================================================================== + + //================================================================== + /// Callback for creating a Frame window + void WtBlackBox::bbCreateFrameWindow() + { + + std::cout<<"Creating Container WT -- DELETE THIS MESSAGE bbtkWTBlackBox.cxx"< WtBlackBox::bbCreateFrameWindow() - parent = " + <(), + WWt::GetTopWindow(), + std2wt( bbGetInputWinTitle() + + " - bbtk (c) CREATIS") + ); + std::cout<<"Container created succesfully -- DELETE THIS MESSAGE bbtkWTBlackBox.cxx"<(), + Wx::GetTopWindow(), + std2wx( bbGetInputWinTitle() + + " - bbtk (c) CREATIS"), + wxSize( bbGetInputWinWidth() , + bbGetInputWinHeight() ) ); + + w->Show(); +*/ + WWt::CreateWtAppIfNeeded(); + } + + //================================================================== + + //================================================================== + void WtBlackBox::bbSetWindow(Wt::WContainerWidget* w) + { + bbtkBlackBoxDebugMessage("widget",9,"==> WtBlackBox::bbSetWindow("< WtBlackBox::bbShowWindow()" + <ShowModal(); + } + else + { + // There is not such a thing like show becouse it is a webapp + // bbGetWindow()->Show(); + WWt::CreateWtAppIfNeeded(); + bbSetShown(true); + } + } + } + //================================================================== + + //================================================================== + void WtBlackBox::bbDestroyWindow() + { + bbtkBlackBoxDebugMessage("widget",3,"==> WtBlackBox::bbDestroyWindow("<Close(true); + // + delete bbGetWindow(); + bbSetShown(false); + } + bbtkBlackBoxDebugMessage("widget",3,"<== WtBlackBox::bbDestroyWindow("<