Enlightenment CVS committal

Author  : devilhorns
Project : e_modules
Module  : slideshow

Dir     : e_modules/slideshow


Modified Files:
        Makefile.am e_mod_config.c e_mod_main.c e_mod_main.h 
        module_icon.png slideshow.edc 
Added Files:
        module.eap 
Removed Files:
        e_mod_config.h 


Log Message:
Slideshow module able to be shelved now, and added a bg preview component
that will show you in the module what bg is going to be set next.
Does have a couple minor issues that I'll fix tomorrow.

Users should remove the old module.slideshow.cfg before running.


===================================================================
RCS file: /cvs/e/e_modules/slideshow/Makefile.am,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- Makefile.am 11 Apr 2006 14:06:36 -0000      1.6
+++ Makefile.am 30 May 2006 05:21:01 -0000      1.7
@@ -10,6 +10,7 @@
 
 files_DATA = \
 module_icon.png \
+module.eap \
 slideshow.edj
 
 EXTRA_DIST = $(files_DATA) slideshow.edc
@@ -24,8 +25,7 @@
 pkg_LTLIBRARIES        = module.la
 module_la_SOURCES      = e_mod_main.c \
                         e_mod_main.h \
-                        e_mod_config.c \
-                        e_mod_config.h
+                        e_mod_config.c
 
 module_la_LIBADD       = @e_libs@ -lm
 module_la_LDFLAGS      = -module -avoid-version
===================================================================
RCS file: /cvs/e/e_modules/slideshow/e_mod_config.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -3 -r1.22 -r1.23
--- e_mod_config.c      13 May 2006 09:02:41 -0000      1.22
+++ e_mod_config.c      30 May 2006 05:21:01 -0000      1.23
@@ -1,12 +1,10 @@
 #include <e.h>
 #include "e_mod_main.h"
-#include "e_mod_config.h"
-#include "config.h"
 
 struct _E_Config_Dialog_Data
 {
    int disable_timer;
-   double cycle_time;
+   double poll_time;
    char *dir;
 };
 
@@ -16,39 +14,38 @@
 static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cfdata);
 static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data 
*cfdata);
 
-/* Config Calls */
 void
-_config_slideshow_module(E_Container *con, Slide *s)
+_config_slideshow_module(Config_Item *ci)
 {
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
-
+   E_Container *con;
+   
    v = E_NEW(E_Config_Dialog_View, 1);
 
-   /* methods */
    v->create_cfdata = _create_data;
    v->free_cfdata = _free_data;
    v->basic.apply_cfdata = _basic_apply_data;
    v->basic.create_widgets = _basic_create_widgets;
 
-   /* create config diaolg */
-   cfd = e_config_dialog_new(con, D_("Slideshow Configuration"), NULL, 0, v, 
s);
-   s->config_dialog = cfd;
+   con = e_container_current_get(e_manager_current_get());
+   cfd = e_config_dialog_new(con, D_("Slideshow Configuration"), NULL, 0, v, 
ci);
+   slide_config->config_dialog = cfd;
 }
 
 static void
-_fill_data(Slide *s, E_Config_Dialog_Data *cfdata)
+_fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata)
 {
    char buf[PATH_MAX];
    
-   cfdata->cycle_time = s->conf->cycle_time;
-   cfdata->disable_timer = s->conf->disable_timer;
-   if (s->conf->dir)
-     cfdata->dir = s->conf->dir;
+   cfdata->poll_time = ci->poll_time;
+   cfdata->disable_timer = ci->disable_timer;
+   if (ci->dir)
+     cfdata->dir = strdup(ci->dir);
    else 
      {
        snprintf(buf, sizeof(buf), "%s/.e/e/backgrounds", e_user_homedir_get());
-       cfdata->dir = (char *)evas_stringshare_add(buf);
+       cfdata->dir = strdup(buf);
      }
 }
 
