mirror of
https://gitlab.gnome.org/GNOME/eog
synced 2024-10-18 22:14:48 +00:00
New preference dialog.
2002-10-10 Jens Finke <jens@triq.net> New preference dialog. * configure.in: Check for libglade. * Makefile.am: Added glade related stuff. * eog.schemas: Changed keys for image view, so that they better reflect the preference dialog settings. * eog.glade, * eog.gladep, * eog-glade.h: New glade related files. * libeog/image-view.[ch] (paint_rectangle): Consider use_check_pattern variable. (image_view_set_check_type), (image_view_set_check_size): Set use_check_pattern variable. (image_view_set_transparent_color): New function. * shell/Makefile.am: Added eog-preferences.[ch] files. * shell/eog-preferences.[ch]: New files. * shell/eog-shell-ui.xml: Added Edit/Preferences menu item. * shell/eog-window.c (verb_EditPreferences_cb): New function. * viewer/eog-image-view-ui.xml: Removed preference settings from the menu. * viewer/eog-image-view.c: Removed all stuff related to the setting/changing of preferences through the menu. (dither_changed_cb), (check_size_changed_cb), (check_type_changed_cb): Removed. (interp_type_changed_cb): Reworked. (trans_color_changed_cb), (transparency_changed_cb): New function. (eog_iamge_view_construct): Adapted to new gconf schema. Removed ui related properties from property bag. * viewer/eog-image-view.h: Adapted gconf keys.
This commit is contained in:
parent
4e50ce08df
commit
aab1d1706b
44
ChangeLog
44
ChangeLog
|
@ -1,3 +1,47 @@
|
||||||
|
2002-10-10 Jens Finke <jens@triq.net>
|
||||||
|
|
||||||
|
New preference dialog.
|
||||||
|
|
||||||
|
* configure.in: Check for libglade.
|
||||||
|
|
||||||
|
* Makefile.am: Added glade related stuff.
|
||||||
|
|
||||||
|
* eog.schemas: Changed keys for image view, so that they better
|
||||||
|
reflect the preference dialog settings.
|
||||||
|
|
||||||
|
* eog.glade,
|
||||||
|
* eog.gladep,
|
||||||
|
* eog-glade.h: New glade related files.
|
||||||
|
|
||||||
|
* libeog/image-view.[ch] (paint_rectangle): Consider use_check_pattern variable.
|
||||||
|
(image_view_set_check_type),
|
||||||
|
(image_view_set_check_size): Set use_check_pattern variable.
|
||||||
|
(image_view_set_transparent_color): New function.
|
||||||
|
|
||||||
|
* shell/Makefile.am: Added eog-preferences.[ch] files.
|
||||||
|
|
||||||
|
* shell/eog-preferences.[ch]: New files.
|
||||||
|
|
||||||
|
* shell/eog-shell-ui.xml: Added Edit/Preferences menu item.
|
||||||
|
|
||||||
|
* shell/eog-window.c (verb_EditPreferences_cb): New function.
|
||||||
|
|
||||||
|
* viewer/eog-image-view-ui.xml: Removed preference settings from
|
||||||
|
the menu.
|
||||||
|
|
||||||
|
* viewer/eog-image-view.c: Removed all stuff related to the
|
||||||
|
setting/changing of preferences through the menu.
|
||||||
|
(dither_changed_cb),
|
||||||
|
(check_size_changed_cb),
|
||||||
|
(check_type_changed_cb): Removed.
|
||||||
|
(interp_type_changed_cb): Reworked.
|
||||||
|
(trans_color_changed_cb),
|
||||||
|
(transparency_changed_cb): New function.
|
||||||
|
(eog_iamge_view_construct): Adapted to new gconf schema.
|
||||||
|
Removed ui related properties from property bag.
|
||||||
|
|
||||||
|
* viewer/eog-image-view.h: Adapted gconf keys.
|
||||||
|
|
||||||
2002-10-10 Kjartan Maraas <kmaraas@gnome.org>
|
2002-10-10 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* shell/eog-window.c (eog_window_init): Plug a leak.
|
* shell/eog-window.c (eog_window_init): Plug a leak.
|
||||||
|
|
|
@ -13,6 +13,9 @@ EXTRA_DIST = \
|
||||||
$(schema_DATA) \
|
$(schema_DATA) \
|
||||||
eog.desktop.in \
|
eog.desktop.in \
|
||||||
eog.spec \
|
eog.spec \
|
||||||
|
eog.gladep \
|
||||||
|
eog.glade \
|
||||||
|
eog-glade.h \
|
||||||
eog.spec.in \
|
eog.spec.in \
|
||||||
gnome-eog.png \
|
gnome-eog.png \
|
||||||
intltool-extract.in \
|
intltool-extract.in \
|
||||||
|
@ -24,6 +27,9 @@ Graphicsdir = $(datadir)/applications
|
||||||
Graphics_in_files = eog.desktop.in
|
Graphics_in_files = eog.desktop.in
|
||||||
Graphics_DATA = $(Graphics_in_files:.desktop.in=.desktop)
|
Graphics_DATA = $(Graphics_in_files:.desktop.in=.desktop)
|
||||||
|
|
||||||
|
Gladedir = $(datadir)/eog/glade
|
||||||
|
Glade_DATA = eog.glade
|
||||||
|
|
||||||
@INTLTOOL_DESKTOP_RULE@
|
@INTLTOOL_DESKTOP_RULE@
|
||||||
|
|
||||||
schemadir = $(sysconfdir)/gconf/schemas
|
schemadir = $(sysconfdir)/gconf/schemas
|
||||||
|
|
|
@ -18,6 +18,7 @@ LIBGNOMEUI_REQUIRED=1.115.0
|
||||||
LIBBONOBOUI_REQUIRED=1.115.0
|
LIBBONOBOUI_REQUIRED=1.115.0
|
||||||
BONOBO_ACTIVATION_REQUIRED=0.9.7
|
BONOBO_ACTIVATION_REQUIRED=0.9.7
|
||||||
LIBRSVG_REQUIRED=1.1.6
|
LIBRSVG_REQUIRED=1.1.6
|
||||||
|
LIBGLADE_REQUIRED=2.0.1
|
||||||
|
|
||||||
dnl ===============================================================================
|
dnl ===============================================================================
|
||||||
|
|
||||||
|
@ -143,7 +144,7 @@ dnl AM_CONDITIONAL(ENABLE_GNOCAM, test x"$gnocam" = "xyes")
|
||||||
gnocam=no
|
gnocam=no
|
||||||
AM_CONDITIONAL(ENABLE_GNOCAM, false)
|
AM_CONDITIONAL(ENABLE_GNOCAM, false)
|
||||||
|
|
||||||
EOG_MODULES="gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED libgnomeprint-2.0 >= $LIBGNOMEPRINT_REQUIRED libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED libbonoboui-2.0 >= $LIBBONOBOUI_REQUIRED bonobo-activation-2.0 >= $BONOBO_ACTIVATION_REQUIRED librsvg-2.0 >= $LIBRSVG_REQUIRED"
|
EOG_MODULES="gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED libgnomeprint-2.0 >= $LIBGNOMEPRINT_REQUIRED libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED libbonoboui-2.0 >= $LIBBONOBOUI_REQUIRED bonobo-activation-2.0 >= $BONOBO_ACTIVATION_REQUIRED librsvg-2.0 >= $LIBRSVG_REQUIRED libglade-2.0 >= $LIBGLADE_REQUIRED"
|
||||||
PKG_CHECK_MODULES(EOG, $EOG_MODULES)
|
PKG_CHECK_MODULES(EOG, $EOG_MODULES)
|
||||||
AC_SUBST(EOG_CFLAGS)
|
AC_SUBST(EOG_CFLAGS)
|
||||||
AC_SUBST(EOG_LIBS)
|
AC_SUBST(EOG_LIBS)
|
||||||
|
|
13
eog-glade.h
Normal file
13
eog-glade.h
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
/*
|
||||||
|
* Datei für übersetzbare Zeichenketten, erzeugt durch Glade.
|
||||||
|
* Fügen Sie diese Datei zur POTFILES.in Ihres Projektes hinzu.
|
||||||
|
* Compilieren Sie sie NICHT als Teil Ihrer Anwendung.
|
||||||
|
*/
|
||||||
|
|
||||||
|
gchar *s = N_("Eye of Gnome Preferences");
|
||||||
|
gchar *s = N_("Interpolate image on zoom (better quality but slower)");
|
||||||
|
gchar *s = N_("By checkpattern ");
|
||||||
|
gchar *s = N_("By color");
|
||||||
|
gchar *s = N_("Pick a color");
|
||||||
|
gchar *s = N_("Indicate Transparency");
|
||||||
|
gchar *s = N_("Image Viewer");
|
239
eog.glade
Normal file
239
eog.glade
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
||||||
|
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
|
||||||
|
|
||||||
|
<glade-interface>
|
||||||
|
<requires lib="gnome"/>
|
||||||
|
|
||||||
|
<widget class="GtkWindow" id="Preferences Dialog">
|
||||||
|
<property name="border_width">6</property>
|
||||||
|
<property name="visible">True</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">True</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkVBox" id="vbox1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkNotebook" id="notebook1">
|
||||||
|
<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="tab_hborder">2</property>
|
||||||
|
<property name="tab_vborder">2</property>
|
||||||
|
<property name="enable_popup">False</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkVBox" id="vbox2">
|
||||||
|
<property name="border_width">6</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkCheckButton" id="interpolate_check">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="label" translatable="yes">Interpolate image on zoom (better quality but slower)</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="active">False</property>
|
||||||
|
<property name="inconsistent">False</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="padding">0</property>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkFrame" id="frame1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
<property name="label_yalign">0.5</property>
|
||||||
|
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkHBox" id="hbox1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
|
<property name="spacing">0</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkVBox" id="vbox3">
|
||||||
|
<property name="border_width">6</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkRadioButton" id="checkpattern_radio">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="label" translatable="yes">By checkpattern </property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="active">False</property>
|
||||||
|
<property name="inconsistent">False</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="padding">0</property>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkHBox" id="hbox2">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkRadioButton" id="color_radio">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="label" translatable="yes">By color</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="active">False</property>
|
||||||
|
<property name="inconsistent">False</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
<property name="group">checkpattern_radio</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="padding">0</property>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GnomeColorPicker" id="colorpicker">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="dither">True</property>
|
||||||
|
<property name="use_alpha">False</property>
|
||||||
|
<property name="title" translatable="yes">Pick a color</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="padding">0</property>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="padding">0</property>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="padding">0</property>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="label2">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="label" translatable="yes">Indicate Transparency</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>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="type">label_item</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="padding">0</property>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="tab_expand">False</property>
|
||||||
|
<property name="tab_fill">True</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="label1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="label" translatable="yes">Image Viewer</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>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="type">tab</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="padding">0</property>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkHButtonBox" id="hbuttonbox1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||||
|
<property name="spacing">0</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget 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>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="padding">0</property>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
|
||||||
|
</glade-interface>
|
9
eog.gladep
Normal file
9
eog.gladep
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
||||||
|
<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
|
||||||
|
|
||||||
|
<glade-project>
|
||||||
|
<name>eog</name>
|
||||||
|
<program_name>eog</program_name>
|
||||||
|
<output_translatable_strings>TRUE</output_translatable_strings>
|
||||||
|
<translatable_strings_file>eog-glade.h</translatable_strings_file>
|
||||||
|
</glade-project>
|
91
eog.schemas
91
eog.schemas
|
@ -1,88 +1,45 @@
|
||||||
<gconfschemafile>
|
<gconfschemafile>
|
||||||
<schemalist>
|
<schemalist>
|
||||||
<schema>
|
<schema>
|
||||||
<key>/schemas/apps/eog/view/interp_type</key>
|
<key>/schemas/apps/eog/view/interpolate</key>
|
||||||
<applyto>/apps/eog/view/interp_type</applyto>
|
<applyto>/apps/eog/view/interpolate</applyto>
|
||||||
<owner>eog</owner>
|
<owner>eog</owner>
|
||||||
<type>int</type>
|
<type>bool</type>
|
||||||
<default>2</default>
|
|
||||||
<locale name="C">
|
|
||||||
<short>Interpolation type</short>
|
|
||||||
<long>Type of interpolation to use for views. Possible values
|
|
||||||
are: 0 (nearest neighbor), 2 (bilienar), 3 (hyperbolic).
|
|
||||||
Value 1 (tiles) is in effect the same as nearest neighbor and
|
|
||||||
thus is not used.</long>
|
|
||||||
</locale>
|
|
||||||
</schema>
|
|
||||||
|
|
||||||
<schema>
|
|
||||||
<key>/schemas/apps/eog/view/check_type</key>
|
|
||||||
<applyto>/apps/eog/view/check_type</applyto>
|
|
||||||
<owner>eog</owner>
|
|
||||||
<type>int</type>
|
|
||||||
<default>1</default>
|
<default>1</default>
|
||||||
<locale name="C">
|
<locale name="C">
|
||||||
<short>Type of checks</short>
|
<short>Interpolate Image</short>
|
||||||
<long>Type of the checkered background that will be drawn
|
<long>Wether the image should be interpolated on zoom or not.
|
||||||
behind images with transparency. Possible values are: 0 (dark
|
This leads to better quality but is somewhat slower than non
|
||||||
checks), 1 (midtone checks), 2 (light checks), 3 (black
|
interpolated images.</long>
|
||||||
background), 4 (gray background), 5 (white background).</long>
|
|
||||||
</locale>
|
</locale>
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
<schema>
|
<schema>
|
||||||
<key>/schemas/apps/eog/view/check_size</key>
|
<key>/schemas/apps/eog/view/transparency</key>
|
||||||
<applyto>/apps/eog/view/check_size</applyto>
|
<applyto>/apps/eog/view/transparency</applyto>
|
||||||
<owner>eog</owner>
|
<owner>eog</owner>
|
||||||
<type>int</type>
|
<type>string</type>
|
||||||
<default>1</default>
|
<default>CHECK_PATTERN</default>
|
||||||
<locale name="C">
|
<locale name="C">
|
||||||
<short>Size of checks</short>
|
<short>Transparency indicator</short>
|
||||||
<long>Size of the checks in the background that will be drawn
|
<long>Determines how transparency should be indicated. Valid values
|
||||||
behind images with transparency. Possible values are: 0
|
are CHECK_PATTERN and COLOR. If COLOR is choosen, than the trans_color
|
||||||
(small checks), 1 (medium checks), 2 (large checks).</long>
|
key determines the used color value.
|
||||||
|
</long>
|
||||||
</locale>
|
</locale>
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
<schema>
|
<schema>
|
||||||
<key>/schemas/apps/eog/view/dither</key>
|
<key>/schemas/apps/eog/view/trans_color</key>
|
||||||
<applyto>/apps/eog/view/dither</applyto>
|
<applyto>/apps/eog/view/trans_color</applyto>
|
||||||
<owner>eog</owner>
|
<owner>eog</owner>
|
||||||
<type>int</type>
|
<type>string</type>
|
||||||
<default>0</default>
|
<default>#000000</default>
|
||||||
<locale name="C">
|
<locale name="C">
|
||||||
<short>Dither type</short>
|
<short>Transparency color</short>
|
||||||
<long>Dither type to use. Possible values are: 0 (none), 1
|
<long>If the transparency key has the value COLOR, than this
|
||||||
(normal, for pseudo-color displays), 2 (maximum, for extra
|
key determines the color which is used for indicating transparency.
|
||||||
quality on high color displays).</long>
|
</long>
|
||||||
</locale>
|
|
||||||
</schema>
|
|
||||||
|
|
||||||
<schema>
|
|
||||||
<key>/schemas/apps/eog/view/scroll</key>
|
|
||||||
<applyto>/apps/eog/view/scroll</applyto>
|
|
||||||
<owner>eog</owner>
|
|
||||||
<type>int</type>
|
|
||||||
<default>1</default>
|
|
||||||
<locale name="C">
|
|
||||||
<short>Scrolling method</short>
|
|
||||||
<long>Scrolling method to use. Possible values are: 0
|
|
||||||
(normal), 1 (two-pass scrolling).</long>
|
|
||||||
</locale>
|
|
||||||
</schema>
|
|
||||||
|
|
||||||
<schema>
|
|
||||||
<key>/schemas/apps/eog/window/sb_policy</key>
|
|
||||||
<applyto>/apps/eog/window/sb_policy</applyto>
|
|
||||||
<owner>eog</owner>
|
|
||||||
<type>int</type>
|
|
||||||
<default>1</default>
|
|
||||||
<locale name="C">
|
|
||||||
<short>Scrollbar policy for image windows</short>
|
|
||||||
<long>Whether to display scrollbars on image windows.
|
|
||||||
Possible values are: 1 (automatic; only display scrollbars if
|
|
||||||
the image is larger than the window), 2 (never display
|
|
||||||
scrollbars).</long>
|
|
||||||
</locale>
|
</locale>
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
|
|
|
@ -97,6 +97,10 @@ struct _ImageViewPrivate {
|
||||||
/* Check type and size */
|
/* Check type and size */
|
||||||
CheckType check_type;
|
CheckType check_type;
|
||||||
CheckSize check_size;
|
CheckSize check_size;
|
||||||
|
|
||||||
|
/* Transparency indicator */
|
||||||
|
gboolean use_check_pattern;
|
||||||
|
guint32 transparency_color;
|
||||||
|
|
||||||
/* Dither type */
|
/* Dither type */
|
||||||
GdkRgbDither dither;
|
GdkRgbDither dither;
|
||||||
|
@ -245,6 +249,8 @@ image_view_instance_init (ImageView *view)
|
||||||
priv->check_type = CHECK_TYPE_MIDTONE;
|
priv->check_type = CHECK_TYPE_MIDTONE;
|
||||||
priv->check_size = CHECK_SIZE_LARGE;
|
priv->check_size = CHECK_SIZE_LARGE;
|
||||||
priv->dither = GDK_RGB_DITHER_MAX;
|
priv->dither = GDK_RGB_DITHER_MAX;
|
||||||
|
priv->use_check_pattern = TRUE;
|
||||||
|
priv->transparency_color = CHECK_BLACK;
|
||||||
|
|
||||||
/* We don't want to be double-buffered as we are SuperSmart(tm) */
|
/* We don't want to be double-buffered as we are SuperSmart(tm) */
|
||||||
gtk_widget_set_double_buffered (GTK_WIDGET (view), FALSE);
|
gtk_widget_set_double_buffered (GTK_WIDGET (view), FALSE);
|
||||||
|
@ -545,38 +551,42 @@ paint_rectangle (ImageView *view, ArtIRect *rect, GdkInterpType interp_type)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compute check parameters */
|
/* Compute check parameters */
|
||||||
|
if (priv->use_check_pattern) {
|
||||||
|
switch (priv->check_type) {
|
||||||
|
case CHECK_TYPE_DARK:
|
||||||
|
check_1 = CHECK_BLACK;
|
||||||
|
check_2 = CHECK_DARK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CHECK_TYPE_MIDTONE:
|
||||||
|
check_1 = CHECK_DARK;
|
||||||
|
check_2 = CHECK_LIGHT;
|
||||||
|
break;
|
||||||
|
|
||||||
switch (priv->check_type) {
|
case CHECK_TYPE_LIGHT:
|
||||||
case CHECK_TYPE_DARK:
|
check_1 = CHECK_LIGHT;
|
||||||
check_1 = CHECK_BLACK;
|
check_2 = CHECK_WHITE;
|
||||||
check_2 = CHECK_DARK;
|
break;
|
||||||
break;
|
|
||||||
|
case CHECK_TYPE_BLACK:
|
||||||
|
check_1 = check_2 = CHECK_BLACK;
|
||||||
|
break;
|
||||||
|
|
||||||
case CHECK_TYPE_MIDTONE:
|
case CHECK_TYPE_GRAY:
|
||||||
check_1 = CHECK_DARK;
|
check_1 = check_2 = CHECK_GRAY;
|
||||||
check_2 = CHECK_LIGHT;
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
case CHECK_TYPE_LIGHT:
|
case CHECK_TYPE_WHITE:
|
||||||
check_1 = CHECK_LIGHT;
|
check_1 = check_2 = CHECK_WHITE;
|
||||||
check_2 = CHECK_WHITE;
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
case CHECK_TYPE_BLACK:
|
default:
|
||||||
check_1 = check_2 = CHECK_BLACK;
|
g_assert_not_reached ();
|
||||||
break;
|
return;
|
||||||
|
}
|
||||||
case CHECK_TYPE_GRAY:
|
}
|
||||||
check_1 = check_2 = CHECK_GRAY;
|
else {
|
||||||
break;
|
check_1 = check_2 = priv->transparency_color;
|
||||||
|
|
||||||
case CHECK_TYPE_WHITE:
|
|
||||||
check_1 = check_2 = CHECK_WHITE;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
g_assert_not_reached ();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (priv->check_size) {
|
switch (priv->check_size) {
|
||||||
|
@ -1689,10 +1699,12 @@ image_view_set_check_type (ImageView *view, CheckType check_type)
|
||||||
|
|
||||||
priv = view->priv;
|
priv = view->priv;
|
||||||
|
|
||||||
if (priv->check_type == check_type)
|
if (priv->check_type == check_type &&
|
||||||
|
priv->use_check_pattern)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
priv->check_type = check_type;
|
priv->check_type = check_type;
|
||||||
|
priv->use_check_pattern = TRUE;
|
||||||
|
|
||||||
gtk_widget_queue_draw (GTK_WIDGET (view));
|
gtk_widget_queue_draw (GTK_WIDGET (view));
|
||||||
}
|
}
|
||||||
|
@ -1734,10 +1746,12 @@ image_view_set_check_size (ImageView *view, CheckSize check_size)
|
||||||
|
|
||||||
priv = view->priv;
|
priv = view->priv;
|
||||||
|
|
||||||
if (priv->check_size == check_size)
|
if (priv->check_size == check_size &&
|
||||||
|
priv->use_check_pattern)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
priv->check_size = check_size;
|
priv->check_size = check_size;
|
||||||
|
priv->use_check_pattern = TRUE;
|
||||||
|
|
||||||
gtk_widget_queue_draw (GTK_WIDGET (view));
|
gtk_widget_queue_draw (GTK_WIDGET (view));
|
||||||
}
|
}
|
||||||
|
@ -1787,6 +1801,32 @@ image_view_set_dither (ImageView *view, GdkRgbDither dither)
|
||||||
gtk_widget_queue_draw (GTK_WIDGET (view));
|
gtk_widget_queue_draw (GTK_WIDGET (view));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
image_view_set_transparent_color (ImageView *view, const GdkColor *color)
|
||||||
|
{
|
||||||
|
ImageViewPrivate *priv;
|
||||||
|
guint32 col = 0;
|
||||||
|
guint32 red_part;
|
||||||
|
guint32 green_part;
|
||||||
|
guint32 blue_part;
|
||||||
|
|
||||||
|
g_return_if_fail (view != NULL);
|
||||||
|
g_return_if_fail (IS_IMAGE_VIEW (view));
|
||||||
|
|
||||||
|
priv = view->priv;
|
||||||
|
|
||||||
|
red_part = (color->red / 256) << 16;
|
||||||
|
green_part = (color->green / 256) << 8;
|
||||||
|
blue_part = (color->blue / 256);
|
||||||
|
|
||||||
|
col = red_part + green_part + blue_part;
|
||||||
|
|
||||||
|
priv->use_check_pattern = FALSE;
|
||||||
|
priv->transparency_color = col;
|
||||||
|
|
||||||
|
gtk_widget_queue_draw (GTK_WIDGET (view));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* image_view_get_dither:
|
* image_view_get_dither:
|
||||||
* @view: An image view.
|
* @view: An image view.
|
||||||
|
@ -1929,3 +1969,4 @@ image_view_class_init (ImageViewClass *class)
|
||||||
widget_class->focus_in_event = image_view_focus_in_event;
|
widget_class->focus_in_event = image_view_focus_in_event;
|
||||||
widget_class->focus_out_event = image_view_focus_out_event;
|
widget_class->focus_out_event = image_view_focus_out_event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -112,6 +112,8 @@ GdkRgbDither image_view_get_dither (ImageView *view);
|
||||||
|
|
||||||
void image_view_get_scaled_size (ImageView *view, gint *width, gint *height);
|
void image_view_get_scaled_size (ImageView *view, gint *width, gint *height);
|
||||||
|
|
||||||
|
void image_view_set_transparent_color (ImageView *view, const GdkColor *color);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -18,6 +18,8 @@ bin_PROGRAMS = eog
|
||||||
eog_SOURCES = \
|
eog_SOURCES = \
|
||||||
eog-window.h \
|
eog-window.h \
|
||||||
eog-window.c \
|
eog-window.c \
|
||||||
|
eog-preferences.h \
|
||||||
|
eog-preferences.c \
|
||||||
main.c \
|
main.c \
|
||||||
session.c \
|
session.c \
|
||||||
session.h \
|
session.h \
|
||||||
|
|
144
shell/eog-preferences.c
Normal file
144
shell/eog-preferences.c
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <glade/glade.h>
|
||||||
|
#include <libgnomeui/libgnomeui.h>
|
||||||
|
#include "eog-preferences.h"
|
||||||
|
|
||||||
|
#define EOG_VIEW_INTERPOLATE_IMAGE "/apps/eog/view/interpolate"
|
||||||
|
#define EOG_VIEW_TRANSPARENCY "/apps/eog/view/transparency"
|
||||||
|
#define EOG_VIEW_TRANS_COLOR "/apps/eog/view/trans_color"
|
||||||
|
#define GCONF_OBJECT_KEY "GCONF_KEY"
|
||||||
|
#define GCONF_OBJECT_VALUE "GCONF_VALUE"
|
||||||
|
|
||||||
|
static void
|
||||||
|
check_toggle_cb (GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
|
char *key = NULL;
|
||||||
|
|
||||||
|
key = g_object_get_data (G_OBJECT (widget), GCONF_OBJECT_KEY);
|
||||||
|
if (key == NULL) return;
|
||||||
|
|
||||||
|
gconf_client_set_bool (GCONF_CLIENT (data),
|
||||||
|
key,
|
||||||
|
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)),
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
color_change_cb (GtkWidget *widget, guint red, guint green, guint blue, guint a, gpointer data)
|
||||||
|
{
|
||||||
|
char *key = NULL;
|
||||||
|
char *value = NULL;
|
||||||
|
char *ptr;
|
||||||
|
|
||||||
|
value = g_strdup_printf ("#%2X%2X%2X",
|
||||||
|
red / 256,
|
||||||
|
green / 256,
|
||||||
|
blue / 256);
|
||||||
|
|
||||||
|
for (ptr = value; *ptr; ptr++)
|
||||||
|
if (*ptr == ' ')
|
||||||
|
*ptr = '0';
|
||||||
|
|
||||||
|
key = g_object_get_data (G_OBJECT (widget), GCONF_OBJECT_KEY);
|
||||||
|
if (key == NULL || value == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
gconf_client_set_string (GCONF_CLIENT (data),
|
||||||
|
key,
|
||||||
|
value,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
radio_toggle_cb (GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
|
char *key = NULL;
|
||||||
|
char *value = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
key = g_object_get_data (G_OBJECT (widget), GCONF_OBJECT_KEY);
|
||||||
|
value = g_object_get_data (G_OBJECT (widget), GCONF_OBJECT_VALUE);
|
||||||
|
if (key == NULL || value == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
gconf_client_set_string (GCONF_CLIENT (data),
|
||||||
|
key,
|
||||||
|
value,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
eog_preferences_show (GConfClient *client)
|
||||||
|
{
|
||||||
|
GtkWidget *dlg;
|
||||||
|
GladeXML *xml;
|
||||||
|
GtkWidget *widget;
|
||||||
|
char *value;
|
||||||
|
GdkColor color;
|
||||||
|
|
||||||
|
xml = glade_xml_new (DATADIR "/eog/glade/eog.glade", "Preferences Dialog", "eog");
|
||||||
|
g_assert (xml != NULL);
|
||||||
|
|
||||||
|
dlg = glade_xml_get_widget (xml, "Preferences Dialog");
|
||||||
|
|
||||||
|
widget = glade_xml_get_widget (xml, "close_button");
|
||||||
|
g_signal_connect_swapped (G_OBJECT (widget), "clicked",
|
||||||
|
G_CALLBACK (gtk_widget_destroy), dlg);
|
||||||
|
|
||||||
|
/* interpolate flag */
|
||||||
|
widget = glade_xml_get_widget (xml, "interpolate_check");
|
||||||
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
|
||||||
|
gconf_client_get_bool (client, EOG_VIEW_INTERPOLATE_IMAGE, NULL));
|
||||||
|
g_object_set_data (G_OBJECT (widget), GCONF_OBJECT_KEY, EOG_VIEW_INTERPOLATE_IMAGE);
|
||||||
|
g_signal_connect (G_OBJECT (widget),
|
||||||
|
"toggled",
|
||||||
|
G_CALLBACK (check_toggle_cb),
|
||||||
|
client);
|
||||||
|
|
||||||
|
/* Transparency radio group */
|
||||||
|
widget = glade_xml_get_widget (xml, "color_radio");
|
||||||
|
g_object_set_data (G_OBJECT (widget), GCONF_OBJECT_KEY, EOG_VIEW_TRANSPARENCY);
|
||||||
|
g_object_set_data (G_OBJECT (widget), GCONF_OBJECT_VALUE, "COLOR");
|
||||||
|
g_signal_connect (G_OBJECT (widget),
|
||||||
|
"toggled",
|
||||||
|
G_CALLBACK (radio_toggle_cb),
|
||||||
|
client);
|
||||||
|
|
||||||
|
widget = glade_xml_get_widget (xml, "checkpattern_radio");
|
||||||
|
g_object_set_data (G_OBJECT (widget), GCONF_OBJECT_KEY, EOG_VIEW_TRANSPARENCY);
|
||||||
|
g_object_set_data (G_OBJECT (widget), GCONF_OBJECT_VALUE, "CHECK_PATTERN");
|
||||||
|
g_signal_connect (G_OBJECT (widget),
|
||||||
|
"toggled",
|
||||||
|
G_CALLBACK (radio_toggle_cb),
|
||||||
|
client);
|
||||||
|
|
||||||
|
value = gconf_client_get_string (client, EOG_VIEW_TRANSPARENCY, NULL);
|
||||||
|
if (g_strncasecmp (value, "COLOR") == 0) {
|
||||||
|
widget = glade_xml_get_widget (xml, "color_radio");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
widget = glade_xml_get_widget (xml, "checkpattern_radio");
|
||||||
|
}
|
||||||
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
|
||||||
|
|
||||||
|
/* color picker */
|
||||||
|
value = gconf_client_get_string (client, EOG_VIEW_TRANS_COLOR, NULL);
|
||||||
|
widget = glade_xml_get_widget (xml, "colorpicker");
|
||||||
|
if (gdk_color_parse (value, &color)) {
|
||||||
|
gnome_color_picker_set_i16 (GNOME_COLOR_PICKER (widget),
|
||||||
|
color.red,
|
||||||
|
color.green,
|
||||||
|
color.blue,
|
||||||
|
255);
|
||||||
|
}
|
||||||
|
g_object_set_data (G_OBJECT (widget), GCONF_OBJECT_KEY, EOG_VIEW_TRANS_COLOR);
|
||||||
|
g_signal_connect (G_OBJECT (widget),
|
||||||
|
"color-set",
|
||||||
|
G_CALLBACK (color_change_cb),
|
||||||
|
client);
|
||||||
|
}
|
||||||
|
|
3
shell/eog-preferences.h
Normal file
3
shell/eog-preferences.h
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
#include <gconf/gconf-client.h>
|
||||||
|
|
||||||
|
void eog_preferences_show (GConfClient *client);
|
|
@ -12,7 +12,10 @@
|
||||||
|
|
||||||
<cmd name="FileExit" _label="_Quit" _tip="Quit the program"
|
<cmd name="FileExit" _label="_Quit" _tip="Quit the program"
|
||||||
pixtype="stock" pixname="gtk-quit" accel="*Control*q"/>
|
pixtype="stock" pixname="gtk-quit" accel="*Control*q"/>
|
||||||
|
|
||||||
|
<cmd name="EditPreferences" _label="Prefere_nces" _tip="Preferences for EoG components"
|
||||||
|
pixtype="stock" pixname="gtk-preferences"/>
|
||||||
|
|
||||||
<cmd name="HelpAbout" _label="_About" _tip="About this application"
|
<cmd name="HelpAbout" _label="_About" _tip="About this application"
|
||||||
pixtype="stock" pixname="About"/>
|
pixtype="stock" pixname="About"/>
|
||||||
<cmd name="Help" _label="_Contents" _tip="Help On this application"
|
<cmd name="Help" _label="_Contents" _tip="Help On this application"
|
||||||
|
@ -44,13 +47,14 @@
|
||||||
|
|
||||||
</submenu>
|
</submenu>
|
||||||
|
|
||||||
<placeholder name="Edit">
|
<submenu name="Edit" _label="_Edit">
|
||||||
<placeholder name="Edit Items Placeholder"/>
|
<placeholder name="Edit Items Placeholder"/>
|
||||||
</placeholder>
|
<separator/>
|
||||||
|
<menuitem name="EditPreferences" verb=""/>
|
||||||
|
</submenu>
|
||||||
|
|
||||||
<placeholder name="View">
|
<placeholder name="View">
|
||||||
<placeholder name="View Preferences Placeholder"/>
|
<placeholder name="View Items Placeholder"/>
|
||||||
<placeholder name="View Items Placeholder" delimit="top"/>
|
|
||||||
</placeholder>
|
</placeholder>
|
||||||
|
|
||||||
<submenu name="Help" _label="_Help">
|
<submenu name="Help" _label="_Help">
|
||||||
|
|
|
@ -172,6 +172,16 @@ verb_FileExit_cb (BonoboUIComponent *uic, gpointer user_data, const char *cname)
|
||||||
eog_window_close_all ();
|
eog_window_close_all ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
verb_EditPreferences_cb (BonoboUIComponent *uic, gpointer user_data, const char *cname)
|
||||||
|
{
|
||||||
|
GConfClient *client;
|
||||||
|
|
||||||
|
client = EOG_WINDOW (user_data)->priv->client;
|
||||||
|
|
||||||
|
eog_preferences_show (client);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
verb_HelpAbout_cb (BonoboUIComponent *uic, gpointer user_data, const char *cname)
|
verb_HelpAbout_cb (BonoboUIComponent *uic, gpointer user_data, const char *cname)
|
||||||
{
|
{
|
||||||
|
@ -613,6 +623,7 @@ static BonoboUIVerb eog_app_verbs[] = {
|
||||||
BONOBO_UI_VERB ("FileOpen", verb_FileOpen_cb),
|
BONOBO_UI_VERB ("FileOpen", verb_FileOpen_cb),
|
||||||
BONOBO_UI_VERB ("FileCloseWindow", verb_FileCloseWindow_cb),
|
BONOBO_UI_VERB ("FileCloseWindow", verb_FileCloseWindow_cb),
|
||||||
BONOBO_UI_VERB ("FileExit", verb_FileExit_cb),
|
BONOBO_UI_VERB ("FileExit", verb_FileExit_cb),
|
||||||
|
BONOBO_UI_VERB ("EditPreferences", verb_EditPreferences_cb),
|
||||||
BONOBO_UI_VERB ("HelpAbout", verb_HelpAbout_cb),
|
BONOBO_UI_VERB ("HelpAbout", verb_HelpAbout_cb),
|
||||||
BONOBO_UI_VERB ("Help", verb_HelpContent_cb),
|
BONOBO_UI_VERB ("Help", verb_HelpContent_cb),
|
||||||
BONOBO_UI_VERB ("DnDNewWindow", verb_DnDNewWindow_cb),
|
BONOBO_UI_VERB ("DnDNewWindow", verb_DnDNewWindow_cb),
|
||||||
|
|
|
@ -14,39 +14,6 @@
|
||||||
<cmd name="SaveAs" _label="Save _As..."
|
<cmd name="SaveAs" _label="Save _As..."
|
||||||
pixtype="stock" pixname="Save As" accel="*Control**Shift*S"/>
|
pixtype="stock" pixname="Save As" accel="*Control**Shift*S"/>
|
||||||
|
|
||||||
<cmd name="InterpolationNearest" _label="Nea_rest Neighbour"
|
|
||||||
type="radio" group="Interpolation"/>
|
|
||||||
<cmd name="InterpolationBilinear" _label="_Bilinear"
|
|
||||||
type="radio" group="Interpolation"/>
|
|
||||||
<cmd name="InterpolationHyperbolic" _label="_Hyperbolic"
|
|
||||||
type="radio" group="Interpolation"/>
|
|
||||||
|
|
||||||
<cmd name="DitherNone" _label="_None" type="radio" group="Dither"/>
|
|
||||||
<cmd name="DitherNormal" _label="Normal (_pseudocolor)"
|
|
||||||
type="radio" group="Dither"/>
|
|
||||||
<cmd name="DitherMaximum" _label="_Maximum (high color)"
|
|
||||||
type="radio" group="Dither"/>
|
|
||||||
|
|
||||||
<cmd name="CheckTypeDark" _label="_Dark"
|
|
||||||
type="radio" group="CheckType"/>
|
|
||||||
<cmd name="CheckTypeMidtone" _label="_Midtone"
|
|
||||||
type="radio" group="CheckType"/>
|
|
||||||
<cmd name="CheckTypeLight" _label="_Light"
|
|
||||||
type="radio" group="CheckType"/>
|
|
||||||
<cmd name="CheckTypeBlack" _label="_Black"
|
|
||||||
type="radio" group="CheckType"/>
|
|
||||||
<cmd name="CheckTypeGray" _label="_Gray"
|
|
||||||
type="radio" group="CheckType"/>
|
|
||||||
<cmd name="CheckTypeWhite" _label="_White"
|
|
||||||
type="radio" group="CheckType"/>
|
|
||||||
|
|
||||||
<cmd name="CheckSizeSmall" _label="Small"
|
|
||||||
type="radio" group="CheckSize"/>
|
|
||||||
<cmd name="CheckSizeMedium" _label="Medium"
|
|
||||||
type="radio" group="CheckSize"/>
|
|
||||||
<cmd name="CheckSizeLarge" _label="Large"
|
|
||||||
type="radio" group="CheckSize"/>
|
|
||||||
|
|
||||||
<cmd name="FullScreen" _label="Full Screen" accel="F11"/>
|
<cmd name="FullScreen" _label="Full Screen" accel="F11"/>
|
||||||
<cmd name="FlipHorizontal" _label="Flip Horizontal"/>
|
<cmd name="FlipHorizontal" _label="Flip Horizontal"/>
|
||||||
<cmd name="FlipVertical" _label="Flip Vertical"/>
|
<cmd name="FlipVertical" _label="Flip Vertical"/>
|
||||||
|
@ -85,36 +52,6 @@
|
||||||
|
|
||||||
<submenu name="View" _label="_View">
|
<submenu name="View" _label="_View">
|
||||||
|
|
||||||
<placeholder name="View Preferences Placeholder">
|
|
||||||
|
|
||||||
<submenu name="Interpolation" _label="_Interpolation">
|
|
||||||
<menuitem name="InterpolationNearest" verb=""/>
|
|
||||||
<menuitem name="InterpolationBilinear" verb=""/>
|
|
||||||
<menuitem name="InterpolationHyperbolic" verb=""/>
|
|
||||||
</submenu>
|
|
||||||
|
|
||||||
<submenu name="Dither" _label="_Dither">
|
|
||||||
<menuitem name="DitherNone" verb=""/>
|
|
||||||
<menuitem name="DitherNormal" verb=""/>
|
|
||||||
<menuitem name="DitherMaximum" verb=""/>
|
|
||||||
</submenu>
|
|
||||||
|
|
||||||
<submenu name="CheckType" _label="Check _type">
|
|
||||||
<menuitem name="CheckTypeDark" verb=""/>
|
|
||||||
<menuitem name="CheckTypeMidtone" verb=""/>
|
|
||||||
<menuitem name="CheckTypeLight" verb=""/>
|
|
||||||
<menuitem name="CheckTypeBlack" verb=""/>
|
|
||||||
<menuitem name="CheckTypeGray" verb=""/>
|
|
||||||
<menuitem name="CheckTypeWhite" verb=""/>
|
|
||||||
</submenu>
|
|
||||||
|
|
||||||
<submenu name="CheckSize" _label="Check _size">
|
|
||||||
<menuitem name="CheckSizeSmall" verb=""/>
|
|
||||||
<menuitem name="CheckSizeMedium" verb=""/>
|
|
||||||
<menuitem name="CheckSizeLarge" verb=""/>
|
|
||||||
</submenu>
|
|
||||||
</placeholder>
|
|
||||||
|
|
||||||
<placeholder name="View Items Placeholder">
|
<placeholder name="View Items Placeholder">
|
||||||
<menuitem name="FullScreen" verb=""/>
|
<menuitem name="FullScreen" verb=""/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
|
|
|
@ -63,9 +63,8 @@ struct _EogImageViewPrivate {
|
||||||
|
|
||||||
GConfClient *client;
|
GConfClient *client;
|
||||||
guint interp_type_notify_id;
|
guint interp_type_notify_id;
|
||||||
guint dither_notify_id;
|
guint transparency_notify_id;
|
||||||
guint check_type_notify_id;
|
guint trans_color_notify_id;
|
||||||
guint check_size_notify_id;
|
|
||||||
|
|
||||||
GtkWidget *ui_image;
|
GtkWidget *ui_image;
|
||||||
ImageView *image_view;
|
ImageView *image_view;
|
||||||
|
@ -211,126 +210,6 @@ image_view_popup_menu_cb (GtkWidget *widget, gpointer data)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
listener_Interpolation_cb (BonoboUIComponent *uic,
|
|
||||||
const char *path,
|
|
||||||
Bonobo_UIComponent_EventType type,
|
|
||||||
const char *state,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
EogImageView *image_view;
|
|
||||||
GdkInterpType interpolation;
|
|
||||||
|
|
||||||
g_return_if_fail (user_data != NULL);
|
|
||||||
g_return_if_fail (EOG_IS_IMAGE_VIEW (user_data));
|
|
||||||
|
|
||||||
if (type != Bonobo_UIComponent_STATE_CHANGED)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!state || !atoi (state))
|
|
||||||
return;
|
|
||||||
|
|
||||||
image_view = EOG_IMAGE_VIEW (user_data);
|
|
||||||
|
|
||||||
if (!strcmp (path, "InterpolationNearest")) {
|
|
||||||
interpolation = GDK_INTERP_NEAREST;
|
|
||||||
}
|
|
||||||
else if (!strcmp (path, "InterpolationBilinear")) {
|
|
||||||
interpolation = GDK_INTERP_BILINEAR;
|
|
||||||
}
|
|
||||||
else if (!strcmp (path, "InterpolationHyperbolic")) {
|
|
||||||
interpolation = GDK_INTERP_HYPER;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
g_warning ("Unknown interpolation type `%s'", path);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gconf_client_set_int (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_INTERP_TYPE,
|
|
||||||
(int) interpolation, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
listener_Dither_cb (BonoboUIComponent *uic,
|
|
||||||
const char *path,
|
|
||||||
Bonobo_UIComponent_EventType type,
|
|
||||||
const char *state,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
EogImageView *image_view;
|
|
||||||
GNOME_EOG_Dither dither;
|
|
||||||
|
|
||||||
g_return_if_fail (user_data != NULL);
|
|
||||||
g_return_if_fail (EOG_IS_IMAGE_VIEW (user_data));
|
|
||||||
|
|
||||||
if (type != Bonobo_UIComponent_STATE_CHANGED)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!state || !atoi (state))
|
|
||||||
return;
|
|
||||||
|
|
||||||
image_view = EOG_IMAGE_VIEW (user_data);
|
|
||||||
|
|
||||||
if (!strcmp (path, "DitherNone"))
|
|
||||||
dither = GNOME_EOG_DITHER_NONE;
|
|
||||||
else if (!strcmp (path, "DitherNormal"))
|
|
||||||
dither = GNOME_EOG_DITHER_NORMAL;
|
|
||||||
else if (!strcmp (path, "DitherMaximum"))
|
|
||||||
dither = GNOME_EOG_DITHER_MAXIMUM;
|
|
||||||
else {
|
|
||||||
g_warning ("Unknown dither type `%s'", path);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gconf_client_set_int (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_DITHER,
|
|
||||||
(int) dither, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
listener_CheckType_cb (BonoboUIComponent *uic,
|
|
||||||
const char *path,
|
|
||||||
Bonobo_UIComponent_EventType type,
|
|
||||||
const char *state,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
EogImageView *image_view;
|
|
||||||
GNOME_EOG_CheckType check_type;
|
|
||||||
|
|
||||||
g_return_if_fail (user_data != NULL);
|
|
||||||
g_return_if_fail (EOG_IS_IMAGE_VIEW (user_data));
|
|
||||||
|
|
||||||
if (type != Bonobo_UIComponent_STATE_CHANGED)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!state || !atoi (state))
|
|
||||||
return;
|
|
||||||
|
|
||||||
image_view = EOG_IMAGE_VIEW (user_data);
|
|
||||||
|
|
||||||
if (!strcmp (path, "CheckTypeDark"))
|
|
||||||
check_type = GNOME_EOG_CHECK_TYPE_DARK;
|
|
||||||
else if (!strcmp (path, "CheckTypeMidtone"))
|
|
||||||
check_type = GNOME_EOG_CHECK_TYPE_MIDTONE;
|
|
||||||
else if (!strcmp (path, "CheckTypeLight"))
|
|
||||||
check_type = GNOME_EOG_CHECK_TYPE_LIGHT;
|
|
||||||
else if (!strcmp (path, "CheckTypeBlack"))
|
|
||||||
check_type = GNOME_EOG_CHECK_TYPE_BLACK;
|
|
||||||
else if (!strcmp (path, "CheckTypeGray"))
|
|
||||||
check_type = GNOME_EOG_CHECK_TYPE_GRAY;
|
|
||||||
else if (!strcmp (path, "CheckTypeWhite"))
|
|
||||||
check_type = GNOME_EOG_CHECK_TYPE_WHITE;
|
|
||||||
else {
|
|
||||||
g_warning ("Unknown check type `%s'", path);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gconf_client_set_int (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_CHECK_TYPE,
|
|
||||||
(int) check_type, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
save_image_as_file (EogImageView *image_view, gchar *filename)
|
save_image_as_file (EogImageView *image_view, gchar *filename)
|
||||||
{
|
{
|
||||||
|
@ -1251,113 +1130,6 @@ verb_PrintSetup_cb (BonoboUIComponent *uic, gpointer user_data,
|
||||||
gtk_widget_show (print_setup);
|
gtk_widget_show (print_setup);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
listener_CheckSize_cb (BonoboUIComponent *uic,
|
|
||||||
const char *path,
|
|
||||||
Bonobo_UIComponent_EventType type,
|
|
||||||
const char *state,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
EogImageView *image_view;
|
|
||||||
GNOME_EOG_CheckSize check_size;
|
|
||||||
|
|
||||||
g_return_if_fail (user_data != NULL);
|
|
||||||
g_return_if_fail (EOG_IS_IMAGE_VIEW (user_data));
|
|
||||||
|
|
||||||
if (type != Bonobo_UIComponent_STATE_CHANGED)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!state || !atoi (state))
|
|
||||||
return;
|
|
||||||
|
|
||||||
image_view = EOG_IMAGE_VIEW (user_data);
|
|
||||||
|
|
||||||
if (!strcmp (path, "CheckSizeSmall"))
|
|
||||||
check_size = GNOME_EOG_CHECK_SIZE_SMALL;
|
|
||||||
else if (!strcmp (path, "CheckSizeMedium"))
|
|
||||||
check_size = GNOME_EOG_CHECK_SIZE_MEDIUM;
|
|
||||||
else if (!strcmp (path, "CheckSizeLarge"))
|
|
||||||
check_size = GNOME_EOG_CHECK_SIZE_LARGE;
|
|
||||||
else {
|
|
||||||
g_warning ("Unknown check size `%s'", path);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gconf_client_set_int (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_CHECK_SIZE,
|
|
||||||
(int) check_size, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Keep this in sync with interp_menu_index_from_value() below */
|
|
||||||
static const gchar* ui_id_strings_interp_type [] = {
|
|
||||||
"InterpolationNearest",
|
|
||||||
"InterpolationBilinear",
|
|
||||||
"InterpolationHyperbolic"
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int n_ui_id_strings_interp_type = (sizeof (ui_id_strings_interp_type) /
|
|
||||||
sizeof (ui_id_strings_interp_type[0]));
|
|
||||||
|
|
||||||
/* Converts an enum value to the corresponding menu index for interpolation */
|
|
||||||
static int
|
|
||||||
interp_menu_index_from_value (int value)
|
|
||||||
{
|
|
||||||
switch (value) {
|
|
||||||
case GDK_INTERP_NEAREST:
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
case GDK_INTERP_BILINEAR:
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
case GDK_INTERP_HYPER:
|
|
||||||
return 2;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static const gchar* ui_id_strings_dither [] = {
|
|
||||||
"DitherNone",
|
|
||||||
"DitherNormal",
|
|
||||||
"DitherMaximum"
|
|
||||||
};
|
|
||||||
|
|
||||||
static const gchar* ui_id_strings_check_type [] = {
|
|
||||||
"CheckTypeDark",
|
|
||||||
"CheckTypeMidtone",
|
|
||||||
"CheckTypeLight",
|
|
||||||
"CheckTypeBlack",
|
|
||||||
"CheckTypeGray",
|
|
||||||
"CheckTypeWhite"
|
|
||||||
};
|
|
||||||
|
|
||||||
static const gchar* ui_id_strings_check_size [] = {
|
|
||||||
"CheckSizeSmall",
|
|
||||||
"CheckSizeMedium",
|
|
||||||
"CheckSizeLarge"
|
|
||||||
};
|
|
||||||
|
|
||||||
static void
|
|
||||||
set_ui_group_item (EogImageView *image_view, const gchar *group_cmd)
|
|
||||||
{
|
|
||||||
gchar *path;
|
|
||||||
gchar *value;
|
|
||||||
|
|
||||||
path = g_strconcat ("/commands/", group_cmd, NULL);
|
|
||||||
|
|
||||||
value = bonobo_ui_component_get_prop (image_view->priv->uic,
|
|
||||||
path, "state", NULL);
|
|
||||||
if (value == NULL || !g_ascii_strcasecmp (value, "0")) {
|
|
||||||
bonobo_ui_component_set_prop (image_view->priv->uic,
|
|
||||||
path, "state", "1", NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_free (value);
|
|
||||||
g_free (path);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#define EVOLUTION_MENU "<menuitem name=\"Send\" _label=\"Send\" pixtype=\"stock\" pixname=\"New Mail\" verb=\"\"/>"
|
#define EVOLUTION_MENU "<menuitem name=\"Send\" _label=\"Send\" pixtype=\"stock\" pixname=\"New Mail\" verb=\"\"/>"
|
||||||
#define GNOCAM_MENU "<menuitem name=\"AcquireFromCamera\" _label=\"Acquire from camera\" verb=\"\"/>"
|
#define GNOCAM_MENU "<menuitem name=\"AcquireFromCamera\" _label=\"Acquire from camera\" verb=\"\"/>"
|
||||||
|
@ -1386,50 +1158,6 @@ eog_image_view_create_ui (EogImageView *image_view)
|
||||||
GNOCAM_MENU, NULL);
|
GNOCAM_MENU, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
value = gconf_client_get_int (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_INTERP_TYPE,
|
|
||||||
NULL);
|
|
||||||
value = interp_menu_index_from_value (value);
|
|
||||||
set_ui_group_item (image_view, ui_id_strings_interp_type [value]);
|
|
||||||
for (i = 0; i < n_ui_id_strings_interp_type; i++) {
|
|
||||||
bonobo_ui_component_add_listener (image_view->priv->uic, ui_id_strings_interp_type [i],
|
|
||||||
listener_Interpolation_cb, image_view);
|
|
||||||
}
|
|
||||||
|
|
||||||
value = gconf_client_get_int (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_DITHER,
|
|
||||||
NULL);
|
|
||||||
set_ui_group_item (image_view, ui_id_strings_dither [value]);
|
|
||||||
for (i = 0; i < 3; i++) {
|
|
||||||
bonobo_ui_component_add_listener (image_view->priv->uic, ui_id_strings_dither [i],
|
|
||||||
listener_Dither_cb, image_view);
|
|
||||||
}
|
|
||||||
|
|
||||||
value = gconf_client_get_int (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_CHECK_TYPE,
|
|
||||||
NULL);
|
|
||||||
set_ui_group_item (image_view, ui_id_strings_check_type [value]);
|
|
||||||
for (i = 0; i < 6; i++) {
|
|
||||||
bonobo_ui_component_add_listener (image_view->priv->uic, ui_id_strings_check_type [i],
|
|
||||||
listener_CheckType_cb, image_view);
|
|
||||||
}
|
|
||||||
|
|
||||||
value = gconf_client_get_int (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_CHECK_SIZE,
|
|
||||||
NULL);
|
|
||||||
set_ui_group_item (image_view, ui_id_strings_check_size [value]);
|
|
||||||
for (i = 0; i < 3; i++) {
|
|
||||||
bonobo_ui_component_add_listener (image_view->priv->uic, ui_id_strings_check_size [i],
|
|
||||||
listener_CheckSize_cb, image_view);
|
|
||||||
}
|
|
||||||
|
|
||||||
bonobo_ui_component_add_listener (image_view->priv->uic, "CheckSizeSmall",
|
|
||||||
listener_CheckSize_cb, image_view);
|
|
||||||
bonobo_ui_component_add_listener (image_view->priv->uic, "CheckSizeMedium",
|
|
||||||
listener_CheckSize_cb, image_view);
|
|
||||||
bonobo_ui_component_add_listener (image_view->priv->uic, "CheckSizeLarge",
|
|
||||||
listener_CheckSize_cb, image_view);
|
|
||||||
|
|
||||||
bonobo_ui_component_add_verb (image_view->priv->uic, "SaveAs",
|
bonobo_ui_component_add_verb (image_view->priv->uic, "SaveAs",
|
||||||
verb_SaveAs_cb, image_view);
|
verb_SaveAs_cb, image_view);
|
||||||
bonobo_ui_component_add_verb (image_view->priv->uic, "FullScreen",
|
bonobo_ui_component_add_verb (image_view->priv->uic, "FullScreen",
|
||||||
|
@ -1487,8 +1215,8 @@ eog_image_view_get_prop (BonoboPropertyBag *bag,
|
||||||
|
|
||||||
g_assert (arg->_type == TC_GNOME_EOG_Interpolation);
|
g_assert (arg->_type == TC_GNOME_EOG_Interpolation);
|
||||||
|
|
||||||
interp_type = (GdkInterpType) gconf_client_get_int (priv->client,
|
interp_type = (GdkInterpType) gconf_client_get_bool (priv->client,
|
||||||
GCONF_EOG_VIEW_INTERP_TYPE,
|
GCONF_EOG_VIEW_INTERP_TYPE,
|
||||||
NULL);
|
NULL);
|
||||||
switch (interp_type) {
|
switch (interp_type) {
|
||||||
case GDK_INTERP_NEAREST:
|
case GDK_INTERP_NEAREST:
|
||||||
|
@ -1930,9 +1658,8 @@ eog_image_view_destroy (BonoboObject *object)
|
||||||
priv = image_view->priv;
|
priv = image_view->priv;
|
||||||
|
|
||||||
gconf_client_notify_remove (priv->client, priv->interp_type_notify_id);
|
gconf_client_notify_remove (priv->client, priv->interp_type_notify_id);
|
||||||
gconf_client_notify_remove (priv->client, priv->dither_notify_id);
|
gconf_client_notify_remove (priv->client, priv->transparency_notify_id);
|
||||||
gconf_client_notify_remove (priv->client, priv->check_type_notify_id);
|
gconf_client_notify_remove (priv->client, priv->trans_color_notify_id);
|
||||||
gconf_client_notify_remove (priv->client, priv->check_size_notify_id);
|
|
||||||
g_object_unref (G_OBJECT (priv->client));
|
g_object_unref (G_OBJECT (priv->client));
|
||||||
|
|
||||||
bonobo_object_unref (BONOBO_OBJECT (priv->property_bag));
|
bonobo_object_unref (BONOBO_OBJECT (priv->property_bag));
|
||||||
|
@ -2016,96 +1743,79 @@ interp_type_changed_cb (GConfClient *client,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
EogImageView *view;
|
EogImageView *view;
|
||||||
GdkInterpType interpolation;
|
gboolean interpolate = TRUE;
|
||||||
int i;
|
|
||||||
|
|
||||||
view = EOG_IMAGE_VIEW (user_data);
|
view = EOG_IMAGE_VIEW (user_data);
|
||||||
|
|
||||||
if (entry->value != NULL && entry->value->type == GCONF_VALUE_INT) {
|
if (entry->value != NULL && entry->value->type == GCONF_VALUE_BOOL) {
|
||||||
interpolation = (GdkInterpType) gconf_value_get_int (entry->value);
|
interpolate = gconf_value_get_bool (entry->value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (interpolate) {
|
||||||
|
image_view_set_interp_type (view->priv->image_view,
|
||||||
|
GDK_INTERP_BILINEAR);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
interpolation = GDK_INTERP_BILINEAR;
|
image_view_set_interp_type (view->priv->image_view,
|
||||||
|
GDK_INTERP_NEAREST);
|
||||||
}
|
}
|
||||||
|
|
||||||
image_view_set_interp_type (view->priv->image_view, interpolation);
|
|
||||||
bonobo_event_source_notify_listeners (view->priv->property_bag->es,
|
|
||||||
"interpolation", NULL, NULL);
|
|
||||||
|
|
||||||
i = interp_menu_index_from_value (interpolation);
|
|
||||||
set_ui_group_item (view, ui_id_strings_interp_type [i]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dither_changed_cb (GConfClient *client,
|
transparency_changed_cb (GConfClient *client,
|
||||||
guint cnxn_id,
|
guint cnxn_id,
|
||||||
GConfEntry *entry,
|
GConfEntry *entry,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
EogImageView *view;
|
EogImageView *view;
|
||||||
GdkRgbDither dither;
|
const char *value = NULL;
|
||||||
|
|
||||||
view = EOG_IMAGE_VIEW (user_data);
|
view = EOG_IMAGE_VIEW (user_data);
|
||||||
|
|
||||||
if (entry->value != NULL && entry->value->type == GCONF_VALUE_INT) {
|
if (entry->value != NULL && entry->value->type == GCONF_VALUE_STRING) {
|
||||||
dither = (GdkRgbDither) gconf_value_get_int (entry->value);
|
value = gconf_value_get_string (entry->value);
|
||||||
}
|
|
||||||
else {
|
|
||||||
dither = GDK_RGB_DITHER_NONE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g_strcasecmp (value, "COLOR") == 0) {
|
||||||
|
GdkColor color;
|
||||||
|
char *color_str;
|
||||||
|
|
||||||
image_view_set_dither (view->priv->image_view, dither);
|
color_str = gconf_client_get_string (view->priv->client,
|
||||||
bonobo_event_source_notify_listeners (view->priv->property_bag->es,
|
GCONF_EOG_VIEW_TRANS_COLOR, NULL);
|
||||||
"dither", NULL, NULL);
|
if (gdk_color_parse (color_str, &color)) {
|
||||||
set_ui_group_item (view, ui_id_strings_dither [dither]);
|
image_view_set_transparent_color (view->priv->image_view, &color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
image_view_set_check_type (view->priv->image_view, CHECK_TYPE_MIDTONE);
|
||||||
|
image_view_set_check_size (view->priv->image_view, CHECK_SIZE_LARGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
check_type_changed_cb (GConfClient *client,
|
trans_color_changed_cb (GConfClient *client,
|
||||||
guint cnxn_id,
|
guint cnxn_id,
|
||||||
GConfEntry *entry,
|
GConfEntry *entry,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
EogImageView *view;
|
EogImageView *view;
|
||||||
CheckType check_type;
|
GdkColor color;
|
||||||
|
char *value;
|
||||||
|
const char *color_str;
|
||||||
|
|
||||||
view = EOG_IMAGE_VIEW (user_data);
|
view = EOG_IMAGE_VIEW (user_data);
|
||||||
|
|
||||||
if (entry->value != NULL && entry->value->type == GCONF_VALUE_INT) {
|
value = gconf_client_get_string (view->priv->client, GCONF_EOG_VIEW_TRANSPARENCY, NULL);
|
||||||
check_type = (CheckType) gconf_value_get_int (entry->value);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
check_type = CHECK_TYPE_MIDTONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
image_view_set_check_type (view->priv->image_view, check_type);
|
if (g_strcasecmp (value, "COLOR") != 0) return;
|
||||||
bonobo_event_source_notify_listeners (view->priv->property_bag->es,
|
|
||||||
"check_type", NULL, NULL);
|
|
||||||
set_ui_group_item (view, ui_id_strings_check_type [check_type]);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
if (entry->value != NULL && entry->value->type == GCONF_VALUE_STRING) {
|
||||||
check_size_changed_cb (GConfClient *client,
|
color_str = gconf_value_get_string (entry->value);
|
||||||
guint cnxn_id,
|
|
||||||
GConfEntry *entry,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
EogImageView *view;
|
|
||||||
CheckSize check_size;
|
|
||||||
|
|
||||||
view = EOG_IMAGE_VIEW (user_data);
|
if (gdk_color_parse (color_str, &color)) {
|
||||||
|
image_view_set_transparent_color (view->priv->image_view, &color);
|
||||||
if (entry->value != NULL && entry->value->type == GCONF_VALUE_INT) {
|
}
|
||||||
check_size = (CheckSize) gconf_value_get_int (entry->value);
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
check_size = CHECK_SIZE_MEDIUM;
|
|
||||||
}
|
|
||||||
|
|
||||||
image_view_set_check_size (view->priv->image_view, check_size);
|
|
||||||
bonobo_event_source_notify_listeners (view->priv->property_bag->es,
|
|
||||||
"check_size", NULL, NULL);
|
|
||||||
set_ui_group_item (view, ui_id_strings_check_size [check_size]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Callback for the item factory's popup menu */
|
/* Callback for the item factory's popup menu */
|
||||||
|
@ -2198,6 +1908,8 @@ EogImageView *
|
||||||
eog_image_view_construct (EogImageView *image_view, EogImage *image,
|
eog_image_view_construct (EogImageView *image_view, EogImage *image,
|
||||||
gboolean zoom_fit, gboolean need_close_item)
|
gboolean zoom_fit, gboolean need_close_item)
|
||||||
{
|
{
|
||||||
|
char *transp_str;
|
||||||
|
|
||||||
g_return_val_if_fail (image_view != NULL, NULL);
|
g_return_val_if_fail (image_view != NULL, NULL);
|
||||||
g_return_val_if_fail (EOG_IS_IMAGE_VIEW (image_view), NULL);
|
g_return_val_if_fail (EOG_IS_IMAGE_VIEW (image_view), NULL);
|
||||||
g_return_val_if_fail (image != NULL, NULL);
|
g_return_val_if_fail (image != NULL, NULL);
|
||||||
|
@ -2240,61 +1952,53 @@ eog_image_view_construct (EogImageView *image_view, EogImage *image,
|
||||||
G_CALLBACK (image_view_popup_menu_cb), image_view);
|
G_CALLBACK (image_view_popup_menu_cb), image_view);
|
||||||
|
|
||||||
/* get preference values from gconf and add listeners */
|
/* get preference values from gconf and add listeners */
|
||||||
|
if (gconf_client_get_bool (image_view->priv->client, GCONF_EOG_VIEW_INTERP_TYPE, NULL)) {
|
||||||
|
image_view_set_interp_type (image_view->priv->image_view, GDK_INTERP_BILINEAR);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
image_view_set_interp_type (image_view->priv->image_view, GDK_INTERP_NEAREST);
|
||||||
|
}
|
||||||
|
|
||||||
image_view_set_interp_type (image_view->priv->image_view,
|
image_view_set_dither (image_view->priv->image_view, GDK_RGB_DITHER_NONE);
|
||||||
(GdkInterpType) gconf_client_get_int (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_INTERP_TYPE,
|
transp_str = gconf_client_get_string (image_view->priv->client,
|
||||||
NULL));
|
GCONF_EOG_VIEW_TRANSPARENCY, NULL);
|
||||||
image_view_set_dither (image_view->priv->image_view,
|
if (g_strcasecmp (transp_str, "COLOR") == 0) {
|
||||||
(GdkRgbDither) gconf_client_get_int (image_view->priv->client,
|
GdkColor color;
|
||||||
GCONF_EOG_VIEW_DITHER,
|
char *color_str;
|
||||||
NULL));
|
|
||||||
image_view_set_check_type (image_view->priv->image_view,
|
color_str = gconf_client_get_string (image_view->priv->client,
|
||||||
(CheckType) gconf_client_get_int (image_view->priv->client,
|
GCONF_EOG_VIEW_TRANS_COLOR, NULL);
|
||||||
GCONF_EOG_VIEW_CHECK_TYPE,
|
if (gdk_color_parse (color_str, &color)) {
|
||||||
NULL));
|
image_view_set_transparent_color (image_view->priv->image_view, &color);
|
||||||
image_view_set_check_size (image_view->priv->image_view,
|
}
|
||||||
(CheckSize) gconf_client_get_int (image_view->priv->client,
|
}
|
||||||
GCONF_EOG_VIEW_CHECK_SIZE,
|
else {
|
||||||
NULL));
|
image_view_set_check_type (image_view->priv->image_view, CHECK_TYPE_MIDTONE);
|
||||||
|
image_view_set_check_size (image_view->priv->image_view, CHECK_SIZE_LARGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* add gconf listeners */
|
||||||
image_view->priv->interp_type_notify_id =
|
image_view->priv->interp_type_notify_id =
|
||||||
gconf_client_notify_add (image_view->priv->client,
|
gconf_client_notify_add (image_view->priv->client,
|
||||||
GCONF_EOG_VIEW_INTERP_TYPE,
|
GCONF_EOG_VIEW_INTERP_TYPE,
|
||||||
interp_type_changed_cb,
|
interp_type_changed_cb,
|
||||||
image_view, NULL, NULL);
|
image_view, NULL, NULL);
|
||||||
image_view->priv->dither_notify_id =
|
image_view->priv->transparency_notify_id =
|
||||||
gconf_client_notify_add (image_view->priv->client,
|
gconf_client_notify_add (image_view->priv->client,
|
||||||
GCONF_EOG_VIEW_DITHER,
|
GCONF_EOG_VIEW_TRANSPARENCY,
|
||||||
dither_changed_cb,
|
transparency_changed_cb,
|
||||||
image_view, NULL, NULL);
|
image_view, NULL, NULL);
|
||||||
image_view->priv->check_type_notify_id =
|
image_view->priv->trans_color_notify_id =
|
||||||
gconf_client_notify_add (image_view->priv->client,
|
gconf_client_notify_add (image_view->priv->client,
|
||||||
GCONF_EOG_VIEW_CHECK_TYPE,
|
GCONF_EOG_VIEW_TRANS_COLOR,
|
||||||
check_type_changed_cb,
|
trans_color_changed_cb,
|
||||||
image_view, NULL, NULL);
|
|
||||||
image_view->priv->check_size_notify_id =
|
|
||||||
gconf_client_notify_add (image_view->priv->client,
|
|
||||||
GCONF_EOG_VIEW_CHECK_SIZE,
|
|
||||||
check_size_changed_cb,
|
|
||||||
image_view, NULL, NULL);
|
image_view, NULL, NULL);
|
||||||
|
|
||||||
/* Property Bag */
|
/* Property Bag */
|
||||||
image_view->priv->property_bag = bonobo_property_bag_new (eog_image_view_get_prop,
|
image_view->priv->property_bag = bonobo_property_bag_new (eog_image_view_get_prop,
|
||||||
eog_image_view_set_prop,
|
eog_image_view_set_prop,
|
||||||
image_view);
|
image_view);
|
||||||
|
|
||||||
bonobo_property_bag_add (image_view->priv->property_bag, "interpolation", PROP_INTERPOLATION,
|
|
||||||
TC_GNOME_EOG_Interpolation, NULL, _("Interpolation"),
|
|
||||||
BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);
|
|
||||||
bonobo_property_bag_add (image_view->priv->property_bag, "dither", PROP_DITHER,
|
|
||||||
TC_GNOME_EOG_Dither, NULL, _("Dither"),
|
|
||||||
BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);
|
|
||||||
bonobo_property_bag_add (image_view->priv->property_bag, "check_type", PROP_CHECK_TYPE,
|
|
||||||
TC_GNOME_EOG_CheckType, NULL, _("Check Type"),
|
|
||||||
BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);
|
|
||||||
bonobo_property_bag_add (image_view->priv->property_bag, "check_size", PROP_CHECK_SIZE,
|
|
||||||
TC_GNOME_EOG_CheckSize, NULL, _("Check Size"),
|
|
||||||
BONOBO_PROPERTY_READABLE | BONOBO_PROPERTY_WRITEABLE);
|
|
||||||
bonobo_property_bag_add (image_view->priv->property_bag, "image/width", PROP_IMAGE_WIDTH,
|
bonobo_property_bag_add (image_view->priv->property_bag, "image/width", PROP_IMAGE_WIDTH,
|
||||||
BONOBO_ARG_INT, NULL, _("Image Width"),
|
BONOBO_ARG_INT, NULL, _("Image Width"),
|
||||||
BONOBO_PROPERTY_READABLE);
|
BONOBO_PROPERTY_READABLE);
|
||||||
|
|
|
@ -25,7 +25,10 @@ G_BEGIN_DECLS
|
||||||
#define EOG_IMAGE_VIEW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EOG_IMAGE_VIEW_TYPE, EogImageViewClass))
|
#define EOG_IMAGE_VIEW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EOG_IMAGE_VIEW_TYPE, EogImageViewClass))
|
||||||
|
|
||||||
#define GCONF_EOG_VIEW_DIR "/apps/eog/view"
|
#define GCONF_EOG_VIEW_DIR "/apps/eog/view"
|
||||||
#define GCONF_EOG_VIEW_INTERP_TYPE "/apps/eog/view/interp_type"
|
#define GCONF_EOG_VIEW_INTERP_TYPE "/apps/eog/view/interpolate"
|
||||||
|
#define GCONF_EOG_VIEW_TRANSPARENCY "/apps/eog/view/transparency"
|
||||||
|
#define GCONF_EOG_VIEW_TRANS_COLOR "/apps/eog/view/trans_color"
|
||||||
|
|
||||||
#define GCONF_EOG_VIEW_CHECK_TYPE "/apps/eog/view/check_type"
|
#define GCONF_EOG_VIEW_CHECK_TYPE "/apps/eog/view/check_type"
|
||||||
#define GCONF_EOG_VIEW_CHECK_SIZE "/apps/eog/view/check_size"
|
#define GCONF_EOG_VIEW_CHECK_SIZE "/apps/eog/view/check_size"
|
||||||
#define GCONF_EOG_VIEW_DITHER "/apps/eog/view/dither"
|
#define GCONF_EOG_VIEW_DITHER "/apps/eog/view/dither"
|
||||||
|
|
Loading…
Reference in a new issue