Mercurial > geeqie.yaz
comparison src/layout_util.c @ 1335:588d96cda850
save and restore toolbar configuration
author | nadvornik |
---|---|
date | Sat, 28 Feb 2009 12:50:39 +0000 |
parents | f97450e632a1 |
children | 63eb48237608 |
comparison
equal
deleted
inserted
replaced
1334:f97450e632a1 | 1335:588d96cda850 |
---|---|
41 #include "ui_tabcomp.h" | 41 #include "ui_tabcomp.h" |
42 #include "utilops.h" | 42 #include "utilops.h" |
43 #include "view_dir.h" | 43 #include "view_dir.h" |
44 #include "window.h" | 44 #include "window.h" |
45 #include "metadata.h" | 45 #include "metadata.h" |
46 #include "rcfile.h" | |
46 | 47 |
47 #include <gdk/gdkkeysyms.h> /* for keyboard values */ | 48 #include <gdk/gdkkeysyms.h> /* for keyboard values */ |
48 | 49 |
49 | 50 |
50 #define MENU_EDIT_ACTION_OFFSET 16 | 51 #define MENU_EDIT_ACTION_OFFSET 16 |
1442 " <menuitem action='LogWindow'/>" | 1443 " <menuitem action='LogWindow'/>" |
1443 " <separator/>" | 1444 " <separator/>" |
1444 " </menu>" | 1445 " </menu>" |
1445 " </menubar>" | 1446 " </menubar>" |
1446 " <toolbar name='ToolBar'>" | 1447 " <toolbar name='ToolBar'>" |
1447 " <toolitem action='Thumbnails'/>" | |
1448 " <toolitem action='Back'/>" | |
1449 " <toolitem action='Home'/>" | |
1450 " <toolitem action='Refresh'/>" | |
1451 " <toolitem action='ZoomIn'/>" | |
1452 " <toolitem action='ZoomOut'/>" | |
1453 " <toolitem action='ZoomFit'/>" | |
1454 " <toolitem action='ZoomFit'/>" | |
1455 " <toolitem action='Zoom100'/>" | |
1456 " <toolitem action='Preferences'/>" | |
1457 " <toolitem action='FloatTools'/>" | |
1458 " </toolbar>" | 1448 " </toolbar>" |
1459 "<accelerator action='PrevImageAlt1'/>" | 1449 "<accelerator action='PrevImageAlt1'/>" |
1460 "<accelerator action='PrevImageAlt2'/>" | 1450 "<accelerator action='PrevImageAlt2'/>" |
1461 "<accelerator action='NextImageAlt1'/>" | 1451 "<accelerator action='NextImageAlt1'/>" |
1462 "<accelerator action='NextImageAlt2'/>" | 1452 "<accelerator action='NextImageAlt2'/>" |
1475 "<accelerator action='ConnectZoomInAlt1'/>" | 1465 "<accelerator action='ConnectZoomInAlt1'/>" |
1476 "<accelerator action='ConnectZoomOutAlt1'/>" | 1466 "<accelerator action='ConnectZoomOutAlt1'/>" |
1477 "<accelerator action='ConnectZoom100Alt1'/>" | 1467 "<accelerator action='ConnectZoom100Alt1'/>" |
1478 "<accelerator action='ConnectZoomFitAlt1'/>" | 1468 "<accelerator action='ConnectZoomFitAlt1'/>" |
1479 "</ui>"; | 1469 "</ui>"; |
1480 | |
1481 | 1470 |
1482 static gchar *menu_translate(const gchar *path, gpointer data) | 1471 static gchar *menu_translate(const gchar *path, gpointer data) |
1483 { | 1472 { |
1484 return (gchar *)(_(path)); | 1473 return (gchar *)(_(path)); |
1485 } | 1474 } |
1725 g_message("building menus failed: %s", error->message); | 1714 g_message("building menus failed: %s", error->message); |
1726 g_error_free(error); | 1715 g_error_free(error); |
1727 exit(EXIT_FAILURE); | 1716 exit(EXIT_FAILURE); |
1728 } | 1717 } |
1729 | 1718 |
1719 layout_toolbar_clear(lw); | |
1720 layout_toolbar_add_default(lw); | |
1721 | |
1730 layout_actions_setup_marks(lw); | 1722 layout_actions_setup_marks(lw); |
1731 layout_actions_setup_editors(lw); | 1723 layout_actions_setup_editors(lw); |
1732 layout_copy_path_update(lw); | 1724 layout_copy_path_update(lw); |
1733 } | 1725 } |
1734 | 1726 |
1745 GtkWidget *layout_actions_menu_bar(LayoutWindow *lw) | 1737 GtkWidget *layout_actions_menu_bar(LayoutWindow *lw) |
1746 { | 1738 { |
1747 return gtk_ui_manager_get_widget(lw->ui_manager, "/MainMenu"); | 1739 return gtk_ui_manager_get_widget(lw->ui_manager, "/MainMenu"); |
1748 } | 1740 } |
1749 | 1741 |
1750 GtkWidget *layout_button_bar(LayoutWindow *lw) | 1742 GtkWidget *layout_actions_toolbar(LayoutWindow *lw) |
1751 { | 1743 { |
1752 GtkWidget *bar = gtk_ui_manager_get_widget(lw->ui_manager, "/ToolBar"); | 1744 GtkWidget *bar = gtk_ui_manager_get_widget(lw->ui_manager, "/ToolBar"); |
1753 gtk_toolbar_set_icon_size(GTK_TOOLBAR(bar), GTK_ICON_SIZE_SMALL_TOOLBAR); | 1745 gtk_toolbar_set_icon_size(GTK_TOOLBAR(bar), GTK_ICON_SIZE_SMALL_TOOLBAR); |
1754 gtk_toolbar_set_style(GTK_TOOLBAR(bar), GTK_TOOLBAR_ICONS); | 1746 gtk_toolbar_set_style(GTK_TOOLBAR(bar), GTK_TOOLBAR_ICONS); |
1755 return bar; | 1747 return bar; |
1748 } | |
1749 | |
1750 void layout_toolbar_clear(LayoutWindow *lw) | |
1751 { | |
1752 if (lw->toolbar_merge_id) | |
1753 { | |
1754 gtk_ui_manager_remove_ui(lw->ui_manager, lw->toolbar_merge_id); | |
1755 gtk_ui_manager_ensure_update(lw->ui_manager); | |
1756 } | |
1757 string_list_free(lw->toolbar_actions); | |
1758 lw->toolbar_actions = NULL; | |
1759 | |
1760 lw->toolbar_merge_id = gtk_ui_manager_new_merge_id(lw->ui_manager); | |
1761 } | |
1762 | |
1763 | |
1764 void layout_toolbar_add(LayoutWindow *lw, const gchar *action) | |
1765 { | |
1766 if (!action || !lw->ui_manager) return; | |
1767 gtk_ui_manager_add_ui(lw->ui_manager, lw->toolbar_merge_id, "/ToolBar", action, action, GTK_UI_MANAGER_TOOLITEM, FALSE); | |
1768 lw->toolbar_actions = g_list_append(lw->toolbar_actions, g_strdup(action)); | |
1769 } | |
1770 | |
1771 | |
1772 void layout_toolbar_add_default(LayoutWindow *lw) | |
1773 { | |
1774 layout_toolbar_add(lw, "Thumbnails"); | |
1775 layout_toolbar_add(lw, "Back"); | |
1776 layout_toolbar_add(lw, "Home"); | |
1777 layout_toolbar_add(lw, "Refresh"); | |
1778 layout_toolbar_add(lw, "ZoomIn"); | |
1779 layout_toolbar_add(lw, "ZoomOut"); | |
1780 layout_toolbar_add(lw, "ZoomFit"); | |
1781 layout_toolbar_add(lw, "Zoom100"); | |
1782 layout_toolbar_add(lw, "Preferences"); | |
1783 layout_toolbar_add(lw, "FloatTools"); | |
1784 } | |
1785 | |
1786 void layout_toolbar_write_config(LayoutWindow *lw, GString *outstr, gint indent) | |
1787 { | |
1788 GList *work = lw->toolbar_actions; | |
1789 WRITE_STRING("<toolbar>\n"); | |
1790 indent++; | |
1791 while (work) | |
1792 { | |
1793 gchar *action = work->data; | |
1794 work = work->next; | |
1795 WRITE_STRING("<toolitem\n"); | |
1796 write_char_option(outstr, indent + 1, "action", action); | |
1797 WRITE_STRING("/>\n"); | |
1798 } | |
1799 indent--; | |
1800 WRITE_STRING("</toolbar>\n"); | |
1801 } | |
1802 | |
1803 void layout_toolbar_add_from_config(LayoutWindow *lw, const gchar **attribute_names, const gchar **attribute_values) | |
1804 { | |
1805 gchar *action = NULL; | |
1806 | |
1807 while (*attribute_names) | |
1808 { | |
1809 const gchar *option = *attribute_names++; | |
1810 const gchar *value = *attribute_values++; | |
1811 | |
1812 if (READ_CHAR_FULL("action", action)) continue; | |
1813 | |
1814 DEBUG_1("unknown attribute %s = %s", option, value); | |
1815 } | |
1816 | |
1817 layout_toolbar_add(lw, action); | |
1818 g_free(action); | |
1756 } | 1819 } |
1757 | 1820 |
1758 /* | 1821 /* |
1759 *----------------------------------------------------------------------------- | 1822 *----------------------------------------------------------------------------- |
1760 * misc | 1823 * misc |