tasn pushed a commit to branch master.

http://git.enlightenment.org/bindings/cxx/eflxx.git/commit/?id=fc3106464a2ed8eda09bc57f009b54e86fdcebcb

commit fc3106464a2ed8eda09bc57f009b54e86fdcebcb
Author: Andreas Volz <li...@brachttal.net>
Date:   Mon May 31 21:35:16 2010 +0000

    use C++ version of signal prototype
    
    SVN revision: 49362
---
 eflxx_examples/src/elementaryxx/full/main.cpp      |  4 +-
 .../src/elementaryxx/full/test_entry.cpp           |  8 +--
 .../src/elementaryxx/full/test_genlist.cpp         | 70 ++++++++++++++--------
 .../src/elementaryxx/full/test_hover.cpp           |  2 +-
 eflxx_examples/src/elementaryxx/full/test_icon.cpp |  2 +-
 .../src/elementaryxx/full/test_notepad.cpp         |  6 +-
 .../src/elementaryxx/full/test_progressbar.cpp     | 15 +++--
 eflxx_examples/src/elementaryxx/simple/main.cpp    |  4 +-
 8 files changed, 69 insertions(+), 42 deletions(-)

diff --git a/eflxx_examples/src/elementaryxx/full/main.cpp 
b/eflxx_examples/src/elementaryxx/full/main.cpp
index 18a2214..1472377 100644
--- a/eflxx_examples/src/elementaryxx/full/main.cpp
+++ b/eflxx_examples/src/elementaryxx/full/main.cpp
@@ -7,7 +7,7 @@
 
 
 #ifndef ELM_LIB_QUICKLAUNCH
-static void my_win_del(Evas_Object *obj, void *event_info);
+static void my_win_del(Evasxx::Object &obj, void *event_info);
 static void my_win_main(void);
 
 //
@@ -71,7 +71,7 @@ Application *elmApp;
 
 
 static void
-my_win_del(Evas_Object *obj, void *event_info)
+my_win_del (Evasxx::Object &obj, void *event_info)
 {
   // TODO
   /* called when my_win_main is requested to be deleted */
diff --git a/eflxx_examples/src/elementaryxx/full/test_entry.cpp 
b/eflxx_examples/src/elementaryxx/full/test_entry.cpp
index b6f2e6b..4f94f72 100644
--- a/eflxx_examples/src/elementaryxx/full/test_entry.cpp
+++ b/eflxx_examples/src/elementaryxx/full/test_entry.cpp
@@ -1,23 +1,23 @@
 #include "test.h"
 
-static void my_entry_bt_1 (Evas_Object *obj, void *event_info, Entry *en)
+static void my_entry_bt_1 (Evasxx::Object &obj, void *event_info, Entry *en)
 {
   en->setText ("");
 }
 
-static void my_entry_bt_2 (Evas_Object *obj, void *event_info, Entry *en)
+static void my_entry_bt_2 (Evasxx::Object &obj, void *event_info, Entry *en)
 {
   const string s = en->getText ();
   cout << "ENTRY: " << s << endl;
 }
 
-static void my_entry_bt_3 (Evas_Object *obj, void *event_info, Entry *en)
+static void my_entry_bt_3 (Evasxx::Object &obj, void *event_info, Entry *en)
 {
   const string s = en->getSelection ();
   cout << "SELECTION: " << s << endl;
 }
 
-static void my_entry_bt_4 (Evas_Object *obj, void *event_info, Entry *en)
+static void my_entry_bt_4 (Evasxx::Object &obj, void *event_info, Entry *en)
 {
   en->insertText ("Insert some <b>BOLD</> text");
 }
diff --git a/eflxx_examples/src/elementaryxx/full/test_genlist.cpp 
b/eflxx_examples/src/elementaryxx/full/test_genlist.cpp
index 830bfc0..c4359a5 100644
--- a/eflxx_examples/src/elementaryxx/full/test_genlist.cpp
+++ b/eflxx_examples/src/elementaryxx/full/test_genlist.cpp
@@ -15,7 +15,7 @@ public:
   {}
   
   void setItemNum (int num) {mItemNum = num;}
-  int getItemNum () {return mItemNum;}
+  int getItemNum () const {return mItemNum;}
   
 private:
   int mItemNum;
@@ -60,6 +60,16 @@ public:
   }
 };
 
+class GenListColumnSelector1 : public GenListColumnSelector
+{
+public:
+  void setItemNum (int num) {mItemNum = num;}
+  int getItemNum () const {return mItemNum;}
+  
+private:
+  int mItemNum;
+};
+
 static GenListDataModel1 model ("default");
 static GenListDataModel1 model2 ("default");
 static GenListDataModel1 model3 ("default");
@@ -70,9 +80,17 @@ static GenListDataModel1 model3 ("default");
  */
 std::vector <GenListColumnConstructor1*> constructList1;
 
