Enlightenment CVS committal

Author  : moom16
Project : e17
Module  : proto

Dir     : e17/proto/etk/src/bin


Modified Files:
        Makefile.am etk_menu_test.c etk_test.c etk_test.h 
Added Files:
        etk_combobox_test.c 


Log Message:
* The menus have been rewritten: you can now have check and radio items. There 
also has been an API breakage: etk_menu_item_imageèset now requires an 
Etk_Menu_Item_Image and not an Etk_Menu_Item anymore 
* The toggle/check/radio buttons has been rewritten
* Some fixes/cleanup
* The combobox widget has been started


===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/Makefile.am,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- Makefile.am 15 Feb 2006 21:01:33 -0000      1.11
+++ Makefile.am 4 Mar 2006 23:29:46 -0000       1.12
@@ -36,7 +36,8 @@
 etk_progress_bar_test.c \
 etk_spin_button_test.c \
 etk_xdnd_test.c \
-etk_text_view_test.c
+etk_text_view_test.c \
+etk_combobox_test.c
 
 etk_test_LDADD = $(top_builddir)/src/lib/libetk.la \
                 @EVAS_LIBS@ @ECORE_LIBS@ @EDJE_LIBS@
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/etk_menu_test.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- etk_menu_test.c     15 Jan 2006 11:07:16 -0000      1.8
+++ etk_menu_test.c     4 Mar 2006 23:29:46 -0000       1.9
@@ -1,18 +1,17 @@
 #include "etk_test.h"
 #include "config.h"
 
-typedef enum _Etk_Test_Menu_Item_Type
-{
-   ETK_TEST_MENU_ITEM_NORMAL,
-   ETK_TEST_MENU_ITEM_SEPARATOR
-} Etk_Test_Menu_Item_Type;
-
 static void _etk_test_menu_window_down_cb(Etk_Object *object, void 
*event_info, void *data);
-static Etk_Widget *_etk_test_menu_item_new(Etk_Test_Menu_Item_Type item_type, 
const char *label,
-   Etk_Stock_Id stock_id, Etk_Menu_Shell *menu_shell, Etk_Widget *statusbar);
+static Etk_Widget *_etk_test_menu_item_new(const char *label, Etk_Menu_Shell 
*menu_shell);
+static Etk_Widget *_etk_test_menu_stock_item_new(const char *label, 
Etk_Stock_Id stock_id, Etk_Menu_Shell *menu_shell);
+static Etk_Widget *_etk_test_menu_check_item_new(const char *label, 
Etk_Menu_Shell *menu_shell);
+static Etk_Widget *_etk_test_menu_radio_item_new(const char *label, 
Etk_Menu_Item_Radio *group_item, Etk_Menu_Shell *menu_shell);
+static Etk_Widget *_etk_test_menu_separator_new(Etk_Menu_Shell *menu_shell);
 static void _etk_test_menu_item_selected_cb(Etk_Object *object, void *data);
 static void _etk_test_menu_item_deselected_cb(Etk_Object *object, void *data);
 
+static Etk_Widget *_etk_test_menu_statusbar;
+   
 /* Creates the window for the menu test */
 void etk_test_menu_window_create(void *data)
 {
@@ -21,8 +20,8 @@
    Etk_Widget *menu_bar;
    Etk_Widget *menu;
    Etk_Widget *menu_item;
+   Etk_Widget *radio_item;
    Etk_Widget *label;
-   Etk_Widget *statusbar;
 
    if (win)
    {
@@ -49,32 +48,32 @@
    etk_widget_pass_events_set(label, ETK_TRUE);
    etk_box_pack_start(ETK_BOX(vbox), label, ETK_TRUE, ETK_TRUE, 0);
    
-   statusbar = etk_statusbar_new();
-   etk_box_pack_end(ETK_BOX(vbox), statusbar, ETK_FALSE, ETK_FALSE, 0);
+   _etk_test_menu_statusbar = etk_statusbar_new();
+   etk_box_pack_end(ETK_BOX(vbox), _etk_test_menu_statusbar, ETK_FALSE, 
ETK_FALSE, 0);
    
    /****************
     * Menu Bar
     ****************/
    /* File Menu */
-   menu_item = _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("File"), 
ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu_bar), NULL);
+   menu_item = _etk_test_menu_item_new(_("File"), ETK_MENU_SHELL(menu_bar));
    menu = etk_menu_new();
    etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu));
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Open"), 
ETK_STOCK_DOCUMENT_OPEN, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Save"), 
ETK_STOCK_DOCUMENT_SAVE, ETK_MENU_SHELL(menu), statusbar);
+   _etk_test_menu_stock_item_new(_("Open"), ETK_STOCK_DOCUMENT_OPEN, 
ETK_MENU_SHELL(menu));
+   _etk_test_menu_stock_item_new(_("Save"), ETK_STOCK_DOCUMENT_SAVE, 
ETK_MENU_SHELL(menu));
    
    /* Edit Menu */
