Browse Source

Add getter to ctkCallback

Jean-Christophe Fillion-Robin 14 years ago
parent
commit
c090632071
3 changed files with 31 additions and 4 deletions
  1. 24 4
      Libs/Core/Testing/Cpp/ctkCallbackTest1.cpp
  2. 6 0
      Libs/Core/ctkCallback.cpp
  3. 1 0
      Libs/Core/ctkCallback.h

+ 24 - 4
Libs/Core/Testing/Cpp/ctkCallbackTest1.cpp

@@ -49,15 +49,35 @@ void doSomething2()
 int ctkCallbackTest1(int argc, char * argv [] )
 int ctkCallbackTest1(int argc, char * argv [] )
 {
 {
   QCoreApplication app(argc, argv);
   QCoreApplication app(argc, argv);
+  
 
 
   Done1 = false;
   Done1 = false;
   Done2 = false;
   Done2 = false;
 
 
-  ctkCallback callback(doSomething1);
-  QTimer::singleShot(0, &callback, SLOT(invoke()));
+  ctkCallback callback1;
+  if (callback1.callback() != 0)
+    {
+    std::cerr << "Line " << __LINE__ << " - Problem vith ctkCallback constructor"
+              << " - ctkCallback::callback() should return 0" << std::endl;
+    return EXIT_FAILURE;
+    }
+    
+  callback1.setCallback(doSomething1);
+  if (callback1.callback() != doSomething1)
+    {
+    std::cerr << "Line " << __LINE__ << " - Problem vith ctkCallback::setCallback()" << std::endl;
+    return EXIT_FAILURE;
+    }
+  
+  QTimer::singleShot(0, &callback1, SLOT(invoke()));
   
   
-  ctkCallback callback2;
-  callback2.setCallback(doSomething2);
+  ctkCallback callback2(doSomething2);
+  if (callback2.callback() != doSomething2)
+    {
+    std::cerr << "Line " << __LINE__ << " - Problem vith ctkCallback constructor" << std::endl;
+    return EXIT_FAILURE;
+    }
+    
   QTimer::singleShot(0, &callback2, SLOT(invoke()));
   QTimer::singleShot(0, &callback2, SLOT(invoke()));
 
 
   QTimer::singleShot(0, &app, SLOT(quit()));
   QTimer::singleShot(0, &app, SLOT(quit()));

+ 6 - 0
Libs/Core/ctkCallback.cpp

@@ -36,6 +36,12 @@ ctkCallback::~ctkCallback()
 }
 }
 
 
 // --------------------------------------------------------------------------
 // --------------------------------------------------------------------------
+void (*ctkCallback::callback())()const
+{
+  return this->Callback;
+}
+  
+// --------------------------------------------------------------------------
 void ctkCallback::setCallback(void (*callback)())
 void ctkCallback::setCallback(void (*callback)())
 {
 {
   this->Callback = callback;
   this->Callback = callback;

+ 1 - 0
Libs/Core/ctkCallback.h

@@ -36,6 +36,7 @@ public:
   ctkCallback(void (*callback)() = 0, QObject * parentObject = 0);
   ctkCallback(void (*callback)() = 0, QObject * parentObject = 0);
   virtual ~ctkCallback();
   virtual ~ctkCallback();
   
   
+  void (*callback())()const;
   void setCallback(void (*callback)());
   void setCallback(void (*callback)());
   
   
 public slots:
 public slots: