X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWidgetBlackBox.txx;h=92111420ea1974ad851524f762aafd3273cb4577;hb=f45b7f05b03f411759981fe13645466a1c289e6a;hp=2aeb1783de0d188113b47349f13e75b8da9b3da7;hpb=28479cf7460f053625842de2e8df98b2e3363ede;p=bbtk.git diff --git a/kernel/src/bbtkWidgetBlackBox.txx b/kernel/src/bbtkWidgetBlackBox.txx index 2aeb178..9211142 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/19 10:19:23 $ - Version: $Revision: 1.4 $ + Date: $Date: 2009/05/28 08:12:06 $ + Version: $Revision: 1.5 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -34,7 +34,7 @@ -#include "bbtkWidgetBlackBoxWindow.h" +//#include "bbtkWidgetBlackBoxWindow.h" #include "bbtkBlackBoxOutputConnector.h" @@ -56,8 +56,8 @@ namespace bbtk template void WidgetBlackBox::bbUserSetDefaultValues() { - bbtkDebugMessage("widget",9,"WidgetBlackBox::bbUserSetDefaultValues()"< void WidgetBlackBox::bbUserInitializeProcessing() { + bbmShown = false; } //========================================================================= @@ -78,18 +79,25 @@ namespace bbtk template void WidgetBlackBox::bbUserFinalizeProcessing() { - bbtkDebugMessage("widget",9,"==> WidgetBlackBox::bbUserFinalizeProcessing() ["<::bbUserFinalizeProcessing()"< WidgetBlackBox::bbUserFinalizeProcessing() ["<bbIsShown(); + bbGetWindow()->bbDestroy(); + bbSetWindow(0); + if (GetUseCount()==0) - { - if (bbGetWindow()->bbIsShown()) DecNbWindowsShown(); + { + bbtkBlackBoxDebugMessage("widget",9,"**** HERE use count == 0"<bbDestroy(); - bbSetWindow(0); + } - bbtkDebugMessage("widget",9,"<== WidgetBlackBox::bbUserFinalizeProcessing() ["< 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(); @@ -134,22 +146,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(); + */ } // } @@ -162,6 +180,9 @@ namespace bbtk WidgetBlackBox::bbCreateWidgetOfInput (const std::string& in, typename WidgetBlackBox::WidgetPointer parent) { + bbtkBlackBoxDebugMessage("widget",2,"bbCreateWidgetOfInput(" + <second ; @@ -180,6 +201,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; } @@ -193,16 +216,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() [" <bbDestroy(); - bbtkDebugMessageDec("widget",2,"<= WidgetBlackBox::bbCloseWindow() [" + bbtkBlackBoxDebugMessage("widget",1,"<= WidgetBlackBox::bbCloseWindow() [" <