[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] E CVS: apps/e devilhorns



Just want to say: Good idea :-)

\\troback

On Sun, 26 Nov 2006 11:10:49 -0500 (EST)
Enlightenment CVS <noreply@cvs.enlightenment.org> wrote:

> Enlightenment CVS committal
> 
> Author  : devilhorns
> Project : e17
> Module  : apps/e
> 
> Dir     : e17/apps/e/src/bin
> 
> 
> Modified Files:
> 	e_configure.h e_configure.c 
> 
> 
> Log Message:
> Redo Config Panel as per conversation with raster, using 2 lists now.
> 
> ===================================================================
> RCS file: /cvs/e/e17/apps/e/src/bin/e_configure.h,v
> retrieving revision 1.6
> retrieving revision 1.7
> diff -u -3 -r1.6 -r1.7
> --- e_configure.h	27 Mar 2006 14:46:26 -0000	1.6
> +++ e_configure.h	26 Nov 2006 16:10:48 -0000	1.7
> @@ -1,6 +1,10 @@
>  #ifdef E_TYPEDEFS
>  
>  typedef struct _E_Configure E_Configure;
> +typedef struct _E_Configure_CB E_Configure_CB;
> +
> +typedef struct _E_Configure_Category E_Configure_Category;
> +typedef struct _E_Configure_Item E_Configure_Item;
>  
>  #else
>  #ifndef E_CONFIGURE_H
> @@ -8,23 +12,46 @@
>  
>  #define E_CONFIGURE_TYPE 0xE0b01014
>  
> -struct _E_Configure
> +struct _E_Configure 
>  {
> -   E_Object             e_obj_inherit;
> -      
> +   E_Object e_obj_inherit;
> +   
>     E_Container *con;
> -   E_Win       *win;
> -   Evas        *evas;
> +   E_Win *win;
> +   Evas *evas;
>     Evas_Object *edje;
> -   Evas_Object *ilist;
> +   
> +   Evas_Object *o_list;
> +   Evas_Object *cat_list;
> +   Evas_Object *item_list;
>     Evas_Object *close;
>     
> -   Evas_List *cblist;
> +   Evas_List *cats;
> +};
> +
> +struct _E_Configure_CB 
> +{
> +   E_Configure *eco;
> +   E_Config_Dialog *(*func) (E_Container *con);
> +};
> +
> +struct _E_Configure_Category 
> +{
> +   E_Configure *eco;
> +   const char *label;
> +   
> +   Evas_List *items;
> +};
> +
> +struct _E_Configure_Item 
> +{
> +   E_Configure_CB *cb;
> +   
> +   const char *label;
> +   const char *icon;
>  };
>  
>  EAPI E_Configure *e_configure_show(E_Container *con);
> -EAPI void         e_configure_standard_item_add(E_Configure *eco,
> char *icon, char *label, E_Config_Dialog *(*func) (E_Container
> *con)); -EAPI void         e_configure_header_item_add(E_Configure
> *eco, char *icon, char *label);
> -    
> +
>  #endif
>  #endif
> ===================================================================
> RCS file: /cvs/e/e17/apps/e/src/bin/e_configure.c,v
> retrieving revision 1.72
> retrieving revision 1.73
> diff -u -3 -r1.72 -r1.73
> --- e_configure.c	16 Nov 2006 17:44:20 -0000	1.72
> +++ e_configure.c	26 Nov 2006 16:10:48 -0000	1.73
> @@ -1,242 +1,318 @@
>  #include "e.h"
>  
> -typedef struct _E_Configure_CB E_Configure_CB;
> -
> -struct _E_Configure_CB
> -{
> -   E_Configure *eco;
> -   E_Config_Dialog *(*func) (E_Container *con);   
> -};
> -
> -static void _e_configure_free(E_Configure *app);
> +static void _e_configure_free(E_Configure *eco);
>  static void _e_configure_cb_del_req(E_Win *win);
>  static void _e_configure_cb_resize(E_Win *win);
> -static void _e_configure_cb_standard(void *data);
>  static void _e_configure_cb_close(void *data, void *data2);
> +static E_Configure_Category *_e_configure_category_add(E_Configure
> *eco, char *label, char *icon); +static void
> _e_configure_category_cb(void *data); +static E_Configure_Item
> *_e_configure_item_add(E_Configure_Category *cat, char *label, char
> *icon, E_Config_Dialog *(*func) (E_Container *con)); +static void
> _e_configure_item_cb(void *data); static E_Configure *_e_configure =
> NULL; 
>  EAPI E_Configure *
> -e_configure_show(E_Container *con)
> +e_configure_show(E_Container *con) 
>  {
>     E_Configure *eco;
> +   E_Configure_Category *cat;
>     E_Manager *man;
>     Evas_Coord ew, eh, mw, mh;
> -
> -   if (_e_configure)
> +   
> +   if (_e_configure) 
>       {
> -	E_Zone *z;
> +	E_Zone *z, *z2;
>  	
>  	eco = _e_configure;
>  	z = e_util_zone_current_get(e_manager_current_get());
> -	e_border_uniconify(eco->win->border);
> +	z2 = eco->win->border->zone;
>  	e_win_show(eco->win);
>  	e_win_raise(eco->win);
> -	if (z->container == eco->win->border->zone->container)
> +	if (z->container == z2->container)
>  	  e_border_desk_set(eco->win->border, e_desk_current_get(z));
> -	else
> +	else 
>  	  {
>  	     if (!eco->win->border->sticky)
>  	       e_desk_show(eco->win->border->desk);
> -
> ecore_x_pointer_warp(eco->win->border->zone->container->win,
> -				  eco->win->border->zone->x +
> (eco->win->border->zone->w / 2),
> -				  eco->win->border->zone->y +
> (eco->win->border->zone->h / 2));
> +	     ecore_x_pointer_warp(z2->container->win,
> +				  z2->x + (z2->w / 2), z2->y +
> (z2->h / 2)); }
>  	e_border_unshade(eco->win->border, E_DIRECTION_DOWN);
>  	return NULL;
>       }
>     
> -   if (!con)
> +   if (!con) 
>       {
>  	man = e_manager_current_get();
>  	if (!man) return NULL;
>  	con = e_container_current_get(man);
> -	if (!con) con = e_container_number_get(man, 0);
> +	if (!con)
> +	  con = e_container_number_get(man, 0);
>  	if (!con) return NULL;
>       }
> -   
> +
>     eco = E_OBJECT_ALLOC(E_Configure, E_CONFIGURE_TYPE,
> _e_configure_free); if (!eco) return NULL;
> -   eco->win = e_win_new(con);   
> -   if (!eco->win)
> +   eco->win = e_win_new(con);
> +   if (!eco->win) 
>       {
>  	free(eco);
>  	return NULL;
>       }
>     eco->win->data = eco;
> -   
>     eco->con = con;
> +   eco->evas = e_win_evas_get(eco->win);
>     
>     e_win_title_set(eco->win, _("Enlightenment Configuration"));
>     e_win_name_class_set(eco->win, "E", "_configure");
>     e_win_dialog_set(eco->win, 1);
> -   eco->evas = e_win_evas_get(eco->win);
>     e_win_delete_callback_set(eco->win, _e_configure_cb_del_req);
> -   e_win_resize_callback_set(eco->win, _e_configure_cb_resize);   
> +   e_win_resize_callback_set(eco->win, _e_configure_cb_resize);
>     e_win_centered_set(eco->win, 1);
> -      
> +
>     eco->edje = edje_object_add(eco->evas);
> -   e_theme_edje_object_set(eco->edje, "base/theme/configure",
> -			   "e/widgets/configure/main");
> -   
> -   /* 24 */
> -   eco->ilist = e_widget_ilist_add(eco->evas, 32, 32, NULL);
> -   e_widget_ilist_selector_set(eco->ilist, 1);
> -   e_widget_min_size_get(eco->ilist, &mw, &mh);
> -   edje_extern_object_min_size_set(eco->ilist, mw, mh);
> -   edje_object_part_swallow(eco->edje, "e.swallow.content",
> eco->ilist);
> -   edje_object_part_text_set(eco->edje, "title", _("Configuration
> Panel")); -
> -   /* add items here */
> -   e_configure_header_item_add(eco, "enlightenment/appearance",
> _("Appearance"));
> -   e_configure_standard_item_add(eco, "enlightenment/background",
> _("Wallpaper"), e_int_config_wallpaper);
> -   e_configure_standard_item_add(eco, "enlightenment/themes",
> _("Theme"), e_int_config_theme);   
> -   e_configure_standard_item_add(eco, "enlightenment/colors",
> _("Colors"), e_int_config_color_classes);
> -   e_configure_standard_item_add(eco, "enlightenment/fonts",
> _("Fonts"), e_int_config_fonts);
> -   e_configure_standard_item_add(eco, "enlightenment/windows",
> _("Borders"), e_int_config_borders);
> -   e_configure_standard_item_add(eco, "enlightenment/icon_theme",
> _("Icon Theme"), e_int_config_icon_themes);
> -   e_configure_standard_item_add(eco, "enlightenment/mouse",
> _("Mouse Cursor"), e_int_config_cursor);
> -   e_configure_standard_item_add(eco, "enlightenment/windows",
> _("Window Display"), e_int_config_window_display);
> -   e_configure_standard_item_add(eco, "enlightenment/transitions",
> _("Transitions"), e_int_config_transitions);
> -   e_configure_standard_item_add(eco, "enlightenment/shelf",
> _("Shelves"), e_int_config_shelf);
> -   
> -   e_configure_header_item_add(eco, "enlightenment/screen_setup",
> _("Screen"));
> -   e_configure_standard_item_add(eco, "enlightenment/desktops",
> _("Virtual Desktops"), e_int_config_desks);
> -   e_configure_standard_item_add(eco,
> "enlightenment/screen_resolution", _("Screen Resolution"),
> e_int_config_display);
> -   e_configure_standard_item_add(eco, "enlightenment/desklock",
> _("Screen Lock"), e_int_config_desklock);
> -   
> -   e_configure_header_item_add(eco, "enlightenment/behavior",
> _("Behavior"));
> -   e_configure_standard_item_add(eco, "enlightenment/focus",
> _("Window Focus"), e_int_config_focus);
> -   e_configure_standard_item_add(eco, "enlightenment/keys", _("Key
> Bindings"), e_int_config_keybindings);
> -   e_configure_standard_item_add(eco, "enlightenment/mouse_clean",
> _("Mouse Bindings"), e_int_config_mousebindings);
> -   e_configure_standard_item_add(eco, "enlightenment/menus",
> _("Menus"), e_int_config_menus);
> -   
> -   e_configure_header_item_add(eco, "enlightenment/misc",
> _("Miscellaneous"));
> +   e_theme_edje_object_set(eco->edje, "base/theme/configure",
> "e/widgets/configure/main"); +
> +   eco->o_list = e_widget_list_add(eco->evas, 0, 1);
> +   edje_object_part_swallow(eco->edje, "e.swallow.content",
> eco->o_list); +
> +   /* Category List */
> +   eco->cat_list = e_widget_ilist_add(eco->evas, 32, 32, NULL);
> +   e_widget_list_object_append(eco->o_list, eco->cat_list, 1, 1,
> 0.5);
> +   
> +   /* Item List */
> +   eco->item_list = e_widget_ilist_add(eco->evas, 32, 32, NULL);
> +   e_widget_list_object_append(eco->o_list, eco->item_list, 1, 1,
> 0.5);
> +   
> +   /* Add "Categories" & "Items" Here */
> +   cat = _e_configure_category_add(eco, _("Appearance"),
> "enlightenment/appearance");
> +   _e_configure_item_add(cat, _("Wallpaper"),
> "enlightenment/background", e_int_config_wallpaper);
> +   _e_configure_item_add(cat, _("Theme"), "enlightenment/themes",
> e_int_config_theme);
> +   _e_configure_item_add(cat, _("Colors"), "enlightenment/colors",
> e_int_config_color_classes);
> +   _e_configure_item_add(cat, _("Fonts"), "enlightenment/fonts",
> e_int_config_fonts);
> +   _e_configure_item_add(cat, _("Borders"), "enlightenment/windows",
> e_int_config_borders);
> +   _e_configure_item_add(cat, _("Icon Theme"),
> "enlightenment/icon_theme", e_int_config_icon_themes);
> +   _e_configure_item_add(cat, _("Mouse Cursor"),
> "enlightenment/mouse", e_int_config_cursor);
> +   _e_configure_item_add(cat, _("Window Display"),
> "enlightenment/windows", e_int_config_window_display);
> +   _e_configure_item_add(cat, _("Transitions"),
> "enlightenment/transitions", e_int_config_transitions);
> +   _e_configure_item_add(cat, _("Shelves"), "enlightenment/shelf",
> e_int_config_shelf); +
> +   /* Preselect "Appearance" */
> +   e_widget_ilist_selected_set(eco->cat_list, 0);
> +   _e_configure_category_cb(cat);
> +
> +   cat = _e_configure_category_add(eco, _("Screen"),
> "enlightenment/screen_setup");
> +   _e_configure_item_add(cat, _("Virtual Desktops"),
> "enlightenment/desktops", e_int_config_desks);
> +   _e_configure_item_add(cat, _("Screen Resolution"),
> "enlightenment/screen_resolution", e_int_config_display);
> +   _e_configure_item_add(cat, _("Screen Lock"),
> "enlightenment/desklock", e_int_config_desklock); +
> +   cat = _e_configure_category_add(eco, _("Behavior"),
> "enlightenment/behavior");
> +   _e_configure_item_add(cat, _("Window Focus"),
> "enlightenment/focus", e_int_config_focus);
> +   _e_configure_item_add(cat, _("Key Bindings"),
> "enlightenment/keys", e_int_config_keybindings);
> +   _e_configure_item_add(cat, _("Mouse Bindings"),
> "enlightenment/mouse_clean", e_int_config_mousebindings);
> +   _e_configure_item_add(cat, _("Menus"), "enlightenment/menus",
> e_int_config_menus); +
> +   cat = _e_configure_category_add(eco, _("Miscellaneous"),
> "enlightenment/misc"); #ifdef ENABLE_FAVORITES
> -   e_configure_standard_item_add(eco, "enlightenment/applications",
> _("Application Menus"), e_int_config_apps);
> +   _e_configure_item_add(cat, _("Application Menus"),
> "enlightenment/applications", e_int_config_apps); #else
> -   e_configure_standard_item_add(eco, "enlightenment/applications",
> _("Applications Menu"), e_int_config_apps);
> +   _e_configure_item_add(cat, _("Applications Menu"),
> "enlightenment/applications", e_int_config_apps); #endif
> -   e_configure_standard_item_add(eco, "enlightenment/performance",
> _("Performance"), e_int_config_performance);
> -   e_configure_standard_item_add(eco, "enlightenment/configuration",
> _("Configuration Dialogs"), e_int_config_cfgdialogs);
> -   e_configure_standard_item_add(eco, "enlightenment/intl",
> _("Language Settings"), e_int_config_intl);
> -   
> -   e_configure_header_item_add(eco, "enlightenment/advanced",
> _("Advanced"));
> -   e_configure_standard_item_add(eco, "enlightenment/startup",
> _("Startup"), e_int_config_startup);
> -   e_configure_standard_item_add(eco, "enlightenment/winlist",
> _("Window List"), e_int_config_winlist);
> -   e_configure_standard_item_add(eco,
> "enlightenment/window_manipulation", _("Window Manipulation"),
> e_int_config_window_manipulation);
> -   e_configure_standard_item_add(eco, "enlightenment/run", _("Run
> Command"), e_int_config_exebuf);
> -   e_configure_standard_item_add(eco, "enlightenment/directories",
> _("Search Directories"), e_int_config_paths);
> -   e_configure_standard_item_add(eco, "enlightenment/e", _("File
> Associations"), e_int_config_mime);
> +   _e_configure_item_add(cat, _("Performance"),
> "enlightenment/performance", e_int_config_performance);
> +   _e_configure_item_add(cat, _("Configuration Dialogs"),
> "enlightenment/configuration", e_int_config_cfgdialogs);
> +   _e_configure_item_add(cat, _("Language Settings"),
> "enlightenment/intl", e_int_config_intl); +
> +   cat = _e_configure_category_add(eco, _("Advanced"),
> "enlightenment/advanced");
> +   _e_configure_item_add(cat, _("Startup"), "enlightenment/startup",
> e_int_config_startup);
> +   _e_configure_item_add(cat, _("Window List"),
> "enlightenment/winlist", e_int_config_winlist);
> +   _e_configure_item_add(cat, _("Window Manipulation"),
> "enlightenment/window_manipulation",
> e_int_config_window_manipulation);
> +   _e_configure_item_add(cat, _("Run Command"), "enlightenment/run",
> e_int_config_exebuf);
> +   _e_configure_item_add(cat, _("Search Directories"),
> "enlightenment/directories", e_int_config_paths);
> +   _e_configure_item_add(cat, _("File Associations"),
> "enlightenment/e", e_int_config_mime); 
> -   e_configure_header_item_add(eco, "enlightenment/extensions",
> _("Extensions"));
> -   e_configure_standard_item_add(eco, "enlightenment/modules",
> _("Modules"), e_int_config_modules);
> -   
> -   /* FIXME: we should have a way for modules to hook in here and
> add their
> -    * own entries
> +   cat = _e_configure_category_add(eco, _("Extensions"),
> "enlightenment/extensions");
> +   _e_configure_item_add(cat, _("Modules"), "enlightenment/modules",
> e_int_config_modules); +
> +   /* FIXME: we should have a way for modules to hook in here and
> add their own entries 
>      * 
> -    * e_configure_header_item_add(eco,
> "enlightenment/extension_config", _("Extension Configuration"));
> +    * cat = _e_configure_category_add(eco, _("Extension
> Configuration"), "enlightenment/extension_config"); */
>     
> -   eco->close = e_widget_button_add(eco->evas, _("Close"), NULL,
> _e_configure_cb_close, eco, NULL);
> +   /* Resize the "Category" list */
> +   e_widget_min_size_get(eco->cat_list, &mw, &mh);
> +   edje_extern_object_min_size_set(eco->cat_list, mw, mh);
> +   
> +   /* Close Button */
> +   eco->close = e_widget_button_add(eco->evas, _("Close"), NULL, 
> +				    _e_configure_cb_close, eco,
> NULL); e_widget_min_size_get(eco->close, &mw, &mh);
>     edje_extern_object_min_size_set(eco->close, mw, mh);
>     edje_object_part_swallow(eco->edje, "e.swallow.button",
> eco->close); -
> +   
>     edje_object_size_min_calc(eco->edje, &ew, &eh);
>     e_win_resize(eco->win, ew, eh);
>     e_win_size_min_set(eco->win, ew, eh);
>  
> -   evas_object_show(eco->ilist);
> -   evas_object_show(eco->close);
>     evas_object_show(eco->edje);
> -
>     e_win_show(eco->win);
>     eco->win->border->internal_icon =
> evas_stringshare_add("enlightenment/configuration"); 
> -   e_widget_focus_set(eco->ilist, 1);
> -   e_widget_ilist_go(eco->ilist);
> -
> -   _e_configure = eco;
> +   e_widget_focus_set(eco->cat_list, 1);
> +   e_widget_ilist_go(eco->cat_list);
>     
> +   _e_configure = eco;
>     return eco;
>  }
>  
> -EAPI void
> -e_configure_standard_item_add(E_Configure *eco, char *icon, char
> *label, E_Config_Dialog *(*func) (E_Container *con)) -{
> -   Evas_Object *o;
> -   E_Configure_CB *ecocb;
> -   
> -   o = edje_object_add(eco->evas);
> -   e_util_edje_icon_set(o, icon);
> -   ecocb = E_NEW(E_Configure_CB, 1);
> -   ecocb->eco = eco;
> -   ecocb->func = func;
> -   eco->cblist = evas_list_append(eco->cblist, ecocb);
> -   e_widget_ilist_append(eco->ilist, o, label,
> _e_configure_cb_standard, ecocb, NULL); -}
> -
> -EAPI void
> -e_configure_header_item_add(E_Configure *eco, char *icon, char
> *label) -{
> -   Evas_Object *o;
> -   
> -   o = edje_object_add(eco->evas);
> -   e_util_edje_icon_set(o, icon);
> -   e_widget_ilist_header_append(eco->ilist, o, label);
> -}
> -
> -/* local subsystem functions */
> -static void
> -_e_configure_free(E_Configure *eco)
> +static void 
> +_e_configure_free(E_Configure *eco) 
>  {
>     _e_configure = NULL;
> -   while (eco->cblist)
> +   while (eco->cats) 
>       {
> -	free(eco->cblist->data);
> -	eco->cblist = evas_list_remove_list(eco->cblist,
> eco->cblist);
> +	E_Configure_Category *cat;
> +	
> +	cat = eco->cats->data;
> +	if (!cat) continue;
> +	if (cat->label)
> +	  evas_stringshare_del(cat->label);
> +	
> +	while (cat->items) 
> +	  {
> +	     E_Configure_Item *ci;
> +	     
> +	     ci = cat->items->data;
> +	     if (!ci) continue;
> +	     if (ci->label)
> +	       evas_stringshare_del(ci->label);
> +	     if (ci->icon)
> +	       evas_stringshare_del(ci->icon);
> +	     if (ci->cb)
> +	       free(ci->cb);
> +	     cat->items = evas_list_remove_list(cat->items,
> cat->items);
> +	     E_FREE(ci);
> +	  }
> +	eco->cats = evas_list_remove_list(eco->cats, eco->cats);
> +	E_FREE(cat);
>       }
>     evas_object_del(eco->edje);
> -   evas_object_del(eco->ilist);
>     e_object_del(E_OBJECT(eco->win));
>     free(eco);
>  }
>  
> -static void
> -_e_configure_cb_del_req(E_Win *win)
> +static void 
> +_e_configure_cb_del_req(E_Win *win) 
>  {
>     E_Configure *eco;
> -
> +   
>     eco = win->data;
> -   if (eco) e_object_del(E_OBJECT(eco));
> +   if (!eco) return;
> +   e_object_del(E_OBJECT(eco));
>  }
>  
> -static void
> -_e_configure_cb_resize(E_Win *win)
> +static void 
> +_e_configure_cb_resize(E_Win *win) 
>  {
> -   Evas_Coord w, h;
>     E_Configure *eco;
> -   
> -   ecore_evas_geometry_get(win->ecore_evas, NULL, NULL, &w, &h);
> +   Evas_Coord w, h;
> +
>     eco = win->data;
> +   if (!eco) return;
> +   ecore_evas_geometry_get(win->ecore_evas, NULL, NULL, &w, &h);
>     evas_object_resize(eco->edje, w, h);
>  }
>  
> -static void
> -_e_configure_cb_standard(void *data)
> +static void 
> +_e_configure_cb_close(void *data, void *data2) 
>  {
> -   E_Configure_CB *ecocb;
> +   E_Configure *eco;
>     
> -   ecocb = data;
> -   ecocb->func(ecocb->eco->con);
> +   eco = data;
> +   if (!eco) return;
> +   e_object_del(E_OBJECT(eco));
>  }
>  
> -static void
> -_e_configure_cb_close(void *data, void *data2) 
> +static E_Configure_Category *
> +_e_configure_category_add(E_Configure *eco, char *label, char *icon)
>  {
> +   Evas_Object *o = NULL;
> +   E_Configure_Category *cat;
> +   
> +   if (!eco) return NULL;
> +   if (!label) return NULL;
> +
> +   cat = E_NEW(E_Configure_Category, 1);
> +   cat->eco = eco;
> +   cat->label = evas_stringshare_add(label);
> +   if (icon) 
> +     {
> +	o = edje_object_add(eco->evas);
> +	e_util_edje_icon_set(o, icon);
> +     }
> +   eco->cats = evas_list_append(eco->cats, cat);
> +   
> +   e_widget_ilist_append(eco->cat_list, o, label,
> _e_configure_category_cb, cat, NULL);
> +   return cat;
> +}
> +
> +static void 
> +_e_configure_category_cb(void *data) 
> +{
> +   E_Configure_Category *cat;
>     E_Configure *eco;
> +   Evas_List *l;
>     
> -   eco = data;
> -   if (eco) e_object_del(E_OBJECT(eco));
> +   cat = data;
> +   if (!cat) return;
> +   eco = cat->eco;
> +   
> +   e_widget_ilist_clear(eco->item_list);
> +   for (l = cat->items; l; l = l->next) 
> +     {
> +	E_Configure_Item *ci;
> +	Evas_Object *o = NULL;
> +	
> +	ci = l->data;
> +	if (!ci) continue;
> +	if (ci->icon) 
> +	  {
> +	     o = edje_object_add(eco->evas);
> +	     e_util_edje_icon_set(o, ci->icon);
> +	  }
> +	e_widget_ilist_append(eco->item_list, o, ci->label,
> _e_configure_item_cb, ci, NULL);
> +     }
> +   e_widget_ilist_go(eco->item_list);
> +}
> +
> +static E_Configure_Item *
> +_e_configure_item_add(E_Configure_Category *cat, char *label, char
> *icon, E_Config_Dialog *(*func) (E_Container *con)) +{
> +   E_Configure_Item *ci;
> +   E_Configure_CB *cb;
> +   
> +   if (!cat) return NULL;
> +   if (!label) return NULL;
> +   
> +   ci = E_NEW(E_Configure_Item, 1);
> +   cb = E_NEW(E_Configure_CB, 1);
> +   cb->eco = cat->eco;
> +   cb->func = func;
> +   ci->cb = cb;
> +   ci->label = evas_stringshare_add(label);
> +   if (icon)
> +     ci->icon = evas_stringshare_add(icon);
> +   cat->items = evas_list_append(cat->items, ci);
> +   return ci;
> +}
> +
> +static void 
> +_e_configure_item_cb(void *data) 
> +{
> +   E_Configure_Item *ci;
> +   E_Configure_CB *cb;
> +   
> +   ci = data;
> +   if (!ci) return;
> +   cb = ci->cb;
> +   cb->func(cb->eco->con);
>  }
> 
> 
> 
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to
> share your opinions on IT & business topics through brief surveys -
> and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________ enlightenment-cvs
> mailing list enlightenment-cvs@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs


-- 

============================================
Microsoft is not the answer.
Microsoft is the question.
And 'No' is the answer!
--------------------------------------------
Anders Trobäck
http://www.troback.com