[balsa/gtk3] Install and use a directory for GtkBuilder files



commit 1387b20cff91edc33977ce43bec6ef3e7959e829
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Sat Jul 20 12:43:57 2013 -0400

    Install and use a directory for GtkBuilder files
    
        * ui/Makefile.am: new file.
        * ui/source-viewer.ui: ditto.
        * Makefile.am: add ui to SUBDIRS.
        * configure.ac: add ui/Makefile to AC_OUTPUT.
        * libbalsa/source-viewer.c: use installed ui file.

 ChangeLog                |   26 +--
 Makefile.am              |    2 +-
 configure.ac             |    1 +
 libbalsa/source-viewer.c |    7 +-
 ui/Makefile.am           |    6 +
 ui/main-window.ui        |  558 ++++++++++++++++++++++++++++++++++++++++++++++
 ui/source-viewer.ui      |   44 ++++
 7 files changed, 626 insertions(+), 18 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 49a5883..ff5d9d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2013-07-20  Peter Bloomfield
 
+       Install and use a directory for GtkBuilder *.ui files
+
+       * ui/Makefile.am: new file.
+       * ui/main-window.ui: ditto.
+       * ui/source-viewer.ui: ditto.
+       * Makefile.am: add ui to SUBDIRS.
+       * configure.ac: add ui/Makefile to AC_OUTPUT.
+       * libbalsa/source-viewer.c: use installed ui file.
+
+2013-07-20  Peter Bloomfield
+
        * src/main-window.c: use new prototype for source viewer.
 
 2013-07-20  Peter Bloomfield
@@ -14,21 +25,6 @@
        * src/message-window.c (view_msg_source_cb): ditto.
        * src/sendmsg-window.c (sendmsg_window_new_from_list): ditto.
 
-2013-07-20  Peter Bloomfield  <peter w500 bellsouth net>
-
-       reviewed by: <delete if not using a buddy>
-
-       * libbalsa/libbalsa.h:
-       * libbalsa/source-viewer.c (lsv_close_activated),
-       (lsv_copy_activated), (lsv_select_activated),
-       (lsv_toggle_activated), (lsv_escape_change_state),
-       (lsv_app_set_menus), (libbalsa_show_message_source):
-       * src/balsa-index.c (bndx_view_source):
-       * src/main-window.c:
-       * src/main-window.h:
-       * src/message-window.c (view_msg_source_cb):
-       * src/sendmsg-window.c (sendmsg_window_new_from_list):
-
 2013-07-18  Peter Bloomfield
 
        More GtkStock deprecation cleanup
diff --git a/Makefile.am b/Makefile.am
index 3d89587..8e6e528 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
 #intl dir needed for tarball --disable-nls build.
 DISTCHECK_CONFIGURE_FLAGS="--disable-extra-mimeicons"
-SUBDIRS = po sounds images doc libbalsa libinit_balsa src
+SUBDIRS = po sounds images doc libbalsa libinit_balsa src ui
 # set tar in case it is not set by automake or make
 
 man_MANS=balsa.1
diff --git a/configure.ac b/configure.ac
index 5379b85..b9ae71a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1010,6 +1010,7 @@ libbalsa/Makefile
 libbalsa/imap/Makefile
 libinit_balsa/Makefile
 src/Makefile
+ui/Makefile
 ])
 
 dnl ##########################################################################
diff --git a/libbalsa/source-viewer.c b/libbalsa/source-viewer.c
index 5bf2447..99dc72c 100644
--- a/libbalsa/source-viewer.c
+++ b/libbalsa/source-viewer.c
@@ -198,10 +198,13 @@ lsv_app_set_menus(GtkWindow * app, GAction ** action)
     *action = g_action_map_lookup_action(G_ACTION_MAP(app), "lsv-escape");
 
     builder = gtk_builder_new();
