summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: b0aaa48)
raw | patch | inline | side by side (parent: b0aaa48)
author | joncruz <joncruz@users.sourceforge.net> | |
Tue, 20 Nov 2007 09:20:42 +0000 (09:20 +0000) | ||
committer | joncruz <joncruz@users.sourceforge.net> | |
Tue, 20 Nov 2007 09:20:42 +0000 (09:20 +0000) |
diff --git a/src/color-profile.cpp b/src/color-profile.cpp
index f676ceacf035bb30aac5728e00f8cc761b3a5881..2a17f698b98b1b82ad5209177cce256510ccc5c5 100644 (file)
--- a/src/color-profile.cpp
+++ b/src/color-profile.cpp
init = true;
}
- long long int which = prefs_get_int_attribute_limited( "options.displayprofile", "enable", 0, 0, 1 );
gchar const * uri = prefs_get_string_attribute("options.displayprofile", "uri");
- if ( which && uri && *uri ) {
+ if ( uri && *uri ) {
if ( lastURI != std::string(uri) ) {
lastURI.clear();
if ( theOne ) {
lastGamutColor = gamutColor;
}
- // Fecth these now, as they might clear the transform as a side effect.
+ // Fetch these now, as they might clear the transform as a side effect.
cmsHPROFILE hprof = Inkscape::colorprofile_get_system_profile_handle();
cmsHPROFILE proofProf = hprof ? Inkscape::colorprofile_get_proof_profile_handle() : 0;
index efd2628903d45237a82a79479ed37c07271e81f3..80b9103eb97cf217e3134791290fc8c07383dad4 100644 (file)
canvas->forced_redraw_count = 0;
canvas->forced_redraw_limit = -1;
+#if ENABLE_LCMS
+ canvas->enable_cms_display_adj = false;
+ canvas->cms_key = new Glib::ustring("");
+#endif // ENABLE_LCMS
+
canvas->is_scrolling = false;
}
@@ -1593,7 +1598,7 @@ sp_canvas_paint_single_buffer (SPCanvas *canvas, int x0, int y0, int x1, int y1,
if (buf.is_empty) {
#if ENABLE_LCMS
- if ( transf ) {
+ if ( transf && canvas->enable_cms_display_adj ) {
cmsDoTransform( transf, &buf.bg_color, &buf.bg_color, 1 );
}
#endif // ENABLE_LCMS
@@ -1627,7 +1632,7 @@ sp_canvas_paint_single_buffer (SPCanvas *canvas, int x0, int y0, int x1, int y1,
*/
#if ENABLE_LCMS
- if ( transf ) {
+ if ( transf && canvas->enable_cms_display_adj ) {
for ( gint yy = 0; yy < (y1 - y0); yy++ ) {
guchar* p = buf.buf + (sw * 3) * yy;
cmsDoTransform( transf, p, p, (x1 - x0) );
index 3b4c7743fc7eca96a568cfa9abe7d75de59470af..4b6d7b3b866f21b8d7ae29d5eacdf47232491da6 100644 (file)
--- a/src/display/sp-canvas.h
+++ b/src/display/sp-canvas.h
#include <gtk/gtkobject.h>
#include <gtk/gtkwidget.h>
+#include <glibmm/ustring.h>
+
#include <libnr/nr-matrix.h>
#include <libnr/nr-rect.h>
#include <libnr/nr-rect-l.h>
};
/**
- * An SPCanvasItem refers to a SPCanvas and to its parent item; it has
+ * An SPCanvasItem refers to a SPCanvas and to its parent item; it has
* four coordinates, a bounding rectangle, and a transformation matrix.
*/
struct SPCanvasItem : public GtkObject {
SPCanvas *canvas;
SPCanvasItem *parent;
-
+
double x1, y1, x2, y2;
NR::Rect bounds;
NR::Matrix xform;
*/
struct SPCanvasItemClass : public GtkObjectClass {
void (* update) (SPCanvasItem *item, NR::Matrix const &affine, unsigned int flags);
-
+
void (* render) (SPCanvasItem *item, SPCanvasBuf *buf);
double (* point) (SPCanvasItem *item, NR::Point p, SPCanvasItem **actual_item);
-
+
int (* event) (SPCanvasItem *item, GdkEvent *event);
};
*/
struct SPCanvas {
GtkWidget widget;
-
+
guint idle_id;
-
+
SPCanvasItem *root;
-
+
double dx0, dy0;
int x0, y0;
-
+
/* Area that needs redrawing, stored as a microtile array */
int tLeft,tTop,tRight,tBottom;
int tileH,tileV;
uint8_t *tiles;
-
+
/* Last known modifier state, for deferred repick when a button is down */
int state;
-
+
/* The item containing the mouse pointer, or NULL if none */
SPCanvasItem *current_item;
-
+
/* Item that is about to become current (used to track deletions and such) */
SPCanvasItem *new_current_item;
-
+
/* Item that holds a pointer grab, or NULL if none */
SPCanvasItem *grabbed_item;
-
+
/* Event mask specified when grabbing an item */
guint grabbed_event_mask;
-
+
/* If non-NULL, the currently focused item */
SPCanvasItem *focused_item;
-
+
/* Event on which selection of current item is based */
GdkEvent pick_event;
-
+
int close_enough;
-
+
/* GC for temporary draw pixmap */
GdkGC *pixmap_gc;
-
+
unsigned int need_update : 1;
unsigned int need_redraw : 1;
unsigned int need_repick : 1;
// connector tool). If so, they may temporarily set this flag to
// 'true'.
bool gen_all_enter_events;
-
+
int rendermode;
+#if ENABLE_LCMS
+ bool enable_cms_display_adj;
+ Glib::ustring* cms_key;
+#endif // ENABLE_LCMS
+
bool is_scrolling;
-
+
NR::Rect getViewbox() const;
};
index 15b590ec12ed2c02d696c04ef3b1e87857840edc..7777c425021bdd29b4df58ecdd60f3a3de08adfc 100644 (file)
--- a/src/dom/Makefile_insert
+++ b/src/dom/Makefile_insert
dom/svg/svgparser.cpp \\r
dom/svg/svgparser.h \\r
dom/svg/svgtypes.h \\r
+ dom/util/digest.h \\r
+ dom/util/digest.cpp \\r
dom/util/thread.h \\r
dom/util/thread.cpp \\r
dom/util/ziptool.h \\r
diff --git a/src/dom/util/digest.h b/src/dom/util/digest.h
index 46c60d2a3e5bd1b9b58e71f12103dd34a780aea6..045761d83d74c229f244d4f9e40808d06e955b61 100644 (file)
--- a/src/dom/util/digest.h
+++ b/src/dom/util/digest.h
* replacement for the fine implementations already available. Rather, it
* is a small and simple (and maybe a bit slow?) tool for moderate common
* hashing requirements, like for communications and authentication.
- *
+ *
* These hashes are intended to be simple to use. For example:
* Sha256Digest digest;
* digest.append("The quick brown dog");
* std::string result = digest.finishHex();
- *
+ *
* There are several forms of append() for convenience.
* finish() and finishHex() call reset() for both security and
* to prepare for the next use.
- *
+ *
*/
#include <vector>
/**
* Base class. Do not use this class directly. Rather, use of of the
- * subclasses below.
+ * subclasses below.
* For all subclasses, overload reset(), update(unsigned char), and finish()
*/
class Digest
HASH_SHA512,
HASH_MD5
} HashType;
-
+
/**
* Constructor, with no type
*/
/**
* Finish the hash and return a hexidecimal version of the computed
- * value
+ * value
*/
virtual std::string finishHex();
/**
- * Initialize the fields of this hash engine to its starting values.
+ * Initialize the fields of this hash engine to its starting values.
* Overload this in every subclass
*/
virtual void reset()
{}
/**
- * Finish the hash and return its computed value
+ * Finish the hash and return its computed value
* Overload this in every subclass
*/
virtual std::vector<unsigned char> finish()
protected:
/**
- * Update the hash with a given byte
+ * Update the hash with a given byte
* Overload this in every subclass
*/
- virtual void update(unsigned char ch)
+ virtual void update(unsigned char /*ch*/)
{}
/**
* The enumerated type of the hash
- */
+ */
int hashType;
};
/**
- * SHA-1,
+ * SHA-1,
* Section 6.1, SECURE HASH STANDARD
* Federal Information Processing Standards Publication 180-2
* http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf
/**
- * SHA-224,
+ * SHA-224,
* Section 6.1, SECURE HASH STANDARD
* Federal Information Processing Standards Publication 180-2
* http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf
/**
- * SHA-256,
+ * SHA-256,
* Section 6.1, SECURE HASH STANDARD
* Federal Information Processing Standards Publication 180-2
* http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf
/**
- * SHA-512,
+ * SHA-512,
* Section 6.1, SECURE HASH STANDARD
* Federal Information Processing Standards Publication 180-2
* http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf
/**
* IETF RFC 1321, MD5 Specification
- * http://www.ietf.org/rfc/rfc1321.txt
+ * http://www.ietf.org/rfc/rfc1321.txt
*/
class Md5Digest : public Digest
{
index cd4727973eaed8ee95d74cdb11d19bdb96d00beb..5d747807ba91474bf09d88a66d2100857d567b2f 100644 (file)
}
#if ENABLE_LCMS
-static void forceUpdates() {
- std::list<SPDesktop*> tops;
- inkscape_get_all_desktops( tops );
- for ( std::list<SPDesktop*>::iterator it = tops.begin(); it != tops.end(); ++it ) {
- (*it)->requestRedraw();
- }
-}
-
static void profileComboChanged( Gtk::ComboBoxText* combo )
{
- Glib::ustring active = combo->get_active_text();
-
- Glib::ustring path = get_path_for_profile(active);
- if ( !path.empty() ) {
- prefs_set_string_attribute( "options.displayprofile", "uri", path.c_str() );
- forceUpdates();
+ int rowNum = combo->get_active_row_number();
+ if ( rowNum < 1 ) {
+ prefs_set_string_attribute( "options.displayprofile", "uri", "" );
+ } else {
+ Glib::ustring active = combo->get_active_text();
+
+ Glib::ustring path = get_path_for_profile(active);
+ if ( !path.empty() ) {
+ prefs_set_string_attribute( "options.displayprofile", "uri", path.c_str() );
+ }
}
}
Glib::ustring path = get_path_for_profile(active);
if ( !path.empty() ) {
prefs_set_string_attribute( "options.softproof", "uri", path.c_str() );
- forceUpdates();
}
}
prefs_set_string_attribute( "options.softproof", "gamutcolor", tmp );
g_free(tmp);
- forceUpdates();
}
#endif // ENABLE_LCMS
_page_cms.add_group_header( _("Display Calibration"));
- _cms_display.init( _("Enable display calibration"), "options.displayprofile", "enable", false);
- _page_cms.add_line( false, "", _cms_display, "",
- _("Enables application of the display using an ICC profile."), false);
-
_page_cms.add_line( false, _("Display profile:"), _cms_display_profile, "",
_("The ICC profile to use to calibrate display output."), false);
Glib::ustring current = prefs_get_string_attribute( "options.displayprofile", "uri" );
gint index = 0;
+ _cms_display_profile.append_text(_("<none>"));
+ index++;
for ( std::vector<Glib::ustring>::iterator it = names.begin(); it != names.end(); ++it ) {
_cms_display_profile.append_text( *it );
Glib::ustring path = get_path_for_profile(*it);
}
index++;
}
+ if ( current.empty() ) {
+ _cms_display_profile.set_active(0);
+ }
names = ::Inkscape::colorprofile_get_softproof_names();
const gchar * tmp = prefs_get_string_attribute( "options.softproof", "uri" );
}
}
- _cms_display.signal_toggled().connect( sigc::ptr_fun(forceUpdates) );
- _cms_softproof.signal_toggled().connect( sigc::ptr_fun(forceUpdates) );
- _cms_gamutwarn.signal_toggled().connect( sigc::ptr_fun(forceUpdates) );
_cms_gamutcolor.signal_color_set().connect( sigc::bind( sigc::ptr_fun(gamutColorChanged), &_cms_gamutcolor) );
- _cms_proof_blackpoint.signal_toggled().connect( sigc::ptr_fun(forceUpdates) );
- _cms_proof_preserveblack.signal_toggled().connect( sigc::ptr_fun(forceUpdates) );
-
- _cms_intent.signal_changed().connect( sigc::ptr_fun(forceUpdates) );
- _cms_proof_intent.signal_changed().connect( sigc::ptr_fun(forceUpdates) );
_cms_display_profile.signal_changed().connect( sigc::bind( sigc::ptr_fun(profileComboChanged), &_cms_display_profile) );
_cms_proof_profile.signal_changed().connect( sigc::bind( sigc::ptr_fun(proofComboChanged), &_cms_proof_profile) );
#else
// disable it, but leave it visible
- _cms_display.set_sensitive( false );
_cms_intent.set_sensitive( false );
_cms_display_profile.set_sensitive( false );
_cms_softproof.set_sensitive( false );
index a6da63617d3cba7145fc912450e607e58163acbc..12a73d017f85ff53f1f3f2ef476441a03612cefb 100644 (file)
PrefCheckButton _misc_small_tools;
PrefCombo _misc_overs_bitmap;
- PrefCheckButton _cms_display;
Gtk::ComboBoxText _cms_display_profile;
PrefCombo _cms_intent;
index 51355b3e516af91c7e1557ff34fe7837840d5926..1494d3c2401542a043fadd76921833b30df71b6a 100644 (file)
#include "interface.h"
#include "toolbox.h"
#include "prefs-utils.h"
+#include "preferences.h"
#include "file.h"
#include "display/canvas-arena.h"
#include "display/nr-arena.h"
#include "conn-avoid-ref.h"
#include "ege-select-one-action.h"
#include "ege-color-prof-tracker.h"
+#include "dom/util/digest.h"
+#include "xml/node-observer.h"
#if defined (SOLARIS_2_8)
#include "round.h"
static gint sp_desktop_widget_event (GtkWidget *widget, GdkEvent *event, SPDesktopWidget *dtw);
-static void sp_dtw_color_profile_event(GtkWidget *widget, SPDesktopWidget *dtw);
-
+static void sp_dtw_color_profile_event(EgeColorProfTracker *widget, SPDesktopWidget *dtw);
+static void cms_adjust_toggled( GtkWidget *button, gpointer data );
static void sp_desktop_widget_adjustment_value_changed (GtkAdjustment *adj, SPDesktopWidget *dtw);
static void sp_desktop_widget_namedview_modified (SPObject *obj, guint flags, SPDesktopWidget *dtw);
SPViewWidgetClass *dtw_parent_class;
+using Inkscape::XML::Node;
+
+class PrefWatcher : public Inkscape::XML::NodeObserver {
+public:
+ PrefWatcher() :
+ NodeObserver(),
+ dtws()
+ {
+ }
+
+ virtual ~PrefWatcher();
+
+
+ virtual void notifyChildAdded( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) {}
+ virtual void notifyChildRemoved( Node &/*node*/, Node &/*child*/, Node */*prev*/ ) {}
+ virtual void notifyChildOrderChanged( Node &/*node*/, Node &/*child*/,
+ Node */*old_prev*/, Node */*new_prev*/ ) {}
+ virtual void notifyContentChanged( Node &/*node*/,
+ Inkscape::Util::ptr_shared<char> /*old_content*/,
+ Inkscape::Util::ptr_shared<char> /*new_content*/ ) {}
+ virtual void notifyAttributeChanged( Node &node, GQuark name,
+ Inkscape::Util::ptr_shared<char> old_value,
+ Inkscape::Util::ptr_shared<char> new_value );
+ void add( SPDesktopWidget* dtw );
+ void remove( SPDesktopWidget* dtw );
+
+private:
+ std::list<SPDesktopWidget*> dtws;
+};
+
+PrefWatcher::~PrefWatcher()
+{
+}
+
+void PrefWatcher::add( SPDesktopWidget* dtw )
+{
+ dtws.push_back(dtw);
+}
+
+void PrefWatcher::remove( SPDesktopWidget* dtw )
+{
+ dtws.remove(dtw);
+}
+
+void PrefWatcher::notifyAttributeChanged( Node &node, GQuark name,
+ Inkscape::Util::ptr_shared<char> /*old_value*/,
+ Inkscape::Util::ptr_shared<char> /*new_value*/ )
+{
+#if ENABLE_LCMS
+ (void)name;
+ if ( strcmp("group", node.name()) == 0 ) {
+ gchar const* id = node.attribute("id");
+ bool refresh = false;
+ if ( !id ) {
+ // bad
+ } else if (strcmp("displayprofile", id) == 0) {
+ Glib::ustring current = prefs_get_string_attribute( "options.displayprofile", "uri" );
+ bool enabled = current.length() > 0;
+
+ for ( std::list<SPDesktopWidget*>::iterator it = dtws.begin(); it != dtws.end(); ++it ) {
+ SPDesktopWidget* dtw = *it;
+ if ( GTK_WIDGET_SENSITIVE( dtw->cms_adjust ) != enabled ) {
+ gtk_widget_set_sensitive( dtw->cms_adjust, enabled );
+ }
+ }
+ refresh = true;
+ } else if (strcmp("softproof", id) == 0) {
+ refresh = true;
+ }
+
+ if ( refresh ) {
+ for ( std::list<SPDesktopWidget*>::iterator it = dtws.begin(); it != dtws.end(); ++it ) {
+ (*it)->requestCanvasUpdate();
+ }
+ }
+#else
+ (void)node;
+ (void)name;
+ (void)new_value;
+#endif // ENABLE_LCMS
+ }
+}
+
+static PrefWatcher* watcher = 0;
+
void
SPDesktopWidget::setMessage (Inkscape::MessageType type, const gchar *message)
{
"swatches",
_("Adjust the display"),
dtw->tt );
+#if ENABLE_LCMS
+ {
+ Glib::ustring current = prefs_get_string_attribute( "options.displayprofile", "uri" );
+ bool enabled = current.length() > 0;
+ gtk_widget_set_sensitive( dtw->cms_adjust, enabled );
+ if ( enabled ) {
+ long long int active = prefs_get_int_attribute_limited( "options.displayprofile", "enable", 0, 0, 1 );
+ if ( active ) {
+ sp_button_toggle_set_down( SP_BUTTON(dtw->cms_adjust), TRUE );
+ }
+ }
+ }
+ g_signal_connect_after( G_OBJECT(dtw->cms_adjust), "clicked", G_CALLBACK(cms_adjust_toggled), dtw );
+#else
gtk_widget_set_sensitive(dtw->cms_adjust, FALSE);
+#endif // ENABLE_LCMS
gtk_table_attach( GTK_TABLE(canvas_tbl), dtw->cms_adjust, 2, 3, 2, 3, (GtkAttachOptions)(GTK_SHRINK), (GtkAttachOptions)(GTK_SHRINK), 0, 0);
+ {
+ Inkscape::XML::Node* prefs = Inkscape::Preferences::get();
+ if ( prefs ) {
+ if (!watcher) {
+ watcher = new PrefWatcher();
+ prefs->addSubtreeObserver( *watcher );
+ }
+ watcher->add(dtw);
+ } else {
+ g_warning("NULL preferences instance encountered");
+ }
+ }
/* Canvas */
dtw->canvas = SP_CANVAS (sp_canvas_new_aa ());
+#if ENABLE_LCMS
+ dtw->canvas->enable_cms_display_adj = prefs_get_int_attribute_limited( "options.displayprofile", "enable", 0, 0, 1 ) != 0;
+#endif // ENABLE_LCMS
GTK_WIDGET_SET_FLAGS (GTK_WIDGET (dtw->canvas), GTK_CAN_FOCUS);
style = gtk_style_copy (GTK_WIDGET (dtw->canvas)->style);
style->bg[GTK_STATE_NORMAL] = style->white;
SPDesktopWidget *dtw = SP_DESKTOP_WIDGET (object);
if (dtw->desktop) {
+ if ( watcher ) {
+ watcher->remove(dtw);
+ }
g_signal_handlers_disconnect_by_func(G_OBJECT (dtw->zoom_status), (gpointer) G_CALLBACK(sp_dtw_zoom_input), dtw);
g_signal_handlers_disconnect_by_func(G_OBJECT (dtw->zoom_status), (gpointer) G_CALLBACK(sp_dtw_zoom_output), dtw);
gtk_signal_disconnect_by_data (GTK_OBJECT (dtw->zoom_status), dtw->zoom_status);
@@ -587,19 +708,40 @@ sp_desktop_widget_event (GtkWidget *widget, GdkEvent *event, SPDesktopWidget *dt
return FALSE;
}
-void sp_dtw_color_profile_event(GtkWidget */*widget*/, SPDesktopWidget */*dtw*/)
+void sp_dtw_color_profile_event(EgeColorProfTracker *tracker, SPDesktopWidget */*dtw*/)
{
// Handle profile changes
+ Md5Digest digest;
+ unsigned char* buf = 0;
+ guint len = 0;
+ ege_color_prof_tracker_get_profile( tracker, reinterpret_cast<gpointer*>(&buf), &len );
+ if ( buf && len ) {
+ digest.append(buf, len);
+ }
+ std::string hash = digest.finishHex();
+ //g_message("ICC profile %d bytes at %p is [%s]", len, buf, hash.c_str() );
+}
+
+void cms_adjust_toggled( GtkWidget */*button*/, gpointer data )
+{
+ SPDesktopWidget *dtw = SP_DESKTOP_WIDGET(data);
+
+ bool down = SP_BUTTON_IS_DOWN(dtw->cms_adjust);
+ if ( down != dtw->canvas->enable_cms_display_adj ) {
+ dtw->canvas->enable_cms_display_adj = down;
+ dtw->requestCanvasUpdate();
+ prefs_set_int_attribute( "options.displayprofile", "enable", down ? 1 : 0 );
+ }
}
void
-sp_dtw_desktop_activate (SPDesktopWidget *dtw)
+sp_dtw_desktop_activate (SPDesktopWidget */*dtw*/)
{
/* update active desktop indicator */
}
void
-sp_dtw_desktop_deactivate (SPDesktopWidget *dtw)
+sp_dtw_desktop_deactivate (SPDesktopWidget */*dtw*/)
{
/* update inactive desktop indicator */
}
SPDesktopWidget::getWindowGeometry (gint &x, gint &y, gint &w, gint &h)
{
gboolean vis = GTK_WIDGET_VISIBLE (this);
+ (void)vis; // TODO figure out why it is here but not used.
Gtk::Window *window = (Gtk::Window*)gtk_object_get_data (GTK_OBJECT(this), "window");
@@ -1178,7 +1321,7 @@ sp_desktop_widget_namedview_modified (SPObject *obj, guint flags, SPDesktopWidge
}
static void
-sp_desktop_widget_adjustment_value_changed (GtkAdjustment *adj, SPDesktopWidget *dtw)
+sp_desktop_widget_adjustment_value_changed (GtkAdjustment */*adj*/, SPDesktopWidget *dtw)
{
if (dtw->update)
return;
@@ -1195,7 +1338,7 @@ sp_desktop_widget_adjustment_value_changed (GtkAdjustment *adj, SPDesktopWidget
bool SPDesktopWidget::onFocusInEvent(GdkEventFocus*)
{
inkscape_activate_desktop (desktop);
-
+
return false;
}
}
static gint
-sp_dtw_zoom_input (GtkSpinButton *spin, gdouble *new_val, gpointer data)
+sp_dtw_zoom_input (GtkSpinButton *spin, gdouble *new_val, gpointer /*data*/)
{
gdouble new_scrolled = gtk_spin_button_get_value (spin);
const gchar *b = gtk_entry_get_text (GTK_ENTRY (spin));
}
static bool
-sp_dtw_zoom_output (GtkSpinButton *spin, gpointer data)
+sp_dtw_zoom_output (GtkSpinButton *spin, gpointer /*data*/)
{
gchar b[64];
double val = sp_dtw_zoom_value_to_display (gtk_spin_button_get_value (spin));
}
static void
-sp_dtw_zoom_populate_popup (GtkEntry *entry, GtkMenu *menu, gpointer data)
+sp_dtw_zoom_populate_popup (GtkEntry */*entry*/, GtkMenu *menu, gpointer data)
{
GList *children, *iter;
GtkWidget *item;
}
static void
-sp_dtw_zoom_50 (GtkMenuItem *item, gpointer data)
+sp_dtw_zoom_50 (GtkMenuItem */*item*/, gpointer data)
{
sp_dtw_zoom_menu_handler (static_cast<SPDesktop*>(data), 0.5);
}
static void
-sp_dtw_zoom_100 (GtkMenuItem *item, gpointer data)
+sp_dtw_zoom_100 (GtkMenuItem */*item*/, gpointer data)
{
sp_dtw_zoom_menu_handler (static_cast<SPDesktop*>(data), 1.0);
}
static void
-sp_dtw_zoom_200 (GtkMenuItem *item, gpointer data)
+sp_dtw_zoom_200 (GtkMenuItem */*item*/, gpointer data)
{
sp_dtw_zoom_menu_handler (static_cast<SPDesktop*>(data), 2.0);
}
static void
-sp_dtw_zoom_page (GtkMenuItem *item, gpointer data)
+sp_dtw_zoom_page (GtkMenuItem */*item*/, gpointer data)
{
static_cast<SPDesktop*>(data)->zoom_page();
}
static void
-sp_dtw_zoom_drawing (GtkMenuItem *item, gpointer data)
+sp_dtw_zoom_drawing (GtkMenuItem */*item*/, gpointer data)
{
static_cast<SPDesktop*>(data)->zoom_drawing();
}
static void
-sp_dtw_zoom_selection (GtkMenuItem *item, gpointer data)
+sp_dtw_zoom_selection (GtkMenuItem */*item*/, gpointer data)
{
static_cast<SPDesktop*>(data)->zoom_selection();
}