Hello Anna,

Anna M Dirks wrote:
On Thu, 2004-05-06 at 00:12 -0400, William Jon McCann wrote:
I'm not sure putting them in a submenu is the way to go. I think they should be in one of the toplevels but I don't have any strong opinions on which one.

So given that our UI is *supposed* to be frozen, I would very much like
to make as few large changes to the Evo UI as possible. Adding a new
toplevel menu is exactly the kind of very large change which I want to
stay away from.
>
To that end, in keeping with the HIG, these items should be in the
"View" menu. The HIG goes as far as to stipulate that every app with a
toolbar should have a "Toolbar" menuitem, placed *in* the View menu. To
put it anywhere else would be to make ourselves inconsistent with the
rest of GNOME.

Ok. I'm not sure what the toolbar toggle has to do with this exactly except that the component buttons are certainly a type of toolbar. Therefore, they should have equivalent menu items.


I have updated the patch to move these items to the View menu.

Thanks,
Jon
Index: shell/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/shell/ChangeLog,v
retrieving revision 1.1428
diff -p -u -r1.1428 ChangeLog
--- shell/ChangeLog     5 May 2004 15:36:37 -0000       1.1428
+++ shell/ChangeLog     6 May 2004 21:31:12 -0000
@@ -1,3 +1,12 @@
+2004-05-05  William Jon McCann  <[EMAIL PROTECTED]>
+
+       * e-shell-window.c (menu_component_selected, setup_widgets):
+       Add components to View menu.
+
+       * e-component-registry.[ch] (component_info_new) 
+       (component_info_free, query_components): Add menu_label and
+       menu_accelerator fields.
+
 2004-05-05  Dan Winship  <[EMAIL PROTECTED]>
 
        * e-sidebar.c (layout_buttons): Change the algorithm so that if
Index: shell/e-shell-window.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-window.c,v
retrieving revision 1.22
diff -p -u -r1.22 e-shell-window.c
--- shell/e-shell-window.c      30 Apr 2004 06:22:04 -0000      1.22
+++ shell/e-shell-window.c      6 May 2004 21:31:13 -0000
@@ -552,6 +552,21 @@ setup_status_bar (EShellWindow *window)
 }
 
 static void