-    if (gtk_builder_add_from_file(builder, "source-viewer.ui", &err)) {
+    if (gtk_builder_add_from_file(builder,
+                                  BALSA_DATA_PREFIX "/ui/source-viewer.ui",
+                                  &err)) {
         GMenuModel *menu_model;
 
-        menu_model = G_MENU_MODEL(gtk_builder_get_object(builder, "menubar"));
+        menu_model =
+            G_MENU_MODEL(gtk_builder_get_object(builder, "menubar"));
         menu_bar = gtk_menu_bar_new_from_model(menu_model);
     } else {
         g_print("%s error: %s\n", __func__, err->message);
diff --git a/ui/Makefile.am b/ui/Makefile.am
new file mode 100644
index 0000000..a8aaf87
--- /dev/null
+++ b/ui/Makefile.am
@@ -0,0 +1,6 @@
+balsa_ui_FILES = source-viewer.ui
+
+EXTRA_DIST = $(balsa_ui_FILES)
+
+balsa_uidir = $(BALSA_DATA_PREFIX)/ui
+balsa_ui_DATA = $(balsa_ui_FILES)
diff --git a/ui/main-window.ui b/ui/main-window.ui
new file mode 100644
index 0000000..bf5c0f8
--- /dev/null
+++ b/ui/main-window.ui
@@ -0,0 +1,558 @@
+<interface>
+  <menu id='app-menu'>
+    <submenu>
+      <attribute name='label' translatable='yes'>_New</attribute>
+      <section>
+        <item>
+          <attribute name='label' translatable='yes'>_Message</attribute>
+          <attribute name='action'>app.new-message</attribute>
+          <attribute name='accel'>m</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Local mbox mailbox…</attribute>
+          <attribute name='action'>app.new-mbox</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Local Maildir mailbox…</attribute>
+          <attribute name='action'>app.new-maildir</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Local MH mailbox…</attribute>
+          <attribute name='action'>app.new-mh</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Remote IMAP mailbox…</attribute>
+          <attribute name='action'>app.new-imap-box</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Remote IMAP folder…</attribute>
+          <attribute name='action'>app.new-imap-folder</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Remote IMAP subfolder…</attribute>
+          <attribute name='action'>app.new-imap-subfolder</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name='label' translatable='yes'>_Settings</attribute>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Toolbars…</attribute>
+          <attribute name='action'>app.toolbars</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Identities…</attribute>
+          <attribute name='action'>app.identities</attribute>
+        </item>
+      </section>
+    </submenu>
+    <section>
+      <item>
+        <attribute name='label'
+          translatable='yes'>_Address Book</attribute>
+        <attribute name='action'>app.address-book</attribute>
+        <attribute name='accel'>b</attribute>
+      </item>
+    </section>
+    <section>
+      <item>
+        <attribute name='label' translatable='yes'>_Preferences</attribute>
+        <attribute name='action'>app.prefs</attribute>
+      </item>
+      <item>
+        <attribute name='label' translatable='yes'>_Help</attribute>
+        <attribute name='action'>app.help</attribute>
+      </item>
+      <item>
+        <attribute name='label' translatable='yes'>_About</attribute>
+        <attribute name='action'>app.about</attribute>
+      </item>
+    </section>
+    <section>
+      <item>
+        <attribute name='label' translatable='yes'>_Quit</attribute>
+        <attribute name='action'>app.quit</attribute>
+        <attribute name='accel'>&lt;Primary&gt;q</attribute>
+      </item>
+    </section>
+  </menu>
+  <menu id='menubar'>
+    <submenu>
+      <attribute name='label' translatable='yes'>_File</attribute>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Continue</attribute>
+          <attribute name='action'>win.continue</attribute>
+          <attribute name='accel'>c</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Get New Mail</attribute>
+          <attribute name='action'>win.get-new-mail</attribute>
+          <attribute name='accel'>&lt;Primary&gt;m</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Send Queued Mail</attribute>
+          <attribute name='action'>win.send-queued-mail</attribute>
+          <attribute name='accel'>&lt;Primary&gt;t</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Send and _Receive Mail</attribute>
+          <attribute name='action'>win.send-and-receive-mail</attribute>
+          <attribute name='accel'>&lt;Primary&gt;b</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Page _Setup</attribute>
+          <attribute name='action'>win.page-setup</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Print…</attribute>
+          <attribute name='action'>win.print</attribute>
+          <attribute name='accel'>&lt;Primary&gt;p</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name='label' translatable='yes'>_Edit</attribute>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Copy</attribute>
+          <attribute name='action'>win.copy</attribute>
+          <attribute name='accel'>&lt;Primary&gt;c</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Select _All</attribute>
+          <attribute name='action'>win.select-all</attribute>
+          <attribute name='accel'>&lt;Primary&gt;a</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Select _Thread</attribute>
+          <attribute name='action'>win.select-thread</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Find</attribute>
+          <attribute name='action'>win.find</attribute>
+          <attribute name='accel'>&lt;Primary&gt;f</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Find Ne_xt</attribute>
+          <attribute name='action'>win.find-next</attribute>
+          <attribute name='accel'>&lt;Primary&gt;g</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Find in _Message</attribute>
+          <attribute name='action'>win.find-in-message</attribute>
+          <attribute name='accel'>slash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>F_ilters…</attribute>
+          <attribute name='action'>win.filters</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Export Filters…</attribute>
+          <attribute name='action'>win.export-filters</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name='label' translatable='yes'>_View</attribute>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Show Mailbox Tree</attribute>
+          <attribute name='action'>win.show-mailbox-tree</attribute>
+          <attribute name='accel'>F9</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Show Mailbox _Tabs</attribute>
+          <attribute name='action'>win.show-mailbox-tabs</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Show Too_lbar</attribute>
+          <attribute name='action'>win.show-toolbar</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Show St_atus Bar</attribute>
+          <attribute name='action'>win.show-statusbar</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Show _Index Filter</attribute>
+          <attribute name='action'>win.show-sos-bar</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Wrap</attribute>
+          <attribute name='action'>win.wrap</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_No Headers</attribute>
+          <attribute name='action'>win.headers</attribute>
+          <attribute name='target'>none</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>S_elected Headers</attribute>
+          <attribute name='action'>win.headers</attribute>
+          <attribute name='target'>selected</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>All _Headers</attribute>
+          <attribute name='action'>win.headers</attribute>
+          <attribute name='target'>all</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Flat index</attribute>
+          <attribute name='action'>win.threading</attribute>
+          <attribute name='target'>flat</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Si_mple threading</attribute>
+          <attribute name='action'>win.threading</attribute>
+          <attribute name='target'>simple</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_JWZ threading</attribute>
+          <attribute name='action'>win.threading</attribute>
+          <attribute name='target'>jwz</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>E_xpand All</attribute>
+          <attribute name='action'>win.expand-all</attribute>
+          <attribute name='accel'>&lt;Primary&gt;e</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Collapse All</attribute>
+          <attribute name='action'>win.collapse-all</attribute>
+          <attribute name='accel'>&lt;Primary&gt;l</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Zoom _In</attribute>
+          <attribute name='action'>win.zoom-in</attribute>
+          <attribute name='accel'>&lt;Primary&gt;plus</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Zoom _Out</attribute>
+          <attribute name='action'>win.zoom-out</attribute>
+          <attribute name='accel'>&lt;Primary&gt;minus</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Zoom _100%</attribute>
+          <attribute name='action'>win.zoom-normal</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name='label' translatable='yes'>Mail_box</attribute>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Next Message</attribute>
+          <attribute name='action'>win.next-message</attribute>
+          <attribute name='accel'>n</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Previous Message</attribute>
+          <attribute name='action'>win.previous-message</attribute>
+          <attribute name='accel'>p</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Next Unread Message</attribute>
+          <attribute name='action'>win.next-unread</attribute>
+          <attribute name='accel'>&lt;Primary&gt;n</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Next Flagged Message</attribute>
+          <attribute name='action'>win.next-flagged</attribute>
+          <attribute name='accel'>&lt;Primary&gt;&lt;Alt&gt;f</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+            <attribute name='label'
+              translatable='yes'>_Hide Messages</attribute>
+          <item>
+            <attribute name='label'
+              translatable='yes'>_Deleted</attribute>
+            <attribute name='action'>win.hide-deleted</attribute>
+          </item>
+          <item>
+            <attribute name='label'
+              translatable='yes'>Un_deleted</attribute>
+            <attribute name='action'>win.hide-undeleted</attribute>
+          </item>
+          <item>
+            <attribute name='label'
+              translatable='yes'>_Read</attribute>
+            <attribute name='action'>win.hide-read</attribute>
+          </item>
+          <item>
+            <attribute name='label'
+              translatable='yes'>Un_read</attribute>
+            <attribute name='action'>win.hide-unread</attribute>
+          </item>
+          <item>
+            <attribute name='label'
+              translatable='yes'>_Flagged</attribute>
+            <attribute name='action'>win.hide-flagged</attribute>
+          </item>
+          <item>
+            <attribute name='label'
+              translatable='yes'>Un_flagged</attribute>
+            <attribute name='action'>win.hide-unflagged</attribute>
+          </item>
+          <item>
+            <attribute name='label'
+              translatable='yes'>_Answered</attribute>
+            <attribute name='action'>win.hide-answered</attribute>
+          </item>
+          <item>
+            <attribute name='label'
+              translatable='yes'>Un_answered</attribute>
+            <attribute name='action'>win.hide-unanswered</attribute>
+          </item>
+        </submenu>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Reset Filter</attribute>
+          <attribute name='action'>win.reset-filter</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Select _All</attribute>
+          <attribute name='action'>win.mailbox-select-all</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Properties</attribute>
+          <attribute name='action'>win.mailbox-edit</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Delete</attribute>
+          <attribute name='action'>win.mailbox-delete</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>E_xpunge Deleted Messages</attribute>
+          <attribute name='action'>win.mailbox-expunge</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Close</attribute>
+          <attribute name='action'>win.mailbox-close</attribute>
+          <attribute name='accel'>&lt;Primary&gt;w</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Empty _Trash</attribute>
+          <attribute name='action'>win.empty-trash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Select _Filters…</attribute>
+          <attribute name='action'>win.select-filters</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Remove Duplicates</attribute>
+          <attribute name='action'>win.remove-duplicates</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name='label' translatable='yes'>_Message</attribute>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Reply…</attribute>
+          <attribute name='action'>win.reply</attribute>
+          <attribute name='accel'>r</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Reply to _All…</attribute>
+          <attribute name='action'>win.reply-all</attribute>
+          <attribute name='accel'>a</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Reply to _Group…</attribute>
+          <attribute name='action'>win.reply-group</attribute>
+          <attribute name='accel'>g</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Forward Attached…</attribute>
+          <attribute name='action'>win.forward-attached</attribute>
+          <attribute name='accel'>f</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Forward _Inline…</attribute>
+          <attribute name='action'>win.forward-inline</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Pipe through…</attribute>
+          <attribute name='action'>win.pipe</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Next Part</attribute>
+          <attribute name='action'>win.next-part</attribute>
+          <attribute name='accel'>&lt;Primary&gt;period</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Previous Part</attribute>
+          <attribute name='action'>win.previous-part</attribute>
+          <attribute name='accel'>&lt;Primary&gt;comma</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>Save Current Part…</attribute>
+          <attribute name='action'>win.save-part</attribute>
+          <attribute name='accel'>&lt;Primary&gt;s</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_View Source…</attribute>
+          <attribute name='action'>win.view-source</attribute>
+          <attribute name='accel'>&lt;Primary&gt;u</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Copy</attribute>
+          <attribute name='action'>win.copy-message</attribute>
+          <attribute name='accel'>&lt;Primary&gt;c</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Select Text</attribute>
+          <attribute name='action'>win.select-text</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Move to Trash</attribute>
+          <attribute name='action'>win.move-to-trash</attribute>
+          <attribute name='accel'>d</attribute>
+        </item>
+      </section>
+      <submenu>
+        <attribute name='label' translatable='yes'>_Toggle Flag</attribute>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Flagged</attribute>
+          <attribute name='action'>win.toggle-flagged</attribute>
+          <attribute name='accel'>x</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Deleted</attribute>
+          <attribute name='action'>win.toggle-deleted</attribute>
+          <attribute name='accel'>&lt;Primary&gt;d</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_New</attribute>
+          <attribute name='action'>win.toggle-new</attribute>
+          <attribute name='accel'>&lt;Primary&gt;r</attribute>
+        </item>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Answered</attribute>
+          <attribute name='action'>win.toggle-answered</attribute>
+        </item>
+      </submenu>
+      <section>
+        <item>
+          <attribute name='label'
+              translatable='yes'>_Store Address…</attribute>
+          <attribute name='action'>win.store-address</attribute>
+          <attribute name='accel'>s</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/source-viewer.ui b/ui/source-viewer.ui
new file mode 100644
index 0000000..57af1f9
--- /dev/null
+++ b/ui/source-viewer.ui
@@ -0,0 +1,44 @@
+<interface>
+  <menu id='menubar'>
+    <submenu>
+      <attribute name='label' translatable='yes'>_File</attribute>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Close</attribute>
+          <attribute name='action'>win.lsv-close</attribute>
+          <attribute name='accel'>&lt;Primary&gt;w</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name='label' translatable='yes'>_Edit</attribute>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Copy</attribute>
+          <attribute name='action'>win.lsv-copy</attribute>
+          <attribute name='accel'>&lt;Primary&gt;c</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Select Text</attribute>
+          <attribute name='action'>win.lsv-select</attribute>
+          <attribute name='accel'>&lt;Primary&gt;a</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name='label' translatable='yes'>_View</attribute>
+      <section>
+        <item>
+          <attribute name='label'
+            translatable='yes'>_Escape Special Characters</attribute>
+          <attribute name='action'>win.lsv-escape</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]