Enlightenment CVS committal

Author  : andrunko
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_bin.c etk_button.c etk_combobox.c etk_combobox_entry.c 
        etk_container.c etk_filechooser_widget.c etk_marshallers.c 
        etk_marshallers.h etk_menu.c etk_menu_item.c etk_menu_shell.c 
        etk_property.c etk_property.h etk_toplevel.c etk_widget.c 


Log Message:
Changed properties and signals to use object instead of pointer where
appropriate.

===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_bin.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- etk_bin.c   21 Aug 2007 15:04:54 -0000      1.23
+++ etk_bin.c   28 Aug 2007 20:06:32 -0000      1.24
@@ -46,7 +46,7 @@
             ETK_CONSTRUCTOR(_etk_bin_constructor), NULL);
 
       etk_type_property_add(bin_type, "child", ETK_BIN_CHILD_PROPERTY,
-            ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE,  
etk_property_value_pointer(NULL));
+            ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE,  
etk_property_value_object(NULL));
 
       bin_type->property_set = _etk_bin_property_set;
       bin_type->property_get = _etk_bin_property_get;
@@ -121,7 +121,7 @@
    switch (property_id)
    {
       case ETK_BIN_CHILD_PROPERTY:
-         etk_bin_child_set(bin, 
ETK_WIDGET(etk_property_value_pointer_get(value)));
+         etk_bin_child_set(bin, 
ETK_WIDGET(etk_property_value_object_get(value)));
          break;
       default:
          break;
@@ -139,7 +139,7 @@
    switch (property_id)
    {
       case ETK_BIN_CHILD_PROPERTY:
-         etk_property_value_pointer_set(value, bin->child);
+         etk_property_value_object_set(value, ETK_OBJECT(bin->child));
          break;
       default:
          break;
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_button.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -3 -r1.43 -r1.44
--- etk_button.c        21 Aug 2007 15:04:54 -0000      1.43
+++ etk_button.c        28 Aug 2007 20:06:32 -0000      1.44
@@ -83,7 +83,7 @@
       etk_type_property_add(button_type, "label", ETK_BUTTON_LABEL_PROPERTY,
             ETK_PROPERTY_STRING, ETK_PROPERTY_READABLE_WRITABLE,  
etk_property_value_string(NULL));
       etk_type_property_add(button_type, "image", ETK_BUTTON_IMAGE_PROPERTY,
-            ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE,  
etk_property_value_pointer(NULL));
+            ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE,  
etk_property_value_object(NULL));
       etk_type_property_add(button_type, "xalign", ETK_BUTTON_XALIGN_PROPERTY,
             ETK_PROPERTY_FLOAT, ETK_PROPERTY_READABLE_WRITABLE,  
etk_property_value_float(0.5));
       etk_type_property_add(button_type, "yalign", ETK_BUTTON_YALIGN_PROPERTY,
@@ -468,7 +468,7 @@
          etk_button_label_set(button, etk_property_value_string_get(value));
          break;
       case ETK_BUTTON_IMAGE_PROPERTY:
-         etk_button_image_set(button, 
ETK_IMAGE(etk_property_value_pointer_get(value)));
+         etk_button_image_set(button, 
ETK_IMAGE(etk_property_value_object_get(value)));
          break;
       case ETK_BUTTON_XALIGN_PROPERTY:
          etk_button_alignment_set(button, etk_property_value_float_get(value), 
button->yalign);
@@ -501,7 +501,7 @@
          etk_property_value_string_set(value, etk_button_label_get(button));
          break;
       case ETK_BUTTON_IMAGE_PROPERTY:
-         etk_property_value_pointer_set(value, ETK_OBJECT(button->image));
+         etk_property_value_object_set(value, ETK_OBJECT(button->image));
          break;
       case ETK_BUTTON_XALIGN_PROPERTY:
          etk_property_value_float_set(value, button->xalign);
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_combobox.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -3 -r1.51 -r1.52
--- etk_combobox.c      21 Aug 2007 15:04:54 -0000      1.51
+++ etk_combobox.c      28 Aug 2007 20:06:32 -0000      1.52
@@ -91,14 +91,14 @@
             ETK_CONSTRUCTOR(_etk_combobox_constructor), 
ETK_DESTRUCTOR(_etk_combobox_destructor));
 
       _etk_combobox_signals[ETK_COMBOBOX_ITEM_ACTIVATED_SIGNAL] = 
etk_signal_new("item-activated",
-            combobox_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL);
+            combobox_type, -1, etk_marshaller_VOID__OBJECT, NULL, NULL);
       _etk_combobox_signals[ETK_COMBOBOX_ACTIVE_ITEM_CHANGED_SIGNAL] = 
etk_signal_new("active-item-changed",
             combobox_type, -1, etk_marshaller_VOID__VOID, NULL, NULL);
 
       etk_type_property_add(combobox_type, "items-height", 
ETK_COMBOBOX_ITEMS_HEIGHT_PROPERTY,
             ETK_PROPERTY_INT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_int(DEFAULT_ITEM_HEIGHT));
       etk_type_property_add(combobox_type, "active-item", 
ETK_COMBOBOX_ACTIVE_ITEM_PROPERTY,
-            ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_pointer(NULL));
+            ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_object(NULL));
 
       combobox_type->property_set = _etk_combobox_property_set;
       combobox_type->property_get = _etk_combobox_property_get;
@@ -1016,7 +1016,7 @@
          etk_combobox_items_height_set(combobox, 
etk_property_value_int_get(value));
          break;
       case ETK_COMBOBOX_ACTIVE_ITEM_PROPERTY:
-         etk_combobox_active_item_set(combobox, 
ETK_COMBOBOX_ITEM(etk_property_value_pointer_get(value)));
+         etk_combobox_active_item_set(combobox, 
ETK_COMBOBOX_ITEM(etk_property_value_object_get(value)));
          break;
       default:
          break;
@@ -1037,7 +1037,7 @@
          etk_property_value_int_set(value, combobox->items_height);
          break;
       case ETK_COMBOBOX_ACTIVE_ITEM_PROPERTY:
-         etk_property_value_pointer_set(value, combobox->active_item);
+         etk_property_value_object_set(value, 
ETK_OBJECT(combobox->active_item));
          break;
       default:
          break;
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_combobox_entry.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- etk_combobox_entry.c        21 Aug 2007 15:04:54 -0000      1.3
+++ etk_combobox_entry.c        28 Aug 2007 20:06:32 -0000      1.4
@@ -93,7 +93,7 @@
       etk_type_property_add(combobox_entry_type, "items-height", 
ETK_COMBOBOX_ENTRY_ITEMS_HEIGHT_PROPERTY,
             ETK_PROPERTY_INT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_int(DEFAULT_ITEM_HEIGHT));
       etk_type_property_add(combobox_entry_type, "active-item", 
ETK_COMBOBOX_ENTRY_ACTIVE_ITEM_PROPERTY,
-            ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_pointer(NULL));
+            ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_object(NULL));
 
       combobox_entry_type->property_set = _etk_combobox_entry_property_set;
       combobox_entry_type->property_get = _etk_combobox_entry_property_get;
@@ -950,7 +950,7 @@
          etk_combobox_entry_items_height_set(combobox_entry, 
etk_property_value_int_get(value));
          break;
       case ETK_COMBOBOX_ENTRY_ACTIVE_ITEM_PROPERTY:
-         etk_combobox_entry_active_item_set(combobox_entry, 
ETK_COMBOBOX_ENTRY_ITEM(etk_property_value_pointer_get(value)));
+         etk_combobox_entry_active_item_set(combobox_entry, 
ETK_COMBOBOX_ENTRY_ITEM(etk_property_value_object_get(value)));
          break;
       default:
          break;
@@ -971,7 +971,7 @@
          etk_property_value_int_set(value, combobox_entry->items_height);
          break;
       case ETK_COMBOBOX_ENTRY_ACTIVE_ITEM_PROPERTY:
-         etk_property_value_pointer_set(value, combobox_entry->active_item);
+         etk_property_value_object_set(value, 
ETK_OBJECT(combobox_entry->active_item));
          break;
       default:
          break;
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_container.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- etk_container.c     21 Aug 2007 15:04:54 -0000      1.20
+++ etk_container.c     28 Aug 2007 20:06:32 -0000      1.21
@@ -52,9 +52,9 @@
             ETK_CONSTRUCTOR(_etk_container_constructor), NULL);
 
       _etk_container_signals[ETK_CONTAINER_CHILD_ADDED_SIGNAL] = 
