X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWxBlackBox.cxx;h=5b8e52f0efb5602342b05dae1757008387228853;hb=372f03317f05d4a436b0f9c39b98558ec4810b78;hp=66cdb786bb885c7173b69458e05b9a7dc1d69228;hpb=a26195c366a89795288009cf7e20f11afa494970;p=bbtk.git diff --git a/kernel/src/bbtkWxBlackBox.cxx b/kernel/src/bbtkWxBlackBox.cxx index 66cdb78..5b8e52f 100644 --- a/kernel/src/bbtkWxBlackBox.cxx +++ b/kernel/src/bbtkWxBlackBox.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxBlackBox.cxx,v $ Language: C++ - Date: $Date: 2008/01/22 15:02:00 $ - Version: $Revision: 1.1 $ + Date: $Date: 2008/03/10 12:28:43 $ + Version: $Revision: 1.10 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -34,62 +34,10 @@ + namespace bbtk { - //========================================================================= - wxWindow* WxBlackBox::bbGlobalGetTopWindow() - { - return bbmgTopWindow; - } - //========================================================================= - - //========================================================================= - void WxBlackBox::bbGlobalSetTopWindow(wxWindow* w) - { - if ( bbmgTopWindow ) - { - bbtkGlobalError("WxBlackBox::bbGlobalSetTopWindow : top window already set !"); - } - bbmgTopWindow = w; - } - //========================================================================= - - - //========================================================================= - void WxBlackBox::bbGlobalDecNbWindowsAlive() - { - bbmgNbWindowsAlive--; - /* - if ( (bbmgNbWindowsAlive==0) && - bbmgTopWindow && (!bbmgTopWindow->IsShown())) - { - bbmgTopWindow->Close(); - } - */ - } - //========================================================================= - - //========================================================================= - void WxBlackBox::bbGlobalDecNbWindowsShown() - { - bbmgNbWindowsShown--; - if ( (bbmgNbWindowsShown==0) && - bbmgTopWindow && (!bbmgTopWindow->IsShown())) - { - bbmgTopWindow->Close(); - } - } - //========================================================================= - - //========================================================================= - // Static members - wxWindow* WxBlackBox::bbmgTopWindow =0; - int WxBlackBox::bbmgNbWindowsAlive = 0; - int WxBlackBox::bbmgNbWindowsShown = 0; - //========================================================================= - - @@ -106,9 +54,9 @@ namespace bbtk bbtkDebugMessage("Wx",9,"WxBlackBoxWindow::WxBlackBoxWindow("<< mBox->bbGetFullName()<<")"<bbSetWindow(this); - WxBlackBox::bbGlobalIncNbWindowsAlive(); - bbtkDebugMessage("Wx",9," -> Number of windows alive = " - < Number of windows alive = " + <bbGetFullName()<<"]"<bbSetWindow(0); - WxBlackBox::bbGlobalDecNbWindowsAlive(); - bbtkDebugMessage("Wx",9," -> Number of windows alive = " - < Number of windows alive = " + <bbGetFullName()<<"]"< Number of windows shown = " - < Number of windows shown = " + <bbGetFullName()<<"]"< Number of windows shown = " - < Number of windows shown = " + <bbGetFullName()<<")"<bbUserOnShow(); + // wxFrame::SetFocus(); } //========================================================================= @@ -284,7 +239,8 @@ namespace bbtk bbtkDebugMessage("Wx",9,"WxBlackBoxFrame::bbHide() ["<< bbGetBlackBox()->bbGetFullName()<<"]"<bbUserOnHide(); } //========================================================================= @@ -423,7 +379,7 @@ namespace bbtk wxWindow* WxParentToChildData::GetWindowInWhichToInsert( const BlackBox* b) const { - bbtkDebugMessageInc("Core",9,"WxParentToChildData::GetWindowInWhichToInsert("<bbGetFullName()<<")"<bbGetFullName()<<")"<bbGetInputConnectorMap().find("WinParent"); if (i==b->bbGetInputConnectorMap().end()) @@ -435,7 +391,7 @@ namespace bbtk Connection* c = i->second->GetConnection(); if (!c) { - bbtkDebugMessage("Core",9, + bbtkDebugMessage("Kernel",9, "-> The input 'Parent' of the box " <bbGetFullName() <<" is not connected."<second; } //========================================================================= @@ -466,13 +422,13 @@ namespace bbtk //========================================================================= //========================================================================= //========================================================================= - BBTK_USER_BLACK_BOX_IMPLEMENTATION(WxBlackBox,UserBlackBox); + BBTK_USER_BLACK_BOX_IMPLEMENTATION(WxBlackBox,AtomicBlackBox); //========================================================================= //========================================================================= void WxBlackBox::bbUserConstructor() { - bbtkDebugMessage("Core",9,"WxBlackBox::bbUserConstructor()"< WxBlackBox::bbExecute() [" + <second->GetConnectionVector().size() != 0 ) + { + bbtkDebugMessage("Process",2, + "-> Output 'Widget' connected : transfering execution to parent" + <second->GetConnectionVector().front() + ->GetBlackBoxTo()->bbExecute(force); + + } + // else call 'standard' BlackBox execution method + else + { + BlackBox::bbExecute(force); + } + // + + bbtkDebugMessageDec("Process",1, + "<= WxBlackBox::bbExecute() [" + <bbUserCreateWidget(); + this->bbUserProcess(); + bbShowWindow(); + } + //========================================================================= + //================================================================== /// Specific methods for window creation during pipeline execution /// Shows the window associated to the box /// (called after bbProcess during bbExecute) - void WxBlackBox::bbShowWindow(Connection* caller) + void WxBlackBox::bbShowWindow() { bbtkDebugMessageInc("Process",1,"=> WxBlackBox::bbShowWindow() [" <SetName(bbtk::std2wx(bbGetInputWinTitle())); } // If the output 'Widget' is connected then it's gonna @@ -608,7 +610,7 @@ namespace bbtk " Input WinDialog set to true : creating a Dialog" <second->GetConnectionVector().size() != 0 ) + { + return ((WxBlackBox*)i->second->GetConnectionVector().front() + ->GetBlackBoxTo())->bbGetContainingWindow(); + } + return 0; + } + //================================================================== + + + //================================================================== + wxWindow* WxBlackBox::bbGetWxParent() { return Wx::GetTopWindow(); } + //================================================================== + + + //================================================================== + bool WxBlackBox::bbIsShown() + { + if (bbGetContainingWindow()!=0) + return bbGetContainingWindow()->bbIsShown(); + return false; + } + //================================================================== }//namespace bbtk