Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/start


Modified Files:
        Makefile.am e_mod_main.c e_mod_main.h 
Removed Files:
        e_mod_config.c e_mod_config.h 


Log Message:


for now - people will miss their "start" module - as it has now been ursurped
for gadcon testing :) mind u - it's a HELL of a lot smaller now :)

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/start/Makefile.am,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- Makefile.am 20 Jan 2006 04:04:14 -0000      1.2
+++ Makefile.am 10 Feb 2006 09:26:12 -0000      1.3
@@ -20,9 +20,7 @@
 pkgdir                 = 
$(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH)
 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_main.h
 module_la_LIBADD       = @e_libs@ @dlopen_libs@
 module_la_LDFLAGS      = -module -avoid-version
 module_la_DEPENDENCIES = $(top_builddir)/config.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/start/e_mod_main.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e_mod_main.c        3 Feb 2006 20:17:41 -0000       1.15
+++ e_mod_main.c        10 Feb 2006 09:26:12 -0000      1.16
@@ -3,442 +3,190 @@
  */
 #include "e.h"
 #include "e_mod_main.h"
-#include "e_mod_config.h"
-//#include "e_int_menus.h"
 
-static Start *_start_new(void);
-static Start_Face *_start_face_new(Start *s, E_Container *con);
-static void _start_free(Start *e);
-static void _start_face_free(Start_Face *face);
-static void _start_face_disable(Start_Face *e);
-static void _start_config_menu_new(Start *e);
-static void _start_face_menu_new(Start_Face *face);
-static void _start_face_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi);
-static void _start_face_cb_gmc_change(void *data, E_Gadman_Client *gmc, 
E_Gadman_Change change);
-static void _start_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, 
void *event_info);
-static void _start_menu_cb_post_deactivate(void *data, E_Menu *m);
-
-static void _start_face_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item 
*mi);
-static void _start_cb_update_policy(void *data);
-
-static int button_count;
-static E_Config_DD *conf_edd;
-static E_Config_DD *conf_face_edd;
-
-EAPI E_Module_Api e_modapi = 
+/***************************************************************************/
+/**/
+/* gadcon requirements */
+static E_Gadcon_Client *_gc_init(E_Gadcon *gc, char *name, char *id);
+static void _gc_shutdown(E_Gadcon_Client *gcc);
+static void _gc_orient(E_Gadcon_Client *gcc);
+/* and actually define the gadcon class that this module provides (just 1) */
+static const E_Gadcon_Client_Class _gadcon_class =
 {
-   E_MODULE_API_VERSION,
-     "Start"
+   GADCON_CLIENT_CLASS_VERSION,
+     "start",
+     {
+       _gc_init, _gc_shutdown, _gc_orient
+     }
 };
+/**/
+/***************************************************************************/
 
-EAPI void *
-e_modapi_init(E_Module *m)
-{
-   Start *e;
-   
-   /* Create the button */
-   e = _start_new();
-   m->config_menu = e->config_menu;
-   return e;
-}
-
-EAPI int
-e_modapi_shutdown(E_Module *m)
-{
-   Start *e;
-
-   if (m->config_menu) m->config_menu = NULL;
-   
-   e = m->data;
-   if (e) _start_free(e);
-   return 1;
-}
-
-EAPI int
-e_modapi_save(E_Module *m)
-{
-   Start *e;
-   
-   e = m->data;
-   e_config_domain_save("module.start", conf_edd, e->conf);
-   
-   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;
-}
+/***************************************************************************/
+/**/
+/* actual module specifics */
 
-EAPI int
-e_modapi_about(E_Module *m)
-{
-   e_module_dialog_show(_("Enlightenment Start Module"),
-                       _("Experimental Button module for E17"));
-   return 1;
-}
+typedef struct _Instance Instance;
 
-int
-e_modapi_config(E_Module *m)
+struct _Instance
 {
-   Start *s;
-   Start_Face *face;
+   E_Gadcon_Client *gcc;
+   Evas_Object     *o_button;
+   E_Menu          *main_menu;
+};
 
