+
+ //==================================================================
+ /// @name Window related methods
+ //@{
+ virtual void bbSetShown(bool) {}
+ virtual bool bbIsShown() { return false; }
+ //@}
+ //==================================================================
+
+ //JCP changed to public 09-06-09
+ //==================================================================
+ /// @name Manage the execution
+ //@{
+ static bool bbGlobalGetSomeBoxExecuting();
+ static void bbGlobalSetSomeBoxExecuting(bool b);
+
+ static void bbGlobalSetFreezeExecution(bool b);
+ static bool bbGlobalGetFreezeExecution();
+
+ static void bbGlobalAddToExecutionList( BlackBox::Pointer b );
+ static void bbGlobalProcessExecutionList();
+
+ //@}
+ //JCP 09-06-09
+
+ protected:
+
+ //==================================================================
+ /// @name User redefinable methods
+ /// Virtual methods which can be redefined by inherited classes
+ //@{
+
+ //==================================================================
+ /// User can redefine this method to set
+ /// the default values of the box inputs and outputs
+ /// (it is called in the box constructor)
+ virtual void bbUserSetDefaultValues() {}
+
+ /// User can redefine this method to initialize what must be
+ /// initialized for the box to work, for example allocate dynamic data.
+ /// It is called once and only once before any call to bbUserCreateWidget
+ /// or bbUserProcess.
+ /// What has been allocated here must be desalocated in
+ /// bbFinalizeProcessing
+ virtual void bbUserInitializeProcessing() {}
+
+ /// User must redefine this method to uninitialize what has been
+ /// initialized in bbUserInitializeProcessing,
+ /// typically desallocate memory that has been allocated dynamically.
+ /// It is called in the box destructor if and only if (iff)
+ /// bbUserInitializeProcessing has been called previously.
+ virtual void bbUserFinalizeProcessing() {}
+ ///
+ virtual void bbUserOnShow() {}
+
+ //==================================================================
+ // @}
+ //==================================================================
+
+
+ //==================================================================
+
+ /// Write Graphviz-dot description in file.
+ /// Here dumps a single box description (i/o) but overloaded
+ /// in ComplexBlackBox to dump the internal pipeline representation