X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=kernel%2Fsrc%2FbbtkWidgetBlackBox.txx;h=3da66eb0a4facfd0325cfbe8608dc2ed46178bb4;hb=1688b52778caa9985ecea38aad38341817e0401a;hp=1abdaad92f81ad694410b80c9fc9ccd974c94137;hpb=b8fe96fbebd153e92de1f1bfcad48ad009365df5;p=bbtk.git diff --git a/kernel/src/bbtkWidgetBlackBox.txx b/kernel/src/bbtkWidgetBlackBox.txx index 1abdaad..3da66eb 100644 --- a/kernel/src/bbtkWidgetBlackBox.txx +++ b/kernel/src/bbtkWidgetBlackBox.txx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkWidgetBlackBox.txx,v $ Language: C++ - Date: $Date: 2009/05/14 14:43:34 $ - Version: $Revision: 1.3 $ + Date: $Date: 2010/01/14 13:17:27 $ + Version: $Revision: 1.6 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -27,6 +27,7 @@ * 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. * ------------------------------------------------------------------------ */ + /** * \file * \brief @@ -34,7 +35,7 @@ -#include "bbtkWidgetBlackBoxWindow.h" +//#include "bbtkWidgetBlackBoxWindow.h" #include "bbtkBlackBoxOutputConnector.h" @@ -56,8 +57,8 @@ namespace bbtk template void WidgetBlackBox::bbUserSetDefaultValues() { - bbtkDebugMessage("widget",9,"WidgetBlackBox::bbUserSetDefaultValues()"< void WidgetBlackBox::bbUserInitializeProcessing() { + bbmShown = false; } //========================================================================= @@ -78,12 +80,25 @@ namespace bbtk template void WidgetBlackBox::bbUserFinalizeProcessing() { - bbtkDebugMessage("widget",9,"==> WidgetBlackBox::bbUserFinalizeProcessing() ["<bbClose(); - bbSetWindow(0); - } - bbtkDebugMessage("widget",9,"<== WidgetBlackBox::bbUserFinalizeProcessing() ["<::bbUserFinalizeProcessing()"< WidgetBlackBox::bbUserFinalizeProcessing() ["<bbIsShown(); + bbGetWindow()->bbDestroy(); + bbSetWindow(0); + + if (GetUseCount()==0) + { + bbtkBlackBoxDebugMessage("widget",9,"**** HERE use count == 0"< Creating the window" <InitWindowManagerIfNeeded(); // If is a Dialog requested if ( bbGetInputWinDialog() ) { - bbtkDebugMessage("process",2, + bbtkBlackBoxDebugMessage("widget",2, " Input WinDialog set to true : creating a Dialog" <bbCreateDialogWindow(); @@ -128,22 +147,28 @@ namespace bbtk // Input WinDialog set to false : creating a Frame else { - bbtkDebugMessage("process",2, + bbtkBlackBoxDebugMessage("widget",2, " Input WinDialog set to false : creating a Frame" <bbCreateFrameWindow(); } } + /* // Show the window if ( !bbGetWindow() ) { bbtkInternalError("Need to show the Window of widget "< Showing the window" <bbShow(); + // bbGetWindow()->bbShow(); + this->bbShowWindow(); + */ } // } @@ -156,6 +181,9 @@ namespace bbtk WidgetBlackBox::bbCreateWidgetOfInput (const std::string& in, typename WidgetBlackBox::WidgetPointer parent) { + bbtkBlackBoxDebugMessage("widget",2,"bbCreateWidgetOfInput(" + <second ; @@ -174,6 +202,8 @@ namespace bbtk wfrom->bbUserCreateWidget(parent); // Get the widget created w = wfrom->bbGetOutputWidget(); + // Insert the box into the NestedWidgetBoxes list + bbmNestedWidgetBoxes.push_back(from); } return w; } @@ -187,16 +217,52 @@ namespace bbtk } //================================================================== + //================================================================== + template + void WidgetBlackBox::bbSetShown(bool b) + { + if (b==bbmShown) return; + + bbtkBlackBoxDebugMessage("widget",5,"WidgetBlackBox::bbSetShown(" + <bbUserOnShow(); + } + // Have to propagate to nested widgets + std::vector::const_iterator i; + for (i =bbmNestedWidgetBoxes.begin(); + i!=bbmNestedWidgetBoxes.end(); + ++i) + { + if (!i->expired()) i->lock()->bbSetShown(b); + } + + } + //================================================================== + + //================================================================== + template + bool WidgetBlackBox::bbIsShown() + { + return bbmShown; + } + //================================================================== + + /* //================================================================== template void WidgetBlackBox::bbShowWindow() { - bbtkDebugMessageInc("widget",1,"=> WidgetBlackBox::bbShowWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"=> WidgetBlackBox::bbShowWindow() [" <bbShow(); - bbtkDebugMessageDec("widget",2,"<= WidgetBlackBox::bbShowWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"<= WidgetBlackBox::bbShowWindow() [" < void WidgetBlackBox::bbHideWindow() { - bbtkDebugMessageInc("widget",1,"=> WidgetBlackBox::bbHideWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"=> WidgetBlackBox::bbHideWindow() [" <bbHide(); - bbtkDebugMessageDec("widget",2,"<= WidgetBlackBox::bbHideWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"<= WidgetBlackBox::bbHideWindow() [" < void WidgetBlackBox::bbCloseWindow() { - bbtkDebugMessageInc("widget",1,"=> WidgetBlackBox::bbCloseWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"=> WidgetBlackBox::bbCloseWindow() [" <bbClose(); + if (bbGetWindow()!=0) bbGetWindow()->bbDestroy(); - bbtkDebugMessageDec("widget",2,"<= WidgetBlackBox::bbCloseWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"<= WidgetBlackBox::bbCloseWindow() [" <