etk_signal_new("child-added",
-            container_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL);
+            container_type, -1, etk_marshaller_VOID__OBJECT, NULL, NULL);
       _etk_container_signals[ETK_CONTAINER_CHILD_REMOVED_SIGNAL] = 
etk_signal_new("child-removed",
-            container_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL);
+            container_type, -1, etk_marshaller_VOID__OBJECT, NULL, NULL);
 
       etk_type_property_add(container_type, "border-width", 
ETK_CONTAINER_BORDER_WIDTH_PROPERTY,
             ETK_PROPERTY_INT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_int(0));
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_filechooser_widget.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- etk_filechooser_widget.c    21 Aug 2007 15:04:54 -0000      1.26
+++ etk_filechooser_widget.c    28 Aug 2007 20:06:32 -0000      1.27
@@ -118,8 +118,6 @@
    {
       filechooser_widget_type = etk_type_new("Etk_Filechooser_Widget", 
ETK_WIDGET_TYPE, sizeof(Etk_Filechooser_Widget), 
ETK_CONSTRUCTOR(_etk_filechooser_widget_constructor), 
ETK_DESTRUCTOR(_etk_filechooser_widget_destructor));
 
-      
//_etk_filechooser_widget_signals[ETK_FILECHOOSER_WIDGET_TEXT_POPPED_SIGNAL] = 
etk_signal_new("text_popped", filechooser_widget_type, -1, 
etk_marshaller_VOID__INT_POINTER, NULL, NULL);
-
       etk_type_property_add(filechooser_widget_type, "path", 
ETK_FILECHOOSER_WIDGET_PATH_PROPERTY, ETK_PROPERTY_STRING, 
ETK_PROPERTY_READABLE_WRITABLE, etk_property_value_string(NULL));
       etk_type_property_add(filechooser_widget_type, "select-multiple", 
ETK_FILECHOOSER_WIDGET_SELECT_MULTIPLE_PROPERTY, ETK_PROPERTY_BOOL, 
ETK_PROPERTY_READABLE_WRITABLE, etk_property_value_bool(ETK_FALSE));
       etk_type_property_add(filechooser_widget_type, "show-hidden", 
ETK_FILECHOOSER_WIDGET_SHOW_HIDDEN_PROPERTY, ETK_PROPERTY_BOOL, 
ETK_PROPERTY_READABLE_WRITABLE, etk_property_value_bool(ETK_FALSE));
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_marshallers.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- etk_marshallers.c   31 Jul 2007 16:49:47 -0000      1.8
+++ etk_marshallers.c   28 Aug 2007 20:06:32 -0000      1.9
@@ -65,6 +65,22 @@
    callback_VOID__DOUBLE(object, arg1, data);
 }
 
+/* etk_marshaller_VOID__OBJECT */
+void etk_marshaller_VOID__OBJECT(Etk_Callback callback, Etk_Object *object, 
void *data, void *return_value, va_list arguments)
+{
+   typedef void (*Etk_Callback_VOID__OBJECT)(Etk_Object *object, Etk_Object 
*arg1, void *data);
+   Etk_Callback_VOID__OBJECT callback_VOID__OBJECT;
+   Etk_Object *arg1;
+
+   if (!callback || !object)
+      return;
+
+   arg1 = va_arg(arguments, Etk_Object *);
+
+   callback_VOID__OBJECT = (Etk_Callback_VOID__OBJECT)callback;
+   callback_VOID__OBJECT(object, arg1, data);
+}
+
 /* etk_marshaller_VOID__POINTER */
 void etk_marshaller_VOID__POINTER(Etk_Callback callback, Etk_Object *object, 
void *data, void *return_value, va_list arguments)
 {
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_marshallers.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- etk_marshallers.h   31 Jul 2007 16:49:47 -0000      1.8
+++ etk_marshallers.h   28 Aug 2007 20:06:32 -0000      1.9
@@ -9,6 +9,7 @@
 void etk_marshaller_VOID__INT(Etk_Callback callback, Etk_Object *object, void 
*data, void *return_value, va_list arguments);
 void etk_marshaller_VOID__INT_INT(Etk_Callback callback, Etk_Object *object, 
void *data, void *return_value, va_list arguments);
 void etk_marshaller_VOID__DOUBLE(Etk_Callback callback, Etk_Object *object, 
void *data, void *return_value, va_list arguments);
+void etk_marshaller_VOID__OBJECT(Etk_Callback callback, Etk_Object *object, 
void *data, void *return_value, va_list arguments);
 void etk_marshaller_VOID__POINTER(Etk_Callback callback, Etk_Object *object, 
void *data, void *return_value, va_list arguments);
 void etk_marshaller_VOID__POINTER_POINTER(Etk_Callback callback, Etk_Object 
*object, void *data, void *return_value, va_list arguments);
 void etk_marshaller_VOID__INT_POINTER(Etk_Callback callback, Etk_Object 
*object, void *data, void *return_value, va_list arguments);
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_menu.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- etk_menu.c  21 Aug 2007 15:04:54 -0000      1.27
+++ etk_menu.c  28 Aug 2007 20:06:32 -0000      1.28
@@ -71,7 +71,7 @@
          menu_type, -1, etk_marshaller_VOID__VOID, NULL, NULL);
 
       etk_type_property_add(menu_type, "parent-item", 
ETK_MENU_PARENT_ITEM_PROPERTY,
-         ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_pointer(NULL));
+         ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_object(NULL));
 
       menu_type->property_set = _etk_menu_property_set;
       menu_type->property_get = _etk_menu_property_get;