-void glSelected (const Evasxx::Object &obj, void *event_info)
+/*
+ * Hint: 'selectList1' isn't cleaned up at exit. Normal applications should do 
this.
+ *       This could be done at the GenList or Window destructor. For this 
example it's ok...
+ */
+std::vector <GenListColumnSelector1*> selectList1; 
+
+void glSelected (GenListColumnSelector &selection, const Evasxx::Object &obj, 
void *event_info)
 {
-  cout << "glSelected" << endl;
+  GenListColumnSelector1 *selection1 = static_cast <GenListColumnSelector1*> 
(&selection);
+  
+  cout << "glSelected: " << selection1->getItemNum () << endl;
 }
 
 void _move (const Evasxx::MouseMoveEvent &ev, GenList *gl)
@@ -94,39 +112,33 @@ _move(void *data, Evas *evas, Evas_Object *obj, void 
*event_info)
    else
      printf("over none, where %i\n", where);
 }
-
-static void
-_bt50_cb(void *data, Evas_Object *obj, void *event_info)
+#endif // 0
+static void _bt50_cb (Evasxx::Object &obj, void *event_info)
 {
-    elm_genlist_item_bring_in(data);
+  //elm_genlist_item_bring_in(data);
 }
 
-static void
-_bt1500_cb(void *data, Evas_Object *obj, void *event_info)
+static void _bt1500_cb (Evasxx::Object &obj, void *event_info)
 {
-    elm_genlist_item_middle_bring_in(data);
+  //elm_genlist_item_middle_bring_in(data);
 }
-#endif // 0
-static void
-_gl_selected (Evas_Object *obj, void *event_info)
+
+static void _gl_selected (Evasxx::Object &obj, void *event_info)
 {
    printf("selected: %p\n", event_info);
 }
 
-static void
-_gl_clicked (Evas_Object *obj, void *event_info)
+static void _gl_clicked (Evasxx::Object &obj, void *event_info)
 {
    printf("clicked: %p\n", event_info);
 }
 
-static void
-_gl_longpress (Evas_Object *obj, void *event_info)
+static void _gl_longpress (Evasxx::Object &obj, void *event_info)
 {
    printf("longpress %p\n", event_info);
 }
 