-   s = m->data;
-   if (!s) return 0;
-   if (!s->faces) return 0;
-  
-   face = s->faces->data;
-   if (!face) return 0;
-   
-   _config_start_module(e_container_current_get(e_manager_current_get()), s);
-   return 1;
-}
+static void _button_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
+static void _menu_cb_post(void *data, E_Menu *m);
 
-static Start *
-_start_new(void)
+static E_Gadcon_Client *
+_gc_init(E_Gadcon *gc, char *name, char *id)
 {
-   Start *e;
-   Evas_List *managers, *l, *l2, *cl;
-   E_Menu_Item *mi;
-   
-   button_count = 0;
-   e = E_NEW(Start, 1);
-   if (!e) return NULL;
-   
-   conf_face_edd = E_CONFIG_DD_NEW("Start_Config_Face", Config_Face);
-#undef T
-#undef D
-#define T Config_Face
-#define D conf_face_edd
-   E_CONFIG_VAL(D, T, enabled, UCHAR);
-
-   conf_edd = E_CONFIG_DD_NEW("Start_Config", Config);
-#undef T
-#undef D
-#define T Config
-#define D conf_edd
-   E_CONFIG_LIST(D, T, faces, conf_face_edd);
-   E_CONFIG_VAL(D, T, allow_overlap, INT);
-   
-   e->conf = e_config_domain_load("module.start", conf_edd);
-   if (!e->conf)
-     {
-       e->conf = E_NEW(Config, 1);
-       e->conf->allow_overlap = 0;
-     }
-   E_CONFIG_LIMIT(e->conf->allow_overlap, 0, 1);
-   
-   _start_config_menu_new(e);
-   
-   managers = e_manager_list();
-   cl = e->conf->faces;
-   for (l = managers; l; l = l->next)
-     {
-       E_Manager *man;
-       
-       man = l->data;
-       for (l2 = man->containers; l2; l2 = l2->next)
-         {
-            E_Container *con;
-            Start_Face *face;
-            
-            con = l2->data;
-            face = _start_face_new(e, con);
-            if (face)
-              {
-                 face->start = e;
-                 e->faces = evas_list_append(e->faces, face);
-                 /* Config */
-                 if (!cl)
-                   {
-                      face->conf = E_NEW(Config_Face, 1);
-                      face->conf->enabled = 1;
-                      e->conf->faces = evas_list_append(e->conf->faces, 
face->conf);
-                   }
-                 else
-                   {
-                      face->conf = cl->data;
-                      cl = cl->next;
-                   }
-                 
-                 /* Menu */
-                 /* This menu must be initialized after conf */
-                 _start_face_menu_new(face);
-
-                 mi = e_menu_item_new(e->config_menu);
-                 e_menu_item_label_set(mi, _("Configuration"));
-                 e_menu_item_callback_set(mi, _start_face_cb_menu_configure, 
face);
-                 
-                 mi = e_menu_item_new(e->config_menu);
-                 e_menu_item_label_set(mi, con->name);
-                 
-                 e_menu_item_submenu_set(mi, face->menu);
-                 
-                 /* Setup */
-                 if (!face->conf->enabled) _start_face_disable(face);
-              }
-         }
-     }
-   return e;
-}
-
-static Start_Face *
-_start_face_new(Start *s, E_Container *con)
-{
-   Start_Face *face;
    Evas_Object *o;
-   E_Gadman_Policy policy;
-   
-   face = E_NEW(Start_Face, 1);
-   if (!face) return NULL;
-   
-   face->con = con;
-   e_object_ref(E_OBJECT(con));
+   E_Gadcon_Client *gcc;
+   Instance *inst;
    
-   evas_event_freeze(con->bg_evas);
-   o = edje_object_add(con->bg_evas);
-   face->button_object = o;
+   printf("CREATE START GADCON %s %s\n", name, id);
+   inst = E_NEW(Instance, 1);
    
+   o = edje_object_add(gc->evas);
    e_theme_edje_object_set(o, "base/theme/modules/start", 
"modules/start/main");
    edje_object_signal_emit(o, "passive", "");
-   evas_object_show(o);
    
-   o = evas_object_rectangle_add(con->bg_evas);
-   face->event_object = o;
-   evas_object_layer_set(o, 2);
-   evas_object_repeat_events_set(o, 1);
-   evas_object_color_set(o, 0, 0, 0, 0);
-   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, 
_start_face_cb_mouse_down, face);
-   evas_object_show(o);
+   gcc = e_gadcon_client_new(gc, name, id, o);
+   gcc->data = inst;
    