@@ -215,7 +215,7 @@
    switch (property_id)
    {
       case ETK_MENU_PARENT_ITEM_PROPERTY:
-         
etk_menu_item_submenu_set(ETK_MENU_ITEM(etk_property_value_pointer_get(value)), 
menu);
+         
etk_menu_item_submenu_set(ETK_MENU_ITEM(etk_property_value_object_get(value)), 
menu);
          break;
       default:
          break;
@@ -233,7 +233,7 @@
    switch (property_id)
    {
       case ETK_MENU_PARENT_ITEM_PROPERTY:
-         etk_property_value_pointer_set(value, menu->parent_item);
+         etk_property_value_object_set(value, ETK_OBJECT(menu->parent_item));
          break;
       default:
          break;
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_menu_item.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -3 -r1.29 -r1.30
--- etk_menu_item.c     21 Aug 2007 15:04:54 -0000      1.29
+++ etk_menu_item.c     28 Aug 2007 20:06:32 -0000      1.30
@@ -97,7 +97,7 @@
       etk_type_property_add(menu_item_type, "label", 
ETK_MENU_ITEM_LABEL_PROPERTY,
          ETK_PROPERTY_STRING, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_string(NULL));
       etk_type_property_add(menu_item_type, "submenu", 
ETK_MENU_ITEM_SUBMENU_PROPERTY,
-         ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_pointer(NULL));
+         ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_object(NULL));
 
       menu_item_type->property_set = _etk_menu_item_property_set;
       menu_item_type->property_get = _etk_menu_item_property_get;
@@ -332,7 +332,7 @@
          sizeof(Etk_Menu_Item_Image), NULL, NULL);
 
       etk_type_property_add(menu_item_image_type, "image", 
ETK_MENU_ITEM_IMAGE_PROPERTY,
-         ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_pointer(NULL));
+         ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_object(NULL));
 
       menu_item_image_type->property_set = _etk_menu_item_image_property_set;
       menu_item_image_type->property_get = _etk_menu_item_image_property_get;
@@ -509,8 +509,8 @@
       menu_item_radio_type = etk_type_new("Etk_Menu_Item_Radio", 
ETK_MENU_ITEM_CHECK_TYPE, sizeof(Etk_Menu_Item_Radio),
          ETK_CONSTRUCTOR(_etk_menu_item_radio_constructor), 
ETK_DESTRUCTOR(_etk_menu_item_radio_destructor));
 
-      etk_type_property_add(menu_item_radio_type, "group", 
ETK_MENU_ITEM_GROUP_PROPERTY, ETK_PROPERTY_POINTER,
-         ETK_PROPERTY_READABLE_WRITABLE,  etk_property_value_pointer(NULL));
+      etk_type_property_add(menu_item_radio_type, "group", 
ETK_MENU_ITEM_GROUP_PROPERTY,
+         ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE,  
etk_property_value_pointer(NULL));
 
       menu_item_radio_type->property_set = _etk_menu_item_radio_property_set;
       menu_item_radio_type->property_get = _etk_menu_item_radio_property_get;