-void
-test_genlist (void *data, Evas_Object *obj, void *event_info)
+void test_genlist (void *data, Evas_Object *obj, void *event_info)
 {
   Window *win = Window::factory ("genlist", ELM_WIN_BASIC);
   win->setTitle ("GenList");
@@ -182,10 +194,14 @@ test_genlist (void *data, Evas_Object *obj, void 
*event_info)
   {
     GenListColumnConstructor1 *construct1 = new GenListColumnConstructor1 ();
     construct1->setItemNum (i);
+
+    GenListColumnSelector1 *select1 = new GenListColumnSelector1 ();
+    select1->setItemNum (i * 10);
     
-    gl->append (construct1, NULL, ELM_GENLIST_ITEM_NONE, NULL);
+    gl->append (construct1, NULL, ELM_GENLIST_ITEM_NONE, select1);
 
     constructList1.push_back (construct1);
+    selectList1.push_back (select1);
 #if 0
         gli = elm_genlist_item_append(gl, &itc1,
                                       (void *)i/* item data */,
@@ -193,11 +209,17 @@ test_genlist (void *data, Evas_Object *obj, void 
*event_info)
                                       ELM_GENLIST_ITEM_NONE,
                                       gl_sel/* func */,
                                       (void *)(i * 10)/* func data */);
-        if (i == 50)
-          evas_object_smart_callback_add(bt_50, "clicked", _bt50_cb, gli);
-        else if (i == 1500)
-          evas_object_smart_callback_add(bt_1500, "clicked", _bt1500_cb, gli);
 #endif
+    if (i == 50)
+    {
+      //evas_object_smart_callback_add(bt_50, "clicked", _bt50_cb, gli);
+      bt_50->getEventSignal ("clicked")->connect (sigc::ptr_fun (&_bt50_cb));
+    }
+    else if (i == 1500)
+    {
+      //evas_object_smart_callback_add(bt_1500, "clicked", _bt1500_cb, gli);
+      bt_1500->getEventSignal ("clicked")->connect (sigc::ptr_fun 
(&_bt1500_cb));
+    }
   }
     
   win->resize (Size (480, 800));
diff --git a/eflxx_examples/src/elementaryxx/full/test_hover.cpp 
b/eflxx_examples/src/elementaryxx/full/test_hover.cpp
index f34dea0..07fd404 100644
--- a/eflxx_examples/src/elementaryxx/full/test_hover.cpp
+++ b/eflxx_examples/src/elementaryxx/full/test_hover.cpp
@@ -2,7 +2,7 @@
 
 
 
-static void my_hover_bt (Evas_Object *obj, void *event_info, Hover *hv)
+static void my_hover_bt (Evasxx::Object &obj, void *event_info, Hover *hv)
 {
   hv->show ();
 }
diff --git a/eflxx_examples/src/elementaryxx/full/test_icon.cpp 
b/eflxx_examples/src/elementaryxx/full/test_icon.cpp
index bae3a15..1b1c3e1 100644
--- a/eflxx_examples/src/elementaryxx/full/test_icon.cpp
+++ b/eflxx_examples/src/elementaryxx/full/test_icon.cpp
@@ -2,7 +2,7 @@
 
 
 
-static void icon_clicked (Evas_Object *obj, void *event_info)
+static void icon_clicked (Evasxx::Object &obj, void *event_info)
 {
   cout << "clicked!" << endl;
 }
diff --git a/eflxx_examples/src/elementaryxx/full/test_notepad.cpp 
b/eflxx_examples/src/elementaryxx/full/test_notepad.cpp
index e5ba664..6742301 100644
--- a/eflxx_examples/src/elementaryxx/full/test_notepad.cpp
+++ b/eflxx_examples/src/elementaryxx/full/test_notepad.cpp
@@ -2,17 +2,17 @@
 
 
 
-static void my_notepad_bt_1 (Evas_Object *obj, void *event_info, Notepad *np)
+static void my_notepad_bt_1 (Evasxx::Object &obj, void *event_info, Notepad 
*np)
 {
   // TODO
 }
 
-static void my_notepad_bt_2 (Evas_Object *obj, void *event_info, Notepad *np)
+static void my_notepad_bt_2 (Evasxx::Object &obj, void *event_info, Notepad 
*np)
 {
   // TODO
 }
 
-static void my_notepad_bt_3 (Evas_Object *obj, void *event_info, Notepad *np)
+static void my_notepad_bt_3 (Evasxx::Object &obj, void *event_info, Notepad 
*np)
 {
   // TODO
 }
diff --git a/eflxx_examples/src/elementaryxx/full/test_progressbar.cpp 
b/eflxx_examples/src/elementaryxx/full/test_progressbar.cpp
index 33a1540..729b2ab 100644
--- a/eflxx_examples/src/elementaryxx/full/test_progressbar.cpp
+++ b/eflxx_examples/src/elementaryxx/full/test_progressbar.cpp
@@ -44,7 +44,7 @@ static void _my_progressbar_value_set (Ecorexx::Timer *timer)
   }
 }
 
-static void my_progressbar_test_start (Evas_Object *obj, void *event_info)
+static void my_progressbar_test_start (Evasxx::Object &obj, void *event_info)
 {
   _test_progressbar.pb2->pulse (true);
   _test_progressbar.pb5->pulse (true);
@@ -58,7 +58,7 @@ static void my_progressbar_test_start (Evas_Object *obj, void 
*event_info)
   }
 }
 
-static void my_progressbar_test_stop (Evas_Object *obj, void *event_info)
+static void _test_stop ()
 {
   _test_progressbar.pb2->pulse (false);
   _test_progressbar.pb5->pulse (false);
@@ -71,10 +71,15 @@ static void my_progressbar_test_stop (Evas_Object *obj, 
void *event_info)
   }
 }
 
-static void my_progressbar_destroy (Evas_Object *obj, void *event_info)
+static void my_progressbar_test_stop (Evasxx::Object &obj, void *event_info)
 {
-  my_progressbar_test_stop (NULL, NULL);
-  evas_object_del (obj);
+  _test_stop ();
+}
+
+static void my_progressbar_destroy (Evasxx::Object &obj, void *event_info)
+{
+  _test_stop ();
+  delete &obj;
 }
 
 void test_progressbar(void *data, Evas_Object *obj, void *event_info)
diff --git a/eflxx_examples/src/elementaryxx/simple/main.cpp 
b/eflxx_examples/src/elementaryxx/simple/main.cpp
index 8c2b378..e311892 100644
--- a/eflxx_examples/src/elementaryxx/simple/main.cpp
+++ b/eflxx_examples/src/elementaryxx/simple/main.cpp
@@ -11,14 +11,14 @@ using namespace Eflxx;
 using namespace Elmxx;
 
 static void
-my_win_del(Evas_Object *obj, void *event_info)
+my_win_del(Evasxx::Object &obj, void *event_info)
 {
   // TODO
   /* called when my_win_main is requested to be deleted */
   Application::exit(); /* exit the program's main loop that runs in elm_run() 
*/
 }
 
-static void testFunc (Evas_Object *obj, void *event_info)
+static void testFunc (Evasxx::Object &obj, void *event_info)
 {
   cout << "sub-object-del" << endl;
 }

-- 


Reply via email to