Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_gadcon.c e_gadcon.h e_int_shelf_config.c e_theme.c e_theme.h 


Log Message:


ou can choose shelf styles now - finally. added 2 more styles (gold and
invisible). themes can provide as many styles as u like.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- e_gadcon.c  23 Apr 2006 13:20:57 -0000      1.21
+++ e_gadcon.c  29 Apr 2006 03:51:27 -0000      1.22
@@ -484,9 +484,9 @@
      {
        gcc->o_frame = gc->frame_request.func(gc->frame_request.data, gcc,
                                              style);
+       gcc->style = evas_stringshare_add(style);
        if (gcc->o_frame)
          {
-            gcc->inset = 1;
             edje_object_size_min_calc(gcc->o_frame,
                                       &(gcc->pad.w), &(gcc->pad.h));
             gcc->o_box = e_box_add(gcc->gadcon->evas);
@@ -811,15 +811,30 @@
 }
 
 static void
-_e_gadcon_client_cb_menu_inset(void *data, E_Menu *m, E_Menu_Item *mi)
+_e_gadcon_client_cb_menu_style_plain(void *data, E_Menu *m, E_Menu_Item *mi)
 {
    E_Gadcon_Client *gcc;
    E_Gadcon *gc;
    
    gcc = data;
    gc = gcc->gadcon;
-   if (gcc->inset) gcc->inset = 0;
-   else gcc->inset = 1;
+   if (gcc->style) evas_stringshare_del(gcc->style);
+   gcc->style = NULL;
+   _e_gadcon_client_save(gcc);
+   e_gadcon_unpopulate(gc);
+   e_gadcon_populate(gc);
+}
+
+static void
+_e_gadcon_client_cb_menu_style_inset(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadcon_Client *gcc;
+   E_Gadcon *gc;
+   
+   gcc = data;
+   gc = gcc->gadcon;
+   if (gcc->style) evas_stringshare_del(gcc->style);
+   gcc->style = evas_stringshare_add("inset");
    _e_gadcon_client_save(gcc);
    e_gadcon_unpopulate(gc);
    e_gadcon_populate(gc);
@@ -870,17 +885,38 @@
 EAPI void
 e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu, int 
flags)
 {
+   E_Menu *mn;
    E_Menu_Item *mi;
    
    E_OBJECT_CHECK(gcc);
    E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE);
    
+   mn = e_menu_new();
+   
+   mi = e_menu_item_new(mn);
+   e_menu_item_label_set(mi, _("Plain"));
+   e_util_menu_item_edje_icon_set(mi, "enlightenment/plain");
+   e_menu_item_radio_group_set(mi, 1);
+   e_menu_item_radio_set(mi, 1);
+   if (!gcc->style) e_menu_item_toggle_set(mi, 1);
+   e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_style_plain, gcc);
+   
+   mi = e_menu_item_new(mn);
+   e_menu_item_label_set(mi, _("Inset"));
+   e_util_menu_item_edje_icon_set(mi, "enlightenment/plain");
+   e_menu_item_radio_group_set(mi, 1);
+   e_menu_item_radio_set(mi, 1);
+   if ((gcc->style) && (!strcmp(gcc->style, "inset")))
+     e_menu_item_toggle_set(mi, 1);
+   e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_style_inset, gcc);
+   
+   /***/
+   
    mi = e_menu_item_new(menu);
-   e_menu_item_label_set(mi, _("Inset appearance"));
-   e_util_menu_item_edje_icon_set(mi, "enlightenment/inset");
-   e_menu_item_check_set(mi, 1);
-   if (gcc->o_frame) e_menu_item_toggle_set(mi, 1);
-   e_menu_item_callback_set(mi, _e_gadcon_client_cb_menu_inset, gcc);
+   e_menu_item_label_set(mi, _("Appearance"));
+   e_util_menu_item_edje_icon_set(mi, "enlightenment/appearance");
+   e_menu_item_submenu_set(mi, mn);
+   e_object_del(E_OBJECT(mn));
    
    mi = e_menu_item_new(menu);
    e_menu_item_label_set(mi, _("Automatically scroll contents"));
@@ -989,6 +1025,7 @@
    evas_stringshare_del(gcc->id);
    if (gcc->scroll_timer) ecore_timer_del(gcc->scroll_timer);
    if (gcc->scroll_animator) ecore_animator_del(gcc->scroll_animator);
+   if (gcc->style) evas_stringshare_del(gcc->style);
    free(gcc);
 }
 
@@ -1136,8 +1173,8 @@
                       cf_gcc->autoscroll = gcc->autoscroll;
                       if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
                       cf_gcc->style = NULL;
