Hi,

_ new patch, don't apply the yesterday one, it's more complete.
_ New and better organisation of e_border menu I hope so.
_ Some more stock button_detail icons.

--
Sébastien HOUZE
[EMAIL PROTECTED]

Attachment: e17_button_details.tgz
Description: application/compressed-tar

--- e/data/themes/default_border.edc	2005-07-13 11:25:22.000000000 +0200
+++ e.fun/data/themes/default_border.edc	2005-07-14 08:19:58.046899290 +0200
@@ -213,33 +213,38 @@
    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_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";
@@ -1670,20 +1675,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("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_border.c	2005-07-13 17:02:08.000000000 +0200
+++ e.fun/src/bin/e_border.c	2005-07-14 08:20:09.354327715 +0200
@@ -18,6 +18,92 @@
 #define MOVE        8
 #define RESIZE_NONE 11
 
+#define NEW_LOCK_FN(var) \
+static void \
+_e_border_menu_cb_##var(void *data, E_Menu *m, E_Menu_Item *mi) \
+{ \
+   E_Border *bd; \
+   bd = data; \
+   bd->var = e_menu_item_toggle_get(mi); \
+   bd->changed = 1; \
+}
+
+#define MI_EDJE_SET(edj) \
+   if( strcmp(edj, "") ) \
+     { \
+  e_menu_item_icon_edje_set(mi, \
+			    (char *)e_theme_edje_file_get("base/theme/borders", \
+			    "widgets/border/default/"edj), \
+			    "widgets/border/default/"edj); \
+     } 
+   
+#define NEW_MI_ACTION(txt, var, edj) \
+  mi = e_menu_item_new(m); \
+  e_menu_item_label_set(mi, txt); \
+  e_menu_item_callback_set(mi, _e_border_menu_cb_##var, bd); \
+  MI_EDJE_SET(edj);
+
+#define NEW_MI_CHECK(txt, var, cbvar, edj) \
+  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 ? 1 : 0)); \
+  e_menu_item_callback_set(mi, _e_border_menu_cb_##cbvar, bd); \
+  MI_EDJE_SET(edj);
+
+#define NEW_MI_RADIO(txt, var, val, cb, edj) \
+  mi = e_menu_item_new(m); \
+  e_menu_item_label_set(mi, txt); \
+  e_menu_item_radio_set(mi, 1); \
+  e_menu_item_radio_group_set(mi, 2); \
+  e_menu_item_toggle_set(mi, (bd->var == val ? 1 : 0)); \
+  e_menu_item_callback_set(mi, cb, bd); \
+  MI_EDJE_SET(edj);
+
+#define NEW_MI_SUBMENU(txt, var, edj) \
+  mi = e_menu_item_new(m); \
+  e_menu_item_label_set(mi, txt); \
+  e_menu_item_submenu_set(mi, bd->border_##var##_menu); \
+  MI_EDJE_SET(edj);
+
+#define NEW_MI_SEPARATOR() \
+  mi = e_menu_item_new(m); \
+  e_menu_item_separator_set(mi, 1);
+   
+#define NEW_REMEMBER_MI(txt, flag, var, cb, edj) \
+   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); \
+   MI_EDJE_SET(edj);
+
+#define MI_COND(cond, action) \
+   if(cond) \
+     { \
+	action; \
+     } \
+
+#define FREE_MENU(var) \
+   if (var) \
+     { \
+	e_object_del(E_OBJECT(var)); \
+	var = NULL; \
+     }
+
+#define FREE_ALL_MENU() \
+   FREE_MENU(bd->border_menu); \
+   FREE_MENU(bd->border_locks_menu); \
+   FREE_MENU(bd->border_user_locks_menu); \
+   FREE_MENU(bd->border_application_locks_menu); \
+   FREE_MENU(bd->border_common_locks_menu); \
+   FREE_MENU(bd->border_remember_menu); \
+   FREE_MENU(bd->border_remember_what_menu); \
+   FREE_MENU(bd->border_remember_for_menu); \
+   FREE_MENU(bd->border_remember_match_menu); \
+   FREE_MENU(bd->border_stacking_menu) \
+
 /* local subsystem functions */
 static void _e_border_free(E_Border *bd);
 static void _e_border_del(E_Border *bd);
@@ -1965,26 +2051,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;
-     }
+
+   FREE_ALL_MENU();
+
    if (focused == bd)
      {
 //	ecore_x_window_focus(bd->zone->container->manager->root);
@@ -4125,7 +4194,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,36 +5146,12 @@
    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;
-	  }
+	FREE_ALL_MENU();
 	bd->border_menu = NULL;
      }
    e_object_del(E_OBJECT(m));
 }
 
