summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2013-07-18 21:06:39 +0100
committerCaolán McNamara <caolanm@redhat.com>2013-07-18 21:06:39 +0100
commit4843d5e8865d2f63f408f464e28be9440cb1ecc2 (patch)
tree83d912b87bee7e5fc34cf8f68461f65fb43a6544
parentc2fc6a5c46e1f3a825ba707cdd677eae7e1a688f (diff)
Related: fdo#48835 reuse Mac appmenu translations
to-do: a) dig around for the setting to toggle-on/off b) block the normal entries in the menus and merge the mac build-time hackery to block menus into per-platform run-time lists Change-Id: I8fc3657ccc6d1881d4345c0ea73b05f6a29b6e07
-rw-r--r--vcl/unx/gtk/window/gtksalframe.cxx77
1 files changed, 48 insertions, 29 deletions
diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
index 0b66ce255e6e..3bedd85bdfe8 100644
--- a/vcl/unx/gtk/window/gtksalframe.cxx
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
@@ -626,35 +626,54 @@ gboolean ensure_dbus_setup( gpointer data )
pSalFrame->m_nHudAwarenessId = hud_awareness_register( pSessionBus, aDBusMenubarPath, hud_activated, pSalFrame, NULL, NULL );
//app menu, to-do translations, block normal menus when active, honor use appmenu settings
- GMenu *menu = g_menu_new ();
- GMenuItem* item;
-
- GMenu *firstsubmenu = g_menu_new ();
- item = g_menu_item_new("_Preferences", "app.OptionsTreeDialog");
- g_menu_append_item( firstsubmenu, item );
- g_menu_append_section( menu, NULL, G_MENU_MODEL(firstsubmenu));
-
- GMenu *secondsubmenu = g_menu_new ();
- item = g_menu_item_new("_About", "app.About");
- g_menu_append_item( secondsubmenu, item );
-
- item = g_menu_item_new("_Help", "app.HelpIndex");
- g_menu_append_item( secondsubmenu, item );
- g_menu_append_section( menu, NULL, G_MENU_MODEL(secondsubmenu));
-
- GMenu *thirdsubmenu = g_menu_new ();
- item = g_menu_item_new("_Quit", "app.Quit");
- g_menu_append_item( thirdsubmenu, item );
- g_menu_append_section( menu, NULL, G_MENU_MODEL(thirdsubmenu));
-
- GSimpleActionGroup *group = g_simple_action_group_new ();
- g_simple_action_group_add_entries (group, app_entries, G_N_ELEMENTS (app_entries), NULL);
- GActionGroup* pAppActionGroup = G_ACTION_GROUP(group);
-
- pSalFrame->m_nAppActionGroupExportId = g_dbus_connection_export_action_group( pSessionBus, "/org/libreoffice", pAppActionGroup, NULL);
- g_object_unref(pAppActionGroup);
- pSalFrame->m_nAppMenuExportId = g_dbus_connection_export_menu_model (pSessionBus, "/org/libreoffice/menus/appmenu", G_MENU_MODEL (menu), NULL);
- g_object_unref(menu);
+ ResMgr* pMgr = ImplGetResMgr();
+ if( pMgr )
+ {
+ GMenu *menu = g_menu_new ();
+ GMenuItem* item;
+
+ GMenu *firstsubmenu = g_menu_new ();
+
+ OString sPreferences(OUStringToOString(ResId(SV_STDTEXT_PREFERENCES, *pMgr).toString(),
+ RTL_TEXTENCODING_UTF8).replaceFirst("~", "_"));
+
+ item = g_menu_item_new(sPreferences.getStr(), "app.OptionsTreeDialog");
+ g_menu_append_item( firstsubmenu, item );
+ g_menu_append_section( menu, NULL, G_MENU_MODEL(firstsubmenu));
+
+ GMenu *secondsubmenu = g_menu_new ();
+
+ OString sAbout(OUStringToOString(ResId(SV_STDTEXT_ABOUT, *pMgr).toString(),
+ RTL_TEXTENCODING_UTF8).replaceFirst("~", "_"));
+
+ item = g_menu_item_new(sAbout.getStr(), "app.About");
+ g_menu_append_item( secondsubmenu, item );
+
+ OString sHelp(OUStringToOString(ResId(SV_BUTTONTEXT_HELP, *pMgr).toString(),
+ RTL_TEXTENCODING_UTF8).replaceFirst("~", "_"));
+
+ item = g_menu_item_new(sHelp.getStr(), "app.HelpIndex");
+ g_menu_append_item( secondsubmenu, item );
+ g_menu_append_section( menu, NULL, G_MENU_MODEL(secondsubmenu));
+
+ GMenu *thirdsubmenu = g_menu_new ();
+
+ OString sQuit(OUStringToOString(ResId(SV_MENU_MAC_QUITAPP, *pMgr).toString(),
+ RTL_TEXTENCODING_UTF8).replaceFirst("~", "_"));
+
+ item = g_menu_item_new(sQuit.getStr(), "app.Quit");
+ g_menu_append_item( thirdsubmenu, item );
+ g_menu_append_section( menu, NULL, G_MENU_MODEL(thirdsubmenu));
+
+ GSimpleActionGroup *group = g_simple_action_group_new ();
+ g_simple_action_group_add_entries (group, app_entries, G_N_ELEMENTS (app_entries), NULL);
+ GActionGroup* pAppActionGroup = G_ACTION_GROUP(group);
+
+ pSalFrame->m_nAppActionGroupExportId = g_dbus_connection_export_action_group( pSessionBus, "/org/libreoffice", pAppActionGroup, NULL);
+ g_object_unref(pAppActionGroup);
+ pSalFrame->m_nAppMenuExportId = g_dbus_connection_export_menu_model (pSessionBus, "/org/libreoffice/menus/appmenu", G_MENU_MODEL (menu), NULL);
+ g_object_unref(menu);
+ }
g_free( aDBusMenubarPath );
g_free( aDBusWindowPath );