-                      if (gcc->inset)
-                        cf_gcc->style = evas_stringshare_add("inset");
+                      if (gcc->style)
+                        cf_gcc->style = evas_stringshare_add(gcc->style);
                       cf_gcc->resizable = gcc->resizable;
                       ok++;
                       break;
@@ -1165,8 +1202,8 @@
        cf_gcc->autoscroll = gcc->autoscroll;
        if (cf_gcc->style) evas_stringshare_del(cf_gcc->style);
        cf_gcc->style = NULL;
-       if (gcc->inset)
-         cf_gcc->style = evas_stringshare_add("inset");
+       if (gcc->style)
+         cf_gcc->style = evas_stringshare_add(gcc->style);
        cf_gcc->resizable = gcc->resizable;
        cf_gc->clients = evas_list_append(cf_gc->clients, cf_gcc);
        ok++;
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e_gadcon.h  23 Apr 2006 13:20:57 -0000      1.15
+++ e_gadcon.h  29 Apr 2006 03:51:27 -0000      1.16
@@ -105,14 +105,14 @@
    struct {
       Evas_Coord          w, h;
    } pad, min, aspect;
-   unsigned char          inset : 1;
-   unsigned char          autoscroll : 1;
-   unsigned char          resizable : 1;
    Ecore_Timer           *scroll_timer;
    Ecore_Animator        *scroll_animator;
    double                 scroll_pos;
    double                 scroll_wanted;
    E_Menu                *menu;
+   char                  *style;
+   unsigned char          autoscroll : 1;
+   unsigned char          resizable : 1;
    
    unsigned char          moving : 1;
    unsigned char          resizing : 1;
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_shelf_config.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_int_shelf_config.c        23 Apr 2006 06:56:22 -0000      1.1
+++ e_int_shelf_config.c        29 Apr 2006 03:51:27 -0000      1.2
@@ -4,7 +4,7 @@
 #include "e.h"
 
 /* PROTOTYPES - same all the time */
-//typedef struct _CFBorder CFBorder;
+typedef struct _CFStyle CFStyle;
 
 static void *_create_data(E_Config_Dialog *cfd);
 static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
@@ -22,13 +22,14 @@
    int fit_size;
    int size;
    int layering;
+   Evas_List *cfslist;
 };
 
-//struct _CFBorder
-//{
-//   E_Config_Dialog_Data     *cfdata;
-//   const char *bordername;
-//};
+struct _CFStyle
+{
+   E_Config_Dialog_Data *cfdata;
+   const char *style;
+};
 
 /* a nice easy setup function that does the dirty work */
 EAPI void
@@ -101,6 +102,11 @@
    /* Free the cfdata */
    cfdata->es->config_dialog = NULL;
    if (cfdata->style) free(cfdata->style);
+   while (cfdata->cfslist)
+     {
+       E_FREE(cfdata->cfslist->data);
+       cfdata->cfslist = evas_list_remove_list(cfdata->cfslist, 
cfdata->cfslist);
+     }
    free(cfdata);
 }
 
@@ -138,7 +144,7 @@
    zone = cfdata->es->zone;
    id = cfdata->es->id;
    cfdata->es->config_dialog = NULL;
