-
-
-/*
- //==================================================================
- /// Specific methods for window creation during pipeline execution
- /// Shows the window associated to the box
- /// (called after bbProcess during bbExecute)
- void KWBlackBox::bbShowWindow()
- {
- bbtkDebugMessageInc("kw",1,"=> KWBlackBox::bbShowWindow() ["
- <<bbGetFullName()<<"]"<<std::endl);
-
- // If Event Handler for the widget does not exist or is obsolete : create it
- if (bbGetOutputWidget()!=0)
- {
- if (bbGetWidgetEventHandler()==0)
- {
- bbtkDebugMessage("kw",3,
- "-> No widget event handler : creating one"
- <<std::endl);
- new KWBlackBoxWidgetEventHandler(GetThisPointer<KWBlackBox>(),
- bbGetOutputWidget());
- }
- else if ( ! bbGetWidgetEventHandler()->IsHandlerOf
- ( bbGetOutputWidget() ) )
- {
- bbtkDebugMessage("kw",3,
- "-> Obsolete widget event handler : re-creating one"
- <<std::endl);
- delete bbGetWidgetEventHandler();
- new KWBlackBoxWidgetEventHandler(GetThisPointer<KWBlackBox>(),
- bbGetOutputWidget());
- }
- // Sets the name of the vtkKWWidget to the input WinTitle
- bbGetOutputWidget()->SetName(bbtk::std2kw(bbGetInputWinTitle()));
- }
-
- // If the output 'Widget' is connected then it's gonna
- // be captured by its parent window : nothing to do
- if ( (*bbGetOutputConnectorMap().find("Widget")).second
- ->GetConnectionVector().size() != 0 )
- {
-
- bbtkDebugMessage("kw",2,
- "-> Output 'Widget' connected : nothing to do"
- <<std::endl);
- return;
- }
-
-
- Window* show = 0;
- // If the window already exists : no need creating it
- if (bbGetWindow()!=0)
- {
- bbtkDebugMessage("kw",2,
- "-> Window already exists"
- <<std::endl);
- show = bbGetWindow();
- }
- // Else if the widget exists : create window
- else if (bbGetOutputWidget()!=0)
- {
- bbtkDebugMessage("kw",2,
- "-> Widget exists : creating the window"
- <<std::endl);
-
-
- // Input WinDialog set to true : creating a Dialog
- if (bbGetInputWinDialog())
- {
- bbtkDebugMessage("kw",2,
- " Input WinDialog set to true : creating a Dialog"
- <<std::endl);
- show = (Window*) new KWBlackBoxDialog( GetThisPointer<KWBlackBox>(),
- // bbGetKWParent(),
- // LG 24/11/08 : New widget pipeline
- KW::GetTopWindow(),
- std2kw( bbGetInputWinTitle() + " - bbtk (c) CREATIS LRMN"),
- kwSize( bbGetInputWinWidth() , bbGetInputWinHeight() ) );
- }
- // Input WinDialog set to false : creating a Frame
- else
- {
- bbtkDebugMessage("process",2,
- " Input WinDialog set to false : creating a Frame"
- <<std::endl);
- show = (Window*) new KWBlackBoxFrame( GetThisPointer<KWBlackBox>(),
- // bbGetKWParent(),
- // LG 24/11/08 : New widget pipeline
- KW::GetTopWindow(),
- std2kw( bbGetInputWinTitle() + " - bbtk (c) CREATIS LRMN"),
- kwSize( bbGetInputWinWidth() , bbGetInputWinHeight() ) );
- }
-
- }
- // No window nor widget : error
- else
- {
- bbtkError("KWBlackBox::bbShowWindow() ["
- <<bbGetFullName()
- <<"] : No widget. Did you set the box output 'Widget' in the processing method of the box ?");
- }
-
-
- // Show the window
- if (true) //!show->IsShown())
- {
- show->bbShow();
- }
- else
- {
- bbtkDebugMessage("kw",2,"-> Already shown : nothing to do"<<std::endl);
- }
-
-
- bbtkDebugMessage("kw",2,"<= KWBlackBox::bbShowWindow() ["
- <<bbGetFullName()<<"]"<<std::endl);
-
- }
- //==================================================================
-*/
-
-
-
- //==================================================================
- void KWBlackBox::bbHideWindow()
- {
- bbtkDebugMessageInc("kw",1,"=> KWBlackBox::bbHideWindow() ["
- <<bbGetFullName()<<"]"<<std::endl);
-
- if (bbGetWindow()!=0) bbGetWindow()->bbHide();
-
- bbtkDebugMessageDec("kw",2,"<= KWBlackBox::bbHideWindow() ["
- <<bbGetFullName()<<"]"<<std::endl);
- }
- //==================================================================
-
-
- //==================================================================
- void KWBlackBox::bbCloseWindow()
- {
- bbtkDebugMessageInc("kw",1,"=> KWBlackBox::bbCloseWindow() ["
- <<bbGetFullName()<<"]"<<std::endl);
-
- if (bbGetWindow()!=0) bbGetWindow()->bbClose();
-
- bbtkDebugMessageDec("kw",2,"<= KWBlackBox::bbCloseWindow() ["
- <<bbGetFullName()<<"]"<<std::endl);
- }
- //==================================================================
-
- //==================================================================
- KWBlackBox::Window* KWBlackBox::bbGetContainingWindow()
- {
- if (bbGetWindow()!=0) return bbGetWindow();
- BlackBox::OutputConnectorMapType::const_iterator i
- = bbGetOutputConnectorMap().find("Widget");
- if ( i->second->GetConnectionVector().size() != 0 )
- {
- return boost::static_pointer_cast<KWBlackBox>
- (i->second->GetConnectionVector().front() //.lock()
- ->GetBlackBoxTo())->bbGetContainingWindow();
- }
- return 0;
- }