/* # --------------------------------------------------------------------- # # 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("<