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