summaryrefslogtreecommitdiffstats
path: root/src/dialogs/eek-preview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dialogs/eek-preview.cpp')
-rw-r--r--src/dialogs/eek-preview.cpp42
1 files changed, 33 insertions, 9 deletions
diff --git a/src/dialogs/eek-preview.cpp b/src/dialogs/eek-preview.cpp
index f9aadc561..a4e28b2fd 100644
--- a/src/dialogs/eek-preview.cpp
+++ b/src/dialogs/eek-preview.cpp
@@ -36,9 +36,13 @@
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include <gtk/gtk.h>
#include "eek-preview.h"
+#include "path-prefix.h"
#define PRIME_BUTTON_MAGIC_NUMBER 1
@@ -57,15 +61,11 @@ static GtkWidgetClass* parent_class = 0;
void eek_preview_set_color( EekPreview* preview, int r, int g, int b )
{
- if ( (preview->_r = r)
- || (preview->_g = g)
- || (preview->_b = b) ) {
- preview->_r = r;
- preview->_g = g;
- preview->_b = b;
-
- gtk_widget_queue_draw(GTK_WIDGET(preview));
- }
+ preview->_r = r;
+ preview->_g = g;
+ preview->_b = b;
+
+ gtk_widget_queue_draw(GTK_WIDGET(preview));
}
@@ -222,6 +222,7 @@ gboolean eek_preview_expose_event( GtkWidget* widget, GdkEventExpose* event )
GdkGC *gc = gdk_gc_new( widget->window );
EekPreview* preview = EEK_PREVIEW(widget);
GdkColor fg = {0, preview->_r, preview->_g, preview->_b};
+
gdk_colormap_alloc_color( gdk_colormap_get_system(), &fg, FALSE, TRUE );
gdk_gc_set_foreground( gc, &fg );
@@ -306,6 +307,28 @@ gboolean eek_preview_expose_event( GtkWidget* widget, GdkEventExpose* event )
}
}
+ if (preview->_isRemove){
+ GtkDrawingArea* da = &(preview->drawing);
+ GdkDrawable* drawable = (GdkDrawable*) (((GtkWidget*)da)->window);
+ gint w,h;
+ gdk_drawable_get_size(drawable, &w, &h);
+ GError *error = NULL;
+ gchar *filepath = (gchar *) g_strdup_printf("%s/remove-color.png", INKSCAPE_PIXMAPDIR);
+ g_warning("filepath: %s", filepath);
+ 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_size(localFilename, w, h, &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);
+ }
+
+
if ( GTK_WIDGET_HAS_FOCUS(widget) ) {
gtk_paint_focus( style,
widget->window,
@@ -633,6 +656,7 @@ 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;