@@ -725,7 +725,7 @@
          etk_menu_item_label_set(menu_item, 
etk_property_value_string_get(value));
          break;
       case ETK_MENU_ITEM_SUBMENU_PROPERTY:
-         etk_menu_item_submenu_set(menu_item, 
ETK_MENU(etk_property_value_pointer_get(value)));
+         etk_menu_item_submenu_set(menu_item, 
ETK_MENU(etk_property_value_object_get(value)));
          break;
       default:
          break;
@@ -746,7 +746,7 @@
          etk_property_value_string_set(value, menu_item->label);
          break;
       case ETK_MENU_ITEM_SUBMENU_PROPERTY:
-         etk_property_value_pointer_set(value, menu_item->submenu);
+         etk_property_value_object_set(value, ETK_OBJECT(menu_item->submenu));
          break;
       default:
          break;
@@ -764,7 +764,7 @@
    switch (property_id)
    {
       case ETK_MENU_ITEM_IMAGE_PROPERTY:
-         etk_menu_item_image_set(image_item, 
etk_property_value_pointer_get(value));
+         etk_menu_item_image_set(image_item, 
ETK_IMAGE(etk_property_value_object_get(value)));
          break;
       default:
          break;
@@ -782,7 +782,7 @@
    switch (property_id)
    {
       case ETK_MENU_ITEM_IMAGE_PROPERTY:
-         etk_property_value_pointer_set(value, menu_item->left_widget);
+         etk_property_value_object_set(value, 
ETK_OBJECT(menu_item->left_widget));
          break;
       default:
          break;
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_menu_shell.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- etk_menu_shell.c    21 Aug 2007 15:04:54 -0000      1.10
+++ etk_menu_shell.c    28 Aug 2007 20:06:32 -0000      1.11
@@ -45,9 +45,9 @@
          ETK_CONSTRUCTOR(_etk_menu_shell_constructor), 
ETK_DESTRUCTOR(_etk_menu_shell_destructor));
 
       _etk_menu_shell_signals[ETK_MENU_SHELL_ITEM_ADDED_SIGNAL] = 
etk_signal_new("item-added",
-         menu_shell_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL);
+         menu_shell_type, -1, etk_marshaller_VOID__OBJECT, NULL, NULL);
       _etk_menu_shell_signals[ETK_MENU_SHELL_ITEM_REMOVED_SIGNAL] = 
etk_signal_new("item-removed",
-         menu_shell_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL);
+         menu_shell_type, -1, etk_marshaller_VOID__OBJECT, NULL, NULL);
    }
 
    return menu_shell_type;
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_property.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- etk_property.c      21 Aug 2007 15:04:55 -0000      1.12
+++ etk_property.c      28 Aug 2007 20:06:32 -0000      1.13
@@ -80,7 +80,7 @@
       return;
 
    if (value->type == ETK_PROPERTY_STRING)
-      free(value->value->string_value);
+      free(value->value.string_value);
    value->type = ETK_PROPERTY_NONE;
 }
 
@@ -91,7 +91,6 @@
 void etk_property_value_delete(Etk_Property_Value *value)
 {
    etk_property_value_clear(value);
-   if (value) free(value->value);
    free(value);
 }
 
@@ -115,7 +114,6 @@
 {
    Etk_Property_Value *new_value;
    new_value = malloc(sizeof(Etk_Property_Value));
-   new_value->value = malloc(sizeof(Etk_Property_Value_Value));
    new_value->type = ETK_PROPERTY_NONE;
    return new_value;
 }