-#define NEW_LOCK_FN(var) \
-static void \
-_e_border_menu_cb_##var(void *data, E_Menu *m, E_Menu_Item *mi) \
-{ \
-   E_Border *bd; \
-   bd = data; \
-   bd->var = e_menu_item_toggle_get(mi); \
-   bd->changed = 1; \
-}
-
 NEW_LOCK_FN(lock_user_location)
 NEW_LOCK_FN(lock_client_location)
 NEW_LOCK_FN(lock_user_size)
@@ -5122,7 +5167,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)
@@ -5582,285 +5627,136 @@
    E_App *a;
 
    if (bd->border_menu) return;
+   
+   m = e_menu_new();
+   bd->border_user_locks_menu = m;
+   NEW_MI_CHECK(_("Position"), lock_user_location, lock_user_location, "position");
+   NEW_MI_CHECK(_("Size"), lock_user_size, lock_user_size, "size");
+   NEW_MI_CHECK(_("Iconify"), lock_user_iconify, lock_user_iconify, "minimize");
+   NEW_MI_CHECK(_("Shade"), lock_user_shade, lock_user_shade, "shade");
+   NEW_MI_CHECK(_("Maximize"), lock_user_maximize, lock_user_maximize, "maximize");
+   NEW_MI_CHECK(_("Sticky"), lock_user_sticky, lock_user_sticky, "stick");
+/* NEW_LOCK_CHECK(_("Virtual Desktop"), lock_user_desk, lock_user_desk, "desktop"); */
+   NEW_MI_CHECK(_("Fullscreen"), lock_user_fullscreen, lock_user_fullscreen, "fullscreen");
+   NEW_MI_CHECK(_("Stacking"), lock_user_stacking, lock_user_stacking, "stacking");
+   
+   m = e_menu_new();
+   bd->border_application_locks_menu = m;
+   NEW_MI_CHECK(_("Position"), lock_client_location, lock_client_location, "position");
+   NEW_MI_CHECK(_("Size"), lock_client_size, lock_client_size, "size");
+   NEW_MI_CHECK(_("Iconify"), lock_client_iconify, lock_client_iconify, "minimize");
+   NEW_MI_CHECK(_("Shade"), lock_client_shade, lock_client_shade, "shade");
+   NEW_MI_CHECK(_("Maximize"), lock_client_maximize, lock_client_maximize, "maximize");
+   NEW_MI_CHECK(_("Sticky"), lock_client_sticky, lock_client_sticky, "stick");
+/* NEW_LOCK_CHECK(_("Virtual Desktop"), lock_client_desk, lock_client_desk, "desktop"); */
+   NEW_MI_CHECK(_("Fullscreen"), lock_client_fullscreen, lock_client_fullscreen, "fullscreen");
+   NEW_MI_CHECK(_("Stacking"), lock_client_stacking, lock_client_stacking, "stacking");
+   
+   m = e_menu_new();
+   bd->border_common_locks_menu = m;
+   NEW_MI_CHECK(_("Border"), lock_border, lock_border, "borderless");
+   NEW_MI_CHECK(_("Close"), lock_close, lock_close, "close");
+/*   NEW_MI_CHECK(_("Focus In"), lock_focus_in, lock_focus_in, "focus_in"); */
+/*   NEW_MI_CHECK(_("Focus Out"), lock_focus_out, lock_focus_out, "focus_out"); */
+   NEW_MI_CHECK(_("Lifespan"), lock_life, lock_life, "life");
 
    m = e_menu_new();
    bd->border_locks_menu = m;
+   NEW_MI_SUBMENU(_("User"), user_locks, "user");
+   NEW_MI_SUBMENU(_("Application"), application_locks, "application");
+   NEW_MI_SUBMENU(_("Common"), common_locks, "common");
 
