]> Creatis software - bbtk.git/blobdiff - samples/SampleOutputObserver/bbtkSampleOutputObserver.cxx
*** empty log message ***
[bbtk.git] / samples / SampleOutputObserver / bbtkSampleOutputObserver.cxx
index 67c40751fd24d000d21ef9be7e7214bcefa1a51c..71ccbd8975b216473a18b3be332ae95993edfb84 100644 (file)
@@ -6,12 +6,15 @@
 //=========================================================================
 
 //=========================================================================
-void CallbackFunction ( bbtk::BlackBox::Pointer p, 
-                       const std::string& o, 
-                       bbtk::IOStatus s)
+// FIRST EXAMPLE USING A FUNCTION AS CALLBACK
+void CallbackFunction ( bbtk::BlackBox::Pointer p,  // The black box which changed 
+                       const std::string& o, // The output which changed
+                       bbtk::IOStatus s) // The new status of the output
 {
   std::cout << "== Callback function called with p="<<p->bbGetName()
            <<" o="<<o<<" s="<<bbtk::GetIOStatusString(s)<<std::endl;
+
+  // Cast the black box pointer into Slider pointer
   bbwx::Slider::Pointer slider = boost::dynamic_pointer_cast<bbwx::Slider>(p);
   if (slider)
     {
@@ -30,6 +33,7 @@ void SliderCallback()
     {
       bbwx::Slider::Pointer slider = bbwx::Slider::New("slider");
       slider->bbSetInputWinDialog(true);  // mandatory
+      // Add the observer 
       slider->bbAddOutputObserver( "Out", &CallbackFunction );
       slider->bbExecute();
     }
@@ -42,6 +46,7 @@ void SliderCallback()
 
 
 //=========================================================================
+// SECOND EXAMPLE : MEMBER METHOD CALLED WHEN SLIDER IS RELEASED
 class ClassWithTwoSliders
 {
 public:
@@ -66,6 +71,9 @@ ClassWithTwoSliders::ClassWithTwoSliders()
   try
     {
       mSlider1 = bbwx::Slider::New("slider1");
+      // Add the observer method
+      // As it is not a FREEHAND function we must use the macro 
+      // BBTK_MAKE_OUTPUT_OBSERVER which takes the object and the method to call
       mSlider1->bbAddOutputObserver("Out", 
                                    BBTK_MAKE_OUTPUT_OBSERVER
                                    (this,