@@ -246,6 +244,19 @@
 }
 
 /**
+ * @brief Creates a new object property value
+ * @param value the value of the new property value
+ * @return Returns the new property value
+ */
+Etk_Property_Value *etk_property_value_object(Etk_Object *value)
+{
+   Etk_Property_Value *new_value;
+   new_value = etk_property_value_new();
+   etk_property_value_object_set(new_value, value);
+   return new_value;
+}
+
+/**
  * @brief Creates a new pointer property value
  * @param value the value of the new property value
  * @return Returns the new property value
@@ -351,6 +362,13 @@
          etk_property_value_long_set(property_value, value);
          break;
       }
+      case ETK_PROPERTY_OBJECT:
+      {
+         Etk_Object *value;
+         value = va_arg(*arg, Etk_Object *);
+         etk_property_value_object_set(property_value, value);
+         break;
+      }
       case ETK_PROPERTY_POINTER:
       {
          void *value;
@@ -381,7 +399,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value->int_value = value;
+   property_value->value.int_value = value;
    property_value->type = ETK_PROPERTY_INT;
 }
 
@@ -396,7 +414,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value->bool_value = value;
+   property_value->value.bool_value = value;
    property_value->type = ETK_PROPERTY_BOOL;
 }
 
@@ -411,7 +429,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value->char_value = value;
+   property_value->value.char_value = value;
    property_value->type = ETK_PROPERTY_CHAR;
 }
 
@@ -426,7 +444,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value->float_value = value;
+   property_value->value.float_value = value;
    property_value->type = ETK_PROPERTY_FLOAT;
 }
 
@@ -441,7 +459,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value->double_value = value;
+   property_value->value.double_value = value;
    property_value->type = ETK_PROPERTY_DOUBLE;
 }
 
@@ -456,7 +474,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value->short_value = value;
+   property_value->value.short_value = value;
    property_value->type = ETK_PROPERTY_SHORT;
 }
 
@@ -471,11 +489,26 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value->long_value = value;
+   property_value->value.long_value = value;
    property_value->type = ETK_PROPERTY_LONG;
 }
 
 /**
+ * @brief Sets the object value of a property value
+ * @param property_value a property value
+ * @param value the value to set
+ */
+void etk_property_value_object_set(Etk_Property_Value *property_value, 
Etk_Object *value)
+{
+   if (!property_value)
+      return;
+
+   etk_property_value_clear(property_value);
+   property_value->value.object_value = value;
+   property_value->type = ETK_PROPERTY_OBJECT;
+}
+
+/**
  * @brief Sets the pointer value of a property value
  * @param property_value a property value
  * @param value the value to set
@@ -486,7 +519,7 @@
       return;
 
    etk_property_value_clear(property_value);
-   property_value->value->pointer_value = value;
+   property_value->value.pointer_value = value;
    property_value->type = ETK_PROPERTY_POINTER;
 }
 
@@ -502,9 +535,9 @@
 
    etk_property_value_clear(property_value);
    if (value)
-      property_value->value->string_value = strdup(value);
+      property_value->value.string_value = strdup(value);
    else
-      property_value->value->string_value = NULL;
+      property_value->value.string_value = NULL;
    property_value->type = ETK_PROPERTY_STRING;
 }
 
@@ -542,6 +575,9 @@
       case ETK_PROPERTY_LONG:
          *((long *)value_location) = etk_property_value_long_get(value);
          break;
+      case ETK_PROPERTY_OBJECT:
+         *((Etk_Object **)value_location) = 
etk_property_value_object_get(value);
+         break;
       case ETK_PROPERTY_POINTER:
          *((void **)value_location) = etk_property_value_pointer_get(value);
          break;
@@ -562,7 +598,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_INT)
       return 0;
-   return value->value->int_value;
+   return value->value.int_value;
 }
 
 /**
@@ -574,7 +610,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_BOOL)
       return ETK_FALSE;
-   return value->value->bool_value;
+   return value->value.bool_value;
 }
 
 /**
@@ -586,7 +622,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_CHAR)
       return 0;
-   return value->value->char_value;
+   return value->value.char_value;
 }
 
 /**
@@ -598,7 +634,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_FLOAT)
       return 0.0;
-   return value->value->float_value;
+   return value->value.float_value;
 }
 
 /**
@@ -610,7 +646,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_DOUBLE)
       return 0.0;
-   return value->value->double_value;
+   return value->value.double_value;
 }
 
 /**
@@ -622,7 +658,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_SHORT)
       return 0;
-   return value->value->short_value;
+   return value->value.short_value;
 }
 
 /**
@@ -634,7 +670,19 @@
 {
    if (!value || value->type != ETK_PROPERTY_LONG)
       return 0;
-   return value->value->long_value;
+   return value->value.long_value;
+}
+
+/**
+ * @brief Gets the object value of the property value
+ * @param value a value
+ * @return Returns the object value of the property value
+ */
+Etk_Object *etk_property_value_object_get(Etk_Property_Value *value)
+{
+   if (!value || value->type != ETK_PROPERTY_OBJECT)
+      return NULL;
+   return value->value.object_value;
 }
 
 /**
@@ -646,7 +694,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_POINTER)
       return NULL;
-   return value->value->pointer_value;
+   return value->value.pointer_value;
 }
 
 /**
@@ -658,7 +706,7 @@
 {
    if (!value || value->type != ETK_PROPERTY_STRING)
       return NULL;
-   return value->value->string_value;
+   return value->value.string_value;
 }
 
 /** @} */
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_property.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- etk_property.h      27 Jul 2007 16:24:14 -0000      1.11
+++ etk_property.h      28 Aug 2007 20:06:32 -0000      1.12
@@ -23,6 +23,7 @@
    ETK_PROPERTY_DOUBLE,         /**< The value of the property is a double */
    ETK_PROPERTY_SHORT,          /**< The value of the property is a short */
    ETK_PROPERTY_LONG,           /**< The value of the property is a long */