@@ -56,21 +53,21 @@
 _create_data(E_Config_Dialog *cfd)
 {
    E_Config_Dialog_Data *cfdata;
-   Slide *s;
-
-   s = cfd->data;
+   Config_Item *ci;
+   
+   ci = cfd->data;
    cfdata = E_NEW(E_Config_Dialog_Data, 1);
-   _fill_data(s, cfdata);
+   _fill_data(ci, cfdata);
    return cfdata;
 }
 
 static void
 _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
 {
-   Slide *s;
+   if (!slide_config)
+     return;
 
-   s = cfd->data;
-   s->config_dialog = NULL;
+   slide_config->config_dialog = NULL;
    free(cfdata);
 }
 
@@ -83,7 +80,7 @@
    of = e_widget_framelist_add(evas, D_("Cycle Time"), 0);
    ob = e_widget_check_add(evas, D_("Disable Timer"), 
&(cfdata->disable_timer));
    e_widget_framelist_object_append(of, ob);
-   ob = e_widget_slider_add(evas, 1, 0, D_("%3.0f seconds"), 5.0, 600.0, 1.0, 
0, &(cfdata->cycle_time), NULL, 200);
+   ob = e_widget_slider_add(evas, 1, 0, D_("%3.0f seconds"), 5.0, 60.0, 1.0, 
0, &(cfdata->poll_time), NULL, 200);
    e_widget_framelist_object_append(of, ob);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
 
@@ -102,24 +99,26 @@
 static int
 _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
 {
-   Slide *s;
-   char buf[PATH_MAX];
+   Config_Item *ci;
+   char buf[4096];
+
+   ci = cfd->data;
+   ci->poll_time = cfdata->poll_time;
+   ci->disable_timer = cfdata->disable_timer;
+
+   if (ci->dir)
+     evas_stringshare_del(ci->dir);
 
-   s = cfd->data;
-   e_border_button_bindings_ungrab_all();
-   s->conf->cycle_time = cfdata->cycle_time;
-   s->conf->disable_timer = cfdata->disable_timer;
    if (cfdata->dir != NULL)
-     s->conf->dir = (char *)evas_stringshare_add(cfdata->dir);
+     ci->dir = evas_stringshare_add(cfdata->dir);
    else 
      {
        snprintf(buf, sizeof(buf), "%s/.e/e/backgrounds", e_user_homedir_get());
-       s->conf->dir = (char *)evas_stringshare_add(buf);
+       ci->dir = evas_stringshare_add(buf);
      }
    
    e_config_save_queue();
-   e_border_button_bindings_grab_all();
 
-   _slide_cb_config_updated(s);
+   _slide_config_updated(ci->id);
    return 1;
 }
===================================================================
RCS file: /cvs/e/e_modules/slideshow/e_mod_main.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- e_mod_main.c        13 May 2006 09:02:41 -0000      1.19
+++ e_mod_main.c        30 May 2006 05:21:01 -0000      1.20
@@ -1,11 +1,563 @@
 #include <e.h>
 #include <E_Lib.h>
 #include <Ecore.h>
-# include <Ecore_File.h>
+#include <Ecore_File.h>
 #include "e_mod_main.h"
-#include "e_mod_config.h"
-#include "config.h"
 
