Always the same thing.... patch is up to date, cleaner and override previous ones.
-- Sébastien HOUZE [EMAIL PROTECTED]
--- e/data/themes/default_border.edc 2005-07-13 11:25:22.000000000 +0200
+++ e.fun/data/themes/default_border.edc 2005-07-18 16:09:44.000000000 +0200
@@ -213,33 +213,39 @@
image: "e17_border5.png" COMP;
image: "e17_border6.png" COMP;
image: "e17_border7.png" COMP;
- image: "e17_titlebar_outline.png" COMP;
- image: "e17_titlebar.png" COMP;
- image: "e17_titlebar_hung.png" COMP;
- image: "e17_titlebar_shadow1.png" COMP;
- image: "e17_titlebar_shadow2.png" COMP;
- image: "e17_titlebar_glint1.png" COMP;
- image: "e17_titlebar_glint2.png" COMP;
- image: "e17_titlebar_glint3.png" COMP;
+ image: "e17_button_detail_application.png" COMP;
+ image: "e17_button_detail_borderless.png" COMP;
image: "e17_button_detail_close.png" COMP;
+ image: "e17_button_detail_desktop.png" COMP;
+ image: "e17_button_detail_fullscreen.png" COMP;
+ image: "e17_button_detail_kill.png" COMP;
+ image: "e17_button_detail_life.png" COMP;
+ image: "e17_button_detail_locks.png" COMP;
image: "e17_button_detail_maximize.png" COMP;
image: "e17_button_detail_minimize.png" COMP;
- image: "e17_button_detail_shade.png" COMP;
- image: "e17_button_detail_stick.png" COMP;
- image: "e17_button_detail_locks.png" COMP;
- image: "e17_button_detail_borderless.png" COMP;
+ image: "e17_button_detail_position.png" COMP;
image: "e17_button_detail_remember.png" COMP;
- image: "e17_button_detail_skip_winlist.png" COMP;
- image: "e17_button_detail_fullscreen.png" COMP;
image: "e17_button_detail_sendto.png" COMP;
- image: "e17_button_detail_kill.png" COMP;
- image: "e17_button_detail_stacking.png" COMP;
+ image: "e17_button_detail_shade.png" COMP;
+ image: "e17_button_detail_size.png" COMP;
+ image: "e17_button_detail_skip_winlist.png" COMP;
image: "e17_button_detail_stack_below.png" COMP;
+ image: "e17_button_detail_stacking.png" COMP;
image: "e17_button_detail_stack_normal.png" COMP;
image: "e17_button_detail_stack_on_top.png" COMP;
+ image: "e17_button_detail_stick.png" COMP;
+ image: "e17_button_detail_user.png" COMP;
image: "e17_mini_button.png" COMP;
image: "e17_mini_button_shadow1.png" COMP;
image: "e17_mini_button_shadow2.png" COMP;
+ image: "e17_titlebar_glint1.png" COMP;
+ image: "e17_titlebar_glint2.png" COMP;
+ image: "e17_titlebar_glint3.png" COMP;
+ image: "e17_titlebar_hung.png" COMP;
+ image: "e17_titlebar_outline.png" COMP;
+ image: "e17_titlebar.png" COMP;
+ image: "e17_titlebar_shadow1.png" COMP;
+ image: "e17_titlebar_shadow2.png" COMP;
}
group {
name: "widgets/border/default/border";
@@ -1296,6 +1302,18 @@
action: SIGNAL_EMIT "action" "maximize";
}
program {
+ name: "maximize_horizontal_action";
+ signal: "mouse,clicked,2";
+ source: "button_1";
+ action: SIGNAL_EMIT "action" "maximize,horizontal";
+ }
+ program {
+ name: "maximize_vertical_action";
+ signal: "mouse,clicked,3";
+ source: "button_1";
+ action: SIGNAL_EMIT "action" "maximize,vertical";
+ }
+ program {
name: "iconify_action";
signal: "mouse,clicked,1";
source: "button_2";
@@ -1670,20 +1688,25 @@
}
}
+FULL_SIZE_BORDER_BUTTON("application")
+FULL_SIZE_BORDER_BUTTON("borderless")
FULL_SIZE_BORDER_BUTTON("close")
-FULL_SIZE_BORDER_BUTTON("minimize")
-FULL_SIZE_BORDER_BUTTON("maximize")
-FULL_SIZE_BORDER_BUTTON("shade")
-FULL_SIZE_BORDER_BUTTON("stick")
+FULL_SIZE_BORDER_BUTTON("desktop")
+FULL_SIZE_BORDER_BUTTON("fullscreen")
FULL_SIZE_BORDER_BUTTON("kill")
+FULL_SIZE_BORDER_BUTTON("life")
FULL_SIZE_BORDER_BUTTON("locks")
-FULL_SIZE_BORDER_BUTTON("borderless")
-FULL_SIZE_BORDER_BUTTON("fullscreen")
+FULL_SIZE_BORDER_BUTTON("maximize")
+FULL_SIZE_BORDER_BUTTON("minimize")
+FULL_SIZE_BORDER_BUTTON("position")
FULL_SIZE_BORDER_BUTTON("remember")
-FULL_SIZE_BORDER_BUTTON("skip_winlist")
FULL_SIZE_BORDER_BUTTON("sendto")
+FULL_SIZE_BORDER_BUTTON("shade")
+FULL_SIZE_BORDER_BUTTON("size")
+FULL_SIZE_BORDER_BUTTON("skip_winlist")
+FULL_SIZE_BORDER_BUTTON("stack_below")
FULL_SIZE_BORDER_BUTTON("stacking")
-FULL_SIZE_BORDER_BUTTON("stack_on_top")
FULL_SIZE_BORDER_BUTTON("stack_normal")
-FULL_SIZE_BORDER_BUTTON("stack_below")
-
+FULL_SIZE_BORDER_BUTTON("stack_on_top")
+FULL_SIZE_BORDER_BUTTON("stick")
+FULL_SIZE_BORDER_BUTTON("user")
--- e/src/bin/e_actions.c 2005-07-07 14:02:36.000000000 +0200
+++ e.fun/src/bin/e_actions.c 2005-07-15 01:10:53.000000000 +0200
@@ -248,6 +248,8 @@
}
/***************************************************************************/
+//#define ACT_FN_GO(act) \
+// static void _e_actions_act_##act##_go(E_Object *obj, char *params)
ACT_FN_GO(window_maximized_toggle)
{
if (!obj) obj = E_OBJECT(e_border_focused_get());
@@ -263,7 +265,7 @@
bd = (E_Border *)obj;
if (bd->maximized) e_border_unmaximize(bd);
- else e_border_maximize(bd, e_config->maximize_policy);
+ else e_border_maximize(bd, 0, e_config->maximize_policy);
}
}
--- e/src/bin/e_border.c 2005-07-13 17:02:08.000000000 +0200
+++ e.fun/src/bin/e_border.c 2005-07-18 19:22:12.000000000 +0200
@@ -18,9 +18,20 @@
#define MOVE 8
#define RESIZE_NONE 11
+/* FIXME: must find if compatible with netwm */
+#define MAXIMIZE 12
+#define MAXIMIZE_H 13
+#define MAXIMIZE_V 14
+
+#define MI_ACTION_CLASS 1
+#define MI_CHECK_CLASS 2
+#define MI_RADIO_CLASS 3
+#define MI_SEPARATOR_CLASS 4
+
/* local subsystem functions */
static void _e_border_free(E_Border *bd);
static void _e_border_del(E_Border *bd);
+static void _e_border_menu_free(E_Border *bd);
/* FIXME: these likely belong in a separate icccm/client handler */
/* and the border needs to become a dumb object that just does what its */
@@ -77,6 +88,9 @@
static void _e_border_cb_border_menu_end(void *data, E_Menu *m);
static void _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key);
+static void _e_border_menu_item_new(E_Border *bd, E_Menu *m, const char *label, const unsigned int class,
+ unsigned int statement, void (*func) (void *data, E_Menu *m, E_Menu_Item *mi), const char *edj);
+static void _e_border_submenu_item_new(E_Menu *m, E_Menu *sm, const char *label, const char *edj);
static void _e_border_menu_cb_close(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_iconify(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_kill(void *data, E_Menu *m, E_Menu_Item *mi);
@@ -1119,7 +1133,7 @@
}
void
-e_border_maximize(E_Border *bd, E_Maximize max)
+e_border_maximize(E_Border *bd, unsigned int mode, E_Maximize max)
{
E_OBJECT_CHECK(bd);
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
@@ -1168,20 +1182,53 @@
bd->client_inset.l, bd->client_inset.r,
bd->client_inset.t, bd->client_inset.b);
}
- w = bd->zone->w;
- h = bd->zone->h;
- /* center x-direction */
+ switch (mode)
+ {
+ case MAXIMIZE_H:
+ h = bd->h;
+ w = bd->zone->w;
+ y1 = bd->y;
+ x1 = bd->zone->x + (bd->zone->w - w) / 2;
+ break;
+ case MAXIMIZE_V:
+ h = bd->zone->h;
+ w = bd->w;
+ x1 = bd->x;
+ y1 = bd->zone->y + (bd->zone->h - h) / 2;
+ break;
+ case MAXIMIZE:
+ default:
+ h = bd->zone->h;
+ w = bd->zone->w;
+ /* center x-direction */
+ x1 = bd->zone->x + (bd->zone->w - w) / 2;
+ /* center y-direction */
+ y1 = bd->zone->y + (bd->zone->h - h) / 2;
+ break;
+ }
+
_e_border_resize_limit(bd, &w, &h);
- x1 = bd->zone->x + (bd->zone->w - w) / 2;
- /* center y-direction */
- y1 = bd->zone->y + (bd->zone->h - h) / 2;
e_border_move_resize(bd, x1, y1, w, h);
bd->maximized = E_MAXIMIZE_FULLSCREEN;
break;
case E_MAXIMIZE_SMART:
case E_MAXIMIZE_EXPAND:
- x1 = bd->zone->x;
- y1 = bd->zone->y;
+ if (mode==MAXIMIZE_V)
+ {
+ x1 = bd->x;
+ }
+ else
+ {
+ x1 = bd->zone->x;
+ }
+ if (mode==MAXIMIZE_H)
+ {
+ y1 = bd->y;
+ }
+ else
+ {
+ y1 = bd->zone->y;
+ }
x2 = bd->zone->x + bd->zone->w;
y2 = bd->zone->y + bd->zone->h;
@@ -1191,8 +1238,23 @@
/* walk through docks and toolbars */
e_maximize_border_dock_fit(bd, &x1, &y1, &x2, &y2);
- w = x2 - x1;
- h = y2 - y1;
+ switch (mode)
+ {
+ case MAXIMIZE_H:
+ h = bd->h;
+ w = x2 - x1;
+ break;
+ case MAXIMIZE_V:
+ h = y2 - y1;
+ w = bd->w;
+ break;
+ case MAXIMIZE:
+ default:
+ h = y2 - y1;
+ w = x2 - x1;
+ break;
+ }
+
_e_border_resize_limit(bd, &w, &h);
e_border_move_resize(bd, x1, y1, w, h);
/* Don't set bd->maximized if E_MAXIMIZE_EXPAND, no need to return from this state */
@@ -1200,8 +1262,22 @@
bd->maximized = e_config->maximize_policy;
break;
case E_MAXIMIZE_FILL:
- x1 = bd->zone->x;
- y1 = bd->zone->y;
+ if (mode==MAXIMIZE_V)
+ {
+ x1 = bd->x;
+ }
+ else
+ {
+ x1 = bd->zone->x;
+ }
+ if (mode==MAXIMIZE_H)
+ {
+ y1 = bd->y;
+ }
+ else
+ {
+ y1 = bd->zone->y;
+ }
x2 = bd->zone->x + bd->zone->w;
y2 = bd->zone->y + bd->zone->h;
@@ -1211,8 +1287,22 @@
/* walk through all windows */
e_maximize_border_border_fill(bd, &x1, &y1, &x2, &y2);
- w = x2 - x1;
- h = y2 - y1;
+ switch (mode)
+ {
+ case MAXIMIZE_H:
+ h = bd->h;
+ w = x2 - x1;
+ break;
+ case MAXIMIZE_V:
+ h = y2 - y1;
+ w = bd->w;
+ break;
+ case MAXIMIZE:
+ default:
+ h = y2 - y1;
+ w = x2 - x1;
+ break;
+ }
_e_border_resize_limit(bd, &w, &h);
e_border_move_resize(bd, x1, y1, w, h);
/* Don't set bd->maximized, no need to return from this state */
@@ -1965,26 +2055,9 @@
free(bd->pending_move_resize->data);
bd->pending_move_resize = evas_list_remove_list(bd->pending_move_resize, bd->pending_move_resize);
}
- if (bd->border_menu)
- {
- e_object_del(E_OBJECT(bd->border_menu));
- bd->border_menu = NULL;
- }
- if (bd->border_locks_menu)
- {
- e_object_del(E_OBJECT(bd->border_locks_menu));
- bd->border_locks_menu = NULL;
- }
- if (bd->border_remember_menu)
- {
- e_object_del(E_OBJECT(bd->border_remember_menu));
- bd->border_remember_menu = NULL;
- }
- if (bd->border_stacking_menu)
- {
- e_object_del(E_OBJECT(bd->border_stacking_menu));
- bd->border_stacking_menu = NULL;
- }
+
+ _e_border_menu_free(bd);
+
if (focused == bd)
{
// ecore_x_window_focus(bd->zone->container->manager->root);
@@ -2041,6 +2114,61 @@
free(bd);
}
+static void
+_e_border_menu_free(E_Border *bd)
+{
+ if (bd->border_remember_what_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_remember_what_menu));
+ bd->border_remember_what_menu = NULL;
+ }
+ if (bd->border_remember_for_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_remember_for_menu));
+ bd->border_remember_for_menu = NULL;
+ }
+ if (bd->border_remember_match_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_remember_match_menu));
+ bd->border_remember_match_menu = NULL;
+ }
+ if (bd->border_remember_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_remember_menu));
+ bd->border_remember_menu = NULL;
+ }
+ if (bd->border_application_locks_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_application_locks_menu));
+ bd->border_application_locks_menu = NULL;
+ }
+ if (bd->border_common_locks_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_common_locks_menu));
+ bd->border_common_locks_menu = NULL;
+ }
+ if (bd->border_user_locks_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_user_locks_menu));
+ bd->border_user_locks_menu = NULL;
+ }
+ if (bd->border_locks_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_locks_menu));
+ bd->border_locks_menu = NULL;
+ }
+ if (bd->border_stacking_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_stacking_menu));
+ bd->border_stacking_menu = NULL;
+ }
+ if (bd->border_menu)
+ {
+ e_object_del(E_OBJECT(bd->border_menu));
+ bd->border_menu = NULL;
+ }
+}
+
static int
_e_border_del_dangling_ref_check(void *data)
{
@@ -3144,7 +3272,23 @@
if (!bd->lock_user_maximize)
{
if (bd->maximized) e_border_unmaximize(bd);
- else e_border_maximize(bd, e_config->maximize_policy);
+ else e_border_maximize(bd, MAXIMIZE, e_config->maximize_policy);
+ }
+ }
+ else if (!strcmp(source, "maximize,horizontal"))
+ {
+ if (!bd->lock_user_maximize)
+ {
+ if (bd->maximized) e_border_unmaximize(bd);
+ else e_border_maximize(bd, MAXIMIZE_H, e_config->maximize_policy);
+ }
+ }
+ else if (!strcmp(source, "maximize,vertical"))
+ {
+ if (!bd->lock_user_maximize)
+ {
+ if (bd->maximized) e_border_unmaximize(bd);
+ else e_border_maximize(bd, MAXIMIZE_V, e_config->maximize_policy);
}
}
else if (!strcmp(source, "iconify"))
@@ -4125,7 +4269,7 @@
bd->lock_user_shade = rem->prop.lock_user_shade;
bd->lock_client_shade = rem->prop.lock_client_shade;
bd->lock_user_maximize = rem->prop.lock_user_maximize;
- bd->lock_client_mazimize = rem->prop.lock_client_mazimize;
+ bd->lock_client_maximize = rem->prop.lock_client_maximize;
bd->lock_user_fullscreen = rem->prop.lock_user_fullscreen;
bd->lock_client_fullscreen = rem->prop.lock_client_fullscreen;
bd->lock_border = rem->prop.lock_border;
@@ -5077,22 +5221,7 @@
bd = e_object_data_get(E_OBJECT(m));
if (bd)
{
- if (bd->border_locks_menu)
- {
- e_object_del(E_OBJECT(bd->border_locks_menu));
- bd->border_locks_menu = NULL;
- }
- if (bd->border_remember_menu)
- {
- e_object_del(E_OBJECT(bd->border_remember_menu));
- bd->border_remember_menu = NULL;
- }
- if (bd->border_stacking_menu)
- {
- e_object_del(E_OBJECT(bd->border_stacking_menu));
- bd->border_stacking_menu = NULL;
- }
- bd->border_menu = NULL;
+ _e_border_menu_free(bd);
}
e_object_del(E_OBJECT(m));
}
@@ -5122,7 +5251,7 @@
NEW_LOCK_FN(lock_user_shade)
NEW_LOCK_FN(lock_client_shade)
NEW_LOCK_FN(lock_user_maximize)
-NEW_LOCK_FN(lock_client_mazimize)
+NEW_LOCK_FN(lock_client_maximize)
NEW_LOCK_FN(lock_user_fullscreen)
NEW_LOCK_FN(lock_client_fullscreen)
NEW_LOCK_FN(lock_border)
@@ -5573,6 +5702,71 @@
bd->remember->apply &= ~E_REMEMBER_APPLY_RUN;
e_config_save_queue();
}
+
+/*
+ _e_border_menu_item_new(bd, m, _("Kill"), MI_ACTION_CLASS, 0,
+ _e_border_menu_cb_kill, "kill");
+ */
+static void
+_e_border_menu_item_new(E_Border *bd, E_Menu *m, const char *label, const unsigned int class, unsigned int statement, void (*func) (void *data, E_Menu *m, E_Menu_Item *mi), const char *edj)
+{
+ E_Menu_Item *mi;
+ char icon[128];
+ char key[128];
+
+ mi = e_menu_item_new(m);
+ if (class != MI_SEPARATOR_CLASS)
+ {
+ e_menu_item_label_set(mi, label);
+ }
+
+ switch(class)
+ {
+ case MI_CHECK_CLASS:
+ e_menu_item_check_set(mi, 1);
+ e_menu_item_toggle_set(mi, statement);
+ break;
+ case MI_RADIO_CLASS:
+ e_menu_item_radio_set(mi, 1);
+ e_menu_item_radio_group_set(mi, 2);
+ e_menu_item_toggle_set(mi, statement);
+ break;
+ case MI_SEPARATOR_CLASS:
+ e_menu_item_separator_set(mi, 1);
+ break;
+ case MI_ACTION_CLASS:
+ default:
+ break;
+ }
+ if (class != MI_SEPARATOR_CLASS)
+ {
+ e_menu_item_callback_set(mi, func, bd);
+ }
+ if (class != MI_SEPARATOR_CLASS && strcmp(edj, ""))
+ {
+ sprintf(icon, "widgets/border/default/%s", edj);
+ sprintf(key, "widgets/border/default/%s", edj);
+ e_menu_item_icon_edje_set(mi, (char *)e_theme_edje_file_get("base/theme/borders", icon), key);
+ }
+}
+
+static void
+_e_border_submenu_item_new(E_Menu *m, E_Menu *sm, const char *label, const char *edj)
+{
+ E_Menu_Item *mi;
+ char icon[128];
+ char key[128];
+
+ mi = e_menu_item_new(m);
+ e_menu_item_label_set(mi, label);
+ e_menu_item_submenu_set(mi, sm);
+ if (strcmp(edj, ""))
+ {
+ sprintf(icon, "widgets/border/default/%s", edj);
+ sprintf(key, "widgets/border/default/%s", edj);
+ e_menu_item_icon_edje_set(mi, (char *)e_theme_edje_file_get("base/theme/borders", icon), key);
+ }
+}
static void
_e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key)
@@ -5582,160 +5776,173 @@
E_App *a;
if (bd->border_menu) return;
+ m = e_menu_new();
+ bd->border_user_locks_menu = m;
+ _e_border_menu_item_new(bd, m, _("Position"), MI_CHECK_CLASS, (bd->lock_user_location ? 1 : 0),
+ _e_border_menu_cb_lock_user_location, "position");
+ _e_border_menu_item_new(bd, m, _("Size"), MI_CHECK_CLASS, (bd->lock_user_size ? 1: 0),
+ _e_border_menu_cb_lock_user_size, "size");
+ _e_border_menu_item_new(bd, m, _("Iconify"), MI_CHECK_CLASS, (bd->lock_user_iconify ? 1: 0),
+ _e_border_menu_cb_lock_user_iconify, "minimize");
+ _e_border_menu_item_new(bd, m, _("Shade"), MI_CHECK_CLASS, (bd->lock_user_shade ? 1: 0),
+ _e_border_menu_cb_lock_user_shade, "shade");
+ _e_border_menu_item_new(bd, m, _("Maximize"), MI_CHECK_CLASS, (bd->lock_user_maximize ? 1: 0),
+ _e_border_menu_cb_lock_user_maximize, "maximize");
+ _e_border_menu_item_new(bd, m, _("Sticky"), MI_CHECK_CLASS, (bd->lock_user_sticky ? 1: 0),
+ _e_border_menu_cb_lock_user_sticky, "stick");
+ _e_border_menu_item_new(bd, m, _("Virtual Desktop"), MI_CHECK_CLASS, (bd->lock_user_desk ? 1: 0),
+ _e_border_menu_cb_lock_user_desk, "desktop");
+ _e_border_menu_item_new(bd, m, _("Fullscreen"), MI_CHECK_CLASS, (bd->lock_user_fullscreen ? 1: 0),
+ _e_border_menu_cb_lock_user_fullscreen, "fullscreen");
+ _e_border_menu_item_new(bd, m, _("Stacking"), MI_CHECK_CLASS, (bd->lock_user_stacking ? 1: 0),
+ _e_border_menu_cb_lock_user_stacking, "stacking");
+
+ m = e_menu_new();
+ bd->border_application_locks_menu = m;
+ _e_border_menu_item_new(bd, m, _("Position"), MI_CHECK_CLASS, (bd->lock_client_location ? 1 : 0),
+ _e_border_menu_cb_lock_client_location, "position");
+ _e_border_menu_item_new(bd, m, _("Size"), MI_CHECK_CLASS, (bd->lock_client_size ? 1: 0),
+ _e_border_menu_cb_lock_client_size, "size");
+ _e_border_menu_item_new(bd, m, _("Iconify"), MI_CHECK_CLASS, (bd->lock_client_iconify ? 1: 0),
+ _e_border_menu_cb_lock_client_iconify, "minimize");
+ _e_border_menu_item_new(bd, m, _("Shade"), MI_CHECK_CLASS, (bd->lock_client_shade ? 1: 0),
+ _e_border_menu_cb_lock_client_shade, "shade");
+ _e_border_menu_item_new(bd, m, _("Maximize"), MI_CHECK_CLASS, (bd->lock_client_maximize ? 1: 0),
+ _e_border_menu_cb_lock_client_maximize, "maximize");
+ _e_border_menu_item_new(bd, m, _("Sticky"), MI_CHECK_CLASS, (bd->lock_client_sticky ? 1: 0),
+ _e_border_menu_cb_lock_client_sticky, "stick");
+ _e_border_menu_item_new(bd, m, _("Virtual Desktop"), MI_CHECK_CLASS, (bd->lock_client_desk ? 1: 0),
+ _e_border_menu_cb_lock_client_desk, "desktop");
+ _e_border_menu_item_new(bd, m, _("Fullscreen"), MI_CHECK_CLASS, (bd->lock_client_fullscreen ? 1: 0),
+ _e_border_menu_cb_lock_client_fullscreen, "fullscreen");
+ _e_border_menu_item_new(bd, m, _("Stacking"), MI_CHECK_CLASS, (bd->lock_client_stacking ? 1: 0),
+ _e_border_menu_cb_lock_client_stacking, "stacking");
m = e_menu_new();
- bd->border_locks_menu = m;
+ bd->border_common_locks_menu = m;
+ _e_border_menu_item_new(bd, m, _("Border"), MI_CHECK_CLASS, (bd->lock_border ? 1: 0),
+ _e_border_menu_cb_lock_border, "borderless");
+ _e_border_menu_item_new(bd, m, _("Close"), MI_CHECK_CLASS, (bd->lock_close ? 1: 0),
+ _e_border_menu_cb_lock_close, "close");
+ /*
+ e_border_in_menu_item_new(bd, m, _("Focus In"), MI_CHECK_CLASS, (bd->lock_focus_in ? 1: 0),
+ _e_border_menu_cb_lock_focus_in, "focus_in");
+ e_border_menu_item_new(bd, m, _("Focus Out"), MI_CHECK_CLASS, (bd->lock_focus_out ? 1: 0),
+ _e_focus_out_menu_cb_lock_focus_out, "focus_out");
+ */
+ _e_border_menu_item_new(bd, m, _("Lifespan"), MI_CHECK_CLASS, (bd->lock_life ? 1: 0),
+ _e_border_menu_cb_lock_life, "life");
-#define NEW_LOCK_MI(txt, var) \
- mi = e_menu_item_new(m); \
- e_menu_item_label_set(mi, txt); \
- e_menu_item_check_set(mi, 1); \
- e_menu_item_toggle_set(mi, bd->var); \
- e_menu_item_callback_set(mi, _e_border_menu_cb_##var, bd);
-
- /* FIXME: 1 big menu right now - mayeb layer make it 3 submenus? */
- NEW_LOCK_MI(_("Position (User)"), lock_user_location);
- NEW_LOCK_MI(_("Size (User)"), lock_user_size);
- NEW_LOCK_MI(_("Stacking (User)"), lock_user_stacking);
- NEW_LOCK_MI(_("Iconify (User)"), lock_user_iconify);
-/* NEW_LOCK_MI(_("Virtual Desktop (User)"), lock_user_desk);*/
- NEW_LOCK_MI(_("Sticky (User)"), lock_user_sticky);
- NEW_LOCK_MI(_("Shade (User)"), lock_user_shade);
- NEW_LOCK_MI(_("Maximize (User)"), lock_user_maximize);
- NEW_LOCK_MI(_("Fullscreen (User)"), lock_user_fullscreen);
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
- NEW_LOCK_MI(_("Position (Application)"), lock_client_location);
- NEW_LOCK_MI(_("Size (Application)"), lock_client_size);
- NEW_LOCK_MI(_("Stacking (Application)"), lock_client_stacking);
- NEW_LOCK_MI(_("Iconify (Application)"), lock_client_iconify);
-/* NEW_LOCK_MI(_("Virtual Desktop (Application)"), lock_client_desk);*/
- NEW_LOCK_MI(_("Sticky (Application)"), lock_client_sticky);
- NEW_LOCK_MI(_("Shade (Application)"), lock_client_shade);
- NEW_LOCK_MI(_("Maximize (Application)"), lock_client_mazimize);
- NEW_LOCK_MI(_("Fullscreen (Application)"), lock_client_fullscreen);
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
- NEW_LOCK_MI(_("Border"), lock_border);
- NEW_LOCK_MI(_("Close"), lock_close);
-/* NEW_LOCK_MI(_("Focus In"), lock_focus_in);*/
-/* NEW_LOCK_MI(_("Focus Out"), lock_focus_out);*/
- NEW_LOCK_MI(_("Lifespan"), lock_life);
+ m = e_menu_new();
+ bd->border_locks_menu = m;
+ _e_border_submenu_item_new(m, bd->border_user_locks_menu, _("User"), "user");
+ _e_border_submenu_item_new(m, bd->border_application_locks_menu, _("Application"), "application");
+ _e_border_submenu_item_new(m, bd->border_common_locks_menu, _("Common"), "common");
m = e_menu_new();
- bd->border_remember_menu = m;
+ bd->border_remember_what_menu = m;
+
+ _e_border_menu_item_new(bd, m, _("Position"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_POS)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_pos, "position");
+ _e_border_menu_item_new(bd, m, _("Size"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_SIZE)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_size, "size");
+ _e_border_menu_item_new(bd, m, _("Stickiness"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_STICKY)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_sticky, "stick");
+ _e_border_menu_item_new(bd, m, _("Shaded State"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_SHADE)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_shade, "shade");
+ _e_border_menu_item_new(bd, m, _("Border"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_BORDER)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_border, "borderless");
+ _e_border_menu_item_new(bd, m, _("Skip Window List"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_SKIP_WINLIST)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_skip_winlist, "skip_winlist");
+ _e_border_menu_item_new(bd, m, _("Stacking"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_LAYER)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_layer, "stacking");
+ _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, "");
+ _e_border_menu_item_new(bd, m, _("Locks"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_LOCKS)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_locks, "locks");
+ _e_border_menu_item_new(bd, m, _("Desktop"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_DESKTOP)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_desktop, "position");
+ _e_border_menu_item_new(bd, m, _("Zone"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_ZONE)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_zone, "zone");
+ /*
+ _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, "");
+ _e_border_menu_item_new(bd, m, _("Run this porgram on login"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply & E_REMEMBER_APPLY_RUN)) ? 1: 0),
+ _e_border_menu_cb_remember_apply_run, "run");
+ */
-#define NEW_REMEMBER_MI(txt, flag, var, cb) \
- mi = e_menu_item_new(m); \
- e_menu_item_label_set(mi, txt); \
- e_menu_item_check_set(mi, 1); \
- if ((bd->remember) && (bd->remember->flag & var)) \
- e_menu_item_toggle_set(mi, 1); \
- e_menu_item_callback_set(mi, cb, bd);
+ m = e_menu_new();
+ bd->border_remember_for_menu = m;
+ _e_border_menu_item_new(bd, m, _("This Window"), MI_CHECK_CLASS, (bd->remember ? 1: 0),
+ _e_border_menu_cb_remember, "");
+ _e_border_menu_item_new(bd, m, _("This Instance Only"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->apply_first_only & 1)) ? 1: 0), _e_border_menu_cb_remember_first, "");
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Remember This Window")); \
- e_menu_item_check_set(mi, 1);
- if (bd->remember)
- e_menu_item_toggle_set(mi, 1);
- e_menu_item_callback_set(mi, _e_border_menu_cb_remember, bd);
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
- NEW_REMEMBER_MI(_("Remember This Instance Only"), apply_first_only, 1, _e_border_menu_cb_remember_first);
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
- NEW_REMEMBER_MI(_("Match by Name"), match, E_REMEMBER_MATCH_NAME, _e_border_menu_cb_remember_match_name);
- NEW_REMEMBER_MI(_("Match by Class"), match, E_REMEMBER_MATCH_CLASS, _e_border_menu_cb_remember_match_class);
- NEW_REMEMBER_MI(_("Match by Title"), match, E_REMEMBER_MATCH_TITLE, _e_border_menu_cb_remember_match_title);
- NEW_REMEMBER_MI(_("Match by Role"), match, E_REMEMBER_MATCH_ROLE, _e_border_menu_cb_remember_match_role);
- NEW_REMEMBER_MI(_("Match by Window Type"), match, E_REMEMBER_MATCH_TYPE, _e_border_menu_cb_remember_match_type);
- NEW_REMEMBER_MI(_("Match by Transient Status"), match, E_REMEMBER_MATCH_TRANSIENT, _e_border_menu_cb_remember_match_transient);
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
- NEW_REMEMBER_MI(_("Remember Position"), apply, E_REMEMBER_APPLY_POS, _e_border_menu_cb_remember_apply_pos);
- NEW_REMEMBER_MI(_("Remember Size"), apply, E_REMEMBER_APPLY_SIZE, _e_border_menu_cb_remember_apply_size);
- NEW_REMEMBER_MI(_("Remember Stacking"), apply, E_REMEMBER_APPLY_LAYER, _e_border_menu_cb_remember_apply_layer);
- NEW_REMEMBER_MI(_("Remember Locks"), apply, E_REMEMBER_APPLY_LOCKS, _e_border_menu_cb_remember_apply_locks);
- NEW_REMEMBER_MI(_("Remember Border"), apply, E_REMEMBER_APPLY_BORDER, _e_border_menu_cb_remember_apply_border);
- NEW_REMEMBER_MI(_("Remember Stickiness"), apply, E_REMEMBER_APPLY_STICKY, _e_border_menu_cb_remember_apply_sticky);
- NEW_REMEMBER_MI(_("Remember Desktop"), apply, E_REMEMBER_APPLY_DESKTOP, _e_border_menu_cb_remember_apply_desktop);
- NEW_REMEMBER_MI(_("Remember Shaded State"), apply, E_REMEMBER_APPLY_SHADE, _e_border_menu_cb_remember_apply_shade);
- NEW_REMEMBER_MI(_("Remember Zone"), apply, E_REMEMBER_APPLY_ZONE, _e_border_menu_cb_remember_apply_zone);
- NEW_REMEMBER_MI(_("Remember Skip Window List"), apply, E_REMEMBER_APPLY_SKIP_WINLIST, _e_border_menu_cb_remember_apply_skip_winlist);
-/*
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
- NEW_REMEMBER_MI(_("Run this porgram on login"), apply, E_REMEMBER_APPLY_RUN, _e_border_menu_cb_remember_apply_run);
- */
+
+ m = e_menu_new();
+ bd->border_remember_match_menu = m;
+ _e_border_menu_item_new(bd, m, _("Name"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_NAME)) ? 1: 0),
+ _e_border_menu_cb_remember_match_name, "");
+ _e_border_menu_item_new(bd, m, _("Class"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_CLASS)) ? 1: 0),
+ _e_border_menu_cb_remember_match_class, "");
+ _e_border_menu_item_new(bd, m, _("Title"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_TITLE)) ? 1: 0),
+ _e_border_menu_cb_remember_match_title, "");
+ _e_border_menu_item_new(bd, m, _("Role"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_ROLE)) ? 1: 0),
+ _e_border_menu_cb_remember_match_role, "");
+ _e_border_menu_item_new(bd, m, _("Window Type"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_TYPE)) ? 1: 0),
+ _e_border_menu_cb_remember_match_type, "");
+ _e_border_menu_item_new(bd, m, _("Transient Status"), MI_CHECK_CLASS,
+ (((bd->remember) && (bd->remember->match & E_REMEMBER_MATCH_TRANSIENT)) ? 1: 0),
+ _e_border_menu_cb_remember_match_transient, "");
+
m = e_menu_new();
- bd->border_stacking_menu = m;
+ bd->border_remember_menu = m;
+ _e_border_submenu_item_new(m, bd->border_remember_what_menu, _("What"), "");
+ _e_border_submenu_item_new(m, bd->border_remember_for_menu, _("For"), "");
+ _e_border_submenu_item_new(m, bd->border_remember_match_menu, _("Match By"), "");
+
if (!bd->lock_user_stacking)
{
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Always On Top"));
- e_menu_item_radio_set(mi, 1);
- e_menu_item_radio_group_set(mi, 2);
- e_menu_item_toggle_set(mi, (bd->layer == 150 ? 1 : 0));
- e_menu_item_callback_set(mi, _e_border_menu_cb_on_top, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/stack_on_top"),
- "widgets/border/default/stack_on_top");
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Normal"));
- e_menu_item_radio_set(mi, 1);
- e_menu_item_radio_group_set(mi, 2);
- e_menu_item_toggle_set(mi, (bd->layer == 100 ? 1 : 0));
- e_menu_item_callback_set(mi, _e_border_menu_cb_normal, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/stack_normal"),
- "widgets/border/default/stack_normal");
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Always Below"));
- e_menu_item_radio_set(mi, 1);
- e_menu_item_radio_group_set(mi, 2);
- e_menu_item_toggle_set(mi, (bd->layer == 50 ? 1 : 0));
- e_menu_item_callback_set(mi, _e_border_menu_cb_below, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/stack_below"),
- "widgets/border/default/stack_below");
+ m = e_menu_new();
+ bd->border_stacking_menu = m;
+ _e_border_menu_item_new(bd, m, _("Always On Top"), MI_RADIO_CLASS, (bd->layer == 150 ? 1: 0),
+ _e_border_menu_cb_on_top, "stack_on_top");
+ _e_border_menu_item_new(bd, m, _("Normal"), MI_RADIO_CLASS, (bd->layer == 100 ? 1: 0),
+ _e_border_menu_cb_normal, "stack_normal");
+ _e_border_menu_item_new(bd, m, _("Always Below"), MI_RADIO_CLASS, (bd->layer == 50 ? 1: 0),
+ _e_border_menu_cb_below, "stack_below");
}
-
+
m = e_menu_new();
e_object_data_set(E_OBJECT(m), bd);
bd->border_menu = m;
e_menu_post_deactivate_callback_set(m, _e_border_cb_border_menu_end, NULL);
-
if (!bd->lock_close)
{
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Close"));
- e_menu_item_callback_set(mi, _e_border_menu_cb_close, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/close"),
- "widgets/border/default/close");
+ _e_border_menu_item_new(bd, m, _("Close"), MI_ACTION_CLASS, 0,
+ _e_border_menu_cb_close, "close");
}
-
- if (!bd->lock_user_iconify)
- {
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Iconify"));
- e_menu_item_callback_set(mi, _e_border_menu_cb_iconify, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/minimize"),
- "widgets/border/default/minimize");
- }
-
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
-
if ((!bd->lock_close) && (!bd->internal))
{
+ /*
+ _e_border_menu_item_new(bd, m, _("Kill"), MI_ACTION_CLASS, 0,
+ _e_border_menu_cb_kill, "kill");
+ */
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Kill"));
e_menu_item_callback_set(mi, _e_border_menu_cb_kill, bd);
@@ -5743,124 +5950,59 @@
(char *)e_theme_edje_file_get("base/theme/borders",
"widgets/border/default/kill"),
"widgets/border/default/kill");
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
}
-
- if (!bd->lock_user_shade)
+ _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, "");
+ if (!bd->lock_user_iconify)
{
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Shaded"));
- e_menu_item_check_set(mi, 1);
- e_menu_item_toggle_set(mi, (bd->shaded ? 1 : 0));
- e_menu_item_callback_set(mi, _e_border_menu_cb_shade, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/shade"),
- "widgets/border/default/shade");
+ _e_border_menu_item_new(bd, m, _("Iconify"), MI_ACTION_CLASS, 0,
+ _e_border_menu_cb_iconify, "minimize");
}
-
if (!bd->lock_user_maximize)
{
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Maximized"));
- e_menu_item_check_set(mi, 1);
- e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0));
- e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/maximize"),
- "widgets/border/default/maximize");
+ _e_border_menu_item_new(bd, m, _("Maximized"), MI_CHECK_CLASS, (bd->maximized ? 1 : 0),
+ _e_border_menu_cb_maximize, "maximize");
+ }
+ if (!bd->lock_user_shade)
+ {
+ _e_border_menu_item_new(bd, m, _("Shaded"), MI_CHECK_CLASS, (bd->shaded ? 1 : 0),
+ _e_border_menu_cb_shade, "shade");
}
-
if (!bd->lock_user_sticky)
{
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Sticky"));
- e_menu_item_check_set(mi, 1);
- e_menu_item_toggle_set(mi, (bd->sticky ? 1 : 0));
- e_menu_item_callback_set(mi, _e_border_menu_cb_stick, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/stick"),
- "widgets/border/default/stick");
+ _e_border_menu_item_new(bd, m, _("Sticky"), MI_CHECK_CLASS, (bd->sticky ? 1 : 0),
+ _e_border_menu_cb_stick, "stick");
}
-
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Stacking"));
- e_menu_item_submenu_set(mi, bd->border_stacking_menu);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/stacking"),
- "widgets/border/default/stacking");
-
if (!bd->lock_border)
{
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Borderless"));
- e_menu_item_check_set(mi, 1);
- e_menu_item_toggle_set(mi, !strcmp("borderless", bd->client.border.name));
- e_menu_item_callback_set(mi, _e_border_menu_cb_borderless, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/borderless"),
- "widgets/border/default/borderless");
+ _e_border_menu_item_new(bd, m, _("Borderless"), MI_CHECK_CLASS, (!strcmp("borderless", bd->client.border.name)),
+ _e_border_menu_cb_borderless, "borderless");
}
-
if (!bd->lock_user_fullscreen)
{
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Fullscreen"));
- e_menu_item_check_set(mi, 1);
- e_menu_item_toggle_set(mi, bd->fullscreen);
- e_menu_item_callback_set(mi, _e_border_menu_cb_fullscreen, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/fullscreen"),
- "widgets/border/default/fullscreen");
+ _e_border_menu_item_new(bd, m, _("Fullscreen"), MI_CHECK_CLASS, (bd->fullscreen ? 1: 0),
+ _e_border_menu_cb_fullscreen, "fullscreen");
}
-
if ((bd->client.icccm.accepts_focus) &&
- (!bd->client.netwm.state.skip_taskbar))
+ (!bd->client.netwm.state.skip_taskbar))
{
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Skip Window List"));
- e_menu_item_check_set(mi, 1);
- e_menu_item_toggle_set(mi, bd->user_skip_winlist);
- e_menu_item_callback_set(mi, _e_border_menu_cb_skip_winlist, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/skip_winlist"),
- "widgets/border/default/skip_winlist");
+ _e_border_menu_item_new(bd, m, _("Skip Window List"), MI_CHECK_CLASS, (bd->user_skip_winlist ? 1: 0),
+ _e_border_menu_cb_skip_winlist, "skip_winlist");
}
-
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
-
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Locks"));
- e_menu_item_submenu_set(mi, bd->border_locks_menu);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/locks"),
- "widgets/border/default/locks");
- mi = e_menu_item_new(m);
- e_menu_item_label_set(mi, _("Remember"));
- e_menu_item_submenu_set(mi, bd->border_remember_menu);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/remember"),
- "widgets/border/default/remember");
- mi = e_menu_item_new(m);
- e_menu_item_separator_set(mi, 1);
-
+ if (!bd->lock_user_stacking)
+ {
+ _e_border_submenu_item_new(m, bd->border_stacking_menu, _("Stacking"), "stacking");
+ }
+ _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, "");
+ _e_border_submenu_item_new(m, bd->border_locks_menu, _("Locks"), "locks");
+ _e_border_submenu_item_new(m, bd->border_remember_menu, _("Remember"), "remember");
+ _e_border_menu_item_new(bd, m, "", MI_SEPARATOR_CLASS, 0, NULL, "");
+ /* FIXME: ACTION_CLASS below (pre_callback is the pb) ? */
mi = e_menu_item_new(m);
e_menu_item_label_set(mi, _("Send To"));
e_menu_item_submenu_pre_callback_set(mi, _e_border_menu_cb_sendto_pre, bd);
- e_menu_item_icon_edje_set(mi,
- (char *)e_theme_edje_file_get("base/theme/borders",
- "widgets/border/default/sendto"),
- "widgets/border/default/sendto");
+ e_menu_item_icon_edje_set(mi, (char *)e_theme_edje_file_get("base/theme/borders",
+ "widgets/border/default/sendto"),
+ "widgets/border/default/sendto");
if (ecore_file_app_installed("e_util_eapp_edit"))
{
@@ -5915,7 +6057,6 @@
e_menu_activate_mouse(m, bd->zone, x, y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
}
-
static void
_e_border_menu_cb_close(void *data, E_Menu *m, E_Menu_Item *mi)
{
@@ -5958,7 +6099,7 @@
if (!bd->lock_user_maximize)
{
if (bd->maximized) e_border_unmaximize(bd);
- else e_border_maximize(bd, e_config->maximize_policy);
+ else e_border_maximize(bd, MAXIMIZE, e_config->maximize_policy);
}
}
--- e/src/bin/e_border.h 2005-07-13 11:25:28.000000000 +0200
+++ e.fun/src/bin/e_border.h 2005-07-15 01:08:00.000000000 +0200
@@ -304,7 +304,7 @@
unsigned int lock_user_shade : 1; /*DONE*/
unsigned int lock_client_shade : 1; /*DONE*/
unsigned int lock_user_maximize : 1; /*DONE*/
- unsigned int lock_client_mazimize : 1; /*DONE*/
+ unsigned int lock_client_maximize : 1; /*DONE*/
unsigned int lock_user_fullscreen : 1; /*DONE*/
unsigned int lock_client_fullscreen : 1; /*DONE*/
unsigned int lock_border : 1; /*DONE*/
@@ -336,7 +336,13 @@
Evas_List *stick_desks;
E_Menu *border_menu;
E_Menu *border_locks_menu;
+ E_Menu *border_user_locks_menu;
+ E_Menu *border_application_locks_menu;
+ E_Menu *border_common_locks_menu;
E_Menu *border_remember_menu;
+ E_Menu *border_remember_what_menu;
+ E_Menu *border_remember_for_menu;
+ E_Menu *border_remember_match_menu;
E_Menu *border_stacking_menu;
Evas_List *pending_move_resize;
@@ -478,7 +484,7 @@
EAPI void e_border_focus_set(E_Border *bd, int focus, int set);
EAPI void e_border_shade(E_Border *bd, E_Direction dir);
EAPI void e_border_unshade(E_Border *bd, E_Direction dir);
-EAPI void e_border_maximize(E_Border *bd, E_Maximize max);
+EAPI void e_border_maximize(E_Border *bd, unsigned int mode, E_Maximize max);
EAPI void e_border_unmaximize(E_Border *bd);
EAPI void e_border_fullscreen(E_Border *bd);
EAPI void e_border_unfullscreen(E_Border *bd);
--- e/src/bin/e_config.c 2005-07-13 11:25:28.000000000 +0200
+++ e.fun/src/bin/e_config.c 2005-07-14 13:08:26.000000000 +0200
@@ -148,7 +148,7 @@
E_CONFIG_VAL(D, T, prop.lock_user_shade, UCHAR);
E_CONFIG_VAL(D, T, prop.lock_client_shade, UCHAR);
E_CONFIG_VAL(D, T, prop.lock_user_maximize, UCHAR);
- E_CONFIG_VAL(D, T, prop.lock_client_mazimize, UCHAR);
+ E_CONFIG_VAL(D, T, prop.lock_client_maximize, UCHAR);
E_CONFIG_VAL(D, T, prop.lock_user_fullscreen, UCHAR);
E_CONFIG_VAL(D, T, prop.lock_client_fullscreen, UCHAR);
E_CONFIG_VAL(D, T, prop.lock_border, UCHAR);
--- e/src/bin/e_hints.c 2005-07-11 09:59:48.000000000 +0200
+++ e.fun/src/bin/e_hints.c 2005-07-15 01:11:15.000000000 +0200
@@ -400,7 +400,7 @@
if ((bd->client.netwm.state.maximized_v) && (bd->client.netwm.state.maximized_h))
{
e_hints_window_saved_size_get(bd, &bd->saved.x, &bd->saved.y, &bd->saved.w, &bd->saved.h);
- e_border_maximize(bd, e_config->maximize_policy);
+ e_border_maximize(bd, 0, e_config->maximize_policy);
}
if (bd->client.netwm.state.fullscreen)
e_border_fullscreen(bd);
@@ -574,7 +574,7 @@
bd->changed = 1;
if ((bd->client.netwm.state.maximized_v)
&& (bd->client.netwm.state.maximized_h))
- e_border_maximize(bd, e_config->maximize_policy);
+ e_border_maximize(bd, 0, e_config->maximize_policy);
else if ((!bd->client.netwm.state.maximized_v)
&& (!bd->client.netwm.state.maximized_h))
e_border_unmaximize(bd);
@@ -609,7 +609,7 @@
bd->changed = 1;
if ((bd->client.netwm.state.maximized_v)
&& (bd->client.netwm.state.maximized_h))
- e_border_maximize(bd, e_config->maximize_policy);
+ e_border_maximize(bd, 0, e_config->maximize_policy);
else if ((!bd->client.netwm.state.maximized_v)
&& (!bd->client.netwm.state.maximized_h))
e_border_unmaximize(bd);
--- e/src/bin/e_remember.c 2005-07-10 14:42:47.000000000 +0200
+++ e.fun/src/bin/e_remember.c 2005-07-14 09:18:37.000000000 +0200
@@ -189,7 +189,7 @@
rem->prop.lock_user_shade = bd->lock_user_shade;
rem->prop.lock_client_shade = bd->lock_client_shade;
rem->prop.lock_user_maximize = bd->lock_user_maximize;
- rem->prop.lock_client_mazimize = bd->lock_client_mazimize;
+ rem->prop.lock_client_maximize = bd->lock_client_maximize;
rem->prop.lock_user_fullscreen = bd->lock_user_fullscreen;
rem->prop.lock_client_fullscreen = bd->lock_client_fullscreen;
rem->prop.lock_border = bd->lock_border;
--- e/src/bin/e_remember.h 2005-07-10 14:42:48.000000000 +0200
+++ e.fun/src/bin/e_remember.h 2005-07-14 09:18:37.000000000 +0200
@@ -62,7 +62,7 @@
unsigned char lock_user_shade;
unsigned char lock_client_shade;
unsigned char lock_user_maximize;
- unsigned char lock_client_mazimize;
+ unsigned char lock_client_maximize;
unsigned char lock_user_fullscreen;
unsigned char lock_client_fullscreen;
unsigned char lock_border;
--- e/data/themes/images/Makefile.in 2005-07-13 11:29:46.000000000 +0200
+++ e.fun/data/themes/images/Makefile.in 2005-07-18 16:09:43.000000000 +0200
@@ -191,22 +191,28 @@
e17_border7.png \
e17_button.png \
e17_button2.png \
+e17_button_detail_application.png \
e17_button_detail_borderless.png \
e17_button_detail_close.png \
+e17_button_detail_desktop.png \
e17_button_detail_fullscreen.png \
e17_button_detail_kill.png \
+e17_button_detail_life.png \
e17_button_detail_locks.png \
e17_button_detail_maximize.png \
e17_button_detail_minimize.png \
+e17_button_detail_position.png \
e17_button_detail_remember.png \
e17_button_detail_sendto.png \
e17_button_detail_shade.png \
+e17_button_detail_size.png \
e17_button_detail_skip_winlist.png \
e17_button_detail_stack_below.png \
e17_button_detail_stacking.png \
e17_button_detail_stack_normal.png \
e17_button_detail_stack_on_top.png \
e17_button_detail_stick.png \
+e17_button_detail_user.png \
e17_menu_arrow.png \
e17_menu_bg.png \
e17_menu_bg_border.png \
e17_button_details.tgz
Description: application/compressed-tar