+   ETK_PROPERTY_OBJECT,         /**< The value of the property is an object 
(Etk_Object *) */
    ETK_PROPERTY_POINTER,        /**< The value of the property is a pointer 
(void *) */
    ETK_PROPERTY_STRING,         /**< The value of the property is a string 
(char *) */
    ETK_PROPERTY_OTHER           /**< Used when none of the above type can be 
used. The property can't have a default
@@ -68,9 +69,11 @@
  * @structinfo
  */
 
-typedef struct Etk_Property_Value_Value Etk_Property_Value_Value;
-struct Etk_Property_Value_Value
+struct Etk_Property_Value
 {
+   /* private: */
+   union
+   {
       int int_value;
       Etk_Bool bool_value;
       char char_value;
@@ -78,14 +81,10 @@
       double double_value;
       short short_value;
       long long_value;
+      Etk_Object *object_value;
       void *pointer_value;
       char *string_value;
-};
-
-struct Etk_Property_Value
-{
-   /* private: */
-   Etk_Property_Value_Value *value;
+   } value;
    Etk_Property_Type type;
 };
 
@@ -107,6 +106,7 @@
 Etk_Property_Value *etk_property_value_double(double value);
 Etk_Property_Value *etk_property_value_short(short value);
 Etk_Property_Value *etk_property_value_long(long value);
+Etk_Property_Value *etk_property_value_object(Etk_Object *value);
 Etk_Property_Value *etk_property_value_pointer(void *value);
 Etk_Property_Value *etk_property_value_string(const char *value);
 
@@ -119,6 +119,7 @@
 void                etk_property_value_double_set(Etk_Property_Value 
*property_value, double value);
 void                etk_property_value_short_set(Etk_Property_Value 
*property_value, short value);
 void                etk_property_value_long_set(Etk_Property_Value 
*property_value, long value);
+void                etk_property_value_object_set(Etk_Property_Value 
*property_value, Etk_Object *value);
 void                etk_property_value_pointer_set(Etk_Property_Value 
*property_value, void *value);
 void                etk_property_value_string_set(Etk_Property_Value 
*property_value, const char *value);
 
@@ -130,6 +131,7 @@
 double              etk_property_value_double_get(Etk_Property_Value *value);
 short               etk_property_value_short_get(Etk_Property_Value *value);
 long                etk_property_value_long_get(Etk_Property_Value *value);
+Etk_Object         *etk_property_value_object_get(Etk_Property_Value *value);
 void               *etk_property_value_pointer_get(Etk_Property_Value *value);
 const char         *etk_property_value_string_get(Etk_Property_Value *value);
 
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_toplevel.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- etk_toplevel.c      21 Aug 2007 15:04:55 -0000      1.7
+++ etk_toplevel.c      28 Aug 2007 20:06:32 -0000      1.8
@@ -54,7 +54,7 @@
       etk_type_property_add(toplevel_type, "evas", ETK_TOPLEVEL_EVAS_PROPERTY,
          ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE, 
etk_property_value_pointer(NULL));
       etk_type_property_add(toplevel_type, "focused-widget", 
ETK_TOPLEVEL_FOCUSED_WIDGET_PROPERTY,
-         ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_pointer(NULL));
+         ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_object(NULL));
 
       toplevel_type->property_set = _etk_toplevel_property_set;
       toplevel_type->property_get = _etk_toplevel_property_get;