-   face->gmc = e_gadman_client_new(con->gadman);
-   e_gadman_client_domain_set(face->gmc, "module.start", button_count++);
-
-   policy = E_GADMAN_POLICY_ANYWHERE |
-           E_GADMAN_POLICY_HMOVE |
-           E_GADMAN_POLICY_VMOVE |
-           E_GADMAN_POLICY_HSIZE |
-           E_GADMAN_POLICY_VSIZE;
-
-   if (s->conf->allow_overlap == 0)
-     policy &= ~E_GADMAN_POLICY_ALLOW_OVERLAP;
-   else
-     policy |= E_GADMAN_POLICY_ALLOW_OVERLAP;
-
-   e_gadman_client_policy_set(face->gmc, policy);
-
-   e_gadman_client_min_size_set(face->gmc, 4, 4);
-   e_gadman_client_max_size_set(face->gmc, 512, 512);
-   e_gadman_client_auto_size_set(face->gmc, 40, 40);
-   e_gadman_client_align_set(face->gmc, 0.0, 1.0);
-   e_gadman_client_aspect_set(face->gmc, 1.0, 1.0);
-   e_gadman_client_resize(face->gmc, 40, 40);
-   e_gadman_client_change_func_set(face->gmc, _start_face_cb_gmc_change, face);
-   e_gadman_client_load(face->gmc);
-   
-   evas_event_thaw(con->bg_evas);
+   inst->gcc = gcc;
+   inst->o_button = o;
+   inst->main_menu = NULL;
    
-   return face;
+   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN,
+                                 _button_cb_mouse_down, inst);
+   /* FIXME: add callback to resize - and based off one dimension, request
+    * another to be the same */
+   e_gadcon_client_size_request(gcc, 32, 32);
+   e_gadcon_client_min_size_set(gcc, 16, 16);
+   return gcc;
 }
-
+    
 static void
-_start_face_menu_new(Start_Face *face)
+_gc_shutdown(E_Gadcon_Client *gcc)
 {
-   E_Menu *mn;
-   E_Menu_Item *mi;
-   
-   mn = e_menu_new();
-   face->menu = mn;
-   
-   /* Enabled */
-   /*
-    mi = e_menu_item_new(mn);
-    e_menu_item_label_set(mi, _("Enabled"));
-    e_menu_item_check_set(mi, 1);
-    if (face->conf->enabled) e_menu_item_toggle_set(mi, 1);
-    e_menu_item_callback_set(mi, _clock_face_cb_menu_enabled, face);
-    */
-   
-   /* Edit */
-   mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, _("Configuration"));
-   e_menu_item_callback_set(mi, _start_face_cb_menu_configure, face);
-
-   mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, _("Edit Mode"));
-   e_menu_item_callback_set(mi, _start_face_cb_menu_edit, face);
+   Instance *inst;
    
+   inst = gcc->data;
+   free(inst);
 }
-
+    
 static void
-_start_free(Start *e)
+_gc_orient(E_Gadcon_Client *gcc)
 {
-   Evas_List *list;
-   
-   E_CONFIG_DD_FREE(conf_edd);
-   E_CONFIG_DD_FREE(conf_face_edd);
-   
-   for (list = e->faces; list; list = list->next)
-     _start_face_free(list->data);
-   evas_list_free(e->faces);
+   Instance *inst;
    
-   e_object_del(E_OBJECT(e->config_menu));
-   
-   evas_list_free(e->conf->faces);
-   free(e->conf);
-   free(e);
-}
-
-static void
-_start_face_free(Start_Face *face)
-{
-   e_object_unref(E_OBJECT(face->con));
-   e_object_del(E_OBJECT(face->gmc));
-   evas_object_del(face->button_object);
-   evas_object_del(face->event_object);
-   e_object_del(E_OBJECT(face->menu));
-   if (face->main_menu) e_object_del(E_OBJECT(face->main_menu));
-
-   free(face->conf);
-   free(face);
-   button_count--;
-}
-
-static void
-_start_config_menu_new(Start *e)
-{
-   e->config_menu = e_menu_new();
-}
-
-static void
-_start_face_disable(Start_Face *e)
-{
-   e->conf->enabled = 0;
-   evas_object_hide(e->button_object);
-   evas_object_hide(e->event_object);
-   e_config_save_queue();
+   inst = gcc->data;
+   printf("OREINT to %i\n", gcc->gadcon->orient);
 }
