From bb0447f1655c695bfa70a79d27b503cbfc42c499 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Tue, 24 Aug 1999 00:36:57 +0000 Subject: [PATCH] app/channels_dialog.c app/color_area.c app/color_panel.c 1999-08-24 Michael Natterer * app/channels_dialog.c * app/color_area.c * app/color_panel.c * app/color_select.c * app/disp_callbacks.[ch] * app/gimpdnd.[ch]: pass the widget to the color dnd callbacks. * app/palette.c: color dnd for the palette dialog. Shift+click toggles setting the FG/BG color now. --- ChangeLog | 12 +++ app/channels_dialog.c | 16 ++-- app/color_area.c | 28 +++--- app/color_panel.c | 28 +++--- app/color_select.c | 42 ++++---- app/disp_callbacks.c | 9 +- app/disp_callbacks.h | 5 +- app/display/gimpdisplay-callbacks.c | 9 +- app/display/gimpdisplay-callbacks.h | 5 +- app/display/gimpdisplayshell-callbacks.c | 9 +- app/display/gimpdisplayshell-callbacks.h | 5 +- app/gimpdnd.c | 36 +++---- app/gimpdnd.h | 18 ++-- app/gui/channels-dialog.c | 16 ++-- app/gui/color-area.c | 28 +++--- app/gui/color-select.c | 42 ++++---- app/gui/palette-editor.c | 116 ++++++++++++++++++++++- app/palette.c | 116 ++++++++++++++++++++++- app/widgets/gimpcolorpanel.c | 28 +++--- app/widgets/gimpdnd.c | 36 +++---- app/widgets/gimpdnd.h | 18 ++-- app/widgets/gimppaletteeditor.c | 116 ++++++++++++++++++++++- app/widgets/gimptoolbox-color-area.c | 28 +++--- libgimpwidgets/gimpcolorselect.c | 42 ++++---- 24 files changed, 598 insertions(+), 210 deletions(-) diff --git a/ChangeLog b/ChangeLog index a366a75bfa..43404b3fbf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +1999-08-24 Michael Natterer + + * app/channels_dialog.c + * app/color_area.c + * app/color_panel.c + * app/color_select.c + * app/disp_callbacks.[ch] + * app/gimpdnd.[ch]: pass the widget to the color dnd callbacks. + + * app/palette.c: color dnd for the palette dialog. Shift+click + toggles setting the FG/BG color now. + 1999-08-24 Michael Natterer * app/color_select.[ch]: color dnd for the standard color diff --git a/app/channels_dialog.c b/app/channels_dialog.c index 1c2ef504cd..c69ea1442a 100644 --- a/app/channels_dialog.c +++ b/app/channels_dialog.c @@ -156,8 +156,9 @@ static void channel_widget_drag_leave_callback (GtkWidget *, guint); static void channel_widget_drag_indicator_callback (GtkWidget *, gpointer); -static void channel_widget_set_color (gpointer, - guchar, guchar, guchar); +static void channel_widget_drop_color (GtkWidget *, + guchar, guchar, guchar, + gpointer); static void channel_widget_draw_drop_indicator (ChannelWidget *, GimpDropType); static void channel_widget_delete (ChannelWidget *); static void channel_widget_select_update (GtkWidget *, gpointer); @@ -1387,7 +1388,7 @@ channel_widget_create (GImage *gimage, channel_color_target_table, n_channel_color_targets, GDK_ACTION_MOVE | GDK_ACTION_COPY); gimp_dnd_color_dest_set (list_item, - channel_widget_set_color, + channel_widget_drop_color, (gpointer) channel_widget); gtk_signal_connect (GTK_OBJECT (list_item), "drag_leave", @@ -1630,10 +1631,11 @@ channel_widget_drag_indicator_callback (GtkWidget *widget, } static void -channel_widget_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +channel_widget_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { ChannelWidget *channel_widget = (ChannelWidget *) data; Channel *channel = channel_widget->channel; diff --git a/app/color_area.c b/app/color_area.c index 9a7a6894a1..4e12e4e009 100644 --- a/app/color_area.c +++ b/app/color_area.c @@ -35,8 +35,10 @@ typedef enum } ColorAreaTarget; /* local function prototypes */ -static void color_area_set_color (gpointer, guchar, guchar, guchar); -static void color_area_get_color (gpointer, guchar *, guchar *, guchar *); +static void color_area_drop_color (GtkWidget *, + guchar, guchar, guchar, gpointer); +static void color_area_drag_color (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); /* Global variables */ gint active_color = FOREGROUND; @@ -405,7 +407,7 @@ color_area_create (gint width, GDK_BUTTON1_MASK | GDK_BUTTON3_MASK, color_area_target_table, n_color_area_targets, GDK_ACTION_COPY | GDK_ACTION_MOVE); - gimp_dnd_color_source_set (color_area, color_area_get_color, NULL); + gimp_dnd_color_source_set (color_area, color_area_drag_color, NULL); gtk_drag_dest_set (color_area, GTK_DEST_DEFAULT_HIGHLIGHT | @@ -413,7 +415,7 @@ color_area_create (gint width, GTK_DEST_DEFAULT_DROP, color_area_target_table, n_color_area_targets, GDK_ACTION_COPY); - gimp_dnd_color_dest_set (color_area, color_area_set_color, NULL); + gimp_dnd_color_dest_set (color_area, color_area_drop_color, NULL); return color_area; } @@ -425,10 +427,11 @@ color_area_update () } static void -color_area_get_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_area_drag_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { if (active_color == FOREGROUND) palette_get_foreground (r, g, b); @@ -437,10 +440,11 @@ color_area_get_color (gpointer data, } static void -color_area_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +color_area_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { if (color_notebook_active && active_color == edit_color) diff --git a/app/color_panel.c b/app/color_panel.c index a549d5717c..5349f8307e 100644 --- a/app/color_panel.c +++ b/app/color_panel.c @@ -46,8 +46,10 @@ static gint color_panel_events (GtkWidget *, GdkEvent *); static void color_panel_select_callback (gint, gint, gint, ColorNotebookState, void *); -static void color_panel_get_color (gpointer, guchar *, guchar *, guchar *); -static void color_panel_set_color (gpointer, guchar, guchar, guchar); +static void color_panel_drag_color (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); +static void color_panel_drop_color (GtkWidget *, + guchar, guchar, guchar, gpointer); /* dnd stuff */ static GtkTargetEntry color_panel_target_table[] = @@ -104,7 +106,7 @@ color_panel_new (guchar *initial, color_panel_target_table, n_color_panel_targets, GDK_ACTION_COPY | GDK_ACTION_MOVE); gimp_dnd_color_source_set (private->drawing_area, - color_panel_get_color, color_panel); + color_panel_drag_color, color_panel); gtk_drag_dest_set (private->drawing_area, GTK_DEST_DEFAULT_HIGHLIGHT | @@ -113,7 +115,7 @@ color_panel_new (guchar *initial, color_panel_target_table, n_color_panel_targets, GDK_ACTION_COPY); gimp_dnd_color_dest_set (private->drawing_area, - color_panel_set_color, color_panel); + color_panel_drop_color, color_panel); return color_panel; } @@ -266,10 +268,11 @@ color_panel_select_callback (gint r, } static void -color_panel_get_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_panel_drag_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { ColorPanel *color_panel = data; @@ -279,10 +282,11 @@ color_panel_get_color (gpointer data, } static void -color_panel_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +color_panel_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { ColorPanel *color_panel = data; ColorPanelPrivate *private = (ColorPanelPrivate *) color_panel->private_part; diff --git a/app/color_select.c b/app/color_select.c index 0a2bad3d3e..06cd79c444 100644 --- a/app/color_select.c +++ b/app/color_select.c @@ -87,12 +87,15 @@ struct _ColorSelectFill static GtkWidget * color_select_widget_new (ColorSelect *, gint, gint, gint); -static void color_select_drag_new_color (gpointer, - guchar *, guchar *, guchar *); -static void color_select_drop_new_color (gpointer, - guchar, guchar, guchar); -static void color_select_drag_old_color (gpointer, - guchar *, guchar *, guchar *); +static void color_select_drag_new_color (GtkWidget *, + guchar *, guchar *, guchar *, + gpointer); +static void color_select_drop_new_color (GtkWidget *, + guchar, guchar, guchar, + gpointer); +static void color_select_drag_old_color (GtkWidget *, + guchar *, guchar *, guchar *, + gpointer); static void color_select_update (ColorSelect *, ColorSelectUpdateType); @@ -461,10 +464,11 @@ color_select_widget_new (ColorSelect *csp, } static void -color_select_drag_new_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_select_drag_new_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { ColorSelect *csp; @@ -476,10 +480,11 @@ color_select_drag_new_color (gpointer data, } static void -color_select_drop_new_color (gpointer data, - guchar r, - guchar g, - guchar b) +color_select_drop_new_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { ColorSelect *csp; @@ -500,10 +505,11 @@ color_select_drop_new_color (gpointer data, } static void -color_select_drag_old_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_select_drag_old_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { ColorSelect *csp; diff --git a/app/disp_callbacks.c b/app/disp_callbacks.c index ce00f2b32d..cf9e5f282b 100644 --- a/app/disp_callbacks.c +++ b/app/disp_callbacks.c @@ -754,10 +754,11 @@ gdisplay_drag_drop (GtkWidget *widget, } void -gdisplay_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +gdisplay_set_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { GimpImage *gimage; GimpDrawable *drawable; diff --git a/app/disp_callbacks.h b/app/disp_callbacks.h index 6f183b5273..6481e17a24 100644 --- a/app/disp_callbacks.h +++ b/app/disp_callbacks.h @@ -38,9 +38,10 @@ gboolean gdisplay_drag_drop (GtkWidget *widget, gint y, guint time, gpointer data); -void gdisplay_set_color (gpointer data, +void gdisplay_set_color (GtkWidget *widget, guchar r, guchar g, - guchar b); + guchar b, + gpointer data); #endif /* __DISP_CALLBACKS_H__ */ diff --git a/app/display/gimpdisplay-callbacks.c b/app/display/gimpdisplay-callbacks.c index ce00f2b32d..cf9e5f282b 100644 --- a/app/display/gimpdisplay-callbacks.c +++ b/app/display/gimpdisplay-callbacks.c @@ -754,10 +754,11 @@ gdisplay_drag_drop (GtkWidget *widget, } void -gdisplay_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +gdisplay_set_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { GimpImage *gimage; GimpDrawable *drawable; diff --git a/app/display/gimpdisplay-callbacks.h b/app/display/gimpdisplay-callbacks.h index 6f183b5273..6481e17a24 100644 --- a/app/display/gimpdisplay-callbacks.h +++ b/app/display/gimpdisplay-callbacks.h @@ -38,9 +38,10 @@ gboolean gdisplay_drag_drop (GtkWidget *widget, gint y, guint time, gpointer data); -void gdisplay_set_color (gpointer data, +void gdisplay_set_color (GtkWidget *widget, guchar r, guchar g, - guchar b); + guchar b, + gpointer data); #endif /* __DISP_CALLBACKS_H__ */ diff --git a/app/display/gimpdisplayshell-callbacks.c b/app/display/gimpdisplayshell-callbacks.c index ce00f2b32d..cf9e5f282b 100644 --- a/app/display/gimpdisplayshell-callbacks.c +++ b/app/display/gimpdisplayshell-callbacks.c @@ -754,10 +754,11 @@ gdisplay_drag_drop (GtkWidget *widget, } void -gdisplay_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +gdisplay_set_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { GimpImage *gimage; GimpDrawable *drawable; diff --git a/app/display/gimpdisplayshell-callbacks.h b/app/display/gimpdisplayshell-callbacks.h index 6f183b5273..6481e17a24 100644 --- a/app/display/gimpdisplayshell-callbacks.h +++ b/app/display/gimpdisplayshell-callbacks.h @@ -38,9 +38,10 @@ gboolean gdisplay_drag_drop (GtkWidget *widget, gint y, guint time, gpointer data); -void gdisplay_set_color (gpointer data, +void gdisplay_set_color (GtkWidget *widget, guchar r, guchar g, - guchar b); + guchar b, + gpointer data); #endif /* __DISP_CALLBACKS_H__ */ diff --git a/app/gimpdnd.c b/app/gimpdnd.c index 17a2026f65..b6d9815d90 100644 --- a/app/gimpdnd.c +++ b/app/gimpdnd.c @@ -231,11 +231,11 @@ gimp_dnd_color_drag_begin (GtkWidget *widget, GtkWidget *window; GdkColor bg; guchar r, g, b; - GimpDndGetColorFunc get_color_func; + GimpDndDragColorFunc get_color_func; get_color_func = - (GimpDndGetColorFunc) gtk_object_get_data (GTK_OBJECT (widget), - "gimp_dnd_get_color_func"); + (GimpDndDragColorFunc) gtk_object_get_data (GTK_OBJECT (widget), + "gimp_dnd_get_color_func"); if (! get_color_func) return; @@ -249,7 +249,7 @@ gimp_dnd_color_drag_begin (GtkWidget *widget, window, (GtkDestroyNotify) gtk_widget_destroy); - (* get_color_func) (data, &r, &g, &b); + (* get_color_func) (widget, &r, &g, &b, data); bg.red = 0xff * r; bg.green = 0xff * g; @@ -279,16 +279,16 @@ gimp_dnd_color_drag_handle (GtkWidget *widget, { guint16 vals[4]; guchar r, g, b; - GimpDndGetColorFunc get_color_func; + GimpDndDragColorFunc get_color_func; get_color_func = - (GimpDndGetColorFunc) gtk_object_get_data (GTK_OBJECT (widget), - "gimp_dnd_get_color_func"); + (GimpDndDragColorFunc) gtk_object_get_data (GTK_OBJECT (widget), + "gimp_dnd_get_color_func"); if (! get_color_func) return; - (* get_color_func) (data, &r, &g, &b); + (* get_color_func) (widget, &r, &g, &b, data); vals[0] = r * 0xff; vals[1] = g * 0xff; @@ -312,11 +312,11 @@ gimp_dnd_color_drop_handle (GtkWidget *widget, { guint16 *vals; guchar r, g, b; - GimpDndSetColorFunc set_color_func; + GimpDndDropColorFunc set_color_func; set_color_func = - (GimpDndSetColorFunc) gtk_object_get_data (GTK_OBJECT (widget), - "gimp_dnd_set_color_func"); + (GimpDndDropColorFunc) gtk_object_get_data (GTK_OBJECT (widget), + "gimp_dnd_set_color_func"); if (! set_color_func) return; @@ -337,13 +337,13 @@ gimp_dnd_color_drop_handle (GtkWidget *widget, g = vals[1] / 0xff; b = vals[2] / 0xff; - (* set_color_func) (data, r, g, b); + (* set_color_func) (widget, r, g, b, data); } void -gimp_dnd_color_source_set (GtkWidget *widget, - GimpDndGetColorFunc get_color_func, - gpointer data) +gimp_dnd_color_source_set (GtkWidget *widget, + GimpDndDragColorFunc get_color_func, + gpointer data) { gtk_signal_connect (GTK_OBJECT (widget), "drag_begin", GTK_SIGNAL_FUNC (gimp_dnd_color_drag_begin), @@ -360,9 +360,9 @@ gimp_dnd_color_source_set (GtkWidget *widget, } void -gimp_dnd_color_dest_set (GtkWidget *widget, - GimpDndSetColorFunc set_color_func, - gpointer data) +gimp_dnd_color_dest_set (GtkWidget *widget, + GimpDndDropColorFunc set_color_func, + gpointer data) { gtk_signal_connect (GTK_OBJECT (widget), "drag_data_received", GTK_SIGNAL_FUNC (gimp_dnd_color_drop_handle), diff --git a/app/gimpdnd.h b/app/gimpdnd.h index f9df2fd752..381382a294 100644 --- a/app/gimpdnd.h +++ b/app/gimpdnd.h @@ -82,15 +82,17 @@ void gimp_dnd_set_drawable_preview_icon (GtkWidget *widget, /* color dnd functions */ -typedef void (*GimpDndSetColorFunc) (gpointer, guchar, guchar, guchar); -typedef void (*GimpDndGetColorFunc) (gpointer, guchar *, guchar *, guchar *); +typedef void (*GimpDndDropColorFunc) (GtkWidget *, + guchar, guchar, guchar, gpointer); +typedef void (*GimpDndDragColorFunc) (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); -void gimp_dnd_color_source_set (GtkWidget *widget, - GimpDndGetColorFunc get_color_func, - gpointer data); +void gimp_dnd_color_source_set (GtkWidget *widget, + GimpDndDragColorFunc get_color_func, + gpointer data); -void gimp_dnd_color_dest_set (GtkWidget *widget, - GimpDndSetColorFunc set_color_func, - gpointer data); +void gimp_dnd_color_dest_set (GtkWidget *widget, + GimpDndDropColorFunc set_color_func, + gpointer data); #endif /* __GIMP_DND_H__ */ diff --git a/app/gui/channels-dialog.c b/app/gui/channels-dialog.c index 1c2ef504cd..c69ea1442a 100644 --- a/app/gui/channels-dialog.c +++ b/app/gui/channels-dialog.c @@ -156,8 +156,9 @@ static void channel_widget_drag_leave_callback (GtkWidget *, guint); static void channel_widget_drag_indicator_callback (GtkWidget *, gpointer); -static void channel_widget_set_color (gpointer, - guchar, guchar, guchar); +static void channel_widget_drop_color (GtkWidget *, + guchar, guchar, guchar, + gpointer); static void channel_widget_draw_drop_indicator (ChannelWidget *, GimpDropType); static void channel_widget_delete (ChannelWidget *); static void channel_widget_select_update (GtkWidget *, gpointer); @@ -1387,7 +1388,7 @@ channel_widget_create (GImage *gimage, channel_color_target_table, n_channel_color_targets, GDK_ACTION_MOVE | GDK_ACTION_COPY); gimp_dnd_color_dest_set (list_item, - channel_widget_set_color, + channel_widget_drop_color, (gpointer) channel_widget); gtk_signal_connect (GTK_OBJECT (list_item), "drag_leave", @@ -1630,10 +1631,11 @@ channel_widget_drag_indicator_callback (GtkWidget *widget, } static void -channel_widget_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +channel_widget_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { ChannelWidget *channel_widget = (ChannelWidget *) data; Channel *channel = channel_widget->channel; diff --git a/app/gui/color-area.c b/app/gui/color-area.c index 9a7a6894a1..4e12e4e009 100644 --- a/app/gui/color-area.c +++ b/app/gui/color-area.c @@ -35,8 +35,10 @@ typedef enum } ColorAreaTarget; /* local function prototypes */ -static void color_area_set_color (gpointer, guchar, guchar, guchar); -static void color_area_get_color (gpointer, guchar *, guchar *, guchar *); +static void color_area_drop_color (GtkWidget *, + guchar, guchar, guchar, gpointer); +static void color_area_drag_color (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); /* Global variables */ gint active_color = FOREGROUND; @@ -405,7 +407,7 @@ color_area_create (gint width, GDK_BUTTON1_MASK | GDK_BUTTON3_MASK, color_area_target_table, n_color_area_targets, GDK_ACTION_COPY | GDK_ACTION_MOVE); - gimp_dnd_color_source_set (color_area, color_area_get_color, NULL); + gimp_dnd_color_source_set (color_area, color_area_drag_color, NULL); gtk_drag_dest_set (color_area, GTK_DEST_DEFAULT_HIGHLIGHT | @@ -413,7 +415,7 @@ color_area_create (gint width, GTK_DEST_DEFAULT_DROP, color_area_target_table, n_color_area_targets, GDK_ACTION_COPY); - gimp_dnd_color_dest_set (color_area, color_area_set_color, NULL); + gimp_dnd_color_dest_set (color_area, color_area_drop_color, NULL); return color_area; } @@ -425,10 +427,11 @@ color_area_update () } static void -color_area_get_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_area_drag_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { if (active_color == FOREGROUND) palette_get_foreground (r, g, b); @@ -437,10 +440,11 @@ color_area_get_color (gpointer data, } static void -color_area_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +color_area_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { if (color_notebook_active && active_color == edit_color) diff --git a/app/gui/color-select.c b/app/gui/color-select.c index 0a2bad3d3e..06cd79c444 100644 --- a/app/gui/color-select.c +++ b/app/gui/color-select.c @@ -87,12 +87,15 @@ struct _ColorSelectFill static GtkWidget * color_select_widget_new (ColorSelect *, gint, gint, gint); -static void color_select_drag_new_color (gpointer, - guchar *, guchar *, guchar *); -static void color_select_drop_new_color (gpointer, - guchar, guchar, guchar); -static void color_select_drag_old_color (gpointer, - guchar *, guchar *, guchar *); +static void color_select_drag_new_color (GtkWidget *, + guchar *, guchar *, guchar *, + gpointer); +static void color_select_drop_new_color (GtkWidget *, + guchar, guchar, guchar, + gpointer); +static void color_select_drag_old_color (GtkWidget *, + guchar *, guchar *, guchar *, + gpointer); static void color_select_update (ColorSelect *, ColorSelectUpdateType); @@ -461,10 +464,11 @@ color_select_widget_new (ColorSelect *csp, } static void -color_select_drag_new_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_select_drag_new_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { ColorSelect *csp; @@ -476,10 +480,11 @@ color_select_drag_new_color (gpointer data, } static void -color_select_drop_new_color (gpointer data, - guchar r, - guchar g, - guchar b) +color_select_drop_new_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { ColorSelect *csp; @@ -500,10 +505,11 @@ color_select_drop_new_color (gpointer data, } static void -color_select_drag_old_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_select_drag_old_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { ColorSelect *csp; diff --git a/app/gui/palette-editor.c b/app/gui/palette-editor.c index f1ecbf5dc7..33f949926e 100644 --- a/app/gui/palette-editor.c +++ b/app/gui/palette-editor.c @@ -39,6 +39,7 @@ #include "datafiles.h" #include "devices.h" #include "errors.h" +#include "gimpdnd.h" #include "gimprc.h" #include "gradient_header.h" #include "gradient.h" @@ -132,6 +133,10 @@ static void palette_entries_save (PaletteEntriesP, char *); PaletteDialog * create_palette_dialog (gboolean vert); +static void palette_drag_color (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); +static void palette_drop_color (GtkWidget *, + guchar, guchar, guchar, gpointer); static void palette_draw_entries (PaletteDialog *palette, gint row_start, gint column_highlight); static void redraw_palette (PaletteDialog *palette); @@ -162,6 +167,14 @@ static ImportDialog *import_dialog = NULL; PaletteDialog *top_level_edit_palette = NULL; PaletteDialog *top_level_palette = NULL; +/* dnd stuff */ +static GtkTargetEntry color_palette_target_table[] = +{ + GIMP_TARGET_COLOR +}; +static guint n_color_palette_targets = (sizeof (color_palette_target_table) / + sizeof (color_palette_target_table[0])); + static void palette_entries_free (PaletteEntriesP entries) { @@ -443,7 +456,6 @@ palette_entry_free (PaletteEntryP entry) g_free (entry); } - void palette_free () { @@ -1511,9 +1523,19 @@ palette_color_area_events (GtkWidget *widget, g = palette->color->color[1]; b = palette->color->color[2]; if (active_color == FOREGROUND) - palette_set_foreground (r, g, b); + { + if (bevent->state & GDK_CONTROL_MASK) + palette_set_background (r, g, b); + else + palette_set_foreground (r, g, b); + } else if (active_color == BACKGROUND) - palette_set_background (r, g, b); + { + if (bevent->state & GDK_CONTROL_MASK) + palette_set_foreground (r, g, b); + else + palette_set_background (r, g, b); + } palette_draw_entries (palette, row, col); /* Update the active color name */ @@ -2063,10 +2085,25 @@ create_palette_dialog (gint vert) (GtkSignalFunc) palette_color_area_events, palette); - gtk_widget_show (palette_region); gtk_container_add (GTK_CONTAINER (alignment), palette_region); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolledwindow), alignment); + gtk_widget_show (palette_region); + + /* dnd stuff */ + gtk_drag_source_set (palette_region, + GDK_BUTTON1_MASK | GDK_BUTTON3_MASK, + color_palette_target_table, n_color_palette_targets, + GDK_ACTION_COPY | GDK_ACTION_MOVE); + gimp_dnd_color_source_set (palette_region, palette_drag_color, palette); + + gtk_drag_dest_set (alignment, + GTK_DEST_DEFAULT_HIGHLIGHT | + GTK_DEST_DEFAULT_MOTION | + GTK_DEST_DEFAULT_DROP, + color_palette_target_table, n_color_palette_targets, + GDK_ACTION_COPY); + gimp_dnd_color_dest_set (alignment, palette_drop_color, palette); /* The color name entry */ hbox2 = gtk_hbox_new (FALSE, 2); @@ -2227,6 +2264,77 @@ create_palette_dialog (gint vert) return palette; } +static void +palette_drag_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) +{ + PaletteDialog *palette; + + palette = (PaletteDialog *) data; + + if (palette && palette->entries) + { + *r = (guchar) palette->color->color[0]; + *g = (guchar) palette->color->color[1]; + *b = (guchar) palette->color->color[2]; + } +} + +static void +palette_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) +{ + PaletteDialog *palette; + gchar *name; + gchar *num_buf; + GSList *list; + gint pos = 0; + PaletteEntriesP p_entries = NULL; + + palette = (PaletteDialog *) data; + + if (palette && palette->entries) + { + name = g_strdup_printf ("#%2x%2x%2x", r, g, b); + + palette->color = + palette_add_entry (palette->entries, name, r, g, b); + + g_free (name); + + redraw_palette (palette); + + list = palette_entries_list; + + while (list) + { + p_entries = (PaletteEntriesP) list->data; + list = g_slist_next (list); + + /* to make sure we get something! */ + if (p_entries == NULL) + { + p_entries = default_palette_entries; + } + if (p_entries == palette->entries) + break; + pos++; + } + + num_buf = g_strdup_printf ("%d", p_entries->n_colors);; + palette_draw_small_preview (palette->gc, p_entries); + gtk_clist_set_text (GTK_CLIST (palette->clist), pos, 1, num_buf); + palette_select_set_text_all (palette->entries); + palette_select2_set_text_all (palette->entries); + } +} + static void import_dialog_select_grad_callback (GtkWidget *widget, gpointer data) diff --git a/app/palette.c b/app/palette.c index f1ecbf5dc7..33f949926e 100644 --- a/app/palette.c +++ b/app/palette.c @@ -39,6 +39,7 @@ #include "datafiles.h" #include "devices.h" #include "errors.h" +#include "gimpdnd.h" #include "gimprc.h" #include "gradient_header.h" #include "gradient.h" @@ -132,6 +133,10 @@ static void palette_entries_save (PaletteEntriesP, char *); PaletteDialog * create_palette_dialog (gboolean vert); +static void palette_drag_color (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); +static void palette_drop_color (GtkWidget *, + guchar, guchar, guchar, gpointer); static void palette_draw_entries (PaletteDialog *palette, gint row_start, gint column_highlight); static void redraw_palette (PaletteDialog *palette); @@ -162,6 +167,14 @@ static ImportDialog *import_dialog = NULL; PaletteDialog *top_level_edit_palette = NULL; PaletteDialog *top_level_palette = NULL; +/* dnd stuff */ +static GtkTargetEntry color_palette_target_table[] = +{ + GIMP_TARGET_COLOR +}; +static guint n_color_palette_targets = (sizeof (color_palette_target_table) / + sizeof (color_palette_target_table[0])); + static void palette_entries_free (PaletteEntriesP entries) { @@ -443,7 +456,6 @@ palette_entry_free (PaletteEntryP entry) g_free (entry); } - void palette_free () { @@ -1511,9 +1523,19 @@ palette_color_area_events (GtkWidget *widget, g = palette->color->color[1]; b = palette->color->color[2]; if (active_color == FOREGROUND) - palette_set_foreground (r, g, b); + { + if (bevent->state & GDK_CONTROL_MASK) + palette_set_background (r, g, b); + else + palette_set_foreground (r, g, b); + } else if (active_color == BACKGROUND) - palette_set_background (r, g, b); + { + if (bevent->state & GDK_CONTROL_MASK) + palette_set_foreground (r, g, b); + else + palette_set_background (r, g, b); + } palette_draw_entries (palette, row, col); /* Update the active color name */ @@ -2063,10 +2085,25 @@ create_palette_dialog (gint vert) (GtkSignalFunc) palette_color_area_events, palette); - gtk_widget_show (palette_region); gtk_container_add (GTK_CONTAINER (alignment), palette_region); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolledwindow), alignment); + gtk_widget_show (palette_region); + + /* dnd stuff */ + gtk_drag_source_set (palette_region, + GDK_BUTTON1_MASK | GDK_BUTTON3_MASK, + color_palette_target_table, n_color_palette_targets, + GDK_ACTION_COPY | GDK_ACTION_MOVE); + gimp_dnd_color_source_set (palette_region, palette_drag_color, palette); + + gtk_drag_dest_set (alignment, + GTK_DEST_DEFAULT_HIGHLIGHT | + GTK_DEST_DEFAULT_MOTION | + GTK_DEST_DEFAULT_DROP, + color_palette_target_table, n_color_palette_targets, + GDK_ACTION_COPY); + gimp_dnd_color_dest_set (alignment, palette_drop_color, palette); /* The color name entry */ hbox2 = gtk_hbox_new (FALSE, 2); @@ -2227,6 +2264,77 @@ create_palette_dialog (gint vert) return palette; } +static void +palette_drag_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) +{ + PaletteDialog *palette; + + palette = (PaletteDialog *) data; + + if (palette && palette->entries) + { + *r = (guchar) palette->color->color[0]; + *g = (guchar) palette->color->color[1]; + *b = (guchar) palette->color->color[2]; + } +} + +static void +palette_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) +{ + PaletteDialog *palette; + gchar *name; + gchar *num_buf; + GSList *list; + gint pos = 0; + PaletteEntriesP p_entries = NULL; + + palette = (PaletteDialog *) data; + + if (palette && palette->entries) + { + name = g_strdup_printf ("#%2x%2x%2x", r, g, b); + + palette->color = + palette_add_entry (palette->entries, name, r, g, b); + + g_free (name); + + redraw_palette (palette); + + list = palette_entries_list; + + while (list) + { + p_entries = (PaletteEntriesP) list->data; + list = g_slist_next (list); + + /* to make sure we get something! */ + if (p_entries == NULL) + { + p_entries = default_palette_entries; + } + if (p_entries == palette->entries) + break; + pos++; + } + + num_buf = g_strdup_printf ("%d", p_entries->n_colors);; + palette_draw_small_preview (palette->gc, p_entries); + gtk_clist_set_text (GTK_CLIST (palette->clist), pos, 1, num_buf); + palette_select_set_text_all (palette->entries); + palette_select2_set_text_all (palette->entries); + } +} + static void import_dialog_select_grad_callback (GtkWidget *widget, gpointer data) diff --git a/app/widgets/gimpcolorpanel.c b/app/widgets/gimpcolorpanel.c index a549d5717c..5349f8307e 100644 --- a/app/widgets/gimpcolorpanel.c +++ b/app/widgets/gimpcolorpanel.c @@ -46,8 +46,10 @@ static gint color_panel_events (GtkWidget *, GdkEvent *); static void color_panel_select_callback (gint, gint, gint, ColorNotebookState, void *); -static void color_panel_get_color (gpointer, guchar *, guchar *, guchar *); -static void color_panel_set_color (gpointer, guchar, guchar, guchar); +static void color_panel_drag_color (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); +static void color_panel_drop_color (GtkWidget *, + guchar, guchar, guchar, gpointer); /* dnd stuff */ static GtkTargetEntry color_panel_target_table[] = @@ -104,7 +106,7 @@ color_panel_new (guchar *initial, color_panel_target_table, n_color_panel_targets, GDK_ACTION_COPY | GDK_ACTION_MOVE); gimp_dnd_color_source_set (private->drawing_area, - color_panel_get_color, color_panel); + color_panel_drag_color, color_panel); gtk_drag_dest_set (private->drawing_area, GTK_DEST_DEFAULT_HIGHLIGHT | @@ -113,7 +115,7 @@ color_panel_new (guchar *initial, color_panel_target_table, n_color_panel_targets, GDK_ACTION_COPY); gimp_dnd_color_dest_set (private->drawing_area, - color_panel_set_color, color_panel); + color_panel_drop_color, color_panel); return color_panel; } @@ -266,10 +268,11 @@ color_panel_select_callback (gint r, } static void -color_panel_get_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_panel_drag_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { ColorPanel *color_panel = data; @@ -279,10 +282,11 @@ color_panel_get_color (gpointer data, } static void -color_panel_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +color_panel_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { ColorPanel *color_panel = data; ColorPanelPrivate *private = (ColorPanelPrivate *) color_panel->private_part; diff --git a/app/widgets/gimpdnd.c b/app/widgets/gimpdnd.c index 17a2026f65..b6d9815d90 100644 --- a/app/widgets/gimpdnd.c +++ b/app/widgets/gimpdnd.c @@ -231,11 +231,11 @@ gimp_dnd_color_drag_begin (GtkWidget *widget, GtkWidget *window; GdkColor bg; guchar r, g, b; - GimpDndGetColorFunc get_color_func; + GimpDndDragColorFunc get_color_func; get_color_func = - (GimpDndGetColorFunc) gtk_object_get_data (GTK_OBJECT (widget), - "gimp_dnd_get_color_func"); + (GimpDndDragColorFunc) gtk_object_get_data (GTK_OBJECT (widget), + "gimp_dnd_get_color_func"); if (! get_color_func) return; @@ -249,7 +249,7 @@ gimp_dnd_color_drag_begin (GtkWidget *widget, window, (GtkDestroyNotify) gtk_widget_destroy); - (* get_color_func) (data, &r, &g, &b); + (* get_color_func) (widget, &r, &g, &b, data); bg.red = 0xff * r; bg.green = 0xff * g; @@ -279,16 +279,16 @@ gimp_dnd_color_drag_handle (GtkWidget *widget, { guint16 vals[4]; guchar r, g, b; - GimpDndGetColorFunc get_color_func; + GimpDndDragColorFunc get_color_func; get_color_func = - (GimpDndGetColorFunc) gtk_object_get_data (GTK_OBJECT (widget), - "gimp_dnd_get_color_func"); + (GimpDndDragColorFunc) gtk_object_get_data (GTK_OBJECT (widget), + "gimp_dnd_get_color_func"); if (! get_color_func) return; - (* get_color_func) (data, &r, &g, &b); + (* get_color_func) (widget, &r, &g, &b, data); vals[0] = r * 0xff; vals[1] = g * 0xff; @@ -312,11 +312,11 @@ gimp_dnd_color_drop_handle (GtkWidget *widget, { guint16 *vals; guchar r, g, b; - GimpDndSetColorFunc set_color_func; + GimpDndDropColorFunc set_color_func; set_color_func = - (GimpDndSetColorFunc) gtk_object_get_data (GTK_OBJECT (widget), - "gimp_dnd_set_color_func"); + (GimpDndDropColorFunc) gtk_object_get_data (GTK_OBJECT (widget), + "gimp_dnd_set_color_func"); if (! set_color_func) return; @@ -337,13 +337,13 @@ gimp_dnd_color_drop_handle (GtkWidget *widget, g = vals[1] / 0xff; b = vals[2] / 0xff; - (* set_color_func) (data, r, g, b); + (* set_color_func) (widget, r, g, b, data); } void -gimp_dnd_color_source_set (GtkWidget *widget, - GimpDndGetColorFunc get_color_func, - gpointer data) +gimp_dnd_color_source_set (GtkWidget *widget, + GimpDndDragColorFunc get_color_func, + gpointer data) { gtk_signal_connect (GTK_OBJECT (widget), "drag_begin", GTK_SIGNAL_FUNC (gimp_dnd_color_drag_begin), @@ -360,9 +360,9 @@ gimp_dnd_color_source_set (GtkWidget *widget, } void -gimp_dnd_color_dest_set (GtkWidget *widget, - GimpDndSetColorFunc set_color_func, - gpointer data) +gimp_dnd_color_dest_set (GtkWidget *widget, + GimpDndDropColorFunc set_color_func, + gpointer data) { gtk_signal_connect (GTK_OBJECT (widget), "drag_data_received", GTK_SIGNAL_FUNC (gimp_dnd_color_drop_handle), diff --git a/app/widgets/gimpdnd.h b/app/widgets/gimpdnd.h index f9df2fd752..381382a294 100644 --- a/app/widgets/gimpdnd.h +++ b/app/widgets/gimpdnd.h @@ -82,15 +82,17 @@ void gimp_dnd_set_drawable_preview_icon (GtkWidget *widget, /* color dnd functions */ -typedef void (*GimpDndSetColorFunc) (gpointer, guchar, guchar, guchar); -typedef void (*GimpDndGetColorFunc) (gpointer, guchar *, guchar *, guchar *); +typedef void (*GimpDndDropColorFunc) (GtkWidget *, + guchar, guchar, guchar, gpointer); +typedef void (*GimpDndDragColorFunc) (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); -void gimp_dnd_color_source_set (GtkWidget *widget, - GimpDndGetColorFunc get_color_func, - gpointer data); +void gimp_dnd_color_source_set (GtkWidget *widget, + GimpDndDragColorFunc get_color_func, + gpointer data); -void gimp_dnd_color_dest_set (GtkWidget *widget, - GimpDndSetColorFunc set_color_func, - gpointer data); +void gimp_dnd_color_dest_set (GtkWidget *widget, + GimpDndDropColorFunc set_color_func, + gpointer data); #endif /* __GIMP_DND_H__ */ diff --git a/app/widgets/gimppaletteeditor.c b/app/widgets/gimppaletteeditor.c index f1ecbf5dc7..33f949926e 100644 --- a/app/widgets/gimppaletteeditor.c +++ b/app/widgets/gimppaletteeditor.c @@ -39,6 +39,7 @@ #include "datafiles.h" #include "devices.h" #include "errors.h" +#include "gimpdnd.h" #include "gimprc.h" #include "gradient_header.h" #include "gradient.h" @@ -132,6 +133,10 @@ static void palette_entries_save (PaletteEntriesP, char *); PaletteDialog * create_palette_dialog (gboolean vert); +static void palette_drag_color (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); +static void palette_drop_color (GtkWidget *, + guchar, guchar, guchar, gpointer); static void palette_draw_entries (PaletteDialog *palette, gint row_start, gint column_highlight); static void redraw_palette (PaletteDialog *palette); @@ -162,6 +167,14 @@ static ImportDialog *import_dialog = NULL; PaletteDialog *top_level_edit_palette = NULL; PaletteDialog *top_level_palette = NULL; +/* dnd stuff */ +static GtkTargetEntry color_palette_target_table[] = +{ + GIMP_TARGET_COLOR +}; +static guint n_color_palette_targets = (sizeof (color_palette_target_table) / + sizeof (color_palette_target_table[0])); + static void palette_entries_free (PaletteEntriesP entries) { @@ -443,7 +456,6 @@ palette_entry_free (PaletteEntryP entry) g_free (entry); } - void palette_free () { @@ -1511,9 +1523,19 @@ palette_color_area_events (GtkWidget *widget, g = palette->color->color[1]; b = palette->color->color[2]; if (active_color == FOREGROUND) - palette_set_foreground (r, g, b); + { + if (bevent->state & GDK_CONTROL_MASK) + palette_set_background (r, g, b); + else + palette_set_foreground (r, g, b); + } else if (active_color == BACKGROUND) - palette_set_background (r, g, b); + { + if (bevent->state & GDK_CONTROL_MASK) + palette_set_foreground (r, g, b); + else + palette_set_background (r, g, b); + } palette_draw_entries (palette, row, col); /* Update the active color name */ @@ -2063,10 +2085,25 @@ create_palette_dialog (gint vert) (GtkSignalFunc) palette_color_area_events, palette); - gtk_widget_show (palette_region); gtk_container_add (GTK_CONTAINER (alignment), palette_region); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolledwindow), alignment); + gtk_widget_show (palette_region); + + /* dnd stuff */ + gtk_drag_source_set (palette_region, + GDK_BUTTON1_MASK | GDK_BUTTON3_MASK, + color_palette_target_table, n_color_palette_targets, + GDK_ACTION_COPY | GDK_ACTION_MOVE); + gimp_dnd_color_source_set (palette_region, palette_drag_color, palette); + + gtk_drag_dest_set (alignment, + GTK_DEST_DEFAULT_HIGHLIGHT | + GTK_DEST_DEFAULT_MOTION | + GTK_DEST_DEFAULT_DROP, + color_palette_target_table, n_color_palette_targets, + GDK_ACTION_COPY); + gimp_dnd_color_dest_set (alignment, palette_drop_color, palette); /* The color name entry */ hbox2 = gtk_hbox_new (FALSE, 2); @@ -2227,6 +2264,77 @@ create_palette_dialog (gint vert) return palette; } +static void +palette_drag_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) +{ + PaletteDialog *palette; + + palette = (PaletteDialog *) data; + + if (palette && palette->entries) + { + *r = (guchar) palette->color->color[0]; + *g = (guchar) palette->color->color[1]; + *b = (guchar) palette->color->color[2]; + } +} + +static void +palette_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) +{ + PaletteDialog *palette; + gchar *name; + gchar *num_buf; + GSList *list; + gint pos = 0; + PaletteEntriesP p_entries = NULL; + + palette = (PaletteDialog *) data; + + if (palette && palette->entries) + { + name = g_strdup_printf ("#%2x%2x%2x", r, g, b); + + palette->color = + palette_add_entry (palette->entries, name, r, g, b); + + g_free (name); + + redraw_palette (palette); + + list = palette_entries_list; + + while (list) + { + p_entries = (PaletteEntriesP) list->data; + list = g_slist_next (list); + + /* to make sure we get something! */ + if (p_entries == NULL) + { + p_entries = default_palette_entries; + } + if (p_entries == palette->entries) + break; + pos++; + } + + num_buf = g_strdup_printf ("%d", p_entries->n_colors);; + palette_draw_small_preview (palette->gc, p_entries); + gtk_clist_set_text (GTK_CLIST (palette->clist), pos, 1, num_buf); + palette_select_set_text_all (palette->entries); + palette_select2_set_text_all (palette->entries); + } +} + static void import_dialog_select_grad_callback (GtkWidget *widget, gpointer data) diff --git a/app/widgets/gimptoolbox-color-area.c b/app/widgets/gimptoolbox-color-area.c index 9a7a6894a1..4e12e4e009 100644 --- a/app/widgets/gimptoolbox-color-area.c +++ b/app/widgets/gimptoolbox-color-area.c @@ -35,8 +35,10 @@ typedef enum } ColorAreaTarget; /* local function prototypes */ -static void color_area_set_color (gpointer, guchar, guchar, guchar); -static void color_area_get_color (gpointer, guchar *, guchar *, guchar *); +static void color_area_drop_color (GtkWidget *, + guchar, guchar, guchar, gpointer); +static void color_area_drag_color (GtkWidget *, + guchar *, guchar *, guchar *, gpointer); /* Global variables */ gint active_color = FOREGROUND; @@ -405,7 +407,7 @@ color_area_create (gint width, GDK_BUTTON1_MASK | GDK_BUTTON3_MASK, color_area_target_table, n_color_area_targets, GDK_ACTION_COPY | GDK_ACTION_MOVE); - gimp_dnd_color_source_set (color_area, color_area_get_color, NULL); + gimp_dnd_color_source_set (color_area, color_area_drag_color, NULL); gtk_drag_dest_set (color_area, GTK_DEST_DEFAULT_HIGHLIGHT | @@ -413,7 +415,7 @@ color_area_create (gint width, GTK_DEST_DEFAULT_DROP, color_area_target_table, n_color_area_targets, GDK_ACTION_COPY); - gimp_dnd_color_dest_set (color_area, color_area_set_color, NULL); + gimp_dnd_color_dest_set (color_area, color_area_drop_color, NULL); return color_area; } @@ -425,10 +427,11 @@ color_area_update () } static void -color_area_get_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_area_drag_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { if (active_color == FOREGROUND) palette_get_foreground (r, g, b); @@ -437,10 +440,11 @@ color_area_get_color (gpointer data, } static void -color_area_set_color (gpointer data, - guchar r, - guchar g, - guchar b) +color_area_drop_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { if (color_notebook_active && active_color == edit_color) diff --git a/libgimpwidgets/gimpcolorselect.c b/libgimpwidgets/gimpcolorselect.c index 0a2bad3d3e..06cd79c444 100644 --- a/libgimpwidgets/gimpcolorselect.c +++ b/libgimpwidgets/gimpcolorselect.c @@ -87,12 +87,15 @@ struct _ColorSelectFill static GtkWidget * color_select_widget_new (ColorSelect *, gint, gint, gint); -static void color_select_drag_new_color (gpointer, - guchar *, guchar *, guchar *); -static void color_select_drop_new_color (gpointer, - guchar, guchar, guchar); -static void color_select_drag_old_color (gpointer, - guchar *, guchar *, guchar *); +static void color_select_drag_new_color (GtkWidget *, + guchar *, guchar *, guchar *, + gpointer); +static void color_select_drop_new_color (GtkWidget *, + guchar, guchar, guchar, + gpointer); +static void color_select_drag_old_color (GtkWidget *, + guchar *, guchar *, guchar *, + gpointer); static void color_select_update (ColorSelect *, ColorSelectUpdateType); @@ -461,10 +464,11 @@ color_select_widget_new (ColorSelect *csp, } static void -color_select_drag_new_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_select_drag_new_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { ColorSelect *csp; @@ -476,10 +480,11 @@ color_select_drag_new_color (gpointer data, } static void -color_select_drop_new_color (gpointer data, - guchar r, - guchar g, - guchar b) +color_select_drop_new_color (GtkWidget *widget, + guchar r, + guchar g, + guchar b, + gpointer data) { ColorSelect *csp; @@ -500,10 +505,11 @@ color_select_drop_new_color (gpointer data, } static void -color_select_drag_old_color (gpointer data, - guchar *r, - guchar *g, - guchar *b) +color_select_drag_old_color (GtkWidget *widget, + guchar *r, + guchar *g, + guchar *b, + gpointer data) { ColorSelect *csp;