Enlightenment CVS committal
Author : onefang
Project : e_modules
Module : emu
Dir : e_modules/emu/src/modules/emu
Modified Files:
.cvsignore Makefile.am border_props.c border_props.h
e_mod_config.c e_mod_config.h e_mod_main.c e_mod_main.h
module_face.edc
Removed Files:
module_icon.png
Log Message:
* Update for recent gadcon API changes.
* Remove gadman version.
===================================================================
RCS file: /cvs/e/e_modules/emu/src/modules/emu/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- .cvsignore 27 Jan 2006 01:11:05 -0000 1.1
+++ .cvsignore 1 Jun 2006 17:16:42 -0000 1.2
@@ -5,3 +5,4 @@
*.lo
*.la
*.edj
+*.eap
===================================================================
RCS file: /cvs/e/e_modules/emu/src/modules/emu/Makefile.am,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- Makefile.am 5 Feb 2006 04:39:40 -0000 1.4
+++ Makefile.am 1 Jun 2006 17:16:42 -0000 1.5
@@ -9,12 +9,7 @@
# data files for the module
filesdir = $(libdir)/enlightenment/modules/$(MODULE)
-files_DATA = \
-module_edje.edj \
-module_edje.edc \
-module_face.edc \
-module_icon.edc \
-module_icon.png
+files_DATA = module.eap
EXTRA_DIST = $(files_DATA)
@@ -41,10 +36,14 @@
module_la_LDFLAGS = -module -avoid-version
module_la_DEPENDENCIES = $(top_builddir)/config.h
-module_edje.edj: Makefile module_edje.edc module_face.edc module_icon.edc
- $(EDJE_CC) $(EDJE_FLAGS) \
- module_edje.edc \
- module_edje.edj
+module.eap: Makefile module_edje.edc module_face.edc module_icon.edc
+ $(EDJE_CC) $(EDJE_FLAGS) module_edje.edc module.eap
+ enlightenment_eapp module.eap \
+ -set-name "Emu" \
+ -set-generic "gadget" \
+ -set-comment "Experimental generic scriptable module for E17" \
+ -set-exe "enlightenment" \
+ -set-icon-class "emu,gadget"
clean-local:
- rm -rf *.edj *~
+ rm -rf *.eap *~
===================================================================
RCS file: /cvs/e/e_modules/emu/src/modules/emu/border_props.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- border_props.c 20 Mar 2006 11:37:33 -0000 1.4
+++ border_props.c 1 Jun 2006 17:16:42 -0000 1.5
@@ -1,6 +1,3 @@
-/*
- * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
- */
#include "border_props.h"
struct _E_Config_Dialog_Data
@@ -61,7 +58,7 @@
{
int found = 1;
char buf[32];
- char *result = NULL;
+ const char *result = NULL;
buf[0] = '\0';
switch (type)
===================================================================
RCS file: /cvs/e/e_modules/emu/src/modules/emu/border_props.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- border_props.h 20 Mar 2006 11:37:33 -0000 1.2
+++ border_props.h 1 Jun 2006 17:16:42 -0000 1.3
@@ -1,6 +1,3 @@
-/*
- * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
- */
#ifdef E_TYPEDEFS
#else
===================================================================
RCS file: /cvs/e/e_modules/emu/src/modules/emu/e_mod_config.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_mod_config.c 20 Mar 2006 11:37:33 -0000 1.8
+++ e_mod_config.c 1 Jun 2006 17:16:42 -0000 1.9
@@ -4,11 +4,6 @@
struct _E_Config_Dialog_Data
{
- int autofit;
- int follower;
- int iconsize;
- double follow_speed;
- double autoscroll_speed;
};
struct _Cfg_File_Data
@@ -26,7 +21,7 @@
static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
void
-_config_emu_module(E_Container *con, Emu *emu)
+_config_emu_module(E_Container *con, Emu_Face *emu_face)
{
E_Config_Dialog *cfd;
E_Config_Dialog_View *v;
@@ -42,40 +37,35 @@
v->advanced.create_widgets = _advanced_create_widgets;
/* Create The Dialog */
- cfd = e_config_dialog_new(con, D_("Emu Configuration"), NULL, 0, v, emu);
- emu->config_dialog = cfd;
+ cfd = e_config_dialog_new(con, D_("Emu Configuration"), NULL, 0, v, emu_face);
+ emu_face->config_dialog = cfd;
}
static void
-_fill_data(Emu *emu, E_Config_Dialog_Data *cfdata)
+_fill_data(Emu_Face *emu_face, E_Config_Dialog_Data *cfdata)
{
- cfdata->autofit = (emu->conf->width == EMU_WIDTH_AUTO);
- cfdata->follower = emu->conf->follower;
- cfdata->iconsize = emu->conf->iconsize;
- cfdata->follow_speed = emu->conf->follow_speed;
- cfdata->autoscroll_speed = emu->conf->autoscroll_speed;
}
static void *
_create_data(E_Config_Dialog *cfd)
{
E_Config_Dialog_Data *cfdata;
- Emu *emu;
+ Emu_Face *emu_face;
- emu = cfd->data;
+ emu_face = cfd->data;
cfdata = E_NEW(E_Config_Dialog_Data, 1);
- _fill_data(emu, cfdata);
+ _fill_data(emu_face, cfdata);
return cfdata;
}
static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
- Emu *emu;
+ Emu_Face *emu_face;
- emu = cfd->data;
- emu->config_dialog = NULL;
+ emu_face = cfd->data;
+ emu_face->config_dialog = NULL;
free(cfdata);
}
@@ -85,10 +75,7 @@
Evas_Object *o, *ob;
o = e_widget_list_add(evas, 0, 0);
- ob = e_widget_check_add(evas, _("Show Follower"), &(cfdata->follower));
- e_widget_list_object_append(o, ob, 1, 1, 0.5);
- ob = e_widget_check_add(evas, _("Auto Fit Icons"), &(cfdata->autofit));
- e_widget_list_object_append(o, ob, 1, 1, 0.5);
+
return o;
}
@@ -96,31 +83,16 @@
static int
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
- Emu *emu;
+ Emu_Face *emu_face;
- emu = cfd->data;
+ emu_face = cfd->data;
e_border_button_bindings_ungrab_all();
- if ((cfdata->follower) && (!emu->conf->follower))
- {
- emu->conf->follower = 1;
- }
- else if (!(cfdata->follower) && (emu->conf->follower))
- {
- emu->conf->follower = 0;
- }
-
- if ((cfdata->autofit) && (emu->conf->width == EMU_WIDTH_FIXED))
- {
- emu->conf->width = EMU_WIDTH_AUTO;
- }
- else if (!(cfdata->autofit) && (emu->conf->width == EMU_WIDTH_AUTO))
- {
- emu->conf->width = EMU_WIDTH_FIXED;
- }
+
+
e_border_button_bindings_grab_all();
e_config_save_queue();
- _emu_cb_config_updated(emu);
+ _emu_cb_config_updated(emu_face);
return 1;
}
@@ -131,28 +103,6 @@
o = e_widget_list_add(evas, 0, 0);
- of = e_widget_framelist_add(evas, _("Follower"), 0);
- ob = e_widget_check_add(evas, _("Visible"), &(cfdata->follower));
- e_widget_framelist_object_append(of, ob);
- ob = e_widget_label_add(evas, _("Follow Speed"));
- e_widget_framelist_object_append(of, ob);
- ob = e_widget_slider_add(evas, 1, 0, _("%1.2f px/s"), 0.0, 1.0, 0.01, 0, &(cfdata->follow_speed), NULL, 200);
- e_widget_framelist_object_append(of, ob);
- e_widget_list_object_append(o, of, 1, 1, 0.5);
-
- of = e_widget_framelist_add(evas, _("Icon Size"), 0);
- ob = e_widget_slider_add(evas, 1, 0, _("%3.0f pixels"), 8.0, 128.0, 1.0, 0, NULL, &(cfdata->iconsize), 200);
- e_widget_framelist_object_append(of, ob);
- e_widget_list_object_append(o, of, 1, 1, 0.5);
-
- of = e_widget_framelist_add(evas, _("Width"), 0);
- ob = e_widget_check_add(evas, _("Auto Fit"), &(cfdata->autofit));
- e_widget_framelist_object_append(of, ob);
- ob = e_widget_label_add(evas, _("Autoscroll Speed:"));
- e_widget_framelist_object_append(of, ob);
- ob = e_widget_slider_add(evas, 1, 0, _("%1.2f px/s"), 0.0, 1.0, 0.01, 0, &(cfdata->autoscroll_speed), NULL, 200);
- e_widget_framelist_object_append(of, ob);
- e_widget_list_object_append(o, of, 1, 1, 0.5);
return o;
}
@@ -160,44 +110,15 @@
static int
_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
- Emu *emu;
+ Emu_Face *emu_face;
- emu = cfd->data;
+ emu_face = cfd->data;
e_border_button_bindings_ungrab_all();
- if ((cfdata->follower) && (!emu->conf->follower))
- {
- emu->conf->follower = 1;
- }
- else if (!(cfdata->follower) && (emu->conf->follower))
- {
- emu->conf->follower = 0;
- }
-
- if ((cfdata->autofit) && (emu->conf->width == EMU_WIDTH_FIXED))
- {
- emu->conf->width = EMU_WIDTH_AUTO;
- }
- else if (!(cfdata->autofit) && (emu->conf->width == EMU_WIDTH_AUTO))
- {
- emu->conf->width = EMU_WIDTH_FIXED;
- }
-
- if (cfdata->iconsize != emu->conf->iconsize)
- {
- emu->conf->iconsize = cfdata->iconsize;
- }
- if (cfdata->follow_speed != emu->conf->follow_speed)
- {
- emu->conf->follow_speed = cfdata->follow_speed;
- }
- if (cfdata->autoscroll_speed != emu->conf->autoscroll_speed)
- {
- emu->conf->autoscroll_speed = cfdata->autoscroll_speed;
- }
+
e_border_button_bindings_grab_all();
e_config_save_queue();
- _emu_cb_config_updated(emu);
+ _emu_cb_config_updated(emu_face);
return 1;
}
===================================================================
RCS file: /cvs/e/e_modules/emu/src/modules/emu/e_mod_config.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_mod_config.h 5 Feb 2006 04:39:40 -0000 1.4
+++ e_mod_config.h 1 Jun 2006 17:16:42 -0000 1.5
@@ -3,6 +3,6 @@
#ifndef E_MOD_CONFIG_H
#define E_MOD_CONFIG_H
#include "e_mod_main.h"
-void _config_emu_module(E_Container *con, Emu *emu);
+void _config_emu_module(E_Container *con, Emu_Face *emu_face);
#endif
#endif
===================================================================
RCS file: /cvs/e/e_modules/emu/src/modules/emu/e_mod_main.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- e_mod_main.c 20 Mar 2006 11:37:33 -0000 1.11
+++ e_mod_main.c 1 Jun 2006 17:16:42 -0000 1.12
@@ -1,5 +1,7 @@
#include "e_mod_main.h"
+
+static E_Module *emu_module = NULL;
static const char *_emu_module_edje = NULL;
/* The emu commands. */
@@ -26,11 +28,12 @@
""
};
-/* E_Gadget interface. */
-static void _emu_face_init(void *data, E_Gadget_Face *face);
-static void _emu_face_free(void *data, E_Gadget_Face *face);
-static void _emu_face_change(void *data, E_Gadget_Face *face, E_Gadman_Client *gmc, E_Gadman_Change change);
-static void _emu_face_menu_init(void *data, E_Gadget_Face *face);
+/* gadcon requirements */
+static E_Gadcon_Client *_gc_init(E_Gadcon *gc, const char *name, const char *id, const 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);
/* Parsers. */
static void _emu_parse_command(Emu_Face *emu_face, int command, char *name, int start, int end);
@@ -42,7 +45,7 @@
static void _emu_parse_menu(Emu_Face *emu_face, char *name, int start, int end);
/* Support functions. */
-static void _emu_add_face_menu(E_Gadget_Face *face, E_Menu *menu);
+//static void _emu_add_face_menu(E_Gadget_Face *face, E_Menu *menu);
/* Ecore_Exe callback functions. */
static int _emu_cb_exe_add(void *data, int type, void *ev);
@@ -56,24 +59,7 @@
static void _emu_menu_cb_action(void *data, E_Menu *m, E_Menu_Item *mi);
static Evas_Bool _emu_menus_hash_cb_free(Evas_Hash *hash, const char *key, void *data, void *fdata);
-static void _emu_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi);
-
-/* This is temporary until there is support in E_Gadget for third party modules. */
-void
-emu_gadget_face_theme_set(E_Gadget_Face *face, char *category, char *file, char *group)
-{
- Evas_Object *o;
- Evas_Coord x, y, w, h;
-
- if (!face)
- return;
-
- o = edje_object_add(face->evas);
- face->main_obj = o;
- if (!e_theme_edje_object_set(o, category, group))
- edje_object_file_set(o, file, group);
- evas_object_show(o);
-}
+//static void _emu_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi);
/**
* @defgroup Emu_Module_Basic_Group Emu module API interface
@@ -89,48 +75,17 @@
*/
E_Module_Api e_modapi = {
E_MODULE_API_VERSION, /* Minimal API version this module expects. */
- "Emu" /* Title of this module, or NULL to just use the modules name. */
+ "Emu_gadcon" /* Title of this module, or NULL to just use the modules name. */
};
-/**
- * Setup the main menu icon for the module.
- *
- * It is called when the module is first loaded.
- * You have three choices, an icon edje, an icon file, or do nothing.
- * These three members of E_Module (icon_file, edje_icon_file, and edje_icon_key)
- * will be free()ed for you when the module is unloaded, so you need
- * to malloc() them, strdup() them, or leave them as NULL.
- *
- * @param m a pointer to your E_Module structure.
- * @return 1 for success, 0 for failure, it is currently ignored though.
- * If there is not enough ram to allocate some strings,
- * then not having an icon is the least of our problems.
- * @ingroup Emu_Module_Basic_Group
- */
-EAPI int
-e_modapi_info(E_Module *m)
+static const E_Gadcon_Client_Class _gadcon_class =
{
- char buf[4096];
-
- snprintf(buf, sizeof(buf), "%s/module_edje.edj", e_module_dir_get(m));
- _emu_module_edje = evas_stringshare_add(buf);
-#if 0
- snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
- m->icon_file = strdup(buf); /* Default icon file if no edge is set. */
-#else
- if (_emu_module_edje)
+ GADCON_CLIENT_CLASS_VERSION,
+ "emu",
{
- m->edje_icon_file = strdup(_emu_module_edje); /* Icon edje file. */
- if (m->edje_icon_file)
- {
- snprintf(buf, sizeof(buf), "icon");
- m->edje_icon_key = strdup(buf); /* Icon edje key, defaults to "icon". */
- }
+ _gc_init, _gc_shutdown, _gc_orient, _gc_label, _gc_icon
}
-#endif
-
- return 1;
-}
+};
/**
* Display your modules about dialog.
@@ -144,7 +99,7 @@
{
/* This is a basic module dialog that is provided for simplicity,
* but there is probably nothing stopping you from making a complex dialog. */
- e_module_dialog_show(D_("Enlightenment Emu Module - version " VERSION),
+ e_module_dialog_show(D_("Enlightenment Emu Module - gadcon version " VERSION),
D_
("Experimental generic scriptable module for E17.<br><br>"
"Keep an eye out for the emu's.<br>"
@@ -165,40 +120,18 @@
EAPI void *
e_modapi_init(E_Module *m)
{
- Emu *emu;
+ char buf[4096];
+ emu_module = m;
+ snprintf(buf, sizeof(buf), "%s/module.eap", e_module_dir_get(m));
+ _emu_module_edje = evas_stringshare_add(buf);
/* Set up module's message catalogue */
bindtextdomain(PACKAGE, LOCALEDIR);
bind_textdomain_codeset(PACKAGE, "UTF-8");
- emu = E_NEW(Emu, 1);
+ e_gadcon_provider_register(&_gadcon_class);
- if (emu)
- {
- /*
- * set up gadget -- only module and name are required, but the gadget would
- * be pretty useless without func_face_*
- */
- emu->api.module = m;
- emu->api.name = "emu_gadget";
- emu->api.per_zone = 1;
- emu->api.func_face_init = _emu_face_init;
- emu->api.func_face_free = _emu_face_free;
- emu->api.func_change = _emu_face_change;
- emu->api.func_face_menu_init = _emu_face_menu_init;
- emu->api.data = emu;
- emu->gad = e_gadget_new(&emu->api);
-
- emu->del = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _emu_cb_exe_del, emu->gad);
-
- if ((emu->gad == NULL) || (emu->del == NULL))
- {
- e_modapi_shutdown(m);
- emu = NULL;
- }
- }
-
- return emu;
+ return 1;
}
/**
@@ -213,14 +146,6 @@
EAPI int
e_modapi_save(E_Module *m)
{
- Emu *emu;
-
- emu = m->data;
-
- if (emu)
- {
- }
-
return 1;
}
@@ -238,18 +163,8 @@
EAPI int
e_modapi_shutdown(E_Module *m)
{
- Emu *emu;
-
- emu = m->data;
-
- if (emu)
- {
- if (emu->del)
- ecore_event_handler_del(emu->del);
- if (emu->gad)
- e_object_del(E_OBJECT(emu->gad));
- E_FREE(emu);
- }
+ emu_module = NULL;
+ e_gadcon_provider_unregister(&_gadcon_class);
// FIXME: we really want to do this at unload time.
// if (_emu_module_edje) evas_stringshare_del(_emu_module_edje);
@@ -275,27 +190,34 @@
* @param face a pointer to your E_Gadget_Face.
* @ingroup Emu_Module_Gadget_Group
*/
-static void
-_emu_face_init(void *data, E_Gadget_Face *face)
+static E_Gadcon_Client *
+_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
{
- Emu *emu;
+ E_Gadcon_Client *gcc = NULL;
Emu_Face *emu_face;
-
- emu = data;
-
+
emu_face = E_NEW(Emu_Face, 1);
if (emu_face)
{
- face->data = emu_face;
- emu_face->emu = emu;
- emu_face->face = face;
+ Evas_Object *o;
+
+ o = edje_object_add(gc->evas);
+ if ((!e_theme_edje_object_set(o, "base/theme/modules/emu", "modules/emu/main")) /*&& (_emu_module_edje)*/)
+ edje_object_file_set(o, (char *)_emu_module_edje, "modules/emu/main");
+ edje_object_signal_emit(o, "passive", "");
+
+ gcc = e_gadcon_client_new(gc, name, id, style, o);
+ gcc->data = emu_face;
+ emu_face->gcc = gcc;
+ emu_face->o_button = o;
emu_face->menus = NULL;
emu_face->name = evas_stringshare_add("Emu tester");
emu_face->command = evas_stringshare_add("emu_client");
if (emu_face->command)
{
+ emu_face->del = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _emu_cb_exe_del, emu_face);
emu_face->add = ecore_event_handler_add(ECORE_EXE_EVENT_ADD, _emu_cb_exe_add, emu_face);
emu_face->read = ecore_event_handler_add(ECORE_EXE_EVENT_DATA, _emu_cb_exe_data, emu_face);
emu_face->exe =
@@ -304,14 +226,15 @@
if (!emu_face->exe)
e_module_dialog_show(D_("Enlightenment Emu Module - error"), D_("There is no emu."));
}
- }
- if (_emu_module_edje)
- emu_gadget_face_theme_set(face, "base/theme/modules/emu", (char *)_emu_module_edje, "emu/main");
-
- evas_object_event_callback_add(face->event_obj, EVAS_CALLBACK_MOUSE_DOWN, _emu_face_cb_mouse_down, emu_face);
+ e_gadcon_client_util_menu_attach(gcc);
+ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _emu_face_cb_mouse_down, emu_face);
+ }
+
+ return gcc;
}
+
/**
* Module specific face right click menu creation.
*
@@ -321,28 +244,11 @@
* @param face a pointer to your E_Gadget_Face.
* @ingroup Emu_Module_Gadget_Group
*/
-static void
-_emu_face_menu_init(void *data, E_Gadget_Face *face)
-{
- _emu_add_face_menu(face, face->menu);
-}
-
-/**
- * Module specific face changing.
- *
- * It is called when a face is changed.
- *
- * @param data the pointer you passed to e_gadget_new().
- * @param face a pointer to your E_Gadget_Face.
- * @param gmc a pointer to your E_Gadman_Client.
- * @param change a pointer to your E_Gadman_Change.
- * @ingroup Emu_Module_Gadget_Group
- */
-static void
-_emu_face_change(void *data, E_Gadget_Face *face, E_Gadman_Client *gmc, E_Gadman_Change change)
-{
- printf("change face!\n");
-}
+//static void
+//_emu_face_menu_init(void *data, E_Gadget_Face *face)
+//{
+// _emu_add_face_menu(face, face->menu);
+//}
/**
* Module specific face freeing.
@@ -354,14 +260,11 @@
* @ingroup Emu_Module_Gadget_Group
*/
static void
-_emu_face_free(void *data, E_Gadget_Face *face)
+_gc_shutdown(E_Gadcon_Client *gcc)
{
- Emu *emu;
Emu_Face *emu_face;
- emu = data;
- emu_face = face->data;
-
+ emu_face = gcc->data;
if (emu_face)
{
evas_hash_foreach(emu_face->menus, _emu_menus_hash_cb_free, NULL);
@@ -372,16 +275,45 @@
ecore_event_handler_del(emu_face->read);
if (emu_face->add)
ecore_event_handler_del(emu_face->add);
+ if (emu_face->del)
+ ecore_event_handler_del(emu_face->del);
if (emu_face->exe)
ecore_exe_terminate(emu_face->exe);
if (emu_face->command)
evas_stringshare_del(emu_face->command);
+ evas_object_del(emu_face->o_button);
E_FREE(emu_face);
}
}
+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 _("Emu");
+}
+
+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(emu_module));
+ edje_object_file_set(o, buf, "icon");
+ return o;
+}
+
+
/**
* @defgroup Emu_Module_Parser_Group Emu module command parsers
*
@@ -634,78 +566,43 @@
* @param menu the pointer to your menu.
* @ingroup Emu_Module_Support_Group
*/
-static void
-_emu_add_face_menu(E_Gadget_Face *face, E_Menu *menu)
-{
- E_Menu_Item *mi;
-
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, _("Configuration"));
- e_menu_item_callback_set(mi, _emu_cb_menu_configure, face);
-
- mi = e_menu_item_new(menu);
- e_menu_item_separator_set(mi, 1);
-
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Add face"));
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Remove face"));
-
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Add row"));
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Remove row"));
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Add column"));
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Remove column"));
-
- mi = e_menu_item_new(menu);
- e_menu_item_separator_set(mi, 1);
-
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Transparent"));
- e_menu_item_check_set(mi, 1);
- if (1)
- e_menu_item_toggle_set(mi, 1);
-
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Zoom icons"));
- e_menu_item_check_set(mi, 1);
- if (0)
- e_menu_item_toggle_set(mi, 1);
-
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Stretch bar"));
- e_menu_item_check_set(mi, 1);
- if (0)
- e_menu_item_toggle_set(mi, 1);
-
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, D_("Cling to edge"));
- e_menu_item_check_set(mi, 1);
- if (0)
- e_menu_item_toggle_set(mi, 1);
-
- mi = e_menu_item_new(menu);
- e_menu_item_label_set(mi, _("Follower"));
- e_menu_item_check_set(mi, 1);
- if (0)
- e_menu_item_toggle_set(mi, 1);
-}
-
-static void
-_emu_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi)
-{
- E_Gadget_Face *face;
- Emu_Face *emu_face;
-
- face = data;
- if (!face)
- return;
- emu_face = face->data;
- _config_emu_module(face->con, emu_face->emu);
-}
+//static void
+//_emu_add_face_menu(E_Gadget_Face *face, E_Menu *menu)
+//{
+// E_Menu_Item *mi;
+//
+// mi = e_menu_item_new(menu);
+// e_menu_item_label_set(mi, _("Configuration"));
+// e_menu_item_callback_set(mi, _emu_cb_menu_configure, face);
+//
+// mi = e_menu_item_new(menu);
+// e_menu_item_separator_set(mi, 1);
+//
+// mi = e_menu_item_new(menu);
+// e_menu_item_label_set(mi, D_("Add row"));
+// mi = e_menu_item_new(menu);
+// e_menu_item_label_set(mi, D_("Remove row"));
+// mi = e_menu_item_new(menu);
+// e_menu_item_label_set(mi, D_("Add column"));
+// mi = e_menu_item_new(menu);
+// e_menu_item_label_set(mi, D_("Remove column"));
+//
+// if (0)
+// e_menu_item_toggle_set(mi, 1);
+//}
+
+//static void
+//_emu_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi)
+//{
+// E_Gadget_Face *face;
+// Emu_Face *emu_face;
+//
+// face = data;
+// if (!face)
+// return;
+// emu_face = face->data;
+// _config_emu_module(face->con, emu_face->emu);
+//}
/**
* @defgroup Emu_Module_Exe_Group Emu module Ecore_Exe interface
@@ -731,10 +628,6 @@
static int
_emu_cb_exe_add(void *data, int type, void *ev)
{
- Emu *emu;
-
- emu = data;
-
return 1;
}
@@ -753,29 +646,17 @@
static int
_emu_cb_exe_del(void *data, int type, void *ev)
{
- if (E_OBJECT(data)->type == (E_GADGET_TYPE))
- {
- E_Gadget *gad;
- Ecore_Exe_Event_Del *event;
- Evas_List *l;
-
- gad = data;
- event = ev;
- for (l = gad->faces; l; l = l->next) /* Search for the matching face. */
- {
- E_Gadget_Face *face;
- Emu_Face *emu_face;
+ Ecore_Exe_Event_Del *event;
+ Emu_Face *emu_face;
- face = l->data;
- emu_face = face->data;
- if ((emu_face->exe == event->exe) && (ecore_exe_data_get(event->exe) == emu_face))
- { /* This is the event we are interested in. */
- emu_face->exe = NULL;
+ emu_face = data;
+ event = ev;
+ if ((emu_face->exe == event->exe) && (ecore_exe_data_get(event->exe) == emu_face))
+ { /* This is the event we are interested in. */
+ emu_face->exe = NULL;
- printf("EMU CLIENT DEL - \n");
- return 0;
- }
- }
+ printf("EMU CLIENT DEL - \n");
+ return 0;
}
return 1;
@@ -941,27 +822,82 @@
emu_face = data;
ev = event_info;
- if ((ev->button == 3) && emu_face->face->menu)
- { /* Right clirk configuration menu. */
- e_menu_activate_mouse(emu_face->face->menu,
- e_zone_current_get(emu_face->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(emu_face->face->con);
- }
- else if (ev->button == 1)
+// if ((ev->button == 3) && emu_face->face->menu)
+// { /* Right click configuration menu. */
+// e_menu_activate_mouse(emu_face->face->menu,
+// e_zone_current_get(emu_face->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(emu_face->face->con);
+// }
+ /*else*/ if (ev->button == 1)
{ /* Left click default menu. */
Easy_Menu *menu;
+ Evas_Coord x, y, w, h;
+ int cx, cy, cw, ch;
+
+ evas_object_geometry_get(emu_face->o_button, &x, &y, &w, &h);
+ e_gadcon_canvas_zone_geometry_get(emu_face->gcc->gadcon, &cx, &cy, &cw, &ch);
+ x += cx;
+ y += cy;
/* Find the default menu, if there is one. */
menu = evas_hash_find(emu_face->menus, "");
if (menu && menu->valid)
{
+ int dir;
+
e_menu_post_deactivate_callback_set(menu->menu->menu, _emu_menu_cb_post_deactivate, emu_face);
- e_menu_activate_mouse(menu->menu->menu,
- e_zone_current_get(emu_face->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(emu_face->face->con);
- edje_object_signal_emit(emu_face->face->main_obj, "active", "");
+ dir = E_MENU_POP_DIRECTION_AUTO;
+ switch (emu_face->gcc->gadcon->orient)
+ {
+ case E_GADCON_ORIENT_TOP:
+ dir = E_MENU_POP_DIRECTION_DOWN;
+ break;
+ case E_GADCON_ORIENT_BOTTOM:
+ dir = E_MENU_POP_DIRECTION_UP;
+ break;
+ case E_GADCON_ORIENT_LEFT:
+ dir = E_MENU_POP_DIRECTION_RIGHT;
+ break;
+ case E_GADCON_ORIENT_RIGHT:
+ dir = E_MENU_POP_DIRECTION_LEFT;
+ break;
+ case E_GADCON_ORIENT_CORNER_TL:
+ dir = E_MENU_POP_DIRECTION_DOWN;
+ break;
+ case E_GADCON_ORIENT_CORNER_TR:
+ dir = E_MENU_POP_DIRECTION_DOWN;
+ break;
+ case E_GADCON_ORIENT_CORNER_BL:
+ dir = E_MENU_POP_DIRECTION_UP;
+ break;
+ case E_GADCON_ORIENT_CORNER_BR:
+ dir = E_MENU_POP_DIRECTION_UP;
+ break;
+ case E_GADCON_ORIENT_CORNER_LT:
+ dir = E_MENU_POP_DIRECTION_RIGHT;
+ break;
+ case E_GADCON_ORIENT_CORNER_RT:
+ dir = E_MENU_POP_DIRECTION_LEFT;
+ break;
+ case E_GADCON_ORIENT_CORNER_LB:
+ dir = E_MENU_POP_DIRECTION_RIGHT;
+ break;
+ case E_GADCON_ORIENT_CORNER_RB:
+ dir = E_MENU_POP_DIRECTION_LEFT;
+ break;
+ case E_GADCON_ORIENT_FLOAT:
+ case E_GADCON_ORIENT_HORIZ:
+ case E_GADCON_ORIENT_VERT:
+ default:
+ dir = E_MENU_POP_DIRECTION_AUTO;
+ break;
+ }
+// e_menu_activate_mouse(menu->menu->menu, e_zone_current_get(emu_face->face->con), ev->output.x, ev->output.y, 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
+ e_menu_activate_mouse(menu->menu->menu, e_util_zone_current_get(e_manager_current_get()), x, y, w, h, dir, ev->timestamp);
+// e_util_container_fake_mouse_up_all_later(emu_face->face->con);
+ edje_object_signal_emit(emu_face->o_button, "active", "");
+ evas_event_feed_mouse_up(emu_face->gcc->gadcon->evas, ev->button, EVAS_BUTTON_NONE, ev->timestamp, NULL);
}
}
}
@@ -979,7 +915,7 @@
Emu_Face *emu_face;
emu_face = data;
- edje_object_signal_emit(emu_face->face->main_obj, "passive", "");
+ edje_object_signal_emit(emu_face->o_button, "passive", "");
}
/**
===================================================================
RCS file: /cvs/e/e_modules/emu/src/modules/emu/e_mod_main.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- e_mod_main.h 20 Mar 2006 11:37:33 -0000 1.7
+++ e_mod_main.h 1 Jun 2006 17:16:42 -0000 1.8
@@ -1,4 +1,5 @@
#include "e.h"
+#include "border_props.h"
#include "easy_menu.h"
#include "e_mod_config.h"
#include "config.h"
@@ -17,11 +18,6 @@
struct _Config
{
char *appdir;
- int follower;
- double follow_speed;
- double autoscroll_speed;
- int iconsize;
- int width;
Evas_List *emus;
};
@@ -30,30 +26,16 @@
unsigned char enabled;
};
-typedef struct _Emu Emu;
-struct _Emu
-{
- E_Gadget_Api api;
- E_Gadget *gad;
-
- Ecore_Event_Handler *del;
-
-// Evas_List *bars;
- E_Menu *config_menu;
-
- Config *conf;
- E_Config_Dialog *config_dialog;
-};
-
typedef struct _Emu_Face Emu_Face;
struct _Emu_Face
{
- Emu *emu;
- E_Gadget_Face *face;
+ E_Gadcon_Client *gcc;
+ Evas_Object *o_button;
const char *name;
const char *command;
Ecore_Exe *exe;
+ Ecore_Event_Handler *del;
Ecore_Event_Handler *add;
Ecore_Event_Handler *read;
@@ -64,6 +46,11 @@
Ecore_Exe_Event_Data_Line *lines; /**< a NULL terminated array of line data if line buffered */
Evas_Hash *menus;
+
+ E_Menu *config_menu;
+
+ Config *conf;
+ E_Config_Dialog *config_dialog;
};
EAPI extern E_Module_Api e_modapi;
@@ -71,8 +58,10 @@
EAPI void *e_modapi_init(E_Module *m);
EAPI int e_modapi_shutdown(E_Module *m);
EAPI int e_modapi_save(E_Module *m);
-EAPI int e_modapi_info(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 _emu_cb_config_updated(void *data);
===================================================================
RCS file: /cvs/e/e_modules/emu/src/modules/emu/module_face.edc,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- module_face.edc 1 Mar 2006 17:31:19 -0000 1.3
+++ module_face.edc 1 Jun 2006 17:16:42 -0000 1.4
@@ -1,6 +1,6 @@
group {
- name: "emu/main";
- max: 304 304;
+ name: "modules/emu/main";
+ max: 128 128;
script {
public is_active;
public is_hilited;
|