-#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);
+   m = e_menu_new();
+   bd->border_remember_what_menu = m;
+   NEW_REMEMBER_MI(_("Position"), apply, E_REMEMBER_APPLY_POS, _e_border_menu_cb_remember_apply_pos, "position");
+   NEW_REMEMBER_MI(_("Size"), apply, E_REMEMBER_APPLY_SIZE, _e_border_menu_cb_remember_apply_size, "size");
+   NEW_REMEMBER_MI(_("Stickiness"), apply, E_REMEMBER_APPLY_STICKY, _e_border_menu_cb_remember_apply_sticky, "stick");
+   NEW_REMEMBER_MI(_("Shaded State"), apply, E_REMEMBER_APPLY_SHADE, _e_border_menu_cb_remember_apply_shade, "shade");
+   NEW_REMEMBER_MI(_("Border"), apply, E_REMEMBER_APPLY_BORDER, _e_border_menu_cb_remember_apply_border, "borderless");
+   NEW_REMEMBER_MI(_("Skip Window List"), apply, E_REMEMBER_APPLY_SKIP_WINLIST, _e_border_menu_cb_remember_apply_skip_winlist, "skip_winlist");
+   NEW_REMEMBER_MI(_("Stacking"), apply, E_REMEMBER_APPLY_LAYER, _e_border_menu_cb_remember_apply_layer, "stacking");
+   NEW_MI_SEPARATOR();
+   NEW_REMEMBER_MI(_("Locks"), apply, E_REMEMBER_APPLY_LOCKS, _e_border_menu_cb_remember_apply_locks, "locks");
+   NEW_MI_SEPARATOR();
+   NEW_REMEMBER_MI(_("Desktop"), apply, E_REMEMBER_APPLY_DESKTOP, _e_border_menu_cb_remember_apply_desktop, "desktop");
+   NEW_REMEMBER_MI(_("Zone"), apply, E_REMEMBER_APPLY_ZONE, _e_border_menu_cb_remember_apply_zone, "zone");
+/*   
    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_remember_menu = m;
+   NEW_REMEMBER_MI(_("Run this porgram on login"), apply, E_REMEMBER_APPLY_RUN, _e_border_menu_cb_remember_apply_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;
    mi = e_menu_item_new(m);
-   e_menu_item_label_set(mi, _("Remember This Window")); \
+   e_menu_item_label_set(mi, _("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);
- */ 
+   /* MI_EDJE_SET(""); */
+   NEW_REMEMBER_MI(_("This Instance Only"), apply_first_only, 1, _e_border_menu_cb_remember_first, "");
+
+   m = e_menu_new();
+   bd->border_remember_match_menu = m;
+   NEW_REMEMBER_MI(_("Name"), match, E_REMEMBER_MATCH_NAME, _e_border_menu_cb_remember_match_name, "");
+   NEW_REMEMBER_MI(_("Class"), match, E_REMEMBER_MATCH_CLASS, _e_border_menu_cb_remember_match_class, "");
+   NEW_REMEMBER_MI(_("Title"), match, E_REMEMBER_MATCH_TITLE, _e_border_menu_cb_remember_match_title, "");
+   NEW_REMEMBER_MI(_("Role"), match, E_REMEMBER_MATCH_ROLE, _e_border_menu_cb_remember_match_role, "");
+   NEW_REMEMBER_MI(_("Window Type"), match, E_REMEMBER_MATCH_TYPE, _e_border_menu_cb_remember_match_type, "");
+   NEW_REMEMBER_MI(_("Transient Status"), match, E_REMEMBER_MATCH_TRANSIENT, _e_border_menu_cb_remember_match_transient, "");
+
+   m = e_menu_new();
+   bd->border_remember_menu = m;
+   NEW_MI_SUBMENU(_("What"), remember_what, "");
+   NEW_MI_SUBMENU(_("For"), remember_for, "");
+   NEW_MI_SUBMENU(_("Match By"), remember_match, "");
 
    m = e_menu_new();
    bd->border_stacking_menu = m;
    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");