-   menu_item = _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Edit"), 
ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu_bar), NULL);
+   menu_item = _etk_test_menu_item_new(_("Edit"), ETK_MENU_SHELL(menu_bar));
    menu = etk_menu_new();
    etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu));
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Cut"), 
ETK_STOCK_EDIT_CUT, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Copy"), 
ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Paste"), 
ETK_STOCK_EDIT_PASTE, ETK_MENU_SHELL(menu), statusbar);
+   _etk_test_menu_stock_item_new(_("Cut"), ETK_STOCK_EDIT_CUT, 
ETK_MENU_SHELL(menu));
+   _etk_test_menu_stock_item_new(_("Copy"), ETK_STOCK_EDIT_COPY, 
ETK_MENU_SHELL(menu));
+   _etk_test_menu_stock_item_new(_("Paste"), ETK_STOCK_EDIT_PASTE, 
ETK_MENU_SHELL(menu));
    
    /* Help Menu */
-   menu_item = _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Help"), 
ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu_bar), NULL);
+   menu_item = _etk_test_menu_item_new(_("Help"), ETK_MENU_SHELL(menu_bar));
    menu = etk_menu_new();
    etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu));
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("About"), 
ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), statusbar);
+   _etk_test_menu_item_new(_("About"), ETK_MENU_SHELL(menu));
 
    /****************
     * Popup Menu
@@ -82,26 +81,32 @@
    /* Main menu */
    menu = etk_menu_new();
    etk_signal_connect("mouse_down", ETK_OBJECT(win), 
ETK_CALLBACK(_etk_test_menu_window_down_cb), menu);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Open"), 
ETK_STOCK_DOCUMENT_OPEN, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Save"), 
ETK_STOCK_DOCUMENT_SAVE, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_SEPARATOR, NULL, 
ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Cut"), 
ETK_STOCK_EDIT_CUT, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Copy"), 
ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Paste"), 
ETK_STOCK_EDIT_PASTE, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_SEPARATOR, NULL, 
ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), statusbar);
-   menu_item = _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Menu Item 
Test"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), statusbar);
+   _etk_test_menu_stock_item_new(_("Open"), ETK_STOCK_DOCUMENT_OPEN, 
ETK_MENU_SHELL(menu));
+   _etk_test_menu_stock_item_new(_("Save"), ETK_STOCK_DOCUMENT_SAVE, 
ETK_MENU_SHELL(menu));
+   _etk_test_menu_separator_new(ETK_MENU_SHELL(menu));
+   _etk_test_menu_stock_item_new(_("Cut"), ETK_STOCK_EDIT_CUT, 
ETK_MENU_SHELL(menu));
+   _etk_test_menu_stock_item_new(_("Copy"), ETK_STOCK_EDIT_COPY, 
ETK_MENU_SHELL(menu));
+   _etk_test_menu_stock_item_new(_("Paste"), ETK_STOCK_EDIT_PASTE, 
ETK_MENU_SHELL(menu));
+   _etk_test_menu_separator_new(ETK_MENU_SHELL(menu));
+   menu_item = _etk_test_menu_item_new(_("Menu Item Test"), 
ETK_MENU_SHELL(menu));
    
    /* Sub menu 1 */
    menu = etk_menu_new();
    etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu));
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Child Menu Test"), 
ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), statusbar);
-   menu_item = _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Item with 
child"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), statusbar);
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Item with image"), 
ETK_STOCK_DOCUMENT_SAVE, ETK_MENU_SHELL(menu), statusbar);
+   _etk_test_menu_stock_item_new(_("Item with image"), 
ETK_STOCK_DOCUMENT_SAVE, ETK_MENU_SHELL(menu));
+   menu_item = _etk_test_menu_stock_item_new(_("Item with child"), 
ETK_STOCK_DOCUMENT_OPEN, ETK_MENU_SHELL(menu));
+   _etk_test_menu_separator_new(ETK_MENU_SHELL(menu));
+   _etk_test_menu_check_item_new(_("Item with check 1"), ETK_MENU_SHELL(menu));
+   _etk_test_menu_check_item_new(_("Item with check 2"), ETK_MENU_SHELL(menu));
+   _etk_test_menu_separator_new(ETK_MENU_SHELL(menu));
+   radio_item = _etk_test_menu_radio_item_new(_("Radio 1"), NULL, 
ETK_MENU_SHELL(menu));
+   radio_item = _etk_test_menu_radio_item_new(_("Radio 2"), 
ETK_MENU_ITEM_RADIO(radio_item), ETK_MENU_SHELL(menu));
+   _etk_test_menu_radio_item_new(_("Radio 3"), 
ETK_MENU_ITEM_RADIO(radio_item), ETK_MENU_SHELL(menu));
    
    /* Sub menu 2 */
    menu = etk_menu_new();
    etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu));
