List for known actions.

SVN revision: 17051
This commit is contained in:
sebastid 2005-09-28 22:47:07 +00:00 committed by sebastid
parent 23c5b6a8dd
commit 04ca57554b
4 changed files with 78 additions and 1 deletions

View File

@ -1143,8 +1143,37 @@ ACT_FN_GO(restart)
ecore_main_loop_quit();
}
/***************************************************************************/
ACT_FN_GO_SIGNAL(cursor)
{
E_Manager *man = NULL;
E_Border *bd = NULL;
if (!obj) obj = E_OBJECT(e_border_focused_get());
if (!obj) return;
if (obj->type != E_BORDER_TYPE) return;
bd = (E_Border *)obj;
if ((!bd->zone) || (!bd->zone->container)) return;
man = bd->zone->container->manager;
if (!man) return;
if (params)
{
if (!strcmp(params, "end"))
e_pointer_window_default_set(man->pointer, man->root);
else
e_pointer_window_set(man->pointer, man->root, params);
}
else
{
e_pointer_window_default_set(man->pointer, man->root);
}
}
/* local subsystem globals */
static Evas_Hash *actions = NULL;
static Evas_List *action_names = NULL;
/* externally accessible functions */
@ -1228,6 +1257,8 @@ e_actions_init(void)
ACT_GO(restart);
ACT_GO(exit);
ACT_GO_SIGNAL(cursor);
return 1;
}
@ -1235,6 +1266,7 @@ e_actions_init(void)
int
e_actions_shutdown(void)
{
action_names = evas_list_free(action_names);
if (actions)
{
evas_hash_foreach(actions, _e_actions_cb_free, NULL);
@ -1244,6 +1276,12 @@ e_actions_shutdown(void)
return 1;
}
Evas_List *
e_action_name_list(void)
{
return action_names;
}
E_Action *
e_action_add(char *name)
{
@ -1256,6 +1294,7 @@ e_action_add(char *name)
if (!act) return NULL;
act->name = strdup(name);
actions = evas_hash_add(actions, name, act);
action_names = evas_list_append(action_names, name);
}
return act;
}
@ -1275,6 +1314,7 @@ static void
_e_action_free(E_Action *act)
{
actions = evas_hash_del(actions, act->name, act);
action_names = evas_list_remove(action_names, act->name);
E_FREE(act->name);
free(act);
}

View File

@ -31,6 +31,7 @@ struct _E_Action
EAPI int e_actions_init(void);
EAPI int e_actions_shutdown(void);
EAPI Evas_List *e_action_name_list(void);
EAPI E_Action *e_action_add(char *name);
EAPI E_Action *e_action_find(char *name);

View File

@ -6282,7 +6282,6 @@ break;
#endif
#undef HDL
/****************************************************************************/
#define HDL E_IPC_OP_TRANSITION_LIST
#if (TYPE == E_REMOTE_OPTIONS)
@ -6317,3 +6316,37 @@ break;
#endif
#undef HDL
/****************************************************************************/
#define HDL E_IPC_OP_ACTION_LIST
#if (TYPE == E_REMOTE_OPTIONS)
OP("-action-list", 0, "List all available actions", 1, HDL)
#elif (TYPE == E_REMOTE_OUT)
REQ_NULL(HDL);
#elif (TYPE == E_WM_IN)
GENERIC(HDL);
LIST_DATA();
ENCODE(e_action_name_list(), e_ipc_codec_str_list_enc);
SEND_DATA(E_IPC_OP_ACTION_LIST_REPLY);
END_GENERIC();
#elif (TYPE == E_REMOTE_IN)
#endif
#undef HDL
/****************************************************************************/
#define HDL E_IPC_OP_ACTION_LIST_REPLY
#if (TYPE == E_REMOTE_OPTIONS)
#elif (TYPE == E_REMOTE_OUT)
#elif (TYPE == E_WM_IN)
#elif (TYPE == E_REMOTE_IN)
GENERIC(HDL);
LIST();
DECODE(e_ipc_codec_str_list_dec) {
FOR(dat) {
printf("REPLY: \"%s\"\n", (char *)(l->data));
}
FREE_LIST(dat);
}
END_GENERIC();
#endif
#undef HDL

View File

@ -303,3 +303,6 @@
#define E_IPC_OP_TRANSITION_LIST 292
#define E_IPC_OP_TRANSITION_LIST_REPLY 293
#define E_IPC_OP_ACTION_LIST 294
#define E_IPC_OP_ACTION_LIST_REPLY 295