+   NEW_MI_RADIO(_("Always On Top"), layer, 150, _e_border_menu_cb_on_top, "stack_on_top");
+   NEW_MI_RADIO(_("Normal"), layer, 100, _e_border_menu_cb_normal, "stack_normal");
+   NEW_MI_RADIO(_("Always Below"), layer, 50, _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");
-     }
-
-   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))
-     {
-	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);
-	e_menu_item_icon_edje_set(mi, 
-				  (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)
-     {
-	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");
-     }
-
-   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");
-     }
-   
-   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");
-     }
-  
-   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");
-   
+   MI_COND(!bd->lock_close, NEW_MI_ACTION(_("Close"), close, "close"));
+   MI_COND((!bd->lock_close) && (!bd->internal), NEW_MI_ACTION(_("Kill"), kill, "kill"));
+   NEW_MI_SEPARATOR();
+   MI_COND(!bd->lock_user_iconify, NEW_MI_ACTION(_("Iconify"), iconify, "minimize"));
+   MI_COND(!bd->lock_user_maximize, NEW_MI_CHECK(_("Maximized"), maximized, maximize, "maximize"));
+   MI_COND(!bd->lock_user_shade, NEW_MI_CHECK(_("Shaded"), shaded, shade, "shade"));
+   MI_COND(!bd->lock_user_sticky, NEW_MI_CHECK(_("Sticky"), sticky, stick, "stick"));
    if (!bd->lock_border)
      {
+	/* NOTE: must bd be changed to be compliant to this macro regarding borderless ? */
+	/* MI_COND(!bd->lock_border, NEW_MI_CHECK(_("Borderless"), borderless, _e_border_menu_cb_borderless, "borderless")); */
 	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");
-     }
-
-   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");
-     }
-
-   if ((bd->client.icccm.accepts_focus) &&
-       (!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");
+	MI_EDJE_SET("borderless");
      }
-   
-   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);
-
+   MI_COND(!bd->lock_user_fullscreen, NEW_MI_CHECK(_("Fullscreen"), fullscreen, fullscreen, "fullscreen"));
+   MI_COND(((bd->client.icccm.accepts_focus) &&
+	        (!bd->client.netwm.state.skip_taskbar)), NEW_MI_CHECK(_("Skip Window List"), 
+		user_skip_winlist, skip_winlist, "skip_winlist"));
+   MI_COND(!bd->lock_user_stacking, NEW_MI_SUBMENU(_("Stacking"), stacking, "stacking"));
+   NEW_MI_SEPARATOR();
+   NEW_MI_SUBMENU(_("Locks"), locks, "locks");
+   NEW_MI_SUBMENU(_("Remember"), remember, "remember");
+   NEW_MI_SEPARATOR();
    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");