-   _etk_test_menu_item_new(ETK_TEST_MENU_ITEM_NORMAL, _("Child Menu Test"), 
ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), statusbar);
+   _etk_test_menu_item_new(_("Child Menu Test"), ETK_MENU_SHELL(menu));
 
    etk_widget_show_all(win);
 }
@@ -112,34 +117,85 @@
    etk_menu_popup(ETK_MENU(data));
 }
 
-/* Creates a new menu item */
-static Etk_Widget *_etk_test_menu_item_new(Etk_Test_Menu_Item_Type item_type, 
const char *label,
-   Etk_Stock_Id stock_id, Etk_Menu_Shell *menu_shell, Etk_Widget *statusbar)
+/* Creates a new "normal" menu item and appends it to the menu shell */
+static Etk_Widget *_etk_test_menu_item_new(const char *label, Etk_Menu_Shell 
*menu_shell)
 {
-   Etk_Widget *menu_item = NULL;
+   Etk_Widget *menu_item;
    
-   switch (item_type)
-   {
-      case ETK_TEST_MENU_ITEM_NORMAL:
-         menu_item = etk_menu_item_new_with_label(label);
-         break;
-      case ETK_TEST_MENU_ITEM_SEPARATOR:
-         menu_item = etk_menu_separator_new();
-         break;
-      default:
-         return NULL;
-   }
-   if (stock_id != ETK_STOCK_NO_STOCK)
-   {
-      Etk_Widget *image;
-      
-      image = etk_image_new_from_stock(stock_id, ETK_STOCK_SMALL);
-      etk_menu_item_image_set(ETK_MENU_ITEM(menu_item), ETK_IMAGE(image));
-   }
+   if (!menu_shell)
+      return NULL;
+   
+   menu_item = etk_menu_item_new_with_label(label);
+   etk_menu_shell_append(menu_shell, ETK_MENU_ITEM(menu_item));
+   
+   etk_signal_connect("selected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_selected_cb), NULL);
+   etk_signal_connect("deselected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_deselected_cb), NULL);
+   
+   return menu_item;
+}
+
+/* Creates a new menu item with stock and appends it to the menu shell */
+static Etk_Widget *_etk_test_menu_stock_item_new(const char *label, 
Etk_Stock_Id stock_id, Etk_Menu_Shell *menu_shell)
+{
+   Etk_Widget *menu_item;
+   Etk_Widget *image;
+   
+   if (!menu_shell)
+      return NULL;
+   
+   menu_item = etk_menu_item_image_new_with_label(label);
+   image = etk_image_new_from_stock(stock_id, ETK_STOCK_SMALL);
+   etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
    etk_menu_shell_append(menu_shell, ETK_MENU_ITEM(menu_item));
    
-   etk_signal_connect("selected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_selected_cb), statusbar);
-   etk_signal_connect("deselected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_deselected_cb), statusbar);
+   etk_signal_connect("selected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_selected_cb), NULL);
+   etk_signal_connect("deselected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_deselected_cb), NULL);
+   
+   return menu_item;
+}
+
+
+/* Creates a new menu item with a checkbox and appends it to the menu shell */
+static Etk_Widget *_etk_test_menu_check_item_new(const char *label, 
Etk_Menu_Shell *menu_shell)
+{
+   Etk_Widget *menu_item;
+   
+   if (!menu_shell)
+      return NULL;
+   
+   menu_item = etk_menu_item_check_new_with_label(label);
+   etk_menu_shell_append(menu_shell, ETK_MENU_ITEM(menu_item));
+   
+   etk_signal_connect("selected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_selected_cb), NULL);
+   etk_signal_connect("deselected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_deselected_cb), NULL);
+   
+   return menu_item;
+}
+
+/* Creates a new menu item with a radiobox and appends it to the menu shell */
+static Etk_Widget *_etk_test_menu_radio_item_new(const char *label, 
Etk_Menu_Item_Radio *group_item, Etk_Menu_Shell *menu_shell)
+{
+   Etk_Widget *menu_item;
+   
+   if (!menu_shell)
+      return NULL;
+   
+   menu_item = etk_menu_item_radio_new_with_label_from_widget(label, 
group_item);
+   etk_menu_shell_append(menu_shell, ETK_MENU_ITEM(menu_item));
+   
+   etk_signal_connect("selected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_selected_cb), NULL);
+   etk_signal_connect("deselected", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_etk_test_menu_item_deselected_cb), NULL);
+   
+   return menu_item;
+}
+
+/* Creates a new menu separator and appends it to the menu shell */
+static Etk_Widget *_etk_test_menu_separator_new(Etk_Menu_Shell *menu_shell)
+{
+   Etk_Widget *menu_item;
+   
+   menu_item = etk_menu_item_separator_new();
+   etk_menu_shell_append(menu_shell, ETK_MENU_ITEM(menu_item));
    
    return menu_item;
 }
@@ -148,21 +204,15 @@
 static void _etk_test_menu_item_selected_cb(Etk_Object *object, void *data)
 {
    Etk_Menu_Item *item;
-   Etk_Statusbar *statusbar;
    
-   if (!(item = ETK_MENU_ITEM(object)) || !(statusbar = ETK_STATUSBAR(data)))
+   if (!(item = ETK_MENU_ITEM(object)))
       return;
-   
-   etk_statusbar_push(statusbar, etk_menu_item_label_get(item), 0);
+   etk_statusbar_push(ETK_STATUSBAR(_etk_test_menu_statusbar), 
etk_menu_item_label_get(item), 0);
 }
 
 /* Called when a menu item is deselected */
 static void _etk_test_menu_item_deselected_cb(Etk_Object *object, void *data)
 {
-   Etk_Statusbar *statusbar;
-   
-   if (!(statusbar = ETK_STATUSBAR(data)))
-      return;
-   etk_statusbar_pop(statusbar, 0);
+   etk_statusbar_pop(ETK_STATUSBAR(_etk_test_menu_statusbar), 0);
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/etk_test.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- etk_test.c  15 Feb 2006 21:01:33 -0000      1.16
+++ etk_test.c  4 Mar 2006 23:29:46 -0000       1.17
@@ -111,6 +111,11 @@
       "Text View",
       etk_test_text_view_window_create,
       ETK_TEST_ADVANCED_WIDGET
+   },
+   {
+      "Combobox",
+      etk_test_combobox_window_create,
+      ETK_TEST_ADVANCED_WIDGET
    }
 };
 static int _etk_test_num_examples = sizeof(_etk_test_examples) / sizeof 
(_etk_test_examples[0]);
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/etk/src/bin/etk_test.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- etk_test.h  15 Feb 2006 21:01:33 -0000      1.12
+++ etk_test.h  4 Mar 2006 23:29:46 -0000       1.13
@@ -20,5 +20,6 @@
 void etk_test_spin_button_window_create(void *data);
 void etk_test_xdnd_window_create(void *data);
 void etk_test_text_view_window_create(void *data);
+void etk_test_combobox_window_create(void *data);
 
 #endif




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to