+menu_component_selected (BonoboUIComponent *uic,
+                        EShellWindow *window,
+                        const char *path)
+{
+       char *component_id = NULL;
+
+       component_id = g_utf8_strchr (path, -1, g_utf8_get_char ("-"));
+
+       if (component_id) {
+               component_id = g_utf8_next_char (component_id);
+               e_shell_window_switch_to_component (window, component_id);
+       }
+}
+
+static void
 setup_widgets (EShellWindow *window)
 {
        EShellWindowPrivate *priv = window->priv;
@@ -583,11 +598,49 @@ setup_widgets (EShellWindow *window)
 
        button_id = 0;
        for (p = e_component_registry_peek_list (registry); p != NULL; p = p->next) {
+               char *xml, *verb;
                EComponentInfo *info = p->data;
                ComponentView *view = component_view_new (info->id, info->alias, 
button_id);
 
                window->priv->component_views = g_slist_prepend 
(window->priv->component_views, view);
                e_sidebar_add_button (E_SIDEBAR (priv->sidebar), info->button_label, 
info->button_icon, button_id);
+
+               verb = g_strdup_printf ("SwitchComponent-%s", info->alias);
+
+               bonobo_ui_component_add_verb (e_shell_window_peek_bonobo_ui_component 
(window),
+                                             verb,
+                                             (BonoboUIVerbFn)menu_component_selected,
+                                             window);
+               
+               g_free (verb);
+
+               xml = g_strdup_printf ("<submenu name=\"View\">"
+                                      "<placeholder name=\"WindowComponent\">"
+                                      "<menuitem name=\"SwitchComponent-%s\" "
+                                      "verb=\"\" _tip=\"Switch to %s\" "
+                                      "_label=\"%s\" pixtype=\"pixbuf\" "
+                                      "pixname=\"%s\" accel=\"%s\"/>"
+                                      "</placeholder></submenu>\n",
+                                      info->alias,
+                                      info->button_label,
+                                      info->menu_label,
+                                      bonobo_ui_util_pixbuf_to_xml 
(info->button_icon),
+                                      info->menu_accelerator);
+
+               bonobo_ui_component_set_translate 
(e_shell_window_peek_bonobo_ui_component (window),
+                                                  "/menu",
+                                                  xml,
+                                                  NULL);
+               g_free (xml);
+
+               xml = g_strdup_printf ("<cmd name=\"SwitchComponent-%s\"/>\n",
+                                      info->alias);
+
+               bonobo_ui_component_set_translate 
(e_shell_window_peek_bonobo_ui_component (window),
+                                                  "/commands",
+                                                  xml,
+                                                  NULL);
+               g_free (xml);
 
                button_id ++;
        }
Index: shell/e-component-registry.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-component-registry.c,v
retrieving revision 1.48
diff -p -u -r1.48 e-component-registry.c
--- shell/e-component-registry.c        30 Apr 2004 06:22:04 -0000      1.48
+++ shell/e-component-registry.c        6 May 2004 21:31:13 -0000
@@ -54,6 +54,8 @@ static EComponentInfo *
 component_info_new (const char *id,
                    const char *alias,
                    const char *button_label,
+                   const char *menu_label,
+                   const char *menu_accelerator,
                    int sort_order,
                    GdkPixbuf *button_icon)
 {
@@ -62,6 +64,8 @@ component_info_new (const char *id,
        info->id = g_strdup (id);
        info->alias = g_strdup (alias);
        info->button_label = g_strdup (button_label);
+       info->menu_label = g_strdup (menu_label);
+       info->menu_accelerator = g_strdup (menu_accelerator);
        info->sort_order = sort_order;
 
        info->button_icon = button_icon;
@@ -77,6 +81,8 @@ component_info_free (EComponentInfo *inf
        g_free (info->id);
        g_free (info->alias);
        g_free (info->button_label);
+       g_free (info->menu_label);
+       g_free (info->menu_accelerator);
 
        if (info->button_icon)
                g_object_unref (info->button_icon);
@@ -157,6 +163,8 @@ query_components (EComponentRegistry *re
        for (i = 0; i < info_list->_length; i++) {
                const char *id;
                const char *label;
+               const char *menu_label;
+               const char *menu_accelerator;
                const char *alias;
                const char *icon_name;
                const char *sort_order_string;
@@ -169,6 +177,12 @@ query_components (EComponentRegistry *re
                if (label == NULL)
                        label = g_strdup (_("Unknown"));
 
+               menu_label = bonobo_server_info_prop_lookup (& info_list->_buffer[i], 
"evolution:menu_label", language_list);
+               if (menu_label == NULL)
+                       menu_label = g_strdup (_("Unknown"));
+
+               menu_accelerator = bonobo_server_info_prop_lookup (& 
info_list->_buffer[i], "evolution:menu_accelerator", language_list);
+
                alias = bonobo_server_info_prop_lookup (& info_list->_buffer[i], 
"evolution:component_alias", NULL);
 
                icon_name = bonobo_server_info_prop_lookup (& info_list->_buffer[i], 
"evolution:button_icon", NULL);
@@ -185,7 +199,8 @@ query_components (EComponentRegistry *re
                else
                        sort_order = atoi (sort_order_string);
 
-               info = component_info_new (id, alias, label, sort_order, icon);
+               info = component_info_new (id, alias, label, menu_label,
+                                          menu_accelerator, sort_order, icon);
                set_schemas (info, & info_list->_buffer [i]);
 
                registry->priv->infos = g_slist_prepend (registry->priv->infos, info);
Index: shell/e-component-registry.h
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-component-registry.h,v
retrieving revision 1.14
diff -p -u -r1.14 e-component-registry.h
--- shell/e-component-registry.h        20 Nov 2003 17:51:07 -0000      1.14
+++ shell/e-component-registry.h        6 May 2004 21:31:13 -0000
@@ -67,6 +67,8 @@ struct _EComponentInfo {
        GNOME_Evolution_Component iface;
 
        char *button_label;
+       char *menu_label;
+       char *menu_accelerator;
        GdkPixbuf *button_icon;
 
        int sort_order;
Index: mail/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/mail/ChangeLog,v
retrieving revision 1.3291
diff -p -u -r1.3291 ChangeLog
--- mail/ChangeLog      5 May 2004 21:01:24 -0000       1.3291
+++ mail/ChangeLog      6 May 2004 21:31:14 -0000
@@ -1,3 +1,8 @@
+2004-05-05  William Jon McCann  <[EMAIL PROTECTED]>
+
+       * GNOME_Evolution_Mail.server.in.in: Add menu_label and
+       menu_accelerator.
+
 2004-05-05  Jeffrey Stedfast  <[EMAIL PROTECTED]>
 
        * em-folder-tree.c (emft_tree_row_collapsed): Select the row that
Index: mail/GNOME_Evolution_Mail.server.in.in
===================================================================
RCS file: /cvs/gnome/evolution/mail/GNOME_Evolution_Mail.server.in.in,v
retrieving revision 1.19
diff -p -u -r1.19 GNOME_Evolution_Mail.server.in.in
--- mail/GNOME_Evolution_Mail.server.in.in      19 Apr 2004 15:20:48 -0000      1.19
+++ mail/GNOME_Evolution_Mail.server.in.in      6 May 2004 21:31:14 -0000
@@ -29,6 +29,8 @@
 
     <oaf_attribute name="evolution:component_alias" type="string" value="mail"/>
 
+    <oaf_attribute name="evolution:menu_label" type="string" _value="_Mail"/>
+    <oaf_attribute name="evolution:menu_accelerator" type="string" 
_value="*Control*F1"/>
     <oaf_attribute name="evolution:button_label" type="string" _value="Mail"/>
     <oaf_attribute name="evolution:button_sort_order" type="string" value="-10"/>
     <oaf_attribute name="evolution:button_icon" type="string" value="stock_mail"/>
Index: calendar/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2307
diff -p -u -r1.2307 ChangeLog
--- calendar/ChangeLog  5 May 2004 12:40:55 -0000       1.2307
+++ calendar/ChangeLog  6 May 2004 21:31:14 -0000
@@ -1,3 +1,8 @@
+2004-05-05  William Jon McCann  <[EMAIL PROTECTED]>
+
+       * gui/GNOME_Evolution_Calendar.server.in.in: Add menu_label and
+       menu_accelerator.
+
 2004-05-05  JP Rosevear  <[EMAIL PROTECTED]>
 
        Fixes #58025
Index: calendar/gui/GNOME_Evolution_Calendar.server.in.in
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/GNOME_Evolution_Calendar.server.in.in,v
retrieving revision 1.12
diff -p -u -r1.12 GNOME_Evolution_Calendar.server.in.in
--- calendar/gui/GNOME_Evolution_Calendar.server.in.in  19 Apr 2004 15:19:32 -0000     
 1.12
+++ calendar/gui/GNOME_Evolution_Calendar.server.in.in  6 May 2004 21:31:14 -0000
@@ -43,6 +43,8 @@
 
        <oaf_attribute name="name" type="string" _value="Evolution's Calendar 
component"/>
 
+       <oaf_attribute name="evolution:menu_label" type="string" _value="_Calendars"/>
+       <oaf_attribute name="evolution:menu_accelerator" type="string" 
_value="*Control*F3"/>
        <oaf_attribute name="evolution:button_label" type="string" _value="Calendars"/>
         <oaf_attribute name="evolution:button_icon" type="string" 
value="stock_calendar"/>
        <oaf_attribute name="evolution:button_sort_order" type="string" value="-8"/>
@@ -78,6 +80,8 @@
 
        <oaf_attribute name="name" type="string" _value="Evolution's Tasks component"/>
 
+       <oaf_attribute name="evolution:menu_label" type="string" _value="_Tasks"/>
+       <oaf_attribute name="evolution:menu_accelerator" type="string" 
_value="*Control*F4"/>
        <oaf_attribute name="evolution:button_label" type="string" _value="Tasks"/>
         <oaf_attribute name="evolution:button_icon" type="string" value="stock_todo"/>
        <oaf_attribute name="evolution:button_sort_order" type="string" value="-8"/>
Index: addressbook/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/ChangeLog,v
retrieving revision 1.1697
diff -p -u -r1.1697 ChangeLog
--- addressbook/ChangeLog       5 May 2004 06:24:11 -0000       1.1697
+++ addressbook/ChangeLog       6 May 2004 21:31:15 -0000
@@ -1,3 +1,8 @@
+2004-05-05  William Jon McCann  <[EMAIL PROTECTED]>
+
+       * gui/component/GNOME_Evolution_Addressbook.server.in.in:
+       Add menu_label and menu_accelerator.
+
 2004-05-05  Hans Petter Jansson  <[EMAIL PROTECTED]>
 
        * gui/contact-editor/e-contact-editor.c (init_address_textview):
Index: addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in
===================================================================
RCS file: 
/cvs/gnome/evolution/addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in,v
retrieving revision 1.15
diff -p -u -r1.15 GNOME_Evolution_Addressbook.server.in.in
--- addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in  3 May 2004 
14:23:22 -0000       1.15
+++ addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in  6 May 2004 
21:31:15 -0000
@@ -59,6 +59,8 @@
 
        <oaf_attribute name="evolution:component_alias" type="string" 
value="contacts"/>
 
+        <oaf_attribute name="evolution:menu_label" type="string" _value="C_ontacts"/>
+        <oaf_attribute name="evolution:menu_accelerator" type="string" 
_value="*Control*F2"/>
         <oaf_attribute name="evolution:button_label" type="string" _value="Contacts"/>
         <oaf_attribute name="evolution:button_sort_order" type="string" value="-9"/>
         <oaf_attribute name="evolution:button_icon" type="string" 
value="stock_addressbook"/>

Reply via email to