made dnd work for brushes and patterns.
--Sven
This commit is contained in:
100
app/devices.c
100
app/devices.c
@ -106,6 +106,10 @@ static void device_status_drag_color (GtkWidget *,
|
|||||||
guchar *, guchar *, guchar *, gpointer);
|
guchar *, guchar *, guchar *, gpointer);
|
||||||
static void device_status_drop_color (GtkWidget *,
|
static void device_status_drop_color (GtkWidget *,
|
||||||
guchar, guchar, guchar, gpointer);
|
guchar, guchar, guchar, gpointer);
|
||||||
|
static void device_status_drop_brush (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
static void device_status_drop_pattern (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
|
||||||
|
|
||||||
/* Global data */
|
/* Global data */
|
||||||
@ -287,7 +291,7 @@ devices_restore (void)
|
|||||||
if (device_info->brush)
|
if (device_info->brush)
|
||||||
select_brush (device_info->brush);
|
select_brush (device_info->brush);
|
||||||
if (device_info->pattern)
|
if (device_info->pattern)
|
||||||
select_pattern(device_info->pattern);
|
select_pattern (device_info->pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
suppress_update = FALSE;
|
suppress_update = FALSE;
|
||||||
@ -779,14 +783,14 @@ create_device_status (void)
|
|||||||
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
||||||
/* dnd stuff */
|
/* dnd stuff */
|
||||||
gtk_drag_source_set (deviceD->colors[i],
|
gtk_drag_source_set (deviceD->colors[i],
|
||||||
GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
|
GDK_BUTTON1_MASK,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
||||||
GUINT_TO_POINTER (device_info->device));
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_drag_dest_set (deviceD->colors[i],
|
gtk_drag_dest_set (deviceD->colors[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
@ -802,9 +806,12 @@ create_device_status (void)
|
|||||||
gtk_drag_dest_set (deviceD->brushes[i],
|
gtk_drag_dest_set (deviceD->brushes[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
brush_area_target_table, n_brush_area_targets,
|
brush_area_target_table, n_brush_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->brushes[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_brush),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
||||||
3, 4, i, i+1,
|
3, 4, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -814,10 +821,13 @@ create_device_status (void)
|
|||||||
FALSE, TRUE, TRUE);
|
FALSE, TRUE, TRUE);
|
||||||
gtk_drag_dest_set (deviceD->patterns[i],
|
gtk_drag_dest_set (deviceD->patterns[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
pattern_area_target_table, n_pattern_area_targets,
|
pattern_area_target_table, n_pattern_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->patterns[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_pattern),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
||||||
4, 5, i, i+1,
|
4, 5, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -1109,4 +1119,82 @@ device_status_drop_color (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_brush (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GimpBrush *brush;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
brush = GIMP_BRUSH (GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->brush = brush;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_brush (device_info->brush);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_pattern (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GPattern *pattern;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
pattern = (GPattern *)(GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->pattern = pattern;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_pattern (device_info->pattern);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -99,7 +99,6 @@ static gboolean gimp_context_preview_data_matches_type (GimpContextPreview *,
|
|||||||
gpointer);
|
gpointer);
|
||||||
static void gimp_context_preview_drag_begin (GtkWidget *,
|
static void gimp_context_preview_drag_begin (GtkWidget *,
|
||||||
GdkDragContext *);
|
GdkDragContext *);
|
||||||
|
|
||||||
static void gimp_context_preview_draw_brush (GimpContextPreview *);
|
static void gimp_context_preview_draw_brush (GimpContextPreview *);
|
||||||
static void gimp_context_preview_draw_brush_popup (GimpContextPreview *);
|
static void gimp_context_preview_draw_brush_popup (GimpContextPreview *);
|
||||||
static void gimp_context_preview_draw_brush_drag (GimpContextPreview *);
|
static void gimp_context_preview_draw_brush_drag (GimpContextPreview *);
|
||||||
@ -234,7 +233,7 @@ gimp_context_preview_update (GimpContextPreview *gcp,
|
|||||||
if (!gcp->data && gcp->drag_source) /* first call */
|
if (!gcp->data && gcp->drag_source) /* first call */
|
||||||
{
|
{
|
||||||
gtk_drag_source_set (GTK_WIDGET (gcp),
|
gtk_drag_source_set (GTK_WIDGET (gcp),
|
||||||
GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
|
GDK_BUTTON1_MASK,
|
||||||
context_preview_target_table[gcp->type], n_targets,
|
context_preview_target_table[gcp->type], n_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
}
|
}
|
||||||
@ -463,7 +462,6 @@ gimp_context_preview_drag_begin (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
gcp_drag_window = gtk_window_new (GTK_WINDOW_POPUP);
|
gcp_drag_window = gtk_window_new (GTK_WINDOW_POPUP);
|
||||||
gtk_window_set_policy (GTK_WINDOW (gcp_drag_window), FALSE, FALSE, TRUE);
|
gtk_window_set_policy (GTK_WINDOW (gcp_drag_window), FALSE, FALSE, TRUE);
|
||||||
gtk_widget_realize (gcp_drag_window);
|
|
||||||
gtk_signal_connect (GTK_OBJECT (gcp_drag_window), "destroy",
|
gtk_signal_connect (GTK_OBJECT (gcp_drag_window), "destroy",
|
||||||
gtk_widget_destroyed, &gcp_drag_window);
|
gtk_widget_destroyed, &gcp_drag_window);
|
||||||
|
|
||||||
@ -472,6 +470,7 @@ gimp_context_preview_drag_begin (GtkWidget *widget,
|
|||||||
gtk_widget_destroyed, &gcp_drag_preview);
|
gtk_widget_destroyed, &gcp_drag_preview);
|
||||||
gtk_container_add (GTK_CONTAINER (gcp_drag_window), gcp_drag_preview);
|
gtk_container_add (GTK_CONTAINER (gcp_drag_window), gcp_drag_preview);
|
||||||
gtk_widget_show (gcp_drag_preview);
|
gtk_widget_show (gcp_drag_preview);
|
||||||
|
gtk_widget_realize (gcp_drag_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (gcp->type)
|
switch (gcp->type)
|
||||||
|
@ -106,6 +106,10 @@ static void device_status_drag_color (GtkWidget *,
|
|||||||
guchar *, guchar *, guchar *, gpointer);
|
guchar *, guchar *, guchar *, gpointer);
|
||||||
static void device_status_drop_color (GtkWidget *,
|
static void device_status_drop_color (GtkWidget *,
|
||||||
guchar, guchar, guchar, gpointer);
|
guchar, guchar, guchar, gpointer);
|
||||||
|
static void device_status_drop_brush (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
static void device_status_drop_pattern (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
|
||||||
|
|
||||||
/* Global data */
|
/* Global data */
|
||||||
@ -287,7 +291,7 @@ devices_restore (void)
|
|||||||
if (device_info->brush)
|
if (device_info->brush)
|
||||||
select_brush (device_info->brush);
|
select_brush (device_info->brush);
|
||||||
if (device_info->pattern)
|
if (device_info->pattern)
|
||||||
select_pattern(device_info->pattern);
|
select_pattern (device_info->pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
suppress_update = FALSE;
|
suppress_update = FALSE;
|
||||||
@ -779,14 +783,14 @@ create_device_status (void)
|
|||||||
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
||||||
/* dnd stuff */
|
/* dnd stuff */
|
||||||
gtk_drag_source_set (deviceD->colors[i],
|
gtk_drag_source_set (deviceD->colors[i],
|
||||||
GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
|
GDK_BUTTON1_MASK,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
||||||
GUINT_TO_POINTER (device_info->device));
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_drag_dest_set (deviceD->colors[i],
|
gtk_drag_dest_set (deviceD->colors[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
@ -802,9 +806,12 @@ create_device_status (void)
|
|||||||
gtk_drag_dest_set (deviceD->brushes[i],
|
gtk_drag_dest_set (deviceD->brushes[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
brush_area_target_table, n_brush_area_targets,
|
brush_area_target_table, n_brush_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->brushes[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_brush),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
||||||
3, 4, i, i+1,
|
3, 4, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -814,10 +821,13 @@ create_device_status (void)
|
|||||||
FALSE, TRUE, TRUE);
|
FALSE, TRUE, TRUE);
|
||||||
gtk_drag_dest_set (deviceD->patterns[i],
|
gtk_drag_dest_set (deviceD->patterns[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
pattern_area_target_table, n_pattern_area_targets,
|
pattern_area_target_table, n_pattern_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->patterns[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_pattern),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
||||||
4, 5, i, i+1,
|
4, 5, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -1109,4 +1119,82 @@ device_status_drop_color (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_brush (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GimpBrush *brush;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
brush = GIMP_BRUSH (GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->brush = brush;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_brush (device_info->brush);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_pattern (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GPattern *pattern;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
pattern = (GPattern *)(GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->pattern = pattern;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_pattern (device_info->pattern);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "appenv.h"
|
#include "appenv.h"
|
||||||
#include "gimpbrushlist.h"
|
#include "gimpbrushlist.h"
|
||||||
#include "gimpcontextpreview.h"
|
#include "gimpcontextpreview.h"
|
||||||
|
#include "gimpdnd.h"
|
||||||
#include "gradient.h"
|
#include "gradient.h"
|
||||||
#include "gradient_header.h"
|
#include "gradient_header.h"
|
||||||
#include "indicator_area.h"
|
#include "indicator_area.h"
|
||||||
@ -37,11 +38,20 @@ static GtkWidget *brush_preview;
|
|||||||
static GtkWidget *pattern_preview;
|
static GtkWidget *pattern_preview;
|
||||||
static GtkWidget *gradient_preview;
|
static GtkWidget *gradient_preview;
|
||||||
|
|
||||||
|
/* dnd stuff */
|
||||||
|
static GtkTargetEntry brush_area_target_table[] =
|
||||||
|
{
|
||||||
|
GIMP_TARGET_BRUSH
|
||||||
|
};
|
||||||
|
static guint n_brush_area_targets = (sizeof (brush_area_target_table) /
|
||||||
|
sizeof (brush_area_target_table[0]));
|
||||||
|
static GtkTargetEntry pattern_area_target_table[] =
|
||||||
|
{
|
||||||
|
GIMP_TARGET_PATTERN
|
||||||
|
};
|
||||||
|
static guint n_pattern_area_targets = (sizeof (pattern_area_target_table) /
|
||||||
|
sizeof (pattern_area_target_table[0]));
|
||||||
|
|
||||||
/* The _area_update () functions should be called _preview_update(),
|
|
||||||
but I've left the old function names in for now since they are
|
|
||||||
called from devices.c
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
void
|
||||||
brush_area_update ()
|
brush_area_update ()
|
||||||
@ -67,6 +77,25 @@ brush_preview_clicked (GtkWidget *widget,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
brush_preview_drag_drop (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GimpBrush *brush;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
brush = GIMP_BRUSH (GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
|
||||||
|
select_brush (brush);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
pattern_area_update ()
|
pattern_area_update ()
|
||||||
{
|
{
|
||||||
@ -92,6 +121,25 @@ pattern_preview_clicked (GtkWidget *widget,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
pattern_preview_drag_drop (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GPattern *pattern;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
pattern = (GPattern *)(GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
|
||||||
|
select_pattern (pattern);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gradient_area_update ()
|
gradient_area_update ()
|
||||||
{
|
{
|
||||||
@ -123,8 +171,17 @@ indicator_area_create ()
|
|||||||
NULL);
|
NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (brush_preview), "clicked",
|
gtk_signal_connect (GTK_OBJECT (brush_preview), "clicked",
|
||||||
(GtkSignalFunc) brush_preview_clicked, NULL);
|
(GtkSignalFunc) brush_preview_clicked, NULL);
|
||||||
|
gtk_drag_dest_set (brush_preview,
|
||||||
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
|
GTK_DEST_DEFAULT_DROP,
|
||||||
|
brush_area_target_table, n_brush_area_targets,
|
||||||
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (brush_preview), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (brush_preview_drag_drop),
|
||||||
|
NULL);
|
||||||
gtk_table_attach_defaults (GTK_TABLE(indicator_table), brush_preview,
|
gtk_table_attach_defaults (GTK_TABLE(indicator_table), brush_preview,
|
||||||
0, 1, 0, 1);
|
0, 1, 0, 1);
|
||||||
|
|
||||||
pattern_preview = gimp_context_preview_new (GCP_PATTERN,
|
pattern_preview = gimp_context_preview_new (GCP_PATTERN,
|
||||||
CELL_SIZE, CELL_SIZE,
|
CELL_SIZE, CELL_SIZE,
|
||||||
@ -134,6 +191,15 @@ indicator_area_create ()
|
|||||||
NULL);
|
NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (pattern_preview), "clicked",
|
gtk_signal_connect (GTK_OBJECT (pattern_preview), "clicked",
|
||||||
(GtkSignalFunc) pattern_preview_clicked, NULL);
|
(GtkSignalFunc) pattern_preview_clicked, NULL);
|
||||||
|
gtk_drag_dest_set (pattern_preview,
|
||||||
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
|
GTK_DEST_DEFAULT_DROP,
|
||||||
|
pattern_area_target_table, n_pattern_area_targets,
|
||||||
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (pattern_preview), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (pattern_preview_drag_drop),
|
||||||
|
NULL);
|
||||||
gtk_table_attach_defaults (GTK_TABLE(indicator_table), pattern_preview,
|
gtk_table_attach_defaults (GTK_TABLE(indicator_table), pattern_preview,
|
||||||
1, 2, 0, 1);
|
1, 2, 0, 1);
|
||||||
|
|
||||||
|
@ -106,6 +106,10 @@ static void device_status_drag_color (GtkWidget *,
|
|||||||
guchar *, guchar *, guchar *, gpointer);
|
guchar *, guchar *, guchar *, gpointer);
|
||||||
static void device_status_drop_color (GtkWidget *,
|
static void device_status_drop_color (GtkWidget *,
|
||||||
guchar, guchar, guchar, gpointer);
|
guchar, guchar, guchar, gpointer);
|
||||||
|
static void device_status_drop_brush (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
static void device_status_drop_pattern (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
|
||||||
|
|
||||||
/* Global data */
|
/* Global data */
|
||||||
@ -287,7 +291,7 @@ devices_restore (void)
|
|||||||
if (device_info->brush)
|
if (device_info->brush)
|
||||||
select_brush (device_info->brush);
|
select_brush (device_info->brush);
|
||||||
if (device_info->pattern)
|
if (device_info->pattern)
|
||||||
select_pattern(device_info->pattern);
|
select_pattern (device_info->pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
suppress_update = FALSE;
|
suppress_update = FALSE;
|
||||||
@ -779,14 +783,14 @@ create_device_status (void)
|
|||||||
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
||||||
/* dnd stuff */
|
/* dnd stuff */
|
||||||
gtk_drag_source_set (deviceD->colors[i],
|
gtk_drag_source_set (deviceD->colors[i],
|
||||||
GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
|
GDK_BUTTON1_MASK,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
||||||
GUINT_TO_POINTER (device_info->device));
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_drag_dest_set (deviceD->colors[i],
|
gtk_drag_dest_set (deviceD->colors[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
@ -802,9 +806,12 @@ create_device_status (void)
|
|||||||
gtk_drag_dest_set (deviceD->brushes[i],
|
gtk_drag_dest_set (deviceD->brushes[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
brush_area_target_table, n_brush_area_targets,
|
brush_area_target_table, n_brush_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->brushes[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_brush),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
||||||
3, 4, i, i+1,
|
3, 4, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -814,10 +821,13 @@ create_device_status (void)
|
|||||||
FALSE, TRUE, TRUE);
|
FALSE, TRUE, TRUE);
|
||||||
gtk_drag_dest_set (deviceD->patterns[i],
|
gtk_drag_dest_set (deviceD->patterns[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
pattern_area_target_table, n_pattern_area_targets,
|
pattern_area_target_table, n_pattern_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->patterns[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_pattern),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
||||||
4, 5, i, i+1,
|
4, 5, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -1109,4 +1119,82 @@ device_status_drop_color (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_brush (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GimpBrush *brush;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
brush = GIMP_BRUSH (GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->brush = brush;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_brush (device_info->brush);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_pattern (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GPattern *pattern;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
pattern = (GPattern *)(GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->pattern = pattern;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_pattern (device_info->pattern);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "appenv.h"
|
#include "appenv.h"
|
||||||
#include "gimpbrushlist.h"
|
#include "gimpbrushlist.h"
|
||||||
#include "gimpcontextpreview.h"
|
#include "gimpcontextpreview.h"
|
||||||
|
#include "gimpdnd.h"
|
||||||
#include "gradient.h"
|
#include "gradient.h"
|
||||||
#include "gradient_header.h"
|
#include "gradient_header.h"
|
||||||
#include "indicator_area.h"
|
#include "indicator_area.h"
|
||||||
@ -37,11 +38,20 @@ static GtkWidget *brush_preview;
|
|||||||
static GtkWidget *pattern_preview;
|
static GtkWidget *pattern_preview;
|
||||||
static GtkWidget *gradient_preview;
|
static GtkWidget *gradient_preview;
|
||||||
|
|
||||||
|
/* dnd stuff */
|
||||||
|
static GtkTargetEntry brush_area_target_table[] =
|
||||||
|
{
|
||||||
|
GIMP_TARGET_BRUSH
|
||||||
|
};
|
||||||
|
static guint n_brush_area_targets = (sizeof (brush_area_target_table) /
|
||||||
|
sizeof (brush_area_target_table[0]));
|
||||||
|
static GtkTargetEntry pattern_area_target_table[] =
|
||||||
|
{
|
||||||
|
GIMP_TARGET_PATTERN
|
||||||
|
};
|
||||||
|
static guint n_pattern_area_targets = (sizeof (pattern_area_target_table) /
|
||||||
|
sizeof (pattern_area_target_table[0]));
|
||||||
|
|
||||||
/* The _area_update () functions should be called _preview_update(),
|
|
||||||
but I've left the old function names in for now since they are
|
|
||||||
called from devices.c
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
void
|
||||||
brush_area_update ()
|
brush_area_update ()
|
||||||
@ -67,6 +77,25 @@ brush_preview_clicked (GtkWidget *widget,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
brush_preview_drag_drop (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GimpBrush *brush;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
brush = GIMP_BRUSH (GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
|
||||||
|
select_brush (brush);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
pattern_area_update ()
|
pattern_area_update ()
|
||||||
{
|
{
|
||||||
@ -92,6 +121,25 @@ pattern_preview_clicked (GtkWidget *widget,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
pattern_preview_drag_drop (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GPattern *pattern;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
pattern = (GPattern *)(GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
|
||||||
|
select_pattern (pattern);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gradient_area_update ()
|
gradient_area_update ()
|
||||||
{
|
{
|
||||||
@ -123,8 +171,17 @@ indicator_area_create ()
|
|||||||
NULL);
|
NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (brush_preview), "clicked",
|
gtk_signal_connect (GTK_OBJECT (brush_preview), "clicked",
|
||||||
(GtkSignalFunc) brush_preview_clicked, NULL);
|
(GtkSignalFunc) brush_preview_clicked, NULL);
|
||||||
|
gtk_drag_dest_set (brush_preview,
|
||||||
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
|
GTK_DEST_DEFAULT_DROP,
|
||||||
|
brush_area_target_table, n_brush_area_targets,
|
||||||
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (brush_preview), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (brush_preview_drag_drop),
|
||||||
|
NULL);
|
||||||
gtk_table_attach_defaults (GTK_TABLE(indicator_table), brush_preview,
|
gtk_table_attach_defaults (GTK_TABLE(indicator_table), brush_preview,
|
||||||
0, 1, 0, 1);
|
0, 1, 0, 1);
|
||||||
|
|
||||||
pattern_preview = gimp_context_preview_new (GCP_PATTERN,
|
pattern_preview = gimp_context_preview_new (GCP_PATTERN,
|
||||||
CELL_SIZE, CELL_SIZE,
|
CELL_SIZE, CELL_SIZE,
|
||||||
@ -134,6 +191,15 @@ indicator_area_create ()
|
|||||||
NULL);
|
NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (pattern_preview), "clicked",
|
gtk_signal_connect (GTK_OBJECT (pattern_preview), "clicked",
|
||||||
(GtkSignalFunc) pattern_preview_clicked, NULL);
|
(GtkSignalFunc) pattern_preview_clicked, NULL);
|
||||||
|
gtk_drag_dest_set (pattern_preview,
|
||||||
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
|
GTK_DEST_DEFAULT_DROP,
|
||||||
|
pattern_area_target_table, n_pattern_area_targets,
|
||||||
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (pattern_preview), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (pattern_preview_drag_drop),
|
||||||
|
NULL);
|
||||||
gtk_table_attach_defaults (GTK_TABLE(indicator_table), pattern_preview,
|
gtk_table_attach_defaults (GTK_TABLE(indicator_table), pattern_preview,
|
||||||
1, 2, 0, 1);
|
1, 2, 0, 1);
|
||||||
|
|
||||||
|
@ -106,6 +106,10 @@ static void device_status_drag_color (GtkWidget *,
|
|||||||
guchar *, guchar *, guchar *, gpointer);
|
guchar *, guchar *, guchar *, gpointer);
|
||||||
static void device_status_drop_color (GtkWidget *,
|
static void device_status_drop_color (GtkWidget *,
|
||||||
guchar, guchar, guchar, gpointer);
|
guchar, guchar, guchar, gpointer);
|
||||||
|
static void device_status_drop_brush (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
static void device_status_drop_pattern (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
|
||||||
|
|
||||||
/* Global data */
|
/* Global data */
|
||||||
@ -287,7 +291,7 @@ devices_restore (void)
|
|||||||
if (device_info->brush)
|
if (device_info->brush)
|
||||||
select_brush (device_info->brush);
|
select_brush (device_info->brush);
|
||||||
if (device_info->pattern)
|
if (device_info->pattern)
|
||||||
select_pattern(device_info->pattern);
|
select_pattern (device_info->pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
suppress_update = FALSE;
|
suppress_update = FALSE;
|
||||||
@ -779,14 +783,14 @@ create_device_status (void)
|
|||||||
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
||||||
/* dnd stuff */
|
/* dnd stuff */
|
||||||
gtk_drag_source_set (deviceD->colors[i],
|
gtk_drag_source_set (deviceD->colors[i],
|
||||||
GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
|
GDK_BUTTON1_MASK,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
||||||
GUINT_TO_POINTER (device_info->device));
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_drag_dest_set (deviceD->colors[i],
|
gtk_drag_dest_set (deviceD->colors[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
@ -802,9 +806,12 @@ create_device_status (void)
|
|||||||
gtk_drag_dest_set (deviceD->brushes[i],
|
gtk_drag_dest_set (deviceD->brushes[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
brush_area_target_table, n_brush_area_targets,
|
brush_area_target_table, n_brush_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->brushes[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_brush),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
||||||
3, 4, i, i+1,
|
3, 4, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -814,10 +821,13 @@ create_device_status (void)
|
|||||||
FALSE, TRUE, TRUE);
|
FALSE, TRUE, TRUE);
|
||||||
gtk_drag_dest_set (deviceD->patterns[i],
|
gtk_drag_dest_set (deviceD->patterns[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
pattern_area_target_table, n_pattern_area_targets,
|
pattern_area_target_table, n_pattern_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->patterns[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_pattern),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
||||||
4, 5, i, i+1,
|
4, 5, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -1109,4 +1119,82 @@ device_status_drop_color (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_brush (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GimpBrush *brush;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
brush = GIMP_BRUSH (GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->brush = brush;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_brush (device_info->brush);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_pattern (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GPattern *pattern;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
pattern = (GPattern *)(GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->pattern = pattern;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_pattern (device_info->pattern);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -106,6 +106,10 @@ static void device_status_drag_color (GtkWidget *,
|
|||||||
guchar *, guchar *, guchar *, gpointer);
|
guchar *, guchar *, guchar *, gpointer);
|
||||||
static void device_status_drop_color (GtkWidget *,
|
static void device_status_drop_color (GtkWidget *,
|
||||||
guchar, guchar, guchar, gpointer);
|
guchar, guchar, guchar, gpointer);
|
||||||
|
static void device_status_drop_brush (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
static void device_status_drop_pattern (GtkWidget *,
|
||||||
|
GdkDragContext *, gint, gint, guint, gpointer);
|
||||||
|
|
||||||
|
|
||||||
/* Global data */
|
/* Global data */
|
||||||
@ -287,7 +291,7 @@ devices_restore (void)
|
|||||||
if (device_info->brush)
|
if (device_info->brush)
|
||||||
select_brush (device_info->brush);
|
select_brush (device_info->brush);
|
||||||
if (device_info->pattern)
|
if (device_info->pattern)
|
||||||
select_pattern(device_info->pattern);
|
select_pattern (device_info->pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
suppress_update = FALSE;
|
suppress_update = FALSE;
|
||||||
@ -779,14 +783,14 @@ create_device_status (void)
|
|||||||
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
gtk_preview_size (GTK_PREVIEW (deviceD->colors[i]), CELL_SIZE, CELL_SIZE);
|
||||||
/* dnd stuff */
|
/* dnd stuff */
|
||||||
gtk_drag_source_set (deviceD->colors[i],
|
gtk_drag_source_set (deviceD->colors[i],
|
||||||
GDK_BUTTON1_MASK | GDK_BUTTON3_MASK,
|
GDK_BUTTON1_MASK,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
gimp_dnd_color_source_set (deviceD->colors[i], device_status_drag_color,
|
||||||
GUINT_TO_POINTER (device_info->device));
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_drag_dest_set (deviceD->colors[i],
|
gtk_drag_dest_set (deviceD->colors[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
color_area_target_table, n_color_area_targets,
|
color_area_target_table, n_color_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
@ -802,9 +806,12 @@ create_device_status (void)
|
|||||||
gtk_drag_dest_set (deviceD->brushes[i],
|
gtk_drag_dest_set (deviceD->brushes[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
brush_area_target_table, n_brush_area_targets,
|
brush_area_target_table, n_brush_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->brushes[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_brush),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->brushes[i],
|
||||||
3, 4, i, i+1,
|
3, 4, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -814,10 +821,13 @@ create_device_status (void)
|
|||||||
FALSE, TRUE, TRUE);
|
FALSE, TRUE, TRUE);
|
||||||
gtk_drag_dest_set (deviceD->patterns[i],
|
gtk_drag_dest_set (deviceD->patterns[i],
|
||||||
GTK_DEST_DEFAULT_HIGHLIGHT |
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
GTK_DEST_DEFAULT_MOTION |
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
GTK_DEST_DEFAULT_DROP,
|
GTK_DEST_DEFAULT_DROP,
|
||||||
pattern_area_target_table, n_pattern_area_targets,
|
pattern_area_target_table, n_pattern_area_targets,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (deviceD->patterns[i]), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (device_status_drop_pattern),
|
||||||
|
GUINT_TO_POINTER (device_info->device));
|
||||||
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
gtk_table_attach (GTK_TABLE(deviceD->table), deviceD->patterns[i],
|
||||||
4, 5, i, i+1,
|
4, 5, i, i+1,
|
||||||
0, 0, 2, 2);
|
0, 0, 2, 2);
|
||||||
@ -1109,4 +1119,82 @@ device_status_drop_color (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_brush (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GimpBrush *brush;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
brush = GIMP_BRUSH (GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->brush = brush;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_brush (device_info->brush);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_status_drop_pattern (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GPattern *pattern;
|
||||||
|
guint32 deviceid;
|
||||||
|
GList *tmp_list;
|
||||||
|
DeviceInfo *device_info = NULL;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
pattern = (GPattern *)(GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
deviceid = GPOINTER_TO_UINT (data);
|
||||||
|
|
||||||
|
tmp_list = devices_info;
|
||||||
|
while (tmp_list)
|
||||||
|
{
|
||||||
|
device_info = (DeviceInfo *)tmp_list->data;
|
||||||
|
|
||||||
|
if (device_info->device == deviceid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
tmp_list = tmp_list->next;
|
||||||
|
}
|
||||||
|
if (device_info && device_info->is_present)
|
||||||
|
{
|
||||||
|
device_info->pattern = pattern;
|
||||||
|
if (device_info->device == current_device)
|
||||||
|
select_pattern (device_info->pattern);
|
||||||
|
else
|
||||||
|
device_status_update (device_info->device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "appenv.h"
|
#include "appenv.h"
|
||||||
#include "gimpbrushlist.h"
|
#include "gimpbrushlist.h"
|
||||||
#include "gimpcontextpreview.h"
|
#include "gimpcontextpreview.h"
|
||||||
|
#include "gimpdnd.h"
|
||||||
#include "gradient.h"
|
#include "gradient.h"
|
||||||
#include "gradient_header.h"
|
#include "gradient_header.h"
|
||||||
#include "indicator_area.h"
|
#include "indicator_area.h"
|
||||||
@ -37,11 +38,20 @@ static GtkWidget *brush_preview;
|
|||||||
static GtkWidget *pattern_preview;
|
static GtkWidget *pattern_preview;
|
||||||
static GtkWidget *gradient_preview;
|
static GtkWidget *gradient_preview;
|
||||||
|
|
||||||
|
/* dnd stuff */
|
||||||
|
static GtkTargetEntry brush_area_target_table[] =
|
||||||
|
{
|
||||||
|
GIMP_TARGET_BRUSH
|
||||||
|
};
|
||||||
|
static guint n_brush_area_targets = (sizeof (brush_area_target_table) /
|
||||||
|
sizeof (brush_area_target_table[0]));
|
||||||
|
static GtkTargetEntry pattern_area_target_table[] =
|
||||||
|
{
|
||||||
|
GIMP_TARGET_PATTERN
|
||||||
|
};
|
||||||
|
static guint n_pattern_area_targets = (sizeof (pattern_area_target_table) /
|
||||||
|
sizeof (pattern_area_target_table[0]));
|
||||||
|
|
||||||
/* The _area_update () functions should be called _preview_update(),
|
|
||||||
but I've left the old function names in for now since they are
|
|
||||||
called from devices.c
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
void
|
||||||
brush_area_update ()
|
brush_area_update ()
|
||||||
@ -67,6 +77,25 @@ brush_preview_clicked (GtkWidget *widget,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
brush_preview_drag_drop (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GimpBrush *brush;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
brush = GIMP_BRUSH (GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
|
||||||
|
select_brush (brush);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
pattern_area_update ()
|
pattern_area_update ()
|
||||||
{
|
{
|
||||||
@ -92,6 +121,25 @@ pattern_preview_clicked (GtkWidget *widget,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
pattern_preview_drag_drop (GtkWidget *widget,
|
||||||
|
GdkDragContext *context,
|
||||||
|
gint x,
|
||||||
|
gint y,
|
||||||
|
guint time,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GtkWidget *src;
|
||||||
|
GPattern *pattern;
|
||||||
|
|
||||||
|
src = gtk_drag_get_source_widget (context);
|
||||||
|
if (!GIMP_IS_CONTEXT_PREVIEW (src) || !GIMP_CONTEXT_PREVIEW (src)->data)
|
||||||
|
return;
|
||||||
|
pattern = (GPattern *)(GIMP_CONTEXT_PREVIEW (src)->data);
|
||||||
|
|
||||||
|
select_pattern (pattern);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gradient_area_update ()
|
gradient_area_update ()
|
||||||
{
|
{
|
||||||
@ -123,8 +171,17 @@ indicator_area_create ()
|
|||||||
NULL);
|
NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (brush_preview), "clicked",
|
gtk_signal_connect (GTK_OBJECT (brush_preview), "clicked",
|
||||||
(GtkSignalFunc) brush_preview_clicked, NULL);
|
(GtkSignalFunc) brush_preview_clicked, NULL);
|
||||||
|
gtk_drag_dest_set (brush_preview,
|
||||||
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
|
GTK_DEST_DEFAULT_DROP,
|
||||||
|
brush_area_target_table, n_brush_area_targets,
|
||||||
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (brush_preview), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (brush_preview_drag_drop),
|
||||||
|
NULL);
|
||||||
gtk_table_attach_defaults (GTK_TABLE(indicator_table), brush_preview,
|
gtk_table_attach_defaults (GTK_TABLE(indicator_table), brush_preview,
|
||||||
0, 1, 0, 1);
|
0, 1, 0, 1);
|
||||||
|
|
||||||
pattern_preview = gimp_context_preview_new (GCP_PATTERN,
|
pattern_preview = gimp_context_preview_new (GCP_PATTERN,
|
||||||
CELL_SIZE, CELL_SIZE,
|
CELL_SIZE, CELL_SIZE,
|
||||||
@ -134,6 +191,15 @@ indicator_area_create ()
|
|||||||
NULL);
|
NULL);
|
||||||
gtk_signal_connect (GTK_OBJECT (pattern_preview), "clicked",
|
gtk_signal_connect (GTK_OBJECT (pattern_preview), "clicked",
|
||||||
(GtkSignalFunc) pattern_preview_clicked, NULL);
|
(GtkSignalFunc) pattern_preview_clicked, NULL);
|
||||||
|
gtk_drag_dest_set (pattern_preview,
|
||||||
|
GTK_DEST_DEFAULT_HIGHLIGHT |
|
||||||
|
GTK_DEST_DEFAULT_MOTION |
|
||||||
|
GTK_DEST_DEFAULT_DROP,
|
||||||
|
pattern_area_target_table, n_pattern_area_targets,
|
||||||
|
GDK_ACTION_COPY);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (pattern_preview), "drag_drop",
|
||||||
|
GTK_SIGNAL_FUNC (pattern_preview_drag_drop),
|
||||||
|
NULL);
|
||||||
gtk_table_attach_defaults (GTK_TABLE(indicator_table), pattern_preview,
|
gtk_table_attach_defaults (GTK_TABLE(indicator_table), pattern_preview,
|
||||||
1, 2, 0, 1);
|
1, 2, 0, 1);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user