+   MI_EDJE_SET("sendto");
 
    if (ecore_file_app_installed("e_util_eapp_edit"))
      {
--- e/src/bin/e_border.h	2005-07-13 11:25:28.000000000 +0200
+++ e.fun/src/bin/e_border.h	2005-07-14 08:20:06.927879546 +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;
    
--- e/src/bin/e_config.c	2005-07-13 11:25:28.000000000 +0200
+++ e.fun/src/bin/e_config.c	2005-07-14 01:32:03.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_remember.c	2005-07-10 14:42:47.000000000 +0200
+++ e.fun/src/bin/e_remember.c	2005-07-14 01:32:22.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 01:32:49.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-14 08:19:46.135608198 +0200
@@ -179,9 +179,18 @@
 x_libs = @x_libs@
 MAINTAINERCLEANFILES = Makefile.in
 EXTRA_DIST = \
-e17_brushed.png \
-e17_reflection_shadow_overlay.png \
-e17_sm_reflection_shadow_overlay.png \
+e17_battery_000.png \
+e17_battery_010.png \
+e17_battery_020.png \
+e17_battery_030.png \
+e17_battery_040.png \
+e17_battery_050.png \
+e17_battery_060.png \
+e17_battery_070.png \
+e17_battery_080.png \
+e17_battery_090.png \
+e17_battery_100.png \
+e17_battery_ac.png \
 e17_border1.png \
 e17_border2.png \
 e17_border3.png \
@@ -189,61 +198,30 @@
 e17_border5.png \
 e17_border6.png \
 e17_border7.png \
-e17_button.png \
+e17_brushed.png \
 e17_button2.png \
+e17_button_detail_application.png \
 e17_button_detail_borderless.png \
 e17_button_detail_close.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_menu_arrow.png \
-e17_menu_bg.png \
-e17_menu_bg_border.png \
-e17_menu_check1.png \
-e17_menu_check2.png \
-e17_menu_radio1.png \
-e17_menu_radio2.png \
-e17_menu_separator.png \
-e17_mini_button.png \
-e17_mini_button_shadow1.png \
-e17_mini_button_shadow2.png \
-e17_titlebar.png \
-e17_titlebar_hung.png \
-e17_titlebar_glint1.png \
-e17_titlebar_glint2.png \
-e17_titlebar_glint3.png \
-e17_titlebar_outline.png \
-e17_titlebar_shadow1.png \
-e17_titlebar_shadow2.png \
-e17_ibar_arrow_d.png \
-e17_ibar_arrow_l.png \
-e17_ibar_arrow_r.png \
-e17_ibar_arrow_u.png \
-e17_ibar_bg_h.png \
-e17_ibar_bg_v.png \
-e17_ibar_handle_h.png \
-e17_ibar_handle_h2.png \
-e17_ibar_handle_thumb_h.png \
-e17_ibar_handle_thumb_v.png \
-e17_ibar_handle_v.png \
-e17_ibar_handle_v2.png \
-e17_ibar_lamp_d.png \
-e17_ibar_lamp_l.png \
-e17_ibar_lamp_r.png \
-e17_ibar_lamp_u.png \
-e17_ibar_over_h.png \
-e17_ibar_over_v.png \
+e17_button_detail_user.png \
+e17_button.png \
 e17_clock_bg.png \
 e17_clock_fg.png \
 e17_clock_hour_00.png \
@@ -426,27 +404,10 @@
 e17_clock_seconds_57.png \
 e17_clock_seconds_58.png \
 e17_clock_seconds_59.png \
-e17_battery_000.png \
-e17_battery_010.png \
-e17_battery_020.png \
-e17_battery_030.png \
-e17_battery_040.png \
-e17_battery_050.png \
-e17_battery_060.png \
-e17_battery_070.png \
-e17_battery_080.png \
-e17_battery_090.png \
-e17_battery_100.png \
-e17_battery_ac.png \
-e17_pager_desk.png \
-e17_pager_desk_sel.png \
-e17_pager_window.png \
-e17_temperature_base.png \
-e17_temperature_mid.png \
-e17_temperature_overlay.png \
-e17_gadman_indicator.png \
-e17_gadman_overlay.png \
-e17_logo.png \
+e17_cpufreq_cpu1.png \
+e17_cpufreq_cpu2.png \
+e17_cpufreq_decrease1.png \
+e17_cpufreq_decrease2.png \
 e17_cpufreq_freq00.png \
 e17_cpufreq_freq01.png \
 e17_cpufreq_freq02.png \
@@ -460,14 +421,58 @@
 e17_cpufreq_freq10.png \
 e17_cpufreq_increase1.png \
 e17_cpufreq_increase2.png \
-e17_cpufreq_decrease1.png \
-e17_cpufreq_decrease2.png \
-e17_cpufreq_cpu1.png \
-e17_cpufreq_cpu2.png \
-e17_winlist_top.png \
-e17_winlist_bottom.png \
+e17_gadman_indicator.png \
+e17_gadman_overlay.png \
+e17_ibar_arrow_d.png \
+e17_ibar_arrow_l.png \
+e17_ibar_arrow_r.png \
+e17_ibar_arrow_u.png \
+e17_ibar_bg_h.png \
+e17_ibar_bg_v.png \
+e17_ibar_handle_h2.png \
+e17_ibar_handle_h.png \
+e17_ibar_handle_thumb_h.png \
+e17_ibar_handle_thumb_v.png \
+e17_ibar_handle_v2.png \
+e17_ibar_handle_v.png \
+e17_ibar_lamp_d.png \
+e17_ibar_lamp_l.png \
+e17_ibar_lamp_r.png \
+e17_ibar_lamp_u.png \
+e17_ibar_over_h.png \
+e17_ibar_over_v.png \
+e17_logo.png \
+e17_menu_arrow.png \
+e17_menu_bg_border.png \
+e17_menu_bg.png \
+e17_menu_check1.png \
+e17_menu_check2.png \
+e17_menu_radio1.png \
+e17_menu_radio2.png \
+e17_menu_separator.png \
+e17_mini_button.png \
+e17_mini_button_shadow1.png \
+e17_mini_button_shadow2.png \
+e17_pager_desk.png \
+e17_pager_desk_sel.png \
+e17_pager_window.png \
 e17_pager_window_shaded.png \
-e17_transition_vswipe_gap.png
+e17_reflection_shadow_overlay.png \
+e17_sm_reflection_shadow_overlay.png \
+e17_temperature_base.png \
+e17_temperature_mid.png \
+e17_temperature_overlay.png \
+e17_titlebar_glint1.png \
+e17_titlebar_glint2.png \
+e17_titlebar_glint3.png \
+e17_titlebar_hung.png \
+e17_titlebar_outline.png \
+e17_titlebar.png \
+e17_titlebar_shadow1.png \
+e17_titlebar_shadow2.png \
+e17_transition_vswipe_gap.png \
+e17_winlist_bottom.png \
+e17_winlist_top.png 
 
 all: all-am
 

Reply via email to