@@ -327,7 +327,7 @@
    switch (property_id)
    {
       case ETK_TOPLEVEL_FOCUSED_WIDGET_PROPERTY:
-         etk_toplevel_focused_widget_set(toplevel, 
ETK_WIDGET(etk_property_value_pointer_get(value)));
+         etk_toplevel_focused_widget_set(toplevel, 
ETK_WIDGET(etk_property_value_object_get(value)));
          break;
       default:
          break;
@@ -348,7 +348,7 @@
          etk_property_value_pointer_set(value, toplevel->evas);
          break;
       case ETK_TOPLEVEL_FOCUSED_WIDGET_PROPERTY:
-         etk_property_value_pointer_set(value, toplevel->focused_widget);
+         etk_property_value_object_set(value, 
ETK_OBJECT(toplevel->focused_widget));
          break;
       default:
          break;
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_widget.c,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -3 -r1.119 -r1.120
--- etk_widget.c        21 Aug 2007 15:04:55 -0000      1.119
+++ etk_widget.c        28 Aug 2007 20:06:32 -0000      1.120
@@ -229,13 +229,13 @@
             widget_type, -1, etk_marshaller_VOID__POINTER, NULL, NULL);
 
       etk_type_property_add(widget_type, "parent", ETK_WIDGET_PARENT_PROPERTY,
-            ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_pointer(NULL));
+            ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_object(NULL));
       etk_type_property_add(widget_type, "theme-file", 
ETK_WIDGET_THEME_FILE_PROPERTY,
             ETK_PROPERTY_STRING, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_string(NULL));
       etk_type_property_add(widget_type, "theme-group", 
ETK_WIDGET_THEME_GROUP_PROPERTY,
             ETK_PROPERTY_STRING, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_string(NULL));
       etk_type_property_add(widget_type, "theme-parent", 
ETK_WIDGET_THEME_PARENT_PROPERTY,
-            ETK_PROPERTY_POINTER, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_pointer(NULL));
+            ETK_PROPERTY_OBJECT, ETK_PROPERTY_READABLE_WRITABLE, 
etk_property_value_object(NULL));
       etk_type_property_add(widget_type, "padding", 
ETK_WIDGET_PADDING_PROPERTY,
             ETK_PROPERTY_OTHER, ETK_PROPERTY_NO_ACCESS, NULL);
       etk_type_property_add(widget_type, "geometry", 
ETK_WIDGET_GEOMETRY_PROPERTY,
@@ -2056,7 +2056,7 @@
    switch (property_id)
    {
       case ETK_WIDGET_PARENT_PROPERTY:
-         etk_widget_parent_set(widget, 
ETK_WIDGET(etk_property_value_pointer_get(value)));
+         etk_widget_parent_set(widget, 
ETK_WIDGET(etk_property_value_object_get(value)));
          break;
       case ETK_WIDGET_THEME_FILE_PROPERTY:
          etk_widget_theme_file_set(widget, 
etk_property_value_string_get(value));
@@ -2065,7 +2065,7 @@
          etk_widget_theme_group_set(widget, 
etk_property_value_string_get(value));
          break;
       case ETK_WIDGET_THEME_PARENT_PROPERTY:
-         etk_widget_theme_parent_set(widget, 
ETK_WIDGET(etk_property_value_pointer_get(value)));
+         etk_widget_theme_parent_set(widget, 
ETK_WIDGET(etk_property_value_object_get(value)));
          break;
       case ETK_WIDGET_REQUESTED_WIDTH_PROPERTY:
          etk_widget_size_request_set(widget, 
etk_property_value_int_get(value), widget->requested_size.h);
@@ -2117,7 +2117,7 @@
    switch (property_id)
    {
       case ETK_WIDGET_PARENT_PROPERTY:
-         etk_property_value_pointer_set(value, ETK_OBJECT(widget->parent));
+         etk_property_value_object_set(value, ETK_OBJECT(widget->parent));
          break;
       case ETK_WIDGET_THEME_FILE_PROPERTY:
          etk_property_value_string_set(value, widget->theme_file);
@@ -2126,7 +2126,7 @@
          etk_property_value_string_set(value, widget->theme_group);
          break;
       case ETK_WIDGET_THEME_PARENT_PROPERTY:
-         etk_property_value_pointer_set(value, widget->theme_parent);
+         etk_property_value_object_set(value, 
ETK_OBJECT(widget->theme_parent));
          break;
       case ETK_WIDGET_REQUESTED_WIDTH_PROPERTY:
          etk_property_value_int_set(value, widget->requested_size.w);



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to