summaryrefslogtreecommitdiffstats
path: root/src/dialogs
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2008-02-21 06:54:33 +0000
committerjoncruz <joncruz@users.sourceforge.net>2008-02-21 06:54:33 +0000
commitef72f4b81da42a06b872afe03ef33174a494acab (patch)
treeb1e71bfb493ee6ba2606b939576b6f120d1a8afc /src/dialogs
parentWarning cleanup (diff)
downloadinkscape-ef72f4b81da42a06b872afe03ef33174a494acab.tar.gz
inkscape-ef72f4b81da42a06b872afe03ef33174a494acab.zip
Initial implementation of non-square swatches
(bzr r4800)
Diffstat (limited to 'src/dialogs')
-rw-r--r--src/dialogs/eek-preview.cpp16
-rw-r--r--src/dialogs/eek-preview.h3
-rw-r--r--src/dialogs/swatches.cpp4
-rw-r--r--src/dialogs/swatches.h3
4 files changed, 21 insertions, 5 deletions
diff --git a/src/dialogs/eek-preview.cpp b/src/dialogs/eek-preview.cpp
index d90137a04..145346af3 100644
--- a/src/dialogs/eek-preview.cpp
+++ b/src/dialogs/eek-preview.cpp
@@ -48,6 +48,7 @@
#define PREVIEW_SIZE_LAST PREVIEW_SIZE_HUGE
#define PREVIEW_SIZE_NEXTFREE (PREVIEW_SIZE_HUGE + 1)
+#define PREVIEW_MAX_RATIO 500
static void eek_preview_class_init( EekPreviewClass *klass );
static void eek_preview_init( EekPreview *preview );
@@ -154,6 +155,13 @@ static void eek_preview_size_request( GtkWidget* widget, GtkRequisition* req )
width *= 3;
}
+ if ( preview->_ratio != 100 ) {
+ width = (width * preview->_ratio) / 100;
+ if ( width < 0 ) {
+ width = 1;
+ }
+ }
+
req->width = width;
req->height = height;
}
@@ -582,7 +590,7 @@ void eek_preview_set_focus_on_click( EekPreview* preview, gboolean focus_on_clic
}
}
-void eek_preview_set_details( EekPreview* preview, PreviewStyle prevstyle, ViewType view, PreviewSize size )
+void eek_preview_set_details( EekPreview* preview, PreviewStyle prevstyle, ViewType view, PreviewSize size, guint ratio )
{
preview->_prevstyle = prevstyle;
preview->_view = view;
@@ -592,6 +600,11 @@ void eek_preview_set_details( EekPreview* preview, PreviewStyle prevstyle, ViewT
}
preview->_size = size;
+ if ( ratio > PREVIEW_MAX_RATIO ) {
+ ratio = PREVIEW_MAX_RATIO;
+ }
+ preview->_ratio = ratio;
+
gtk_widget_queue_draw(GTK_WIDGET(preview));
}
@@ -624,6 +637,7 @@ static void eek_preview_init( EekPreview *preview )
preview->_prevstyle = PREVIEW_STYLE_ICON;
preview->_view = VIEW_TYPE_LIST;
preview->_size = PREVIEW_SIZE_SMALL;
+ preview->_ratio = 100;
/*
GdkColor color = {0};
diff --git a/src/dialogs/eek-preview.h b/src/dialogs/eek-preview.h
index b2f8359f3..ee99125af 100644
--- a/src/dialogs/eek-preview.h
+++ b/src/dialogs/eek-preview.h
@@ -103,6 +103,7 @@ struct _EekPreview
PreviewStyle _prevstyle;
ViewType _view;
PreviewSize _size;
+ guint _ratio;
guint _linked;
};
@@ -117,7 +118,7 @@ struct _EekPreviewClass
GType eek_preview_get_type(void) G_GNUC_CONST;
GtkWidget* eek_preview_new(void);
-void eek_preview_set_details( EekPreview* splat, PreviewStyle prevstyle, ViewType view, PreviewSize size );
+void eek_preview_set_details( EekPreview* splat, PreviewStyle prevstyle, ViewType view, PreviewSize size, guint ratio );
void eek_preview_set_color( EekPreview* splat, int r, int g, int b );
void eek_preview_set_linked( EekPreview* splat, LinkType link );
diff --git a/src/dialogs/swatches.cpp b/src/dialogs/swatches.cpp
index 28c21e270..68e6fff0d 100644
--- a/src/dialogs/swatches.cpp
+++ b/src/dialogs/swatches.cpp
@@ -503,7 +503,7 @@ void ColorItem::_colorDefChanged(void* data)
}
-Gtk::Widget* ColorItem::getPreview(PreviewStyle style, ViewType view, ::PreviewSize size)
+Gtk::Widget* ColorItem::getPreview(PreviewStyle style, ViewType view, ::PreviewSize size, guint ratio)
{
Gtk::Widget* widget = 0;
if ( style == PREVIEW_STYLE_BLURB ) {
@@ -522,7 +522,7 @@ Gtk::Widget* ColorItem::getPreview(PreviewStyle style, ViewType view, ::PreviewS
eek_preview_set_color( preview, (def.getR() << 8) | def.getR(), (def.getG() << 8) | def.getG(), (def.getB() << 8) | def.getB());
- eek_preview_set_details( preview, (::PreviewStyle)style, (::ViewType)view, (::PreviewSize)size );
+ eek_preview_set_details( preview, (::PreviewStyle)style, (::ViewType)view, (::PreviewSize)size, ratio );
eek_preview_set_linked( preview, (LinkType)((_linkSrc ? PREVIEW_LINK_IN:0)
| (_listeners.empty() ? 0:PREVIEW_LINK_OUT)
| (_isLive ? PREVIEW_LINK_OTHER:0)) );
diff --git a/src/dialogs/swatches.h b/src/dialogs/swatches.h
index f21aec1ff..310272b1c 100644
--- a/src/dialogs/swatches.h
+++ b/src/dialogs/swatches.h
@@ -43,7 +43,8 @@ public:
virtual ColorItem &operator=(ColorItem const &other);
virtual Gtk::Widget* getPreview(PreviewStyle style,
ViewType view,
- ::PreviewSize size);
+ ::PreviewSize size,
+ guint ratio);
void buttonClicked(bool secondary = false);
ColorDef def;