[eog/gnome-2-32] Allow setting a user-defined background color
- From: Felix Riemann <friemann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [eog/gnome-2-32] Allow setting a user-defined background color
- Date: Sun, 8 Aug 2010 15:18:25 +0000 (UTC)
commit 00673f72432c43149747ca0c345b22b7e3edb6f1
Author: Felix Riemann <friemann gnome org>
Date: Sun Jun 6 20:07:08 2010 +0000
Allow setting a user-defined background color
This allows the user to have another color instead of the theme defined
color as background. For now requires a loaded image until we can
finally fix bug 538279. Fixes bug 502992.
data/eog-preferences-dialog.ui | 595 ++++++++++++++--------------------------
data/eog.schemas.in | 24 ++
src/eog-config-keys.h | 2 +
src/eog-preferences-dialog.c | 34 +++
src/eog-scroll-view.c | 40 +++-
src/eog-scroll-view.h | 2 +-
src/eog-window.c | 85 ++++++
7 files changed, 382 insertions(+), 400 deletions(-)
---
diff --git a/data/eog-preferences-dialog.ui b/data/eog-preferences-dialog.ui
index 1e267ea..6569f69 100644
--- a/data/eog-preferences-dialog.ui
+++ b/data/eog-preferences-dialog.ui
@@ -1,835 +1,638 @@
-<?xml version="1.0"?>
-<!--*- mode: xml -*-->
+<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk+" version="2.20"/>
+ <!-- interface-naming-policy toplevel-contextual -->
<object class="GtkAdjustment" id="adjustment1">
- <property name="upper">100</property>
<property name="lower">1</property>
- <property name="page_increment">10</property>
- <property name="step_increment">1</property>
- <property name="page_size">0</property>
+ <property name="upper">100</property>
<property name="value">5</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
</object>
<object class="GtkDialog" id="eog_preferences_dialog">
<property name="border_width">5</property>
<property name="title" translatable="yes">Eye of GNOME Preferences</property>
- <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_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="focus_on_map">True</property>
- <property name="urgency_hint">False</property>
+ <property name="type_hint">dialog</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox1">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">2</property>
- <child internal-child="action_area">
- <object class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
- <child>
- <object class="GtkButton" id="help_button">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-help</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="close_button">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
<child>
<object class="GtkNotebook" id="notebook">
- <property name="border_width">5</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="show_tabs">True</property>
- <property name="show_border">True</property>
- <property name="tab_pos">GTK_POS_TOP</property>
- <property name="scrollable">False</property>
- <property name="enable_popup">False</property>
+ <property name="border_width">5</property>
<child>
<object class="GtkVBox" id="vbox5">
- <property name="border_width">12</property>
<property name="visible">True</property>
- <property name="homogeneous">False</property>
+ <property name="border_width">12</property>
<property name="spacing">18</property>
<child>
<object class="GtkVBox" id="vbox6">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="label" translatable="yes">Image Enhancements</property>
- <property name="use_underline">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
<property name="xalign">0</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="label" translatable="yes">Image Enhancements</property>
<attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ <attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox_interpolate">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
<child>
<object class="GtkLabel" id="label_interpolate">
<property name="visible">True</property>
<property name="label"> </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">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="interpolate_check">
+ <property name="label" translatable="yes">Smooth images when zoomed-_out</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Smooth images when zoomed-_out</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</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="position">1</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox_extrapolate">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
<child>
<object class="GtkLabel" id="label_extrapolate">
<property name="visible">True</property>
<property name="label"> </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">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="extrapolate_check">
+ <property name="label" translatable="yes">Smooth images when zoomed-_in</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Smooth images when zoomed-_in</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</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="position">2</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hboxautorotate">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
<child>
<object class="GtkLabel" id="labelautopad">
<property name="visible">True</property>
<property name="label"> </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">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="autorotate_check">
+ <property name="label" translatable="yes">_Automatic orientation</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_Automatic orientation</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</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">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Background</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="left_padding">16</property>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkCheckButton" id="bg_color_check">
+ <property name="label" translatable="yes">As custom color:</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkColorButton" id="bg_color_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="title" translatable="yes">Background Color</property>
+ <property name="color">#000000000000</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
</packing>
</child>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="vbox7">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="label" translatable="yes">Transparent Parts</property>
- <property name="use_underline">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
<property name="xalign">0</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="label" translatable="yes">Transparent Parts</property>
<attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ <attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox4">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
<child>
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="label"> </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">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="vbox8">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkRadioButton" id="checkpattern_radio">
+ <property name="label" translatable="yes">As check _pattern</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">As check _pattern</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox5">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkRadioButton" id="color_radio">
+ <property name="label" translatable="yes">As custom c_olor:</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">As custom c_olor:</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">checkpattern_radio</property>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkColorButton" id="color_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="use_alpha">False</property>
+ <property name="receives_default">False</property>
<property name="title" translatable="yes">Color for Transparent Areas</property>
- <property name="focus_on_click">True</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>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="background_radio">
+ <property name="label" translatable="yes">As _background</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">As _background</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">checkpattern_radio</property>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">2</property>
</packing>
</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>
</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>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
</child>
<child type="tab">
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">Image View</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="tab_fill">False</property>
+ </packing>
</child>
<child>
<object class="GtkVBox" id="vbox11">
- <property name="border_width">12</property>
<property name="visible">True</property>
- <property name="homogeneous">False</property>
+ <property name="border_width">12</property>
<property name="spacing">18</property>
<child>
<object class="GtkVBox" id="vbox12">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label13">
<property name="visible">True</property>
- <property name="label" translatable="yes">Image Zoom</property>
- <property name="use_underline">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
<property name="xalign">0</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="label" translatable="yes">Image Zoom</property>
<attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ <attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox7">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
<child>
<object class="GtkLabel" id="label14">
<property name="visible">True</property>
<property name="label"> </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">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="vbox13">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkCheckButton" id="upscale_check">
+ <property name="label" translatable="yes">E_xpand images to fit screen</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">E_xpand images to fit screen</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</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>
</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>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="vbox14">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label15">
<property name="visible">True</property>
- <property name="label" translatable="yes">Sequence</property>
- <property name="use_underline">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
<property name="xalign">0</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="label" translatable="yes">Sequence</property>
<attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ <attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox8">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
<child>
<object class="GtkLabel" id="label16">
<property name="visible">True</property>
<property name="label"> </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">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="vbox15">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkHBox" id="seconds_hbox">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label36">
<property name="visible">True</property>
<property name="label" translatable="yes">_Switch image after:</property>
<property name="use_underline">True</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="mnemonic_widget">seconds_spin</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">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="seconds_spin">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="adjustment">adjustment1</property>
<property name="climb_rate">1</property>
- <property name="digits">0</property>
<property name="numeric">True</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">adjustment1</property>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label18">
<property name="visible">True</property>
<property name="label" translatable="yes">seconds</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">False</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="loop_check">
+ <property name="label" translatable="yes">_Loop sequence</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_Loop sequence</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</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="position">1</property>
</packing>
</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>
</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>
<packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="label" translatable="yes">Slideshow</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="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
</child>
<child>
<object class="GtkVBox" id="plugin_manager_container">
- <property name="border_width">12</property>
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="border_width">12</property>
<child>
<placeholder/>
</child>
</object>
<packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
+ <property name="position">2</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="label97">
<property name="visible">True</property>
<property name="label" translatable="yes">Plugins</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="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="help_button">
+ <property name="label">gtk-help</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="close_button">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</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="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
</object>
diff --git a/data/eog.schemas.in b/data/eog.schemas.in
index e37c3c7..14a186a 100644
--- a/data/eog.schemas.in
+++ b/data/eog.schemas.in
@@ -14,6 +14,30 @@
</schema>
<schema>
+ <key>/schemas/apps/eog/view/background-color</key>
+ <applyto>/apps/eog/view/background-color</applyto>
+ <owner>eog</owner>
+ <type>string</type>
+ <default>#000000</default>
+ <locale name="C">
+ <short>Background Color</short>
+ <long>The color that is used to fill the area behind the image when the use-background-color key is set.</long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/eog/view/use-background-color</key>
+ <applyto>/apps/eog/view/use-background-color</applyto>
+ <owner>eog</owner>
+ <type>bool</type>
+ <default>0</default>
+ <locale name="C">
+ <short>Use a custom background color</short>
+ <long>If this is active the color set by the background-color key will be used to fill the area behind the image. If it is not set the current GTK theme will determine the fill color.</long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/eog/view/interpolate</key>
<applyto>/apps/eog/view/interpolate</applyto>
<owner>eog</owner>
diff --git a/src/eog-config-keys.h b/src/eog-config-keys.h
index 849a7aa..015c500 100644
--- a/src/eog-config-keys.h
+++ b/src/eog-config-keys.h
@@ -33,6 +33,7 @@
#define EOG_CONF_DESKTOP_CAN_PRINT "/desktop/gnome/lockdown/disable_printing"
#define EOG_CONF_DESKTOP_CAN_SETUP_PAGE "/desktop/gnome/lockdown/disable_print_setup"
+#define EOG_CONF_VIEW_BACKGROUND_COLOR "/apps/eog/view/background-color"
#define EOG_CONF_VIEW_INTERPOLATE "/apps/eog/view/interpolate"
#define EOG_CONF_VIEW_EXTRAPOLATE "/apps/eog/view/extrapolate"
#define EOG_CONF_VIEW_SCROLL_WHEEL_ZOOM "/apps/eog/view/scroll_wheel_zoom"
@@ -40,6 +41,7 @@
#define EOG_CONF_VIEW_AUTOROTATE "/apps/eog/view/autorotate"
#define EOG_CONF_VIEW_TRANSPARENCY "/apps/eog/view/transparency"
#define EOG_CONF_VIEW_TRANS_COLOR "/apps/eog/view/trans_color"
+#define EOG_CONF_VIEW_USE_BG_COLOR "/apps/eog/view/use-background-color"
#define EOG_CONF_FULLSCREEN_LOOP "/apps/eog/full_screen/loop"
#define EOG_CONF_FULLSCREEN_UPSCALE "/apps/eog/full_screen/upscale"
diff --git a/src/eog-preferences-dialog.c b/src/eog-preferences-dialog.c
index 75276ac..b7caaeb 100644
--- a/src/eog-preferences-dialog.c
+++ b/src/eog-preferences-dialog.c
@@ -193,6 +193,8 @@ eog_preferences_dialog_constructor (GType type,
GtkWidget *interpolate_check;
GtkWidget *extrapolate_check;
GtkWidget *autorotate_check;
+ GtkWidget *bg_color_check;
+ GtkWidget *bg_color_button;
GtkWidget *color_radio;
GtkWidget *checkpattern_radio;
GtkWidget *background_radio;
@@ -220,6 +222,8 @@ eog_preferences_dialog_constructor (GType type,
"interpolate_check", &interpolate_check,
"extrapolate_check", &extrapolate_check,
"autorotate_check", &autorotate_check,
+ "bg_color_check", &bg_color_check,
+ "bg_color_button", &bg_color_button,
"color_radio", &color_radio,
"checkpattern_radio", &checkpattern_radio,
"background_radio", &background_radio,
@@ -277,6 +281,36 @@ eog_preferences_dialog_constructor (GType type,
G_CALLBACK (pd_check_toggle_cb),
priv->client);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bg_color_check),
+ gconf_client_get_bool (priv->client,
+ EOG_CONF_VIEW_USE_BG_COLOR, NULL));
+ g_object_set_data (G_OBJECT (bg_color_check),
+ GCONF_OBJECT_KEY,
+ EOG_CONF_VIEW_USE_BG_COLOR);
+ g_signal_connect (G_OBJECT (bg_color_check),
+ "toggled", G_CALLBACK (pd_check_toggle_cb),
+ priv->client);
+
+ value = gconf_client_get_string (priv->client,
+ EOG_CONF_VIEW_BACKGROUND_COLOR,
+ NULL);
+ if (gdk_color_parse (value, &color)){
+ gtk_color_button_set_color (GTK_COLOR_BUTTON (bg_color_button),
+ &color);
+ }
+ g_free (value);
+
+ g_object_set_data (G_OBJECT (bg_color_button),
+ GCONF_OBJECT_KEY,
+ EOG_CONF_VIEW_BACKGROUND_COLOR);
+
+ g_signal_connect (G_OBJECT (bg_color_button),
+ "color-set",
+ G_CALLBACK (pd_color_change_cb),
+ priv->client);
+
+
+
g_object_set_data (G_OBJECT (color_radio),
GCONF_OBJECT_KEY,
EOG_CONF_VIEW_TRANSPARENCY);
diff --git a/src/eog-scroll-view.c b/src/eog-scroll-view.c
index f2303ec..433c1dd 100644
--- a/src/eog-scroll-view.c
+++ b/src/eog-scroll-view.c
@@ -74,6 +74,7 @@ static GtkTargetEntry target_table[] = {
enum {
PROP_0,
+ PROP_USE_BG_COLOR,
PROP_BACKGROUND_COLOR
};
@@ -143,6 +144,7 @@ struct _EogScrollViewPrivate {
/* the type of the cursor we are currently showing */
EogScrollViewCursor cursor;
+ gboolean use_bg_color;
GdkColor *background_color;
GdkColor *override_bg_color;
@@ -2181,7 +2183,6 @@ eog_scroll_view_scrollbars_visible (EogScrollView *view)
object creation/freeing
---------------------------------*/
-
static void
eog_scroll_view_init (EogScrollView *view)
{
@@ -2264,6 +2265,9 @@ eog_scroll_view_get_property (GObject *object, guint property_id,
priv = view->priv;
switch (property_id) {
+ case PROP_USE_BG_COLOR:
+ g_value_set_boolean (value, priv->use_bg_color);
+ break;
case PROP_BACKGROUND_COLOR:
//FIXME: This doesn't really handle the NULL color.
g_value_set_boxed (value, priv->background_color);
@@ -2286,6 +2290,9 @@ eog_scroll_view_set_property (GObject *object, guint property_id,
priv = view->priv;
switch (property_id) {
+ case PROP_USE_BG_COLOR:
+ eog_scroll_view_set_use_bg_color (view, g_value_get_boolean (value));
+ break;
case PROP_BACKGROUND_COLOR:
{
const GdkColor *color = g_value_get_boxed (value);
@@ -2324,6 +2331,11 @@ eog_scroll_view_class_init (EogScrollViewClass *klass)
GDK_TYPE_COLOR,
G_PARAM_READWRITE | G_PARAM_STATIC_NAME));
+ g_object_class_install_property (
+ gobject_class, PROP_USE_BG_COLOR,
+ g_param_spec_boolean ("use-background-color", NULL, NULL, FALSE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_NAME));
+
view_signals [SIGNAL_ZOOM_CHANGED] =
g_signal_new ("zoom_changed",
EOG_TYPE_SCROLL_VIEW,
@@ -2556,8 +2568,12 @@ _eog_scroll_view_update_bg_color (EogScrollView *view)
const GdkColor *selected;
EogScrollViewPrivate *priv = view->priv;
- selected = (priv->override_bg_color) ? priv->override_bg_color
- : priv->background_color;
+ if (!priv->use_bg_color)
+ selected = NULL;
+ else if (priv->override_bg_color)
+ selected = priv->override_bg_color;
+ else
+ selected = priv->background_color;
if (priv->transp_style == EOG_TRANSP_BACKGROUND
&& priv->background_surface != NULL) {
@@ -2593,6 +2609,24 @@ eog_scroll_view_override_bg_color (EogScrollView *view,
}
void
+eog_scroll_view_set_use_bg_color (EogScrollView *view, gboolean use)
+{
+ EogScrollViewPrivate *priv;
+
+ g_return_if_fail (EOG_IS_SCROLL_VIEW (view));
+
+ priv = view->priv;
+
+ if (use != priv->use_bg_color) {
+ priv->use_bg_color = use;
+
+ _eog_scroll_view_update_bg_color (view);
+
+ g_object_notify (G_OBJECT (view), "use-background-color");
+ }
+}
+
+void
eog_scroll_view_set_scroll_wheel_zoom (EogScrollView *view,
gboolean scroll_wheel_zoom)
{
diff --git a/src/eog-scroll-view.h b/src/eog-scroll-view.h
index 7b6d095..f00fce6 100644
--- a/src/eog-scroll-view.h
+++ b/src/eog-scroll-view.h
@@ -54,7 +54,7 @@ void eog_scroll_view_set_background_color (EogScrollView *view,
const GdkColor *color);
void eog_scroll_view_override_bg_color (EogScrollView *view,
const GdkColor *color);
-
+void eog_scroll_view_set_use_bg_color (EogScrollView *view, gboolean use);
/* zoom api */
void eog_scroll_view_zoom_in (EogScrollView *view, gboolean smooth);
void eog_scroll_view_zoom_out (EogScrollView *view, gboolean smooth);
diff --git a/src/eog-window.c b/src/eog-window.c
index 9c93e54..0839c73 100644
--- a/src/eog-window.c
+++ b/src/eog-window.c
@@ -122,6 +122,8 @@ enum {
EOG_WINDOW_NOTIFY_EXTRAPOLATE,
EOG_WINDOW_NOTIFY_SCROLLWHEEL_ZOOM,
EOG_WINDOW_NOTIFY_ZOOM_MULTIPLIER,
+ EOG_WINDOW_NOTIFY_BACKGROUND_COLOR,
+ EOG_WINDOW_NOTIFY_USE_BG_COLOR,
EOG_WINDOW_NOTIFY_TRANSPARENCY,
EOG_WINDOW_NOTIFY_TRANS_COLOR,
EOG_WINDOW_NOTIFY_SCROLL_BUTTONS,
@@ -374,6 +376,59 @@ eog_window_transparency_changed_cb (GConfClient *client,
}
static void
+eog_window_bg_color_changed_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+{
+ EogWindowPrivate *priv;
+ GdkColor color;
+ const char *color_str;
+
+ g_return_if_fail (EOG_IS_WINDOW (user_data));
+
+ eog_debug (DEBUG_PREFERENCES);
+
+ priv = EOG_WINDOW (user_data)->priv;
+
+ g_return_if_fail (EOG_IS_SCROLL_VIEW (priv->view));
+
+ if (entry->value != NULL && entry->value->type == GCONF_VALUE_STRING) {
+ color_str = gconf_value_get_string (entry->value);
+
+ if (gdk_color_parse (color_str, &color)) {
+ eog_scroll_view_set_background_color (EOG_SCROLL_VIEW (priv->view), &color);
+ }
+ }
+}
+
+static void
+eog_window_use_bg_color_changed_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+{
+ EogWindowPrivate *priv;
+ gboolean use_bg_color = TRUE;
+
+ eog_debug (DEBUG_PREFERENCES);
+
+ g_return_if_fail (EOG_IS_WINDOW (user_data));
+
+ priv = EOG_WINDOW (user_data)->priv;
+
+ g_return_if_fail (EOG_IS_SCROLL_VIEW (priv->view));
+
+ if (entry->value != NULL && entry->value->type == GCONF_VALUE_BOOL) {
+ use_bg_color = gconf_value_get_bool (entry->value);
+ }
+
+ eog_scroll_view_set_use_bg_color (EOG_SCROLL_VIEW (priv->view),
+ use_bg_color);
+}
+
+
+static void
eog_window_trans_color_changed_cb (GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
@@ -4528,6 +4583,24 @@ eog_window_construct_ui (EogWindow *window)
}
entry = gconf_client_get_entry (priv->client,
+ EOG_CONF_VIEW_BACKGROUND_COLOR,
+ NULL, TRUE, NULL);
+ if (entry != NULL) {
+ eog_window_bg_color_changed_cb (priv->client, 0, entry, window);
+ gconf_entry_unref (entry);
+ entry = NULL;
+ }
+
+ entry = gconf_client_get_entry (priv->client,
+ EOG_CONF_VIEW_USE_BG_COLOR,
+ NULL, TRUE, NULL);
+ if (entry != NULL) {
+ eog_window_use_bg_color_changed_cb (priv->client, 0, entry, window);
+ gconf_entry_unref (entry);
+ entry = NULL;
+ }
+
+ entry = gconf_client_get_entry (priv->client,
EOG_CONF_VIEW_TRANSPARENCY,
NULL, TRUE, NULL);
if (entry != NULL) {
@@ -4619,6 +4692,18 @@ eog_window_init (EogWindow *window)
eog_window_zoom_multiplier_changed_cb,
window, NULL, NULL);
+ priv->client_notifications[EOG_WINDOW_NOTIFY_BACKGROUND_COLOR] =
+ gconf_client_notify_add (window->priv->client,
+ EOG_CONF_VIEW_BACKGROUND_COLOR,
+ eog_window_bg_color_changed_cb,
+ window, NULL, NULL);
+
+ priv->client_notifications[EOG_WINDOW_NOTIFY_USE_BG_COLOR] =
+ gconf_client_notify_add (window->priv->client,
+ EOG_CONF_VIEW_USE_BG_COLOR,
+ eog_window_use_bg_color_changed_cb,
+ window, NULL, NULL);
+
priv->client_notifications[EOG_WINDOW_NOTIFY_TRANSPARENCY] =
gconf_client_notify_add (window->priv->client,
EOG_CONF_VIEW_TRANSPARENCY,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]