diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2008-02-21 06:54:33 +0000 |
|---|---|---|
| committer | joncruz <joncruz@users.sourceforge.net> | 2008-02-21 06:54:33 +0000 |
| commit | ef72f4b81da42a06b872afe03ef33174a494acab (patch) | |
| tree | b1e71bfb493ee6ba2606b939576b6f120d1a8afc /src/dialogs | |
| parent | Warning cleanup (diff) | |
| download | inkscape-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.cpp | 16 | ||||
| -rw-r--r-- | src/dialogs/eek-preview.h | 3 | ||||
| -rw-r--r-- | src/dialogs/swatches.cpp | 4 | ||||
| -rw-r--r-- | src/dialogs/swatches.h | 3 |
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; |
