diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2009-02-16 23:56:03 +0000 |
|---|---|---|
| committer | joncruz <joncruz@users.sourceforge.net> | 2009-02-16 23:56:03 +0000 |
| commit | f7605bed9d7c2419c0e79ad952920f5830ccddc1 (patch) | |
| tree | 4a4b969206585b16b0c9fad2753498fd876755b2 /src/dialogs/eek-preview.cpp | |
| parent | foldable-box extension - first version, not good yet (diff) | |
| download | inkscape-f7605bed9d7c2419c0e79ad952920f5830ccddc1.tar.gz inkscape-f7605bed9d7c2419c0e79ad952920f5830ccddc1.zip | |
Move app-specific logic and file operations up from the lower level.
(bzr r7308)
Diffstat (limited to 'src/dialogs/eek-preview.cpp')
| -rw-r--r-- | src/dialogs/eek-preview.cpp | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/src/dialogs/eek-preview.cpp b/src/dialogs/eek-preview.cpp index b562c2af5..e0d0fb4e2 100644 --- a/src/dialogs/eek-preview.cpp +++ b/src/dialogs/eek-preview.cpp @@ -42,7 +42,6 @@ #include <gtk/gtk.h> #include "eek-preview.h" -#include "path-prefix.h" #define PRIME_BUTTON_MAGIC_NUMBER 1 @@ -69,6 +68,14 @@ void eek_preview_set_color( EekPreview* preview, int r, int g, int b ) } +void eek_preview_set_pixbuf( EekPreview* preview, GdkPixbuf* pixbuf ) +{ + preview->_previewPixbuf = pixbuf; + + gtk_widget_queue_draw(GTK_WIDGET(preview)); +} + + GType eek_preview_get_type(void) { static GType preview_type = 0; @@ -307,24 +314,13 @@ gboolean eek_preview_expose_event( GtkWidget* widget, GdkEventExpose* event ) } } - if (preview->_isRemove){ + if ( preview->_previewPixbuf ) { GtkDrawingArea* da = &(preview->drawing); GdkDrawable* drawable = (GdkDrawable*) (((GtkWidget*)da)->window); - gint w,h; + gint w = 0; + gint h = 0; gdk_drawable_get_size(drawable, &w, &h); - GError *error = NULL; - gchar *filepath = (gchar *) g_strdup_printf("%s/remove-color.png", INKSCAPE_PIXMAPDIR); - gsize bytesRead = 0; - gsize bytesWritten = 0; - gchar *localFilename = g_filename_from_utf8( filepath, - -1, - &bytesRead, - &bytesWritten, - &error); - GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file_at_scale(localFilename, w, h, FALSE, &error); - gdk_draw_pixbuf(drawable, 0, pixbuf, 0, 0, 0, 0, w, h, GDK_RGB_DITHER_NONE, 0, 0); - g_free(localFilename); - g_free(filepath); + gdk_draw_pixbuf( drawable, 0, preview->_previewPixbuf, 0, 0, 0, 0, w, h, GDK_RGB_DITHER_NONE, 0, 0 ); } @@ -655,13 +651,14 @@ static void eek_preview_init( EekPreview *preview ) preview->_hot = FALSE; preview->_within = FALSE; preview->_takesFocus = FALSE; - preview->_isRemove = FALSE; preview->_prevstyle = PREVIEW_STYLE_ICON; preview->_view = VIEW_TYPE_LIST; preview->_size = PREVIEW_SIZE_SMALL; preview->_ratio = 100; + preview->_previewPixbuf = 0; + /* GdkColor color = {0}; color.red = (255 << 8) | 255; |
