e: add an action for clock module to show calendar popup.

SVN revision: 60041
This commit is contained in:
Cedric BAIL 2011-06-07 14:34:24 +00:00
parent 3b5627d192
commit 2b0f414f2b
1 changed files with 59 additions and 1 deletions

View File

@ -50,6 +50,7 @@ Config *clock_cfg = NULL;
static E_Config_DD *clock_cfg_edd = NULL;
static Eina_List *clock_instances = NULL;
static E_Action *act = NULL;
static void
_clear_timestrs(Instance *inst)
@ -538,6 +539,52 @@ _gc_id_new(E_Gadcon_Client_Class *client_class __UNUSED__)
return _gadcon_class.name;
}
static void
_e_mod_action(const char *params)
{
Eina_List *l;
Instance *inst;
if (!params) return ;
if (strcmp(params, "show_calendar")) return ;
EINA_LIST_FOREACH(clock_instances, l, inst)
if (inst->popup)
_clock_popup_free(inst);
else
_clock_popup_new(inst);
}
static void
_e_mod_action_cb_edge(E_Object *obj,
const char *params,
E_Event_Zone_Edge *ev)
{
_e_mod_action(params);
}
static void
_e_mod_action_cb(E_Object *obj, const char *params)
{
_e_mod_action(params);
}
static void
_e_mod_action_cb_key(E_Object *obj,
const char *params,
Ecore_Event_Key *ev)
{
_e_mod_action(params);
}
static void
_e_mod_action_cb_mouse(E_Object *obj,
const char *params,
Ecore_Event_Mouse_Button *ev)
{
_e_mod_action(params);
}
/* module setup */
EAPI E_Module_Api e_modapi =
{
@ -572,7 +619,18 @@ e_modapi_init(E_Module *m)
clock_cfg->show_seconds = 1;
e_config_save_queue();
}
act = e_action_add("clock");
if (act)
{
act->func.go = _e_mod_action_cb;
act->func.go_key = _e_mod_action_cb_key;
act->func.go_mouse = _e_mod_action_cb_mouse;
act->func.go_edge = _e_mod_action_cb_edge;
e_action_predef_name_set(_("Clock"), _("Show calendar"), "clock", "show_calendar", NULL, 0);
}
clock_module = m;
e_gadcon_provider_register(&_gadcon_class);
return m;