diff options
Diffstat (limited to 'frontends')
-rw-r--r-- | frontends/gtk/res/options.gtk2.ui | 589 | ||||
-rw-r--r-- | frontends/gtk/res/toolbar.gtk2.ui | 183 | ||||
-rw-r--r-- | frontends/gtk/res/toolbar.gtk3.ui | 242 | ||||
-rw-r--r-- | frontends/gtk/scaffolding.c | 8 | ||||
-rw-r--r-- | frontends/gtk/toolbar.c | 124 |
5 files changed, 547 insertions, 599 deletions
diff --git a/frontends/gtk/res/options.gtk2.ui b/frontends/gtk/res/options.gtk2.ui index d5542ba5d..a1162585d 100644 --- a/frontends/gtk/res/options.gtk2.ui +++ b/frontends/gtk/res/options.gtk2.ui @@ -2,6 +2,297 @@ <interface> <requires lib="gtk+" version="2.16"/> <!-- interface-naming-policy project-wide --> + <object class="GtkAdjustment" id="adjustment_animation_time"> + <property name="lower">0.10000000000000001</property> + <property name="upper">10</property> + <property name="value">0.10000000000000001</property> + <property name="step_increment">0.10000000000000001</property> + <property name="page_increment">1</property> + </object> + <object class="GtkAdjustment" id="adjustment_cache_disc_size"> + <property name="upper">4096</property> + <property name="value">1024</property> + <property name="step_increment">32</property> + <property name="page_increment">256</property> + </object> + <object class="GtkAdjustment" id="adjustment_cache_memory_size"> + <property name="upper">2048</property> + <property name="value">16</property> + <property name="step_increment">4</property> + <property name="page_increment">16</property> + </object> + <object class="GtkAdjustment" id="adjustment_disc_cache_age"> + <property name="upper">999</property> + <property name="value">28</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_fetching_cached"> + <property name="upper">100</property> + <property name="value">1</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_fetching_max"> + <property name="lower">1</property> + <property name="upper">100</property> + <property name="value">10</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_fetching_perhost"> + <property name="lower">1</property> + <property name="upper">100</property> + <property name="value">1</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_font_default_size"> + <property name="lower">1</property> + <property name="upper">99.900000000000006</property> + <property name="value">16</property> + <property name="step_increment">0.10000000000000001</property> + <property name="page_increment">2</property> + </object> + <object class="GtkAdjustment" id="adjustment_history_age"> + <property name="upper">999</property> + <property name="value">28</property> + <property name="step_increment">1</property> + <property name="page_increment">28</property> + </object> + <object class="GtkAdjustment" id="adjustment_pdf_lmargin"> + <property name="upper">999</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_pdf_scale"> + <property name="lower">1</property> + <property name="upper">1000</property> + <property name="value">100</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_proxy_port"> + <property name="lower">1</property> + <property name="upper">65535</property> + <property name="value">3128</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkImage" id="image1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xpad">3</property> + <property name="stock">gtk-apply</property> + </object> + <object class="GtkListStore" id="liststore_content_language"> + <columns> + <!-- column-name Code --> + <column type="gchararray"/> + <!-- column-name Description --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">en</col> + <col id="1" translatable="yes">English</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_defaultfont"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesFonttypeSans</col> + </row> + <row> + <col id="0" translatable="yes">preferencesFonttypeSerif</col> + </row> + <row> + <col id="0" translatable="yes">preferencesFonttypeMonospace</col> + </row> + <row> + <col id="0" translatable="yes">preferencesFonttypeCursive</col> + </row> + <row> + <col id="0" translatable="yes">preferencesFonttypeFantasy</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_developer_view"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesDeveloperViewWindow</col> + </row> + <row> + <col id="0" translatable="yes">preferencesDeveloperViewTab</col> + </row> + <row> + <col id="0" translatable="yes">preferencesDeveloperViewEditor</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_image_loading"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesImageLoadBoth</col> + </row> + <row> + <col id="0" translatable="yes">preferencesImageLoadFore</col> + </row> + <row> + <col id="0" translatable="yes">preferencesImageLoadBack</col> + </row> + <row> + <col id="0" translatable="yes">preferencesImageLoadNone</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_proxy_type"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesProxyTypeDirect</col> + </row> + <row> + <col id="0" translatable="yes">preferencesProxyTypeManual</col> + </row> + <row> + <col id="0" translatable="yes">preferencesProxyTypeBasic</col> + </row> + <row> + <col id="0" translatable="yes">preferencesProxyTypeNLTM</col> + </row> + <row> + <col id="0" translatable="yes">preferencesProxyTypeSystem</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_search_provider"> + <columns> + <!-- column-name Provider --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0">Google</col> + </row> + <row> + <col id="0">Yahoo!</col> + </row> + <row> + <col id="0">Microsoft Live</col> + </row> + <row> + <col id="0">Buisiness.com</col> + </row> + <row> + <col id="0">Omgili</col> + </row> + <row> + <col id="0">BBC News</col> + </row> + <row> + <col id="0">Ubuntu Packages</col> + </row> + <row> + <col id="0">Creative Commons</col> + </row> + <row> + <col id="0">Ask</col> + </row> + <row> + <col id="0">Answers</col> + </row> + <row> + <col id="0">Dictionary.com</col> + </row> + <row> + <col id="0">YouTube</col> + </row> + <row> + <col id="0">AeroMP3</col> + </row> + <row> + <col id="0">AOL</col> + </row> + <row> + <col id="0">Baidu</col> + </row> + <row> + <col id="0">Amazon</col> + </row> + <row> + <col id="0">Ebay</col> + </row> + <row> + <col id="0">IMBD</col> + </row> + <row> + <col id="0">ESPN</col> + </row> + <row> + <col id="0">Wikipedia</col> + </row> + <row> + <col id="0">DuckDuckGo</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_tab_position"> + <columns> + <!-- column-name Position --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesTabLocTop</col> + </row> + <row> + <col id="0" translatable="yes">preferencesTabLocLeft</col> + </row> + <row> + <col id="0" translatable="yes">preferencesTabLocRight</col> + </row> + <row> + <col id="0" translatable="yes">preferencesTabLocBottom</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_toolbar_buttontype"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesButtonTypeSmall</col> + </row> + <row> + <col id="0" translatable="yes">preferencesButtonTypeLarge</col> + </row> + <row> + <col id="0" translatable="yes">preferencesButtonTypeLargeText</col> + </row> + <row> + <col id="0" translatable="yes">preferencesButtonTypeText</col> + </row> + </data> + </object> <object class="GtkDialog" id="dialogPreferences"> <property name="can_focus">False</property> <property name="border_width">5</property> @@ -2178,7 +2469,6 @@ </child> <child> <object class="GtkVBox" id="vbox_pdfexport"> - <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">6</property> <child> @@ -2583,6 +2873,12 @@ <property name="x_options">GTK_EXPAND</property> </packing> </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> </object> <packing> <property name="expand">True</property> @@ -2710,295 +3006,4 @@ <action-widget response="-7">close</action-widget> </action-widgets> </object> - <object class="GtkListStore" id="liststore_search_provider"> - <columns> - <!-- column-name Provider --> - <column type="gchararray"/> - </columns> - <data> - <row> - <col id="0">Google</col> - </row> - <row> - <col id="0">Yahoo!</col> - </row> - <row> - <col id="0">Microsoft Live</col> - </row> - <row> - <col id="0">Buisiness.com</col> - </row> - <row> - <col id="0">Omgili</col> - </row> - <row> - <col id="0">BBC News</col> - </row> - <row> - <col id="0">Ubuntu Packages</col> - </row> - <row> - <col id="0">Creative Commons</col> - </row> - <row> - <col id="0">Ask</col> - </row> - <row> - <col id="0">Answers</col> - </row> - <row> - <col id="0">Dictionary.com</col> - </row> - <row> - <col id="0">YouTube</col> - </row> - <row> - <col id="0">AeroMP3</col> - </row> - <row> - <col id="0">AOL</col> - </row> - <row> - <col id="0">Baidu</col> - </row> - <row> - <col id="0">Amazon</col> - </row> - <row> - <col id="0">Ebay</col> - </row> - <row> - <col id="0">IMBD</col> - </row> - <row> - <col id="0">ESPN</col> - </row> - <row> - <col id="0">Wikipedia</col> - </row> - <row> - <col id="0">DuckDuckGo</col> - </row> - </data> - </object> - <object class="GtkListStore" id="liststore_tab_position"> - <columns> - <!-- column-name Position --> - <column type="gchararray"/> - </columns> - <data> - <row> - <col id="0" translatable="yes">preferencesTabLocTop</col> - </row> - <row> - <col id="0" translatable="yes">preferencesTabLocLeft</col> - </row> - <row> - <col id="0" translatable="yes">preferencesTabLocRight</col> - </row> - <row> - <col id="0" translatable="yes">preferencesTabLocBottom</col> - </row> - </data> - </object> - <object class="GtkListStore" id="liststore_toolbar_buttontype"> - <columns> - <!-- column-name Type --> - <column type="gchararray"/> - </columns> - <data> - <row> - <col id="0" translatable="yes">preferencesButtonTypeSmall</col> - </row> - <row> - <col id="0" translatable="yes">preferencesButtonTypeLarge</col> - </row> - <row> - <col id="0" translatable="yes">preferencesButtonTypeLargeText</col> - </row> - <row> - <col id="0" translatable="yes">preferencesButtonTypeText</col> - </row> - </data> - </object> - <object class="GtkListStore" id="liststore_image_loading"> - <columns> - <!-- column-name Type --> - <column type="gchararray"/> - </columns> - <data> - <row> - <col id="0" translatable="yes">preferencesImageLoadBoth</col> - </row> - <row> - <col id="0" translatable="yes">preferencesImageLoadFore</col> - </row> - <row> - <col id="0" translatable="yes">preferencesImageLoadBack</col> - </row> - <row> - <col id="0" translatable="yes">preferencesImageLoadNone</col> - </row> - </data> - </object> - <object class="GtkListStore" id="liststore_defaultfont"> - <columns> - <!-- column-name Type --> - <column type="gchararray"/> - </columns> - <data> - <row> - <col id="0" translatable="yes">preferencesFonttypeSans</col> - </row> - <row> - <col id="0" translatable="yes">preferencesFonttypeSerif</col> - </row> - <row> - <col id="0" translatable="yes">preferencesFonttypeMonospace</col> - </row> - <row> - <col id="0" translatable="yes">preferencesFonttypeCursive</col> - </row> - <row> - <col id="0" translatable="yes">preferencesFonttypeFantasy</col> - </row> - </data> - </object> - <object class="GtkImage" id="image1"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="xpad">3</property> - <property name="stock">gtk-apply</property> - </object> - <object class="GtkListStore" id="liststore_proxy_type"> - <columns> - <!-- column-name Type --> - <column type="gchararray"/> - </columns> - <data> - <row> - <col id="0" translatable="yes">preferencesProxyTypeDirect</col> - </row> - <row> - <col id="0" translatable="yes">preferencesProxyTypeManual</col> - </row> - <row> - <col id="0" translatable="yes">preferencesProxyTypeBasic</col> - </row> - <row> - <col id="0" translatable="yes">preferencesProxyTypeNLTM</col> - </row> - <row> - <col id="0" translatable="yes">preferencesProxyTypeSystem</col> - </row> - </data> - </object> - <object class="GtkAdjustment" id="adjustment_animation_time"> - <property name="value">0.10000000000000001</property> - <property name="lower">0.10000000000000001</property> - <property name="upper">10</property> - <property name="step_increment">0.10000000000000001</property> - <property name="page_increment">1</property> - </object> - <object class="GtkAdjustment" id="adjustment_font_default_size"> - <property name="value">16</property> - <property name="lower">1</property> - <property name="upper">99.900000000000006</property> - <property name="step_increment">0.10000000000000001</property> - <property name="page_increment">2</property> - </object> - <object class="GtkAdjustment" id="adjustment_history_age"> - <property name="value">28</property> - <property name="upper">999</property> - <property name="step_increment">1</property> - <property name="page_increment">28</property> - </object> - <object class="GtkAdjustment" id="adjustment_cache_memory_size"> - <property name="value">16</property> - <property name="upper">2048</property> - <property name="step_increment">4</property> - <property name="page_increment">16</property> - </object> - <object class="GtkAdjustment" id="adjustment_cache_disc_size"> - <property name="value">1024</property> - <property name="upper">4096</property> - <property name="step_increment">32</property> - <property name="page_increment">256</property> - </object> - <object class="GtkAdjustment" id="adjustment_disc_cache_age"> - <property name="value">28</property> - <property name="upper">999</property> - <property name="step_increment">1</property> - <property name="page_increment">10</property> - </object> - <object class="GtkAdjustment" id="adjustment_proxy_port"> - <property name="value">3128</property> - <property name="lower">1</property> - <property name="upper">65535</property> - <property name="step_increment">1</property> - <property name="page_increment">10</property> - </object> - <object class="GtkAdjustment" id="adjustment_fetching_max"> - <property name="value">10</property> - <property name="lower">1</property> - <property name="upper">100</property> - <property name="step_increment">1</property> - <property name="page_increment">10</property> - </object> - <object class="GtkAdjustment" id="adjustment_fetching_perhost"> - <property name="value">1</property> - <property name="lower">1</property> - <property name="upper">100</property> - <property name="step_increment">1</property> - <property name="page_increment">10</property> - </object> - <object class="GtkAdjustment" id="adjustment_fetching_cached"> - <property name="value">1</property> - <property name="upper">100</property> - <property name="step_increment">1</property> - <property name="page_increment">10</property> - </object> - <object class="GtkAdjustment" id="adjustment_pdf_scale"> - <property name="value">100</property> - <property name="lower">1</property> - <property name="upper">1000</property> - <property name="step_increment">1</property> - <property name="page_increment">10</property> - </object> - <object class="GtkAdjustment" id="adjustment_pdf_lmargin"> - <property name="upper">999</property> - <property name="step_increment">1</property> - <property name="page_increment">10</property> - </object> - <object class="GtkListStore" id="liststore_content_language"> - <columns> - <!-- column-name Code --> - <column type="gchararray"/> - <!-- column-name Description --> - <column type="gchararray"/> - </columns> - <data> - <row> - <col id="0" translatable="yes">en</col> - <col id="1" translatable="yes">English</col> - </row> - </data> - </object> - <object class="GtkListStore" id="liststore_developer_view"> - <columns> - <!-- column-name Type --> - <column type="gchararray"/> - </columns> - <data> - <row> - <col id="0" translatable="yes">preferencesDeveloperViewWindow</col> - </row> - <row> - <col id="0" translatable="yes">preferencesDeveloperViewTab</col> - </row> - <row> - <col id="0" translatable="yes">preferencesDeveloperViewEditor</col> - </row> - </data> - </object> </interface> diff --git a/frontends/gtk/res/toolbar.gtk2.ui b/frontends/gtk/res/toolbar.gtk2.ui index d84db5c8c..4e8805a6f 100644 --- a/frontends/gtk/res/toolbar.gtk2.ui +++ b/frontends/gtk/res/toolbar.gtk2.ui @@ -1,67 +1,84 @@ -<?xml version="1.0"?> -<!--*- mode: xml -*--> +<?xml version="1.0" encoding="UTF-8"?> <interface> - <object class="GtkWindow" id="toolbarwindow"> + <!-- interface-requires gtk+ 2.12 --> + <!-- interface-naming-policy toplevel-contextual --> + <object class="GtkDialog" id="dialogToolbar"> <property name="width_request">700</property> <property name="height_request">450</property> - <property name="title" translatable="yes"/> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <property name="focus_on_map">True</property> - <property name="urgency_hint">False</property> - <child> - <object class="GtkVBox" id="windowvbox"> + <property name="can_focus">False</property> + <property name="border_width">5</property> + <property name="title" translatable="yes">gtkToolBarTitle</property> + <property name="window_position">center-on-parent</property> + <property name="destroy_with_parent">True</property> + <property name="type_hint">dialog</property> + <child internal-child="vbox"> + <object class="GtkVBox" id="dialog-vbox1"> <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> + <property name="can_focus">False</property> + <property name="spacing">2</property> <child> - <object class="GtkLabel" id="toolbarlabel"> + <object class="GtkHBox" id="hbox1"> <property name="visible">True</property> - <property name="label" translatable="yes">Move items from store to toolbar Rearrange items in toolbar Move items from toolbar to store</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> + <property name="can_focus">False</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Move items from store to toolbar</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Rearrange items in toolbar</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Move items from toolbar to store</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> + <property name="padding">2</property> + <property name="position">0</property> </packing> </child> <child> <object class="GtkScrolledWindow" id="scrolledwindow1"> <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + <property name="can_focus">False</property> + <property name="hscrollbar_policy">automatic</property> + <property name="vscrollbar_policy">automatic</property> <child> <object class="GtkViewport" id="viewport1"> <property name="visible">True</property> - <property name="shadow_type">GTK_SHADOW_IN</property> + <property name="can_focus">False</property> <child> <object class="GtkVBox" id="widgetvbox"> <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> + <property name="can_focus">False</property> <child> <placeholder/> </child> @@ -71,119 +88,85 @@ </child> </object> <packing> - <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> + <property name="position">1</property> </packing> </child> - <child> - <object class="GtkHBox" id="buttonhbox"> + <child internal-child="action_area"> + <object class="GtkHButtonBox" id="dialog-action_area1"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> + <property name="can_focus">False</property> + <property name="layout_style">end</property> <child> - <object class="GtkButton" id="resetbutton"> + <object class="GtkButton" id="reset"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> + <property name="receives_default">False</property> <child> <object class="GtkHBox" id="button1hbox"> <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> + <property name="can_focus">False</property> <child> <object class="GtkImage" id="image1"> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="stock">gtk-refresh</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> + <property name="position">0</property> </packing> </child> <child> <object class="GtkLabel" id="refreshbuttonlabel"> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">Reset to defaults</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> </object> <packing> - <property name="padding">0</property> <property name="expand">True</property> <property name="fill">True</property> + <property name="position">1</property> </packing> </child> </object> </child> </object> <packing> - <property name="padding">10</property> <property name="expand">False</property> <property name="fill">True</property> - </packing> - </child> - <child> - <placeholder/> - </child> - <child> - <object class="GtkButton" id="okbutton"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="has_focus">True</property> - <property name="label">gtk-apply</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - </object> - <packing> <property name="padding">10</property> - <property name="expand">False</property> - <property name="fill">True</property> + <property name="position">0</property> </packing> </child> <child> - <object class="GtkButton" id="cancelbutton"> + <object class="GtkButton" id="close"> + <property name="label">gtk-close</property> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label">gtk-cancel</property> + <property name="receives_default">True</property> <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> - <property name="fill">True</property> + <property name="fill">False</property> + <property name="position">1</property> </packing> </child> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> + <property name="position">2</property> </packing> </child> </object> </child> + <action-widgets> + <action-widget response="0">reset</action-widget> + <action-widget response="0">close</action-widget> + </action-widgets> </object> </interface> diff --git a/frontends/gtk/res/toolbar.gtk3.ui b/frontends/gtk/res/toolbar.gtk3.ui index d84db5c8c..1f1148703 100644 --- a/frontends/gtk/res/toolbar.gtk3.ui +++ b/frontends/gtk/res/toolbar.gtk3.ui @@ -1,186 +1,134 @@ -<?xml version="1.0"?> +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.18.3 --> <!--*- mode: xml -*--> <interface> - <object class="GtkWindow" id="toolbarwindow"> + <requires lib="gtk+" version="3.0"/> + <object class="GtkImage" id="image2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="stock">gtk-refresh</property> + </object> + <object class="GtkDialog" id="dialogToolbar"> <property name="width_request">700</property> <property name="height_request">450</property> - <property name="title" translatable="yes"/> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <property name="focus_on_map">True</property> - <property name="urgency_hint">False</property> - <child> - <object class="GtkVBox" id="windowvbox"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - <child> - <object class="GtkLabel" id="toolbarlabel"> - <property name="visible">True</property> - <property name="label" translatable="yes">Move items from store to toolbar Rearrange items in toolbar Move items from toolbar to store</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </object> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow1"> - <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + <property name="can_focus">False</property> + <property name="title" translatable="yes">gtkToolBarTitle</property> + <property name="type_hint">dialog</property> + <child internal-child="vbox"> + <object class="GtkBox" id="dialog-vbox1"> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">2</property> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area1"> + <property name="can_focus">False</property> + <property name="layout_style">end</property> <child> - <object class="GtkViewport" id="viewport1"> + <object class="GtkButton" id="reset"> + <property name="label" translatable="yes">Reset To Defaults</property> <property name="visible">True</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <child> - <object class="GtkVBox" id="widgetvbox"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - <child> - <placeholder/> - </child> - </object> - </child> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="image">image2</property> + <property name="yalign">0.52999997138977051</property> + <property name="always_show_image">True</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="close"> + <property name="label">gtk-close</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> </object> <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> </packing> </child> <child> - <object class="GtkHBox" id="buttonhbox"> + <object class="GtkGrid" id="grid1"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> + <property name="can_focus">False</property> + <property name="column_homogeneous">True</property> <child> - <object class="GtkButton" id="resetbutton"> + <object class="GtkLabel" id="label1"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <child> - <object class="GtkHBox" id="button1hbox"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - <child> - <object class="GtkImage" id="image1"> - <property name="visible">True</property> - <property name="stock">gtk-refresh</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </object> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="refreshbuttonlabel"> - <property name="visible">True</property> - <property name="label" translatable="yes">Reset to defaults</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </object> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </object> - </child> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Move items from store to toolbar</property> </object> <packing> - <property name="padding">10</property> - <property name="expand">False</property> - <property name="fill">True</property> + <property name="left_attach">0</property> + <property name="top_attach">0</property> </packing> </child> <child> - <placeholder/> - </child> - <child> - <object class="GtkButton" id="okbutton"> + <object class="GtkLabel" id="label2"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="has_focus">True</property> - <property name="label">gtk-apply</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Rearrange items in toolbar</property> </object> <packing> - <property name="padding">10</property> - <property name="expand">False</property> - <property name="fill">True</property> + <property name="left_attach">1</property> + <property name="top_attach">0</property> </packing> </child> <child> - <object class="GtkButton" id="cancelbutton"> + <object class="GtkLabel" id="label3"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-cancel</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Move items from toolbar to store</property> </object> <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> + <property name="left_attach">2</property> + <property name="top_attach">0</property> </packing> </child> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child> + <object class="GtkViewport" id="viewport1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkVBox" id="widgetvbox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> </packing> </child> </object> diff --git a/frontends/gtk/scaffolding.c b/frontends/gtk/scaffolding.c index cbc46cbc5..6f81e91db 100644 --- a/frontends/gtk/scaffolding.c +++ b/frontends/gtk/scaffolding.c @@ -2073,7 +2073,7 @@ struct nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) int i; GtkAccelGroup *group; - gs = malloc(sizeof(*gs)); + gs = calloc(1, sizeof(*gs)); if (gs == NULL) { return NULL; } @@ -2491,7 +2491,11 @@ gui_search_web_provider_update(const char *provider_name, /* set the search provider parameters up in each scaffold */ for (current = scaf_list; current != NULL; current = current->next) { - /* add ico to each window's toolbar */ + if (current->webSearchEntry == NULL) { + continue; + } + + /* add ico to each window's toolbar */ if (srch_pixbuf != NULL) { nsgtk_entry_set_icon_from_pixbuf(current->webSearchEntry, GTK_ENTRY_ICON_PRIMARY, diff --git a/frontends/gtk/toolbar.c b/frontends/gtk/toolbar.c index 0ca26c92d..e93bd49f9 100644 --- a/frontends/gtk/toolbar.c +++ b/frontends/gtk/toolbar.c @@ -26,6 +26,7 @@ #include "utils/log.h" #include "utils/messages.h" #include "utils/nsoption.h" +#include "utils/file.h" #include "gtk/gui.h" #include "gtk/warn.h" @@ -44,7 +45,7 @@ static bool edit_mode = false; struct nsgtk_toolbar_custom_store { GtkWidget *window; - GtkWidget *store_buttons[PLACEHOLDER_BUTTON]; + GtkWidget *store_buttons[PLACEHOLDER_BUTTON]; GtkWidget *widgetvbox; GtkWidget *currentbar; char numberh; /* current horizontal location while adding */ @@ -107,13 +108,13 @@ static char *remove_underscores(const char *s, bool replacespace) ret = malloc(len + 1); if (ret == NULL) { return NULL; - } + } for (i = 0, ii = 0; i < len; i++) { if (s[i] != '_') { ret[ii++] = s[i]; - } else if (replacespace) { + } else if (replacespace) { ret[ii++] = ' '; - } + } } ret[ii] = '\0'; return ret; @@ -208,18 +209,18 @@ nsgtk_theme_searchimage_default(nsgtk_search_buttons tbbutton, switch (tbbutton) { case (SEARCH_BACK_BUTTON): - image = GTK_IMAGE(nsgtk_image_new_from_stock(NSGTK_STOCK_GO_BACK, - iconsize)); + image = GTK_IMAGE(nsgtk_image_new_from_stock( + NSGTK_STOCK_GO_BACK, iconsize)); break; case (SEARCH_FORWARD_BUTTON): - image = GTK_IMAGE(nsgtk_image_new_from_stock(NSGTK_STOCK_GO_FORWARD, - iconsize)); + image = GTK_IMAGE(nsgtk_image_new_from_stock( + NSGTK_STOCK_GO_FORWARD, iconsize)); break; case (SEARCH_CLOSE_BUTTON): - image = GTK_IMAGE(nsgtk_image_new_from_stock(NSGTK_STOCK_CLOSE, - iconsize)); + image = GTK_IMAGE(nsgtk_image_new_from_stock( + NSGTK_STOCK_CLOSE, iconsize)); break; default: @@ -227,7 +228,8 @@ nsgtk_theme_searchimage_default(nsgtk_search_buttons tbbutton, } if (usedef && (image == NULL)) { - image = GTK_IMAGE(nsgtk_image_new_from_stock("gtk-missing-image", iconsize)); + image = GTK_IMAGE(nsgtk_image_new_from_stock( + "gtk-missing-image", iconsize)); } return image; @@ -255,7 +257,6 @@ static struct nsgtk_theme *nsgtk_theme_load(GtkIconSize iconsize, bool usedef) theme->image[btnloop] = nsgtk_theme_image_default(btnloop, iconsize, usedef); - } for (btnloop = SEARCH_BACK_BUTTON; @@ -823,8 +824,9 @@ static void nsgtk_toolbar_close(struct nsgtk_scaffolding *g) */ static gboolean nsgtk_toolbar_cancel_clicked(GtkWidget *widget, gpointer data) { - edit_mode = false; struct nsgtk_scaffolding *g = (struct nsgtk_scaffolding *)data; + + edit_mode = false; /* reset g->buttons->location */ for (int i = BACK_BUTTON; i < PLACEHOLDER_BUTTON; i++) { nsgtk_scaffolding_button(g, i)->location = @@ -950,6 +952,7 @@ void nsgtk_toolbar_customization_load(struct nsgtk_scaffolding *g) */ static nserror nsgtk_toolbar_customization_save(struct nsgtk_scaffolding *g) { + char *choices = NULL; char *order; int order_len = PLACEHOLDER_BUTTON * 12; /* length of order buffer */ int tbidx; @@ -981,6 +984,13 @@ static nserror nsgtk_toolbar_customization_save(struct nsgtk_scaffolding *g) nsoption_set_charp(toolbar_order, order); + /* ensure choices are saved */ + netsurf_mkpath(&choices, NULL, 2, nsgtk_config_home, "Choices"); + if (choices != NULL) { + nsoption_write(choices, NULL, NULL); + free(choices); + } + return NSERROR_OK; } @@ -990,8 +1000,9 @@ static nserror nsgtk_toolbar_customization_save(struct nsgtk_scaffolding *g) */ static gboolean nsgtk_toolbar_persist(GtkWidget *widget, gpointer data) { - edit_mode = false; struct nsgtk_scaffolding *g = (struct nsgtk_scaffolding *)data; + + edit_mode = false; /* save state to file, update toolbars for all windows */ nsgtk_toolbar_customization_save(g); nsgtk_toolbar_cast(g); @@ -1098,7 +1109,6 @@ nsgtk_toolbar_store_action(GtkWidget *widget, GdkDragContext *gdc, */ static void nsgtk_toolbar_window_open(struct nsgtk_scaffolding *g) { - int x = 0, y = 0; struct nsgtk_theme *theme; nserror res; @@ -1112,7 +1122,7 @@ static void nsgtk_toolbar_window_open(struct nsgtk_scaffolding *g) res = nsgtk_builder_new_from_resname("toolbar", &window->builder); if (res != NSERROR_OK) { NSLOG(netsurf, INFO, "Toolbar UI builder init failed"); - nsgtk_warning(messages_get("NoMemory"), 0); + nsgtk_warning("Toolbar UI builder init failed", 0); nsgtk_toolbar_cancel_clicked(NULL, g); free(theme); return; @@ -1120,8 +1130,8 @@ static void nsgtk_toolbar_window_open(struct nsgtk_scaffolding *g) gtk_builder_connect_signals(window->builder, NULL); - window->window = GTK_WIDGET(gtk_builder_get_object(window->builder, - "toolbarwindow")); + window->window = GTK_WIDGET(gtk_builder_get_object( + window->builder, "dialogToolbar")); if (window->window == NULL) { nsgtk_warning(messages_get("NoMemory"), 0); nsgtk_toolbar_cancel_clicked(NULL, g); @@ -1129,8 +1139,11 @@ static void nsgtk_toolbar_window_open(struct nsgtk_scaffolding *g) return; } - window->widgetvbox = GTK_WIDGET(gtk_builder_get_object(window->builder, - "widgetvbox")); + gtk_window_set_transient_for(GTK_WINDOW(window->window), + nsgtk_scaffolding_window(g)); + + window->widgetvbox = GTK_WIDGET(gtk_builder_get_object( + window->builder, "widgetvbox")); if (window->widgetvbox == NULL) { nsgtk_warning(messages_get("NoMemory"), 0); nsgtk_toolbar_cancel_clicked(NULL, g); @@ -1138,9 +1151,12 @@ static void nsgtk_toolbar_window_open(struct nsgtk_scaffolding *g) return; } - window->numberh = NSGTK_STORE_WIDTH; /* preset to width [in buttons] of */ + /* preset to width [in buttons] of */ + window->numberh = NSGTK_STORE_WIDTH; + /* store to cause creation of a new toolbar */ window->currentbutton = -1; + /* load toolbuttons */ /* add toolbuttons to window */ /* set event handlers */ @@ -1160,33 +1176,20 @@ static void nsgtk_toolbar_window_open(struct nsgtk_scaffolding *g) } free(theme); - gtk_window_set_transient_for(GTK_WINDOW(window->window), - nsgtk_scaffolding_window(g)); - gtk_window_set_title(GTK_WINDOW(window->window), messages_get( - "gtkToolBarTitle")); + gtk_window_set_accept_focus(GTK_WINDOW(window->window), FALSE); + gtk_drag_dest_set(GTK_WIDGET(window->window), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, &entry, 1, GDK_ACTION_COPY); - gtk_widget_show_all(window->window); - gtk_window_set_position(GTK_WINDOW(window->window), - GTK_WIN_POS_CENTER_ON_PARENT); - gtk_window_get_position(nsgtk_scaffolding_window(g), &x, &y); - gtk_window_move(GTK_WINDOW(window->window), x, y + 100); - - g_signal_connect(GTK_WIDGET(gtk_builder_get_object(window->builder, - "cancelbutton")), - "clicked", - G_CALLBACK(nsgtk_toolbar_cancel_clicked), - g); - g_signal_connect(GTK_WIDGET(gtk_builder_get_object(window->builder, - "okbutton")), + g_signal_connect(GTK_WIDGET(gtk_builder_get_object( + window->builder, "close")), "clicked", G_CALLBACK(nsgtk_toolbar_persist), g); - g_signal_connect(GTK_WIDGET(gtk_builder_get_object(window->builder, - "resetbutton")), + g_signal_connect(GTK_WIDGET(gtk_builder_get_object( + window->builder, "reset")), "clicked", G_CALLBACK(nsgtk_toolbar_reset), g); @@ -1199,6 +1202,8 @@ static void nsgtk_toolbar_window_open(struct nsgtk_scaffolding *g) g_signal_connect(window->window, "drag-motion", G_CALLBACK(nsgtk_toolbar_store_action), g); + + gtk_widget_show_all(window->window); } /** @@ -1342,33 +1347,37 @@ nsgtk_toolbar_set_handler(struct nsgtk_scaffolding *g, nsgtk_toolbar_button i) case URL_BAR_ITEM: nsgtk_scaffolding_update_url_bar_ref(g); g_signal_connect(GTK_WIDGET(nsgtk_scaffolding_urlbar(g)), - "activate", G_CALLBACK( - nsgtk_window_url_activate_event), g); + "activate", G_CALLBACK( + nsgtk_window_url_activate_event), g); g_signal_connect(GTK_WIDGET(nsgtk_scaffolding_urlbar(g)), - "changed", G_CALLBACK( - nsgtk_window_url_changed), g); + "changed", G_CALLBACK( + nsgtk_window_url_changed), g); break; + case THROBBER_ITEM: nsgtk_scaffolding_update_throbber_ref(g); break; + case WEBSEARCH_ITEM: nsgtk_scaffolding_update_websearch_ref(g); g_signal_connect(GTK_WIDGET(nsgtk_scaffolding_websearch(g)), - "activate", G_CALLBACK( - nsgtk_websearch_activate), g); + "activate", G_CALLBACK( + nsgtk_websearch_activate), g); g_signal_connect(GTK_WIDGET(nsgtk_scaffolding_websearch(g)), - "button-press-event", G_CALLBACK( - nsgtk_websearch_clear), g); + "button-press-event", G_CALLBACK( + nsgtk_websearch_clear), g); break; + default: if ((nsgtk_scaffolding_button(g, i)->bhandler != NULL) && - (nsgtk_scaffolding_button(g, i)->button - != NULL)) - g_signal_connect(nsgtk_scaffolding_button(g, i)-> - button, "clicked", - G_CALLBACK(nsgtk_scaffolding_button(g, - i)->bhandler), g); - break; + (nsgtk_scaffolding_button(g, i)->button != NULL)) { + g_signal_connect( + nsgtk_scaffolding_button(g, i)->button, + "clicked", + G_CALLBACK(nsgtk_scaffolding_button( + g, i)->bhandler), g); + } + break; } } @@ -1460,7 +1469,8 @@ DATAHANDLER(prevtab, PREVTAB, window) DATAHANDLER(guide, GUIDE, window) DATAHANDLER(info, INFO, window) #undef DATAHANDLER -#define DATAHANDLER(p, q, r)\ + +#define DATAHANDLER(p, q, r) \ gboolean nsgtk_toolbar_##p##_button_data(GtkWidget *widget, GdkDragContext\ *cont, GtkSelectionData *selection, guint info, guint time,\ gpointer data)\ @@ -1481,5 +1491,3 @@ gboolean nsgtk_toolbar_##p##_toolbar_button_data(GtkWidget *widget,\ DATAHANDLER(throbber, THROBBER, window) DATAHANDLER(websearch, WEBSEARCH, window) #undef DATAHANDLER - - |