desktop name ipc patch.
slight formatting stuff. SVN revision: 16043
This commit is contained in:
parent
48aae699c2
commit
f1f9673f11
|
@ -353,7 +353,7 @@ ACT_FN_GO(move_absolute)
|
|||
if (cx == '-') x = bd->zone->w - bd->w - x;
|
||||
if (cy == '-') y = bd->zone->h - bd->h - y;
|
||||
|
||||
if (x != bd->x || y != bd->y)
|
||||
if ((x != bd->x) || (y != bd->y))
|
||||
{
|
||||
e_border_move(bd, x, y);
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ static E_Config_DD *_e_config_bindings_mouse_edd = NULL;
|
|||
static E_Config_DD *_e_config_bindings_key_edd = NULL;
|
||||
static E_Config_DD *_e_config_path_append_edd = NULL;
|
||||
static E_Config_DD *_e_config_desktop_bg_edd = NULL;
|
||||
static E_Config_DD *_e_config_desktop_name_edd = NULL;
|
||||
static E_Config_DD *_e_config_remember_edd = NULL;
|
||||
|
||||
/* externally accessible functions */
|
||||
|
@ -81,6 +82,17 @@ e_config_init(void)
|
|||
E_CONFIG_VAL(D, T, desk_y, INT);
|
||||
E_CONFIG_VAL(D, T, file, STR);
|
||||
|
||||
_e_config_desktop_name_edd = E_CONFIG_DD_NEW("E_Config_Desktop_Name", E_Config_Desktop_Name);
|
||||
#undef T
|
||||
#undef D
|
||||
#define T E_Config_Desktop_Name
|
||||
#define D _e_config_desktop_name_edd
|
||||
E_CONFIG_VAL(D, T, container, INT);
|
||||
E_CONFIG_VAL(D, T, zone, INT);
|
||||
E_CONFIG_VAL(D, T, desk_x, INT);
|
||||
E_CONFIG_VAL(D, T, desk_y, INT);
|
||||
E_CONFIG_VAL(D, T, name, STR);
|
||||
|
||||
_e_config_path_append_edd = E_CONFIG_DD_NEW("E_Path_Dir", E_Path_Dir);
|
||||
#undef T
|
||||
#undef D
|
||||
|
@ -211,7 +223,9 @@ e_config_init(void)
|
|||
E_CONFIG_VAL(D, T, config_version, INT); /**/
|
||||
E_CONFIG_VAL(D, T, show_splash, INT); /**/
|
||||
E_CONFIG_VAL(D, T, desktop_default_background, STR); /**/
|
||||
E_CONFIG_VAL(D, T, desktop_default_name, STR); /**/
|
||||
E_CONFIG_LIST(D, T, desktop_backgrounds, _e_config_desktop_bg_edd); /**/
|
||||
E_CONFIG_LIST(D, T, desktop_names, _e_config_desktop_name_edd); /**/
|
||||
E_CONFIG_VAL(D, T, menus_scroll_speed, DOUBLE); /**/
|
||||
E_CONFIG_VAL(D, T, menus_fast_mouse_move_threshhold, DOUBLE); /**/
|
||||
E_CONFIG_VAL(D, T, menus_click_drag_timeout, DOUBLE); /**/
|
||||
|
@ -323,6 +337,7 @@ e_config_init(void)
|
|||
e_config->config_version = E_CONFIG_FILE_VERSION;
|
||||
e_config->show_splash = 1;
|
||||
e_config->desktop_default_background = strdup("");
|
||||
e_config->desktop_default_name = strdup("Desktop %d, %d");
|
||||
e_config->menus_scroll_speed = 1000.0;
|
||||
e_config->menus_fast_mouse_move_threshhold = 300.0;
|
||||
e_config->menus_click_drag_timeout = DEF_MENUCLICK;
|
||||
|
@ -966,6 +981,7 @@ e_config_shutdown(void)
|
|||
E_CONFIG_DD_FREE(_e_config_bindings_key_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_path_append_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_desktop_bg_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_desktop_name_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_remember_edd);
|
||||
return 1;
|
||||
}
|
||||
|
@ -1352,6 +1368,7 @@ _e_config_free(void)
|
|||
}
|
||||
|
||||
E_FREE(e_config->desktop_default_background);
|
||||
E_FREE(e_config->desktop_default_name);
|
||||
E_FREE(e_config->language);
|
||||
E_FREE(e_config->transition_start);
|
||||
E_FREE(e_config->transition_desk);
|
||||
|
|
|
@ -37,6 +37,7 @@ typedef struct _E_Config_Theme E_Config_Theme;
|
|||
typedef struct _E_Config_Binding_Mouse E_Config_Binding_Mouse;
|
||||
typedef struct _E_Config_Binding_Key E_Config_Binding_Key;
|
||||
typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background;
|
||||
typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name;
|
||||
typedef Eet_Data_Descriptor E_Config_DD;
|
||||
|
||||
#else
|
||||
|
@ -59,6 +60,8 @@ struct _E_Config
|
|||
int show_splash;
|
||||
char *desktop_default_background;
|
||||
Evas_List *desktop_backgrounds;
|
||||
char *desktop_default_name;
|
||||
Evas_List *desktop_names;
|
||||
double menus_scroll_speed;
|
||||
double menus_fast_mouse_move_threshhold;
|
||||
double menus_click_drag_timeout;
|
||||
|
@ -182,6 +185,15 @@ struct _E_Config_Desktop_Background
|
|||
char *file;
|
||||
};
|
||||
|
||||
struct _E_Config_Desktop_Name
|
||||
{
|
||||
int container;
|
||||
int zone;
|
||||
int desk_x;
|
||||
int desk_y;
|
||||
char *name;
|
||||
};
|
||||
|
||||
EAPI int e_config_init(void);
|
||||
EAPI int e_config_shutdown(void);
|
||||
|
||||
|
|
118
src/bin/e_desk.c
118
src/bin/e_desk.c
|
@ -31,6 +31,8 @@ e_desk_new(E_Zone *zone, int x, int y)
|
|||
{
|
||||
E_Desk *desk;
|
||||
char name[40];
|
||||
int ok;
|
||||
Evas_List *l;
|
||||
|
||||
E_OBJECT_CHECK_RETURN(zone, NULL);
|
||||
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL);
|
||||
|
@ -41,9 +43,31 @@ e_desk_new(E_Zone *zone, int x, int y)
|
|||
desk->zone = zone;
|
||||
desk->x = x;
|
||||
desk->y = y;
|
||||
snprintf(name, sizeof(name), _("Desktop %d, %d"), x, y);
|
||||
desk->name = strdup(name);
|
||||
|
||||
/* Get current desktop's name */
|
||||
ok = 0;
|
||||
|
||||
for (l = e_config->desktop_names; l; l = l->next)
|
||||
{
|
||||
E_Config_Desktop_Name *cfname;
|
||||
|
||||
cfname = l->data;
|
||||
if ((cfname->container >= 0) &&
|
||||
(zone->container->num != cfname->container)) continue;
|
||||
if ((cfname->zone >= 0) &&
|
||||
(zone->num != cfname->zone)) continue;
|
||||
if ((cfname->desk_x != desk->x) || (cfname->desk_y != desk->y)) continue;
|
||||
desk->name = strdup(cfname->name);
|
||||
ok = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!ok)
|
||||
{
|
||||
snprintf(name, sizeof(name), _(e_config->desktop_default_name), x, y);
|
||||
desk->name = strdup(name);
|
||||
}
|
||||
|
||||
return desk;
|
||||
}
|
||||
|
||||
|
@ -56,6 +80,96 @@ e_desk_name_set(E_Desk *desk, const char *name)
|
|||
desk->name = strdup(name);
|
||||
}
|
||||
|
||||
void
|
||||
e_desk_name_add(int container, int zone, int desk_x, int desk_y, char *name)
|
||||
{
|
||||
E_Config_Desktop_Name *cfname;
|
||||
|
||||
e_desk_name_del(container, zone, desk_x, desk_y);
|
||||
cfname = E_NEW(E_Config_Desktop_Name, 1);
|
||||
cfname->container = container;
|
||||
cfname->zone = zone;
|
||||
cfname->desk_x = desk_x;
|
||||
cfname->desk_y = desk_y;
|
||||
cfname->name = strdup(name);
|
||||
e_config->desktop_names = evas_list_append(e_config->desktop_names, cfname);
|
||||
}
|
||||
|
||||
void
|
||||
e_desk_name_del(int container, int zone, int desk_x, int desk_y)
|
||||
{
|
||||
Evas_List *l;
|
||||
|
||||
for (l = e_config->desktop_names; l; l = l->next)
|
||||
{
|
||||
E_Config_Desktop_Name *cfname;
|
||||
|
||||
cfname = l->data;
|
||||
if ((cfname->container == container) && (cfname->zone == zone) &&
|
||||
(cfname->desk_x == desk_x) && (cfname->desk_y == desk_y))
|
||||
{
|
||||
e_config->desktop_names = evas_list_remove_list(e_config->desktop_names, l);
|
||||
IF_FREE(cfname->name);
|
||||
free(cfname);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
e_desk_name_update(void)
|
||||
{
|
||||
Evas_List *m, *c, *z, *d, *l;
|
||||
E_Manager *man;
|
||||
E_Container *con;
|
||||
E_Zone *zone;
|
||||
E_Desk *desk;
|
||||
int d_x, d_y, ok;
|
||||
char name[40];
|
||||
|
||||
for (m = e_manager_list(); m; m = m->next)
|
||||
{
|
||||
man = m->data;
|
||||
for (c = man->containers; c; c = c->next)
|
||||
{
|
||||
con = c->data;
|
||||
for (z = con->zones; z; z = z->next)
|
||||
{
|
||||
zone = z->data;
|
||||
for (d_x = 0; d_x < zone->desk_x_count; d_x++)
|
||||
{
|
||||
for (d_y = 0; d_y < zone->desk_y_count; d_y++)
|
||||
{
|
||||
desk = zone->desks[d_x + zone->desk_x_count * d_y];
|
||||
ok = 0;
|
||||
|
||||
for (l = e_config->desktop_names; l; l = l->next)
|
||||
{
|
||||
E_Config_Desktop_Name *cfname;
|
||||
|
||||
cfname = l->data;
|
||||
if ((cfname->container >= 0) &&
|
||||
(con->num != cfname->container)) continue;
|
||||
if ((cfname->zone >= 0) &&
|
||||
(zone->num != cfname->zone)) continue;
|
||||
if ((cfname->desk_x != d_x) || (cfname->desk_y != d_y)) continue;
|
||||
e_desk_name_set(desk,cfname->name);
|
||||
ok = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!ok)
|
||||
{
|
||||
snprintf(name, sizeof(name), _(e_config->desktop_default_name), d_x, d_y);
|
||||
e_desk_name_set(desk,name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
e_desk_show(E_Desk *desk)
|
||||
{
|
||||
|
|
|
@ -33,6 +33,9 @@ EAPI int e_desk_init(void);
|
|||
EAPI int e_desk_shutdown(void);
|
||||
EAPI E_Desk *e_desk_new(E_Zone *zone, int x, int y);
|
||||
EAPI void e_desk_name_set(E_Desk *desk, const char *name);
|
||||
EAPI void e_desk_name_add(int container, int zone, int desk_x, int desk_y, char *name);
|
||||
EAPI void e_desk_name_del(int container, int zone, int desk_x, int desk_y);
|
||||
EAPI void e_desk_name_update(void);
|
||||
EAPI void e_desk_show(E_Desk *desk);
|
||||
EAPI void e_desk_last_focused_focus(E_Desk *desk);
|
||||
EAPI E_Desk *e_desk_current_get(E_Zone *zone);
|
||||
|
|
|
@ -2981,7 +2981,6 @@ break;
|
|||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define HDL E_IPC_OP_WINLIST_WARP_WHILE_SELECTING_SET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-winlist-warp-while-selecting-set", 1, "Set winlist (alt+tab) warp while selecting policy", 0, HDL)
|
||||
|
@ -4442,6 +4441,72 @@ break;
|
|||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKTOP_NAME_ADD
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-desktop-name-add", 5, "Add a desktop name definition. OPT1 = container no. OPT2 = zone no. OPT3 = desk_x. OPT4 = desk_y. OPT5 = desktop name", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_4INT_2STRING_START(HDL);
|
||||
REQ_4INT_2STRING_END(atoi(params[0]), atoi(params[1]), atoi(params[2]), atoi(params[3]), params[4], "", HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
INT4_STRING2(v, HDL);
|
||||
e_desk_name_add(v->val1, v->val2, v->val3, v->val4, v->str1);
|
||||
e_desk_name_update();
|
||||
SAVE;
|
||||
END_INT4_STRING2(v);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKTOP_NAME_DEL
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-desktop-name-del", 4, "Delete a desktop name definition. OPT1 = container no. OPT2 = zone no. OPT3 = desk_x. OPT4 = desk_y.", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_4INT_2STRING_START(HDL);
|
||||
REQ_4INT_2STRING_END(atoi(params[0]), atoi(params[1]), atoi(params[2]), atoi(params[3]), "", "", HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
INT4_STRING2(v, HDL);
|
||||
e_desk_name_del(v->val1, v->val2, v->val3, v->val4);
|
||||
e_desk_name_update();
|
||||
SAVE;
|
||||
END_INT4_STRING2(v);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKTOP_NAME_LIST
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-desktop-name-list", 0, "List all current desktop name definitions", 1, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_NULL(HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
SEND_INT4_STRING2_LIST(e_config->desktop_names, E_Config_Desktop_Name, cfname, v, HDL);
|
||||
v->val1 = cfname->container;
|
||||
v->val2 = cfname->zone;
|
||||
v->val3 = cfname->desk_x;
|
||||
v->val4 = cfname->desk_y;
|
||||
v->str1 = cfname->name;
|
||||
v->str2 = "";
|
||||
END_SEND_INT4_STRING2_LIST(v, E_IPC_OP_DESKTOP_NAME_LIST_REPLY);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKTOP_NAME_LIST_REPLY
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
#elif (TYPE == E_WM_IN)
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
INT4_STRING2_LIST(v, HDL);
|
||||
printf("REPLY: BG CONTAINER=%i ZONE=%i DESK_X=%i DESK_Y=%i NAME=\"%s\"\n",
|
||||
v->val1, v->val2, v->val3, v->val4, v->str1);
|
||||
END_INT4_STRING2_LIST(v);
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
#if 0
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -218,3 +218,7 @@
|
|||
#define E_IPC_OP_PROFILE_SET 218
|
||||
#define E_IPC_OP_PROFILE_GET 219
|
||||
#define E_IPC_OP_PROFILE_GET_REPLY 220
|
||||
#define E_IPC_OP_DESKTOP_NAME_ADD 221
|
||||
#define E_IPC_OP_DESKTOP_NAME_DEL 222
|
||||
#define E_IPC_OP_DESKTOP_NAME_LIST 223
|
||||
#define E_IPC_OP_DESKTOP_NAME_LIST_REPLY 224
|
||||
|
|
Loading…
Reference in New Issue