+/**/
+/***************************************************************************/
 
+/***************************************************************************/
+/**/
 static void
-_start_face_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change 
change)
+_button_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
-   Start_Face *e;
-   Evas_Coord x, y, w, h;
+   Instance *inst;
+   Evas_Event_Mouse_Down *ev;
    
-   e = data;
-   switch (change)
+   inst = data;
+   ev = event_info;
+   if (ev->button == 1)
      {
-      case E_GADMAN_CHANGE_MOVE_RESIZE:
-       e_gadman_client_geometry_get(e->gmc, &x, &y, &w, &h);
-       evas_object_move(e->button_object, x, y);
-       evas_object_move(e->event_object, x, y);
-       evas_object_resize(e->button_object, w, h);
-       evas_object_resize(e->event_object, w, h);
-       break;
-      case E_GADMAN_CHANGE_RAISE:
-       evas_object_raise(e->button_object);
-       evas_object_raise(e->event_object);
-       break;
-      case E_GADMAN_CHANGE_EDGE:
-      case E_GADMAN_CHANGE_ZONE:
-       /* FIXME: Must we do something here? */
-       break;
+       Evas_Coord x, y, w, h;
+
+       /* FIXME: need a way of getting screen-relative coords */
+       evas_object_geometry_get(inst->o_button, &x, &y, &w, &h); 
+       if (!inst->main_menu)
+         inst->main_menu = e_int_menus_main_new();
+       if (inst->main_menu)
+         {
+            e_menu_post_deactivate_callback_set(inst->main_menu,
+                                                _menu_cb_post,
+                                                inst);
+            /* FIXME: need a way of getting gadcon zone */
+            e_menu_activate_mouse(inst->main_menu,
+                                  
e_util_zone_current_get(e_manager_current_get()),
+                                  x, y, w, h,
+                                  E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
+            edje_object_signal_emit(inst->o_button, "active", "");
+            evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button, 
EVAS_BUTTON_NONE, ev->timestamp, NULL);
+         }
      }
 }
 
 static void
-_start_face_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi)
+_menu_cb_post(void *data, E_Menu *m)
 {
-   Start_Face *face;
+   Instance *inst;
    
-   face = data;
-   e_gadman_mode_set(face->gmc->gadman, E_GADMAN_MODE_EDIT);
-}
+   inst = data;
+   if (!inst->main_menu) return;
+   edje_object_signal_emit(inst->o_button, "passive", "");
+   e_object_del(E_OBJECT(inst->main_menu));
+   inst->main_menu = NULL;
+}
+/**/
+/***************************************************************************/
+
+/***************************************************************************/
+/**/
+/* module setup */
+EAPI E_Module_Api e_modapi = 
+{
+   E_MODULE_API_VERSION,
+     "Start"
+};
 