-   e_object_del(cfdata->es);
+   e_object_del(E_OBJECT(cfdata->es));
    cfdata->es = e_shelf_zone_new(zone, cfdata->escfg->name, 
                                 cfdata->escfg->style,
                                 cfdata->escfg->popup,
@@ -160,12 +166,17 @@
 _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data 
*cfdata)
 {
    /* generate the core widget layout for a basic dialog */
-   Evas_Object *o, *of, *ob;
+   Evas_Object *o, *o2, *of, *ob, *oi, *oj;
    E_Radio_Group *rg;
+   Evas_Coord wmw, wmh;
+   Evas_List *styles, *l;
    int sel, n;
-
+   CFStyle *cfs;
+   
    /* FIXME: this is just raw config now - it needs UI improvments */
-   o = e_widget_list_add(evas, 0, 0);
+   o = e_widget_list_add(evas, 1, 1);
+     
+   o2 = e_widget_list_add(evas, 0, 0);
    
    of = e_widget_framelist_add(evas, _("Stacking"), 0);
    rg = e_widget_radio_group_new(&(cfdata->layering));
@@ -175,7 +186,7 @@
    e_widget_framelist_object_append(of, ob);
    ob = e_widget_radio_add(evas, _("Above Everything"), 2, rg);
    e_widget_framelist_object_append(of, ob);
-   e_widget_list_object_append(o, of, 1, 1, 0.5);
+   e_widget_list_object_append(o2, of, 1, 1, 0.5);
    
    of = e_widget_framelist_add(evas, _("Size"), 0);
    ob = e_widget_check_add(evas, _("Shrink length fit contents"), 
&(cfdata->fit_along));
@@ -186,7 +197,7 @@
    e_widget_framelist_object_append(of, ob);
    ob = e_widget_slider_add(evas, 1, 0, _("%3.0f pixels"), 4, 200, 4, 0, NULL, 
&(cfdata->size), 200);
    e_widget_framelist_object_append(of, ob);
-   e_widget_list_object_append(o, of, 1, 1, 0.5);
+   e_widget_list_object_append(o2, of, 1, 1, 0.5);
 
    of = e_widget_framelist_add(evas, _("Layout"), 0);
    rg = e_widget_radio_group_new(&(cfdata->orient));
@@ -214,7 +225,41 @@
    e_widget_framelist_object_append(of, ob);
    ob = e_widget_radio_add(evas, _("Right Bottom"), E_GADCON_ORIENT_CORNER_RB, 
rg);
    e_widget_framelist_object_append(of, ob);
-   e_widget_list_object_append(o, of, 1, 1, 0.5);
+   e_widget_list_object_append(o2, of, 1, 1, 0.5);
+   
+   e_widget_list_object_append(o, o2, 1, 1, 0.5);
+   
+   oi = e_widget_ilist_add(evas, 128, 20, &(cfdata->style));
+   
+   sel = 0;
+   styles = e_theme_shelf_list();
+
+   for (n = 0, l = styles; l; l = l->next, n++)
+     {
+       char buf[4096];
+       
+       cfs = E_NEW(CFStyle, 1);
+       cfs->cfdata = cfdata;
+       cfs->style = "default";
+       cfdata->cfslist = evas_list_append(cfdata->cfslist, cfs);
+       ob = e_livethumb_add(evas);
+       e_livethumb_vsize_set(ob, 256, 40);
+       oj = edje_object_add(e_livethumb_evas_get(ob));
+       snprintf(buf, sizeof(buf), "shelf/%s/base",
+                (char *)l->data);
+       e_theme_edje_object_set(oj, "base/theme/shelf", buf);
+       e_livethumb_thumb_set(ob, oj);
+       e_widget_ilist_append(oi, ob, (char *)l->data, NULL, NULL, l->data);
+       if (!strcmp(cfdata->es->style, (char *)l->data))
+         sel = n;
+     }
+   e_widget_min_size_get(oi, &wmw, &wmh);
+   e_widget_min_size_set(oi, wmw, 250);
+   
+   e_widget_ilist_go(oi);
+   e_widget_ilist_selected_set(oi, sel);
+   
+   e_widget_list_object_append(o, oi, 1, 1, 0.5);
    
    return o;
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_theme.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- e_theme.c   2 Mar 2006 12:03:48 -0000       1.21
+++ e_theme.c   29 Apr 2006 03:51:27 -0000      1.22
@@ -25,6 +25,7 @@
 static Evas_List *categories = NULL;
 static Evas_List *transitions = NULL;
 static Evas_List *borders = NULL;
+static Evas_List *shelfs = NULL;
 
 /* externally accessible functions */
 
@@ -51,6 +52,7 @@
    /* Find transitions */
    transitions = _e_theme_collection_items_find("base/theme/transitions", 
"transitions");
    borders = _e_theme_collection_items_find("base/theme/borders", 
"widgets/border");
+   shelfs = _e_theme_collection_items_find("base/theme/shelf", "shelf");
 
    return 1;
 }
@@ -118,6 +120,11 @@
        evas_stringshare_del(borders->data);
        borders = evas_list_remove_list(borders, borders);
      }
+   while (shelfs)
+     {
+       evas_stringshare_del(shelfs->data);
+       shelfs = evas_list_remove_list(shelfs, shelfs);
+     }
    return 1;
 }
 
@@ -421,6 +428,25 @@
 e_theme_border_list(void)
 {
    return borders;
+}
+
+EAPI int
+e_theme_shelf_find(const char *shelf)
+{
+   Evas_List *l;
+
+   for (l = shelfs; l; l = l->next)
+     {
+       if (!strcmp(shelf, l->data))
+         return 1;
+     }
+   return 0;
+}
+
+EAPI Evas_List *
+e_theme_shelf_list(void)
+{
+   return shelfs;
 }
 
 /* local subsystem functions */
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_theme.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_theme.h   2 Mar 2006 12:03:48 -0000       1.8
+++ e_theme.h   29 Apr 2006 03:51:27 -0000      1.9
@@ -24,6 +24,8 @@
 EAPI Evas_List *e_theme_transition_list(void);
 EAPI int        e_theme_border_find(const char *border);
 EAPI Evas_List *e_theme_border_list(void);
+EAPI int        e_theme_shelf_find(const char *shelf);
+EAPI Evas_List *e_theme_shelf_list(void);
     
 #endif
 #endif




-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to