+typedef struct _Instance Instance;
+typedef struct _Slideshow Slideshow;
+
+struct _Instance 
+{
+   E_Gadcon_Client *gcc;
+   Evas_Object *slide_obj;
+   Slideshow *slide;
+   Ecore_Timer *check_timer;
+   Ecore_List *bg_list;
+   const char *display;
+   int index, bg_id, bg_count;
+};
+
+struct _Slideshow 
+{
+   Instance *inst;
+   Evas_Object *slide_obj;
+   Evas_Object *bg_obj;
+   Evas_Object *img_obj;
+};
+
+static E_Gadcon_Client *_gc_init(E_Gadcon *gc, char *name, char *id, char 
*style);
+static void _gc_shutdown(E_Gadcon_Client *gcc);
+static void _gc_orient(E_Gadcon_Client *gcc);
+static char *_gc_label(void);
+static Evas_Object *_gc_icon(Evas *evas);
+
+static void _slide_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
+static void _slide_menu_cb_configure(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _slide_menu_cb_post(void *data, E_Menu *m);
+static Config_Item *_slide_config_item_get(const char *id);
+static Slideshow *_slide_new(Evas *evas);
+static void _slide_free(Slideshow *ss);
+static int _slide_cb_check(void *data);
+static void _slide_get_display(Instance *inst);
+static void _slide_get_bg_count(void *data);
+static void _slide_set_bg(void *data, const char *bg);
+static void _slide_set_preview(void *data);
+
+static E_Config_DD *conf_edd = NULL;
+static E_Config_DD *conf_item_edd = NULL;
+
+Config *slide_config = NULL;
+
+static const E_Gadcon_Client_Class _gc_class = 
+{
+   GADCON_CLIENT_CLASS_VERSION,
+     "slideshow", {_gc_init, _gc_shutdown, _gc_orient, _gc_label, _gc_icon}
+};
+
+static E_Gadcon_Client *
+_gc_init(E_Gadcon *gc, char *name, char *id, char *style) 
+{
+   Evas_Object *o;
+   E_Gadcon_Client *gcc;
+   Instance *inst;
+   Config_Item *ci;
+   Slideshow *slide;
+   char buf[4096];
+   
+   inst = E_NEW(Instance, 1);
+   ci = _slide_config_item_get(id);
+   if (!ci->id)
+     ci->id = evas_stringshare_add(id);
+
+   slide = _slide_new(gc->evas);
+   slide->inst = inst;
+   inst->slide = slide;
+   
+   o = slide->slide_obj;
+   gcc = e_gadcon_client_new(gc, name, id, style, o);
+   gcc->data = inst;
+   inst->gcc = gcc;
+   inst->slide_obj = o;
+
+   _slide_get_display(inst);
+   if (inst->display)
+     e_lib_init(inst->display);
+   
+   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, 
_slide_cb_mouse_down, inst);
+   slide_config->instances = evas_list_append(slide_config->instances, inst);
+
+   if (ci->disable_timer)
+     _slide_cb_check(inst);
+   else
+     inst->check_timer = ecore_timer_add(ci->poll_time, _slide_cb_check, inst);
+   return gcc;
+}
+
+static void
+_gc_shutdown(E_Gadcon_Client *gcc) 
+{
+   Instance *inst;
+   
+   inst = gcc->data;
+   if (inst->bg_list)
+     ecore_list_destroy(inst->bg_list);
+   if (inst->display)
+     evas_stringshare_del(inst->display);
+   if (inst->check_timer)
+     ecore_timer_del(inst->check_timer);
+   
+   slide_config->instances = evas_list_remove(slide_config->instances, inst);
+   _slide_free(inst->slide);
+   free(inst);
+}
+
+static void
+_gc_orient(E_Gadcon_Client *gcc) 
+{
+   e_gadcon_client_aspect_set(gcc, 16, 16); 
+   e_gadcon_client_min_size_set(gcc, 16, 16);
+}
+
+static char *
+_gc_label(void) 
+{
+   return D_("Slideshow");
+}
+
+static Evas_Object *
+_gc_icon(Evas *evas) 
+{
+   Evas_Object *o;
+   char buf[4096];
+   
+   o = edje_object_add(evas);
+   snprintf(buf, sizeof(buf), "%s/module.eap", 
e_module_dir_get(slide_config->module));
+   edje_object_file_set(o, buf, "icon");
+   return o;
+}
+
+static void
+_slide_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) 
+{
+   Instance *inst;
+   Evas_Event_Mouse_Down *ev;
+   
+   inst = data;
+   ev = event_info;
+   if ((ev->button == 3) && (!slide_config->menu)) 
+     {
+       E_Menu *mn;
+       E_Menu_Item *mi;
+       int x, y, w, h;
+       
+       mn = e_menu_new();
+       e_menu_post_deactivate_callback_set(mn, _slide_menu_cb_post, inst);
+       slide_config->menu = mn;
+       
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, D_("Configuration"));
+       e_util_menu_item_edje_icon_set(mi, "enlightenment/configuration");
+       e_menu_item_callback_set(mi, _slide_menu_cb_configure, inst);
+       
+       mi = e_menu_item_new(mn);
+       e_menu_item_separator_set(mi, 1);
+       
+       e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
+       e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, &w, &h);
+       e_menu_activate_mouse(mn, 
e_util_zone_current_get(e_manager_current_get()),
+                             x + ev->output.x, y + ev->output.y, 1, 1,
+                             E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
+       evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button, 
+                                EVAS_BUTTON_NONE, ev->timestamp, NULL);
+     }
+   else if (ev->button == 2) 
+     {
+       Config_Item *ci;
+       
+       ci = _slide_config_item_get(inst->gcc->id);
+       if (ci->disable_timer)
+         return;
+       if (inst->check_timer)
+         ecore_timer_del(inst->check_timer);
+       else
+         inst->check_timer = ecore_timer_add(ci->poll_time, _slide_cb_check, 
inst);
+     }
+   else if (ev->button == 1) 
+     _slide_cb_check(inst);
+}
+
+static void
+_slide_menu_cb_post(void *data, E_Menu *m) 
+{
+   if (!slide_config->menu)
+     return;
+   e_object_del(E_OBJECT(slide_config->menu));
+   slide_config->menu = NULL;
+}
+
+static void
+_slide_menu_cb_configure(void *data, E_Menu *m, E_Menu_Item *mi) 
+{
+   Instance *inst;
+   Config_Item *ci;
+   
+   inst = data;
+   ci = _slide_config_item_get(inst->gcc->id);
+   _config_slideshow_module(ci);
+}
+
+void
+_slide_config_updated(const char *id) 
+{
+   Evas_List *l;
+   Config_Item *ci;
+   
+   if (!slide_config)
+     return;
+   
+   ci = _slide_config_item_get(id);
+   for (l = slide_config->instances; l; l = l->next) 
+     {
+       Instance *inst;
+       
+       inst = l->data;
+       if (!inst->gcc->id)
+         continue;
+       if (!strcmp(inst->gcc->id, ci->id)) 
+         {
+            if (inst->check_timer)
+              ecore_timer_del(inst->check_timer);
+
+            if ((ci->disable_timer) || (ci->poll_time == 0)) 
+              break;
+            
+            inst->check_timer = ecore_timer_add(ci->poll_time, 
_slide_cb_check, inst);
+            break;
+         }
+     }
+}
+
+static Config_Item *
+_slide_config_item_get(const char *id) 
+{
+   Evas_List *l;
+   Config_Item *ci;
+   
+   for (l = slide_config->items; l; l = l->next) 
+     {
+       ci = l->data;
+       if (!ci->id) continue;
+       if (!strcmp(ci->id, id)) 
+         return ci;
+     }
+   
+   ci = E_NEW(Config_Item, 1);
+   ci->id = evas_stringshare_add(id);
+   ci->poll_time = 60.0;
+   ci->disable_timer = 0;
+   
+   slide_config->items = evas_list_append(slide_config->items, ci);
+   return ci;
+}
+
+EAPI E_Module_Api e_modapi = 
+{
+   E_MODULE_API_VERSION,
+     "Slideshow"
+};
+
+EAPI void *
+e_modapi_init(E_Module *m) 
+{
+   bindtextdomain(PACKAGE, LOCALEDIR);
+   bind_textdomain_codeset(PACKAGE, "UTF-8");
+   
+   conf_item_edd = E_CONFIG_DD_NEW("Slideshow_Config_Item", Config_Item);
+   #undef T
+   #undef D
+   #define T Config_Item
+   #define D conf_item_edd
+   E_CONFIG_VAL(D, T, id, STR);
+   E_CONFIG_VAL(D, T, dir, STR);
+   E_CONFIG_VAL(D, T, poll_time, DOUBLE);
+   E_CONFIG_VAL(D, T, disable_timer, INT);
+   
+   conf_edd = E_CONFIG_DD_NEW("Slideshow_Config", Config);
+   #undef T
+   #undef D
+   #define T Config
+   #define D conf_edd
+   E_CONFIG_LIST(D, T, items, conf_item_edd);
+   
+   slide_config = e_config_domain_load("module.slideshow", conf_edd);
+   if (!slide_config) 
+     {
+       Config_Item *ci;
+       char buf[4096];
+
+       snprintf(buf, sizeof(buf), "%s/.e/e/backgrounds", e_user_homedir_get());
+       slide_config = E_NEW(Config, 1);
+       ci = E_NEW(Config_Item, 1);
+       ci->id = evas_stringshare_add("0");
+       ci->dir = evas_stringshare_add(buf);
+       ci->poll_time = 60.0;
+       ci->disable_timer = 0;
+       slide_config->items = evas_list_append(slide_config->items, ci);
+     }
+   slide_config->module = m;
+   e_gadcon_provider_register(&_gc_class);
+   return 1;
+}
+
+EAPI int
+e_modapi_shutdown(E_Module *m) 
+{
+   slide_config->module = NULL;
+   e_gadcon_provider_unregister(&_gc_class);
+   
+   if (slide_config->config_dialog)
+     e_object_del(E_OBJECT(slide_config->config_dialog));
+   if (slide_config->menu) 
+     {
+       e_menu_post_deactivate_callback_set(slide_config->menu, NULL, NULL);
+       e_object_del(E_OBJECT(slide_config->menu));
+       slide_config->menu = NULL;
+     }
+   while (slide_config->items) 
+     {
+       Config_Item *ci;
+       
+       ci = slide_config->items->data;
+       slide_config->items = evas_list_remove_list(slide_config->items, 
slide_config->items);
+       if (ci->id)
+         evas_stringshare_del(ci->id);
+       if (ci->dir)
+         evas_stringshare_del(ci->dir);
+       free(ci);
+     }
+   free(slide_config);
+   slide_config = NULL;
+   E_CONFIG_DD_FREE(conf_item_edd);
+   E_CONFIG_DD_FREE(conf_edd);
+   return 1;
+}
+
+EAPI int
+e_modapi_info(E_Module *m) 
+{
+   char buf[4096];
+   
+   snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
+   m->icon_file = strdup(buf);
+   return 1;
+}
+
+EAPI int
+e_modapi_save(E_Module *m) 
+{
+   Evas_List *l;
+   
+   for (l = slide_config->instances; l; l = l->next) 
+     {
+       Instance *inst;
+       Config_Item *ci;
+       
+       inst = l->data;
+       ci = _slide_config_item_get(inst->gcc->id);
+       if (ci->id)
+         evas_stringshare_del(ci->id);
+       ci->id = evas_stringshare_add(inst->gcc->id);
+     }
+   e_config_domain_save("module.slideshow", conf_edd, slide_config);
+   return 1;
+}
+
+EAPI int
+e_modapi_about(E_Module *m) 
+{
+   e_module_dialog_show(D_("Enlightenment Slide Show Module"),
+                        D_("This module is VERY simple and is used to cycle 
desktop backgrounds"));
+   return 1;
+}
+
+static Slideshow *
+_slide_new(Evas *evas) 
+{
+   Slideshow *ss;
+   char buf[4096];
+
+   ss = E_NEW(Slideshow, 1);
+
+   snprintf(buf, sizeof(buf), "%s/slideshow.edj", 
e_module_dir_get(slide_config->module));
+
+   ss->img_obj = e_livethumb_add(evas);
+   e_livethumb_vsize_set(ss->img_obj, 16, 16);
+//   edje_extern_object_min_size_set(ss->img_obj, 16, 16);
+//   edje_extern_object_max_size_set(ss->img_obj, 16, 16);   
+   evas_object_show(ss->img_obj);
+   
+   ss->slide_obj = edje_object_add(evas);   
+   if (!e_theme_edje_object_set(ss->slide_obj, "base/theme/modules/slideshow",
+                               "modules/slideshow/main"))
+     edje_object_file_set(ss->slide_obj, buf, "modules/slideshow/main");
+   evas_object_show(ss->slide_obj);
+   
+   edje_object_part_swallow(ss->slide_obj, "item", ss->img_obj);
+   return ss;
+}
+
+static void
+_slide_free(Slideshow *ss) 
+{
+   evas_object_del(ss->img_obj);
+   evas_object_del(ss->bg_obj);
+   evas_object_del(ss->slide_obj);
+   free(ss);
+}
+
+static int 
+_slide_cb_check(void *data) 
+{
+   Instance *inst;
+   Config_Item *ci;
+   char *bg;
+   
+   inst = data;
+   ci = _slide_config_item_get(inst->gcc->id);
+
+   _slide_get_bg_count(inst);
+
+   if (inst->index > inst->bg_count)
+     inst->index = 0;
+
+   if (inst->index <= inst->bg_count) 
+     {
+       bg = ecore_list_goto_index(inst->bg_list, inst->index);
+       if (bg == NULL) 
+         {
+            inst->index = 0;
+            bg = ecore_list_goto_index(inst->bg_list, inst->index);
+         }
+       if (bg != NULL) 
+         {
+            _slide_set_bg(inst, bg);
+            inst->index++;
+            _slide_set_preview(inst);
+         }
+     }
+   return 1;
+}
+
+static void 
+_slide_get_display(Instance *inst) 
+{
+   if (!inst)
+     return;
+   
+   if (inst->display)
+     evas_stringshare_del(inst->display);
+   
+   char *tmp = getenv("DISPLAY");
+   if (tmp)
+     inst->display = evas_stringshare_add(tmp);
+   
+   if (inst->display) 
+     {
+       char *p;
+       char buf[1024];
+       
+       p = strrchr(inst->display, ':');
+       if (!p) 
+         {
+            snprintf(buf, sizeof(buf), "%s:0.0", inst->display);
+            evas_stringshare_del(inst->display);
+            inst->display = evas_stringshare_add(buf);
+         }
+       else 
+         {
+            p = strrchr(p, '.');
+            if (!p) 
+              {
+                 snprintf(buf, sizeof(buf), "%s.0", inst->display);
+                 evas_stringshare_del(inst->display);
+                 inst->display = evas_stringshare_add(buf);
+              }
+         }
+     }
+   else 
+     inst->display = evas_stringshare_add(":0.0");
+}
+
+static void 
+_slide_get_bg_count(void *data) 
+{
+   Instance *inst;
+   Config_Item *ci;
+   char *item;
+   
+   inst = data;
+   ci = _slide_config_item_get(inst->gcc->id);
+   
+   inst->bg_count = 0;
+   inst->bg_list = ecore_file_ls(ci->dir);
+   ecore_list_goto_first(inst->bg_list);
+   while ((item = (char *)ecore_list_next(inst->bg_list)) != NULL)
+     inst->bg_count++;
+}
+
+static void
+_slide_set_bg(void *data, const char *bg) 
+{
+   Instance *inst;
+   Config_Item *ci;
+   char buf[4096];
+   
+   inst = data;
+   ci = _slide_config_item_get(inst->gcc->id);
+   snprintf(buf, sizeof(buf), "%s/%s", ci->dir, bg);
+   e_lib_background_set(buf);
+}
+
+static void
+_slide_set_preview(void *data) 
+{
+   Instance *inst;
+   Config_Item *ci;
+   Slideshow *ss;
+   char buf[4096];
+   char *bg;
+   
+   inst = data;
+   ci = _slide_config_item_get(inst->gcc->id);
+   ss = inst->slide;
+   
+   bg = ecore_list_goto_index(inst->bg_list, inst->index);
+   snprintf(buf, sizeof(buf), "%s/%s", ci->dir, bg);
+   if (!e_util_edje_collection_exists(buf, "desktop/background"))
+     return;
+   
+   if (ss->bg_obj) evas_object_del(ss->bg_obj);
+   ss->bg_obj = edje_object_add(e_livethumb_evas_get(ss->img_obj));
+   edje_object_file_set(ss->bg_obj, buf, "desktop/background");
+
+   e_livethumb_thumb_set(ss->img_obj, ss->bg_obj);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*******************************************************
 int idx, bg_id, bg_count;
 static int slide_count;
 Ecore_List *list;
@@ -30,7 +582,6 @@
 static void get_bg_count();
 static void _set_bg(char *bg, Slide_Face *sf);
 
-/* public module routines. all modules must have these */
 EAPI E_Module_Api e_modapi = {
    E_MODULE_API_VERSION,
    "Slideshow"
@@ -41,11 +592,9 @@
 {
    Slide *e;
 
-   /* Set up module's message catalogue */
    bindtextdomain(PACKAGE, LOCALEDIR);
    bind_textdomain_codeset(PACKAGE, "UTF-8");
 
-   /* actually init slide */
    e = _slide_init(m);
    m->config_menu = e->config_menu;
 
@@ -57,7 +606,6 @@
            e->display = strdup(tmp);
      }
 
-   /* make sure the display var is of the form name:0.0 or :0.0 */
    if (e->display)
      {
         char *p;
@@ -84,7 +632,6 @@
    else
       e->display = strdup(":0.0");
 
-   /* Init E Lib */
    if (e->display)
       e_lib_init(e->display);
    if (!e->display)
@@ -163,8 +710,6 @@
    return 1;
 }
 
-/* Begin Private Routines */
-
 static Slide *
 _slide_init(E_Module *m)
 {
@@ -202,7 +747,6 @@
 
    _slide_config_menu_new(e);
 
-   /* Managers */
    managers = e_manager_list();
    for (l = managers; l; l = l->next)
      {
@@ -238,11 +782,8 @@
                   if (!_slide_face_init(ef))
                      return NULL;
 
-                  /* Menu */
-                  /* This menu must be initialized after conf */
                   _slide_face_menu_new(ef);
 
-                  /* Add main menu to face menu */
                   mi = e_menu_item_new(e->config_menu);
                   e_menu_item_label_set(mi, _("Configuration"));
                   e_menu_item_callback_set(mi, _slide_face_cb_menu_configure, 
ef);
@@ -251,7 +792,6 @@
                   e_menu_item_label_set(mi, con->name);
                   e_menu_item_submenu_set(mi, ef->menu);
 
-                  /* Setup */
                   if (!ef->conf->enabled)
                    _slide_face_disable(ef);
                   else
@@ -363,8 +903,8 @@
    e_menu_item_label_set(mi, _("Configuration"));
    e_util_menu_item_edje_icon_set(mi, "enlightenment/configuration");
    e_menu_item_callback_set(mi, _slide_face_cb_menu_configure, face);
-   /* Edit */
-   mi = e_menu_item_new(mn);
+
+ mi = e_menu_item_new(mn);
    e_menu_item_label_set(mi, _("Edit Mode"));
    e_util_menu_item_edje_icon_set(mi, "enlightenment/gadgets");
    e_menu_item_callback_set(mi, _slide_face_cb_menu_edit, face);
@@ -600,3 +1140,5 @@
           }
      }
 }
+
+*************************************************************/
===================================================================
RCS file: /cvs/e/e_modules/slideshow/e_mod_main.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- e_mod_main.h        13 May 2006 09:02:41 -0000      1.12
+++ e_mod_main.h        30 May 2006 05:21:01 -0000      1.13
@@ -4,49 +4,24 @@
 #define E_MOD_MAIN_H
 
 typedef struct _Config Config;
-typedef struct _Config_Face Config_Face;
-typedef struct _Slide Slide;
-typedef struct _Slide_Face Slide_Face;
+typedef struct _Config_Item Config_Item;
 
 struct _Config
 {
-   int disable_timer;
-   double cycle_time;
-   char *dir;
-};
-
-struct _Config_Face
-{
-   unsigned char enabled;
-};
-
-struct _Slide
-{
-   E_Menu *config_menu;
-
-   char *display;
-   Slide_Face *face;
-   Ecore_Timer *cycle_timer;
-
-   Config *conf;
-   E_Config_DD *conf_edd;
+   E_Module *module;
    E_Config_Dialog *config_dialog;
+   E_Menu *menu;
+   Evas_List *instances;
+   Evas_List *items;
 };
 
-struct _Slide_Face
+struct _Config_Item
 {
-   Evas *evas;
-   E_Container *con;
-   Slide *slide;
-
-   E_Menu *menu;
-   Config_Face *conf;
-   E_Config_DD *conf_face_edd;
-
-   Evas_Object *slide_object;
-   Evas_Object *event_object;
-
-   E_Gadman_Client *gmc;
+   const char *id;
+   
+   int disable_timer;
+   double poll_time;
+   const char *dir;
 };
 
 EAPI extern E_Module_Api e_modapi;
@@ -56,8 +31,9 @@
 EAPI int e_modapi_save(E_Module *m);
 EAPI int e_modapi_info(E_Module *m);
 EAPI int e_modapi_about(E_Module *m);
-EAPI int e_modapi_config(E_Module *m);
 
-void _slide_cb_config_updated(void *data);
+void _config_slideshow_module(Config_Item *ci);
+void _slide_config_updated(const char *id);
+extern Config *slide_config;
 
 #endif
===================================================================
RCS file: /cvs/e/e_modules/slideshow/module_icon.png,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
Binary files /tmp/cvsJKCZzx and /tmp/cvsUpxxgP differ
===================================================================
RCS file: /cvs/e/e_modules/slideshow/slideshow.edc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- slideshow.edc       11 Apr 2006 14:06:36 -0000      1.4
+++ slideshow.edc       30 May 2006 05:21:01 -0000      1.5
@@ -1,20 +1,86 @@
-images {
+images
+{
    image: "module_icon.png" COMP;
 }
-collections {
-group {
-   name: "modules/slideshow/main";
-   parts {
-      part {
-        name: "eslide";
-        description {
-           state: "default" 0.0;
-           image {
-              normal: "module_icon.png";
-           }
+collections
+{
+   group
+     {
+       name: "modules/slideshow/main";
+       max: 128 128;
+       parts
+         {
+            part
+              {
+                 name: "clip";
+                 type: RECT;
+                 mouse_events: 1;
+                 description
+                   {
+                      state: "default" 0.0;
+                      rel1
+                        {
+                           relative: 0.0 0.0;
+                           offset: 0 0;
+                        }
+                      rel2
+                        {
+                           relative: 1.0 1.0;
+                           offset: -1 -1;
+                        }
+                   }
+              }
+            part
+              {
+                 name: "item";
+                 clip_to: "clip";
+                 type: SWALLOW;
+                 mouse_events: 1;
+                 description
+                   {
+                      state: "default" 0.0;
+                      color: 0 0 0 0;
+                      rel1
+                        {
+                           relative: 0.0 0.0;
+                           offset: 0 0;
+                        }
+                      rel2
+                        {
+                           relative: 1.0 0.70;
+                           offset: -1 -1;
+                        }
+                      color: 255 255 255 255;
+                   }
+              }
+            part
+              {
+                 name: "slideshow";
+                 type: IMAGE;
+                 mouse_events: 1;
+                 clip_to: "clip";
+                 description
+                   {
+                      state: "default" 0.0;
+                      //aspect: 1.0 1.0;
+                      rel1
+                        {
+                           relative: 0.0 0.0;
+                           offset: 0 0;
+                        }
+                      rel2
+                        {
+                           relative: 1.0 1.0;
+                           offset: -1 -1;
+                        }
 
-        }
-      }
-}
-}
+                      image
+                        {
+                           normal: "module_icon.png";
+                        }
+                      color: 255 255 255 255;
+                   }
+              }
+         }
+     }
 }




_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to