-static void
-_start_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void 
*event_info)
+EAPI void *
+e_modapi_init(E_Module *m)
 {
-   Start_Face *face;
-   Evas_Event_Mouse_Down *ev;
-   
-   face = data;
-   ev = event_info;
-   if (ev->button == 3)
-     {
-       e_menu_activate_mouse(face->menu, e_zone_current_get(face->con),
-                             ev->output.x, ev->output.y, 1, 1, 
-                             E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
-       e_util_container_fake_mouse_up_all_later(face->con);
-     }
-   else if (ev->button == 1)
-     {
-       Evas_Coord x, y, w, h;
-       
-        e_gadman_client_geometry_get(face->gmc, &x, &y, &w, &h);
-       if (!face->main_menu)
-         face->main_menu = e_int_menus_main_new();
-       e_menu_post_deactivate_callback_set(face->main_menu, 
_start_menu_cb_post_deactivate, face);
-       e_menu_activate_mouse(face->main_menu, e_zone_current_get(face->con),
-                             x, y, w, h,
-                             E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
-       e_util_container_fake_mouse_up_all_later(face->con);
-       edje_object_signal_emit(face->button_object, "active", "");
-     }
+   e_gadcon_provider_register(&_gadcon_class);
+   return NULL;
 }
 
-static void
-_start_menu_cb_post_deactivate(void *data, E_Menu *m)
+EAPI int
+e_modapi_shutdown(E_Module *m)
 {
-   Start_Face *face;
-   
-   face = data;
-   if (!face->main_menu) return;
-   edje_object_signal_emit(face->button_object, "passive", "");
-   e_object_del(E_OBJECT(face->main_menu));
-   face->main_menu = NULL;
+   e_gadcon_provider_unregister(&_gadcon_class);
+   return 1;
 }
 
-void 
-_start_cb_config_updated(void *data)
+EAPI int
+e_modapi_save(E_Module *m)
 {
-   _start_cb_update_policy(data);
+   return 1;
 }
 
-void
-_start_face_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi)
+EAPI int
+e_modapi_info(E_Module *m)
 {
-   Start_Face *face;
-
-   face = (Start_Face*)data;
-   if (!face) return;
-   _config_start_module(face->con, face->start);
+   char buf[4096];
+   
+   snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
+   m->icon_file = strdup(buf);
+   return 1;
 }
 
-static void 
-_start_cb_update_policy(void *data)
+EAPI int
+e_modapi_about(E_Module *m)
 {
-   Start     *s;
-   Start_Face *sf;
-   Evas_List   *l;
-   E_Gadman_Policy policy;
-
-   s = data;
-   for (l = s->faces; l; l = l->next)
-     {
-       sf = l->data;
-       policy = sf->gmc->policy;
-
-       if (s->conf->allow_overlap == 0)
-         policy &= E_GADMAN_POLICY_ALLOW_OVERLAP;
-       else
-         policy |= E_GADMAN_POLICY_ALLOW_OVERLAP;
-       e_gadman_client_policy_set(sf->gmc , policy);
-     }
+   e_module_dialog_show(_("Enlightenment Start Module"),
+                       _("Experimental Button module for E17"));
+   return 1;
 }
 
+int
+e_modapi_config(E_Module *m)
+{
+   return 0;
+}
+/**/
+/***************************************************************************/
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/start/e_mod_main.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_mod_main.h        20 Jan 2006 11:14:11 -0000      1.6
+++ e_mod_main.h        10 Feb 2006 09:26:12 -0000      1.7
@@ -1,45 +1,7 @@
 #ifndef E_MOD_MAIN_H
 #define E_MOD_MAIN_H
 
-typedef struct _Config      Config;
-typedef struct _Config_Face Config_Face;
-typedef struct _Start       Start;
-typedef struct _Start_Face  Start_Face;
-
-struct _Config
-{
-   Evas_List *faces;
-   int      allow_overlap;
-};
-
-struct _Config_Face
-{
-   unsigned char enabled;
-};
-
-struct _Start
-{
-   Evas_List   *faces;
-   E_Menu      *config_menu;
-   
-   Config      *conf;
-};
-
-struct _Start_Face
-{
-   E_Container *con;
-   E_Menu      *menu;
-   E_Menu      *main_menu;
-   Start       *start;
-   
-   Config_Face *conf;
-   
-   Evas_Object *button_object;
-   Evas_Object *event_object;
-   
-   E_Gadman_Client *gmc;
-};
-
+/* standard module api calls e looks for */
 EAPI extern E_Module_Api e_modapi;
 
 EAPI void *e_modapi_init     (E_Module *m);
@@ -49,6 +11,4 @@
 EAPI int   e_modapi_about    (E_Module *m);
 EAPI int   e_modapi_config   (E_Module *m);
 
-void  _start_cb_config_updated(void *data);
-
 #endif




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to