mirror of https://github.com/GNOME/gimp.git
app/gimpcontainergridview.[ch] app/gimpcontainerlistview.[ch] follow the
2001-02-09 Michael Natterer <mitch@gimp.org> * app/gimpcontainergridview.[ch] * app/gimpcontainerlistview.[ch] * app/gimpcontainerview.[ch]: follow the GimpPreview API change and take only "size" instead of "width" and "height" in the constructor. * app/gimpdnd.[ch]: first attempt to hack GtkType based DND which speaks in terms of GimpViewable instead of Brush, Pattern, ... Added functions to remove DND callbacks (used by the multi-views). * app/gimppreview.[ch]: new function gimp_preview_set_size_full(). * app/commands.c: updated the example dialogs to be DND aware. * app/gimpimage.c: fixed preview size calculation by ensuring a minimal width/height of 1 pixel. Reported by Dave Neary <dneary@eircom.net>
This commit is contained in:
parent
1823b4645b
commit
123ee5651e
20
ChangeLog
20
ChangeLog
|
@ -1,3 +1,23 @@
|
|||
2001-02-09 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/gimpcontainergridview.[ch]
|
||||
* app/gimpcontainerlistview.[ch]
|
||||
* app/gimpcontainerview.[ch]: follow the GimpPreview API change
|
||||
and take only "size" instead of "width" and "height" in the
|
||||
constructor.
|
||||
|
||||
* app/gimpdnd.[ch]: first attempt to hack GtkType based DND which
|
||||
speaks in terms of GimpViewable instead of Brush, Pattern, ...
|
||||
Added functions to remove DND callbacks (used by the multi-views).
|
||||
|
||||
* app/gimppreview.[ch]: new function gimp_preview_set_size_full().
|
||||
|
||||
* app/commands.c: updated the example dialogs to be DND aware.
|
||||
|
||||
* app/gimpimage.c: fixed preview size calculation by ensuring a
|
||||
minimal width/height of 1 pixel.
|
||||
Reported by Dave Neary <dneary@eircom.net>
|
||||
|
||||
2001-02-09 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/gimppreview.[ch]: moved the constructor-parameter-overkill
|
||||
|
|
|
@ -79,8 +79,10 @@
|
|||
/* for the example dialogs */
|
||||
#include "brushes.h"
|
||||
#include "patterns.h"
|
||||
#include "gimpcontainer.h"
|
||||
#include "gimpcontainerlistview.h"
|
||||
#include "gimpcontainergridview.h"
|
||||
#include "gimpdnd.h"
|
||||
#include "gimppreview.h"
|
||||
|
||||
|
||||
|
@ -1320,33 +1322,77 @@ dialogs_module_browser_cmd_callback (GtkWidget *widget,
|
|||
gtk_widget_show (module_browser);
|
||||
}
|
||||
|
||||
/***** Container View Test Dialogs *****/
|
||||
|
||||
static void
|
||||
container_view_scale_callback (GtkAdjustment *adj,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gimp_container_view_set_preview_size (view,
|
||||
ROUND (adj->value),
|
||||
ROUND (adj->value));
|
||||
gimp_container_view_set_preview_size (view, ROUND (adj->value));
|
||||
}
|
||||
|
||||
static void
|
||||
drop_viewable_callback (GtkWidget *widget,
|
||||
GimpViewable *viewable,
|
||||
gpointer data)
|
||||
{
|
||||
GimpContainerView *view;
|
||||
|
||||
view = GIMP_CONTAINER_VIEW (widget);
|
||||
|
||||
gimp_context_set_by_type (view->context,
|
||||
view->container->children_type,
|
||||
GIMP_OBJECT (viewable));
|
||||
}
|
||||
|
||||
static void
|
||||
brushes_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, global_brush_list);
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (GTK_WIDGET (view),
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
view->container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
view->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
patterns_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, global_pattern_list);
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (GTK_WIDGET (view),
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
view->container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
view->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
images_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, image_context);
|
||||
}
|
||||
|
||||
|
@ -1364,9 +1410,7 @@ container_view_new (gboolean list,
|
|||
gchar *title,
|
||||
GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gboolean multi)
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *view;
|
||||
|
@ -1377,107 +1421,168 @@ container_view_new (gboolean list,
|
|||
{
|
||||
view = gimp_container_list_view_new (container,
|
||||
context,
|
||||
preview_width,
|
||||
preview_height,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = gimp_container_grid_view_new (container,
|
||||
context,
|
||||
preview_width,
|
||||
preview_height,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
|
||||
if (! multi)
|
||||
{
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, TRUE, TRUE,
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, TRUE, TRUE,
|
||||
|
||||
NULL);
|
||||
NULL);
|
||||
|
||||
gtk_widget_hide (GTK_DIALOG (dialog)->action_area);
|
||||
/*
|
||||
gtk_widget_hide (GTK_WIDGET (g_list_nth_data (gtk_container_children (GTK_CONTAINER (GTK_BIN (dialog)->child)), 1)));
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
GtkWidget *preview;
|
||||
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"Images", images_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
|
||||
/*
|
||||
"NULL", null_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
*/
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, FALSE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_brush (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (brushes_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"brush_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_pattern (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (patterns_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
}
|
||||
gtk_widget_hide (GTK_DIALOG (dialog)->action_area);
|
||||
/*
|
||||
gtk_widget_hide (GTK_WIDGET (g_list_nth_data (gtk_container_children (GTK_CONTAINER (GTK_BIN (dialog)->child)), 1)));
|
||||
*/
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), view);
|
||||
gtk_widget_show (view);
|
||||
|
||||
if (multi)
|
||||
adjustment = gtk_adjustment_new (preview_width, 16, 64, 4, 4, 0);
|
||||
else
|
||||
adjustment = gtk_adjustment_new (preview_width, 16, 257, 16, 16, 16);
|
||||
adjustment = gtk_adjustment_new (preview_size, 16, 256, 16, 16, 0);
|
||||
scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scale,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (scale);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
|
||||
GTK_SIGNAL_FUNC (container_view_scale_callback),
|
||||
view);
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
container_multi_view_new (gboolean list,
|
||||
gchar *title,
|
||||
GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *view;
|
||||
GtkObject *adjustment;
|
||||
GtkWidget *scale;
|
||||
GtkWidget *preview;
|
||||
|
||||
if (list)
|
||||
{
|
||||
view = gimp_container_list_view_new (container,
|
||||
context,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = gimp_container_grid_view_new (container,
|
||||
context,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (view,
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
GIMP_CONTAINER_VIEW (view)->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"Images", images_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
|
||||
/*
|
||||
"NULL", null_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
*/
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, FALSE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_brush (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (brushes_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"brush_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_pattern (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (patterns_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
/*
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_image (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (images_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
*/
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), view);
|
||||
gtk_widget_show (view);
|
||||
|
||||
adjustment = gtk_adjustment_new (preview_size, 16, 64, 4, 4, 0);
|
||||
scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scale,
|
||||
FALSE, FALSE, 0);
|
||||
|
@ -1497,8 +1602,7 @@ dialogs_test_image_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Image List",
|
||||
image_context,
|
||||
gimp_context_get_user (),
|
||||
64, 64,
|
||||
FALSE);
|
||||
64);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1508,8 +1612,7 @@ dialogs_test_pattern_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Pattern List",
|
||||
global_pattern_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1519,8 +1622,7 @@ dialogs_test_brush_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Brush List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1530,8 +1632,7 @@ dialogs_test_image_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Image Grid",
|
||||
image_context,
|
||||
gimp_context_get_user (),
|
||||
64, 64,
|
||||
FALSE);
|
||||
64);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1541,8 +1642,7 @@ dialogs_test_pattern_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Pattern Grid",
|
||||
global_pattern_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1552,30 +1652,27 @@ dialogs_test_brush_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Brush Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32, 32,
|
||||
FALSE);
|
||||
32);
|
||||
}
|
||||
|
||||
void
|
||||
dialogs_test_multi_container_list_view_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
container_view_new (TRUE, "Multi List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
TRUE);
|
||||
container_multi_view_new (TRUE, "Multi List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
dialogs_test_multi_container_grid_view_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
container_view_new (FALSE, "Multi Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32, 32,
|
||||
TRUE);
|
||||
container_multi_view_new (FALSE, "Multi Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32);
|
||||
}
|
||||
|
||||
/***** Help *****/
|
||||
|
|
321
app/commands.c
321
app/commands.c
|
@ -79,8 +79,10 @@
|
|||
/* for the example dialogs */
|
||||
#include "brushes.h"
|
||||
#include "patterns.h"
|
||||
#include "gimpcontainer.h"
|
||||
#include "gimpcontainerlistview.h"
|
||||
#include "gimpcontainergridview.h"
|
||||
#include "gimpdnd.h"
|
||||
#include "gimppreview.h"
|
||||
|
||||
|
||||
|
@ -1320,33 +1322,77 @@ dialogs_module_browser_cmd_callback (GtkWidget *widget,
|
|||
gtk_widget_show (module_browser);
|
||||
}
|
||||
|
||||
/***** Container View Test Dialogs *****/
|
||||
|
||||
static void
|
||||
container_view_scale_callback (GtkAdjustment *adj,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gimp_container_view_set_preview_size (view,
|
||||
ROUND (adj->value),
|
||||
ROUND (adj->value));
|
||||
gimp_container_view_set_preview_size (view, ROUND (adj->value));
|
||||
}
|
||||
|
||||
static void
|
||||
drop_viewable_callback (GtkWidget *widget,
|
||||
GimpViewable *viewable,
|
||||
gpointer data)
|
||||
{
|
||||
GimpContainerView *view;
|
||||
|
||||
view = GIMP_CONTAINER_VIEW (widget);
|
||||
|
||||
gimp_context_set_by_type (view->context,
|
||||
view->container->children_type,
|
||||
GIMP_OBJECT (viewable));
|
||||
}
|
||||
|
||||
static void
|
||||
brushes_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, global_brush_list);
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (GTK_WIDGET (view),
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
view->container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
view->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
patterns_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, global_pattern_list);
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (GTK_WIDGET (view),
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
view->container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
view->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
images_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, image_context);
|
||||
}
|
||||
|
||||
|
@ -1364,9 +1410,7 @@ container_view_new (gboolean list,
|
|||
gchar *title,
|
||||
GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gboolean multi)
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *view;
|
||||
|
@ -1377,107 +1421,168 @@ container_view_new (gboolean list,
|
|||
{
|
||||
view = gimp_container_list_view_new (container,
|
||||
context,
|
||||
preview_width,
|
||||
preview_height,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = gimp_container_grid_view_new (container,
|
||||
context,
|
||||
preview_width,
|
||||
preview_height,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
|
||||
if (! multi)
|
||||
{
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, TRUE, TRUE,
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, TRUE, TRUE,
|
||||
|
||||
NULL);
|
||||
NULL);
|
||||
|
||||
gtk_widget_hide (GTK_DIALOG (dialog)->action_area);
|
||||
/*
|
||||
gtk_widget_hide (GTK_WIDGET (g_list_nth_data (gtk_container_children (GTK_CONTAINER (GTK_BIN (dialog)->child)), 1)));
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
GtkWidget *preview;
|
||||
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"Images", images_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
|
||||
/*
|
||||
"NULL", null_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
*/
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, FALSE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_brush (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (brushes_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"brush_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_pattern (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (patterns_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
}
|
||||
gtk_widget_hide (GTK_DIALOG (dialog)->action_area);
|
||||
/*
|
||||
gtk_widget_hide (GTK_WIDGET (g_list_nth_data (gtk_container_children (GTK_CONTAINER (GTK_BIN (dialog)->child)), 1)));
|
||||
*/
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), view);
|
||||
gtk_widget_show (view);
|
||||
|
||||
if (multi)
|
||||
adjustment = gtk_adjustment_new (preview_width, 16, 64, 4, 4, 0);
|
||||
else
|
||||
adjustment = gtk_adjustment_new (preview_width, 16, 257, 16, 16, 16);
|
||||
adjustment = gtk_adjustment_new (preview_size, 16, 256, 16, 16, 0);
|
||||
scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scale,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (scale);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
|
||||
GTK_SIGNAL_FUNC (container_view_scale_callback),
|
||||
view);
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
container_multi_view_new (gboolean list,
|
||||
gchar *title,
|
||||
GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *view;
|
||||
GtkObject *adjustment;
|
||||
GtkWidget *scale;
|
||||
GtkWidget *preview;
|
||||
|
||||
if (list)
|
||||
{
|
||||
view = gimp_container_list_view_new (container,
|
||||
context,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = gimp_container_grid_view_new (container,
|
||||
context,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (view,
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
GIMP_CONTAINER_VIEW (view)->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"Images", images_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
|
||||
/*
|
||||
"NULL", null_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
*/
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, FALSE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_brush (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (brushes_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"brush_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_pattern (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (patterns_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
/*
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_image (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (images_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
*/
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), view);
|
||||
gtk_widget_show (view);
|
||||
|
||||
adjustment = gtk_adjustment_new (preview_size, 16, 64, 4, 4, 0);
|
||||
scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scale,
|
||||
FALSE, FALSE, 0);
|
||||
|
@ -1497,8 +1602,7 @@ dialogs_test_image_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Image List",
|
||||
image_context,
|
||||
gimp_context_get_user (),
|
||||
64, 64,
|
||||
FALSE);
|
||||
64);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1508,8 +1612,7 @@ dialogs_test_pattern_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Pattern List",
|
||||
global_pattern_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1519,8 +1622,7 @@ dialogs_test_brush_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Brush List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1530,8 +1632,7 @@ dialogs_test_image_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Image Grid",
|
||||
image_context,
|
||||
gimp_context_get_user (),
|
||||
64, 64,
|
||||
FALSE);
|
||||
64);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1541,8 +1642,7 @@ dialogs_test_pattern_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Pattern Grid",
|
||||
global_pattern_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1552,30 +1652,27 @@ dialogs_test_brush_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Brush Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32, 32,
|
||||
FALSE);
|
||||
32);
|
||||
}
|
||||
|
||||
void
|
||||
dialogs_test_multi_container_list_view_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
container_view_new (TRUE, "Multi List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
TRUE);
|
||||
container_multi_view_new (TRUE, "Multi List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
dialogs_test_multi_container_grid_view_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
container_view_new (FALSE, "Multi Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32, 32,
|
||||
TRUE);
|
||||
container_multi_view_new (FALSE, "Multi Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32);
|
||||
}
|
||||
|
||||
/***** Help *****/
|
||||
|
|
|
@ -4050,6 +4050,9 @@ gimp_image_get_new_preview (GimpViewable *viewable,
|
|||
y = (gint) RINT (ratio * off_y);
|
||||
w = (gint) RINT (ratio * gimp_drawable_width (GIMP_DRAWABLE (layer)));
|
||||
h = (gint) RINT (ratio * gimp_drawable_height (GIMP_DRAWABLE (layer)));
|
||||
|
||||
w = MAX (1, width);
|
||||
h = MAX (1, height);
|
||||
|
||||
x1 = CLAMP (x, 0, width);
|
||||
y1 = CLAMP (y, 0, height);
|
||||
|
|
|
@ -4050,6 +4050,9 @@ gimp_image_get_new_preview (GimpViewable *viewable,
|
|||
y = (gint) RINT (ratio * off_y);
|
||||
w = (gint) RINT (ratio * gimp_drawable_width (GIMP_DRAWABLE (layer)));
|
||||
h = (gint) RINT (ratio * gimp_drawable_height (GIMP_DRAWABLE (layer)));
|
||||
|
||||
w = MAX (1, width);
|
||||
h = MAX (1, height);
|
||||
|
||||
x1 = CLAMP (x, 0, width);
|
||||
y1 = CLAMP (y, 0, height);
|
||||
|
|
|
@ -4050,6 +4050,9 @@ gimp_image_get_new_preview (GimpViewable *viewable,
|
|||
y = (gint) RINT (ratio * off_y);
|
||||
w = (gint) RINT (ratio * gimp_drawable_width (GIMP_DRAWABLE (layer)));
|
||||
h = (gint) RINT (ratio * gimp_drawable_height (GIMP_DRAWABLE (layer)));
|
||||
|
||||
w = MAX (1, width);
|
||||
h = MAX (1, height);
|
||||
|
||||
x1 = CLAMP (x, 0, width);
|
||||
y1 = CLAMP (y, 0, height);
|
||||
|
|
|
@ -4050,6 +4050,9 @@ gimp_image_get_new_preview (GimpViewable *viewable,
|
|||
y = (gint) RINT (ratio * off_y);
|
||||
w = (gint) RINT (ratio * gimp_drawable_width (GIMP_DRAWABLE (layer)));
|
||||
h = (gint) RINT (ratio * gimp_drawable_height (GIMP_DRAWABLE (layer)));
|
||||
|
||||
w = MAX (1, width);
|
||||
h = MAX (1, height);
|
||||
|
||||
x1 = CLAMP (x, 0, width);
|
||||
y1 = CLAMP (y, 0, height);
|
||||
|
|
|
@ -4050,6 +4050,9 @@ gimp_image_get_new_preview (GimpViewable *viewable,
|
|||
y = (gint) RINT (ratio * off_y);
|
||||
w = (gint) RINT (ratio * gimp_drawable_width (GIMP_DRAWABLE (layer)));
|
||||
h = (gint) RINT (ratio * gimp_drawable_height (GIMP_DRAWABLE (layer)));
|
||||
|
||||
w = MAX (1, width);
|
||||
h = MAX (1, height);
|
||||
|
||||
x1 = CLAMP (x, 0, width);
|
||||
y1 = CLAMP (y, 0, height);
|
||||
|
|
|
@ -4050,6 +4050,9 @@ gimp_image_get_new_preview (GimpViewable *viewable,
|
|||
y = (gint) RINT (ratio * off_y);
|
||||
w = (gint) RINT (ratio * gimp_drawable_width (GIMP_DRAWABLE (layer)));
|
||||
h = (gint) RINT (ratio * gimp_drawable_height (GIMP_DRAWABLE (layer)));
|
||||
|
||||
w = MAX (1, width);
|
||||
h = MAX (1, height);
|
||||
|
||||
x1 = CLAMP (x, 0, width);
|
||||
y1 = CLAMP (y, 0, height);
|
||||
|
|
|
@ -4050,6 +4050,9 @@ gimp_image_get_new_preview (GimpViewable *viewable,
|
|||
y = (gint) RINT (ratio * off_y);
|
||||
w = (gint) RINT (ratio * gimp_drawable_width (GIMP_DRAWABLE (layer)));
|
||||
h = (gint) RINT (ratio * gimp_drawable_height (GIMP_DRAWABLE (layer)));
|
||||
|
||||
w = MAX (1, width);
|
||||
h = MAX (1, height);
|
||||
|
||||
x1 = CLAMP (x, 0, width);
|
||||
y1 = CLAMP (y, 0, height);
|
||||
|
|
|
@ -162,8 +162,7 @@ gimp_container_grid_view_destroy (GtkObject *object)
|
|||
GtkWidget *
|
||||
gimp_container_grid_view_new (GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gint preview_size,
|
||||
gint min_items_x,
|
||||
gint min_items_y)
|
||||
{
|
||||
|
@ -174,8 +173,7 @@ gimp_container_grid_view_new (GimpContainer *container,
|
|||
g_return_val_if_fail (container != NULL, NULL);
|
||||
g_return_val_if_fail (GIMP_IS_CONTAINER (container), NULL);
|
||||
g_return_val_if_fail (! context || GIMP_IS_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (preview_width > 0 && preview_width <= 64, NULL);
|
||||
g_return_val_if_fail (preview_height > 0 && preview_height <= 64, NULL);
|
||||
g_return_val_if_fail (preview_size > 0 && preview_size <= 64, NULL);
|
||||
g_return_val_if_fail (min_items_x > 0 && min_items_x <= 64, NULL);
|
||||
g_return_val_if_fail (min_items_y > 0 && min_items_y <= 64, NULL);
|
||||
|
||||
|
@ -183,8 +181,7 @@ gimp_container_grid_view_new (GimpContainer *container,
|
|||
|
||||
view = GIMP_CONTAINER_VIEW (grid_view);
|
||||
|
||||
view->preview_width = preview_width;
|
||||
view->preview_height = preview_height;
|
||||
view->preview_size = preview_size;
|
||||
|
||||
window_border =
|
||||
GTK_SCROLLED_WINDOW (grid_view->scrolled_win)->vscrollbar->requisition.width +
|
||||
|
@ -192,8 +189,8 @@ gimp_container_grid_view_new (GimpContainer *container,
|
|||
grid_view->scrolled_win->style->klass->xthickness * 4;
|
||||
|
||||
gtk_widget_set_usize (grid_view->scrolled_win,
|
||||
(preview_width + 2) * min_items_x + window_border,
|
||||
(preview_height + 2) * min_items_y + window_border);
|
||||
(preview_size + 2) * min_items_x + window_border,
|
||||
(preview_size + 2) * min_items_y + window_border);
|
||||
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
|
@ -213,8 +210,8 @@ gimp_container_grid_view_insert_item (GimpContainerView *view,
|
|||
grid_view = GIMP_CONTAINER_GRID_VIEW (view);
|
||||
|
||||
preview = gimp_preview_new_full (viewable,
|
||||
view->preview_width,
|
||||
view->preview_height,
|
||||
view->preview_size,
|
||||
view->preview_size,
|
||||
1,
|
||||
FALSE, TRUE, TRUE);
|
||||
|
||||
|
@ -302,9 +299,7 @@ gimp_container_grid_view_set_preview_size (GimpContainerView *view)
|
|||
|
||||
preview = GIMP_PREVIEW (child->widget);
|
||||
|
||||
gimp_preview_set_size (preview,
|
||||
view->preview_width,
|
||||
view->preview_height);
|
||||
gimp_preview_set_size (preview, view->preview_size);
|
||||
}
|
||||
|
||||
gtk_widget_queue_resize (grid_view->wrap_box);
|
||||
|
|
|
@ -51,8 +51,7 @@ struct _GimpContainerGridViewClass
|
|||
GtkType gimp_container_grid_view_get_type (void);
|
||||
GtkWidget * gimp_container_grid_view_new (GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gint preview_size,
|
||||
gint min_items_x,
|
||||
gint min_items_y);
|
||||
|
||||
|
|
|
@ -155,8 +155,7 @@ gimp_container_list_view_destroy (GtkObject *object)
|
|||
GtkWidget *
|
||||
gimp_container_list_view_new (GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gint preview_size,
|
||||
gint min_items_x,
|
||||
gint min_items_y)
|
||||
{
|
||||
|
@ -167,8 +166,7 @@ gimp_container_list_view_new (GimpContainer *container,
|
|||
g_return_val_if_fail (container != NULL, NULL);
|
||||
g_return_val_if_fail (GIMP_IS_CONTAINER (container), NULL);
|
||||
g_return_val_if_fail (! context || GIMP_IS_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (preview_width > 0 && preview_width <= 64, NULL);
|
||||
g_return_val_if_fail (preview_height > 0 && preview_height <= 64, NULL);
|
||||
g_return_val_if_fail (preview_size > 0 && preview_size <= 64, NULL);
|
||||
g_return_val_if_fail (min_items_x > 0 && min_items_x <= 64, NULL);
|
||||
g_return_val_if_fail (min_items_y > 0 && min_items_y <= 64, NULL);
|
||||
|
||||
|
@ -176,8 +174,7 @@ gimp_container_list_view_new (GimpContainer *container,
|
|||
|
||||
view = GIMP_CONTAINER_VIEW (list_view);
|
||||
|
||||
view->preview_width = preview_width;
|
||||
view->preview_height = preview_height;
|
||||
view->preview_size = preview_size;
|
||||
|
||||
window_border =
|
||||
GTK_SCROLLED_WINDOW (list_view->scrolled_win)->vscrollbar->requisition.width +
|
||||
|
@ -185,8 +182,8 @@ gimp_container_list_view_new (GimpContainer *container,
|
|||
list_view->scrolled_win->style->klass->xthickness * 4;
|
||||
|
||||
gtk_widget_set_usize (list_view->gtk_list->parent,
|
||||
(preview_width + 2) * min_items_x + window_border,
|
||||
(preview_height + 2) * min_items_y + window_border);
|
||||
(preview_size + 2) * min_items_x + window_border,
|
||||
(preview_size + 2) * min_items_y + window_border);
|
||||
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
|
@ -222,11 +219,7 @@ gimp_container_list_view_insert_item (GimpContainerView *view,
|
|||
gtk_container_add (GTK_CONTAINER (list_item), hbox);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
preview = gimp_preview_new_full (viewable,
|
||||
view->preview_width,
|
||||
view->preview_height,
|
||||
1,
|
||||
FALSE, FALSE, FALSE);
|
||||
preview = gimp_preview_new (viewable, view->preview_size, 1);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), preview, FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
|
@ -355,9 +348,7 @@ gimp_container_list_view_set_preview_size (GimpContainerView *view)
|
|||
|
||||
preview = gtk_object_get_data (GTK_OBJECT (list->data), "preview");
|
||||
|
||||
gimp_preview_set_size (preview,
|
||||
view->preview_width,
|
||||
view->preview_height);
|
||||
gimp_preview_set_size (preview, view->preview_size);
|
||||
}
|
||||
|
||||
gtk_widget_queue_resize (list_view->gtk_list);
|
||||
|
|
|
@ -49,8 +49,7 @@ struct _GimpContainerListViewClass
|
|||
GtkType gimp_container_list_view_get_type (void);
|
||||
GtkWidget * gimp_container_list_view_new (GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gint preview_size,
|
||||
gint min_items_x,
|
||||
gint min_items_y);
|
||||
|
||||
|
|
|
@ -170,8 +170,7 @@ gimp_container_view_init (GimpContainerView *view)
|
|||
|
||||
view->hash_table = g_hash_table_new (g_direct_hash, g_direct_equal);
|
||||
|
||||
view->preview_width = 0;
|
||||
view->preview_height = 0;
|
||||
view->preview_size = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -307,16 +306,13 @@ gimp_container_view_set_context (GimpContainerView *view,
|
|||
|
||||
void
|
||||
gimp_container_view_set_preview_size (GimpContainerView *view,
|
||||
gint width,
|
||||
gint height)
|
||||
gint preview_size)
|
||||
{
|
||||
g_return_if_fail (view != NULL);
|
||||
g_return_if_fail (GIMP_IS_CONTAINER_VIEW (view));
|
||||
g_return_if_fail (width > 0 && width <= 256 /* FIXME: 64 */);
|
||||
g_return_if_fail (height > 0 && height <= 256 /* FIXME: 64 */);
|
||||
g_return_if_fail (preview_size > 0 && preview_size <= 256 /* FIXME: 64 */);
|
||||
|
||||
view->preview_width = width;
|
||||
view->preview_height = height;
|
||||
view->preview_size = preview_size;
|
||||
|
||||
gtk_signal_emit (GTK_OBJECT (view), view_signals[SET_PREVIEW_SIZE]);
|
||||
}
|
||||
|
|
|
@ -42,8 +42,7 @@ struct _GimpContainerView
|
|||
|
||||
GHashTable *hash_table;
|
||||
|
||||
gint preview_width;
|
||||
gint preview_height;
|
||||
gint preview_size;
|
||||
};
|
||||
|
||||
struct _GimpContainerViewClass
|
||||
|
@ -71,8 +70,7 @@ void gimp_container_view_set_container (GimpContainerView *view,
|
|||
void gimp_container_view_set_context (GimpContainerView *view,
|
||||
GimpContext *context);
|
||||
void gimp_container_view_set_preview_size (GimpContainerView *view,
|
||||
gint width,
|
||||
gint height);
|
||||
gint preview_size);
|
||||
void gimp_container_view_select_item (GimpContainerView *view,
|
||||
GimpViewable *viewable);
|
||||
|
||||
|
|
151
app/gimpdnd.c
151
app/gimpdnd.c
|
@ -488,6 +488,27 @@ gimp_dnd_data_dest_set (GimpDndDataType data_type,
|
|||
set_data_data);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_dnd_data_dest_unset (GimpDndDataType data_type,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
gboolean drop_connected;
|
||||
|
||||
drop_connected =
|
||||
(gboolean) gtk_object_get_data (GTK_OBJECT (widget),
|
||||
"gimp_dnd_drop_connected");
|
||||
|
||||
if (! drop_connected)
|
||||
return;
|
||||
|
||||
gtk_object_set_data (GTK_OBJECT (widget),
|
||||
dnd_data_defs[data_type].set_data_func_name,
|
||||
NULL);
|
||||
gtk_object_set_data (GTK_OBJECT (widget),
|
||||
dnd_data_defs[data_type].set_data_data_name,
|
||||
NULL);
|
||||
}
|
||||
|
||||
/*************************/
|
||||
/* color dnd functions */
|
||||
/*************************/
|
||||
|
@ -587,6 +608,105 @@ gimp_dnd_color_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_color_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_COLOR, widget);
|
||||
}
|
||||
|
||||
/*********************************************/
|
||||
/* GimpViewable (by GtkType) dnd functions */
|
||||
/*********************************************/
|
||||
|
||||
void
|
||||
gimp_gtk_drag_dest_set_by_type (GtkWidget *widget,
|
||||
GtkDestDefaults flags,
|
||||
GtkType type,
|
||||
GdkDragAction actions)
|
||||
{
|
||||
const GtkTargetEntry *target_table = NULL;
|
||||
guint n_targets = 0;
|
||||
|
||||
static const GtkTargetEntry brush_target_table[] =
|
||||
{
|
||||
GIMP_TARGET_BRUSH
|
||||
};
|
||||
static const guint brush_n_targets = (sizeof (brush_target_table) /
|
||||
sizeof (brush_target_table[0]));
|
||||
|
||||
static const GtkTargetEntry pattern_target_table[] =
|
||||
{
|
||||
GIMP_TARGET_PATTERN
|
||||
};
|
||||
static const guint pattern_n_targets = (sizeof (pattern_target_table) /
|
||||
sizeof (pattern_target_table[0]));
|
||||
|
||||
if (type == GIMP_TYPE_BRUSH)
|
||||
{
|
||||
target_table = brush_target_table;
|
||||
n_targets = brush_n_targets;
|
||||
}
|
||||
else if (type == GIMP_TYPE_PATTERN)
|
||||
{
|
||||
target_table = pattern_target_table;
|
||||
n_targets = pattern_n_targets;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_warning ("%s(): unsupported GtkType", G_GNUC_FUNCTION);
|
||||
}
|
||||
|
||||
if (target_table && n_targets)
|
||||
{
|
||||
gtk_drag_dest_set (widget, flags,
|
||||
target_table,
|
||||
n_targets,
|
||||
actions);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_viewable_dest_set (GtkWidget *widget,
|
||||
GtkType type,
|
||||
GimpDndDropViewableFunc set_viewable_func,
|
||||
gpointer data)
|
||||
{
|
||||
if (type == GIMP_TYPE_BRUSH)
|
||||
{
|
||||
gimp_dnd_brush_dest_set (widget,
|
||||
(GimpDndDropBrushFunc) set_viewable_func,
|
||||
data);
|
||||
}
|
||||
else if (type == GIMP_TYPE_PATTERN)
|
||||
{
|
||||
gimp_dnd_pattern_dest_set (widget,
|
||||
(GimpDndDropPatternFunc) set_viewable_func,
|
||||
data);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_warning ("%s(): unsupported GtkType", G_GNUC_FUNCTION);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_viewable_dest_unset (GtkWidget *widget,
|
||||
GtkType type)
|
||||
{
|
||||
if (type == GIMP_TYPE_BRUSH)
|
||||
{
|
||||
gimp_dnd_brush_dest_unset (widget);
|
||||
}
|
||||
else if (type == GIMP_TYPE_PATTERN)
|
||||
{
|
||||
gimp_dnd_pattern_dest_unset (widget);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_warning ("%s(): unsupported GtkType", G_GNUC_FUNCTION);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************/
|
||||
/* brush dnd functions */
|
||||
/*************************/
|
||||
|
@ -684,6 +804,12 @@ gimp_dnd_brush_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_brush_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_BRUSH, widget);
|
||||
}
|
||||
|
||||
/***************************/
|
||||
/* pattern dnd functions */
|
||||
/***************************/
|
||||
|
@ -781,6 +907,12 @@ gimp_dnd_pattern_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_pattern_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_PATTERN, widget);
|
||||
}
|
||||
|
||||
/****************************/
|
||||
/* gradient dnd functions */
|
||||
/****************************/
|
||||
|
@ -882,6 +1014,12 @@ gimp_dnd_gradient_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_gradient_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_GRADIENT, widget);
|
||||
}
|
||||
|
||||
/***************************/
|
||||
/* palette dnd functions */
|
||||
/***************************/
|
||||
|
@ -934,6 +1072,12 @@ gimp_dnd_palette_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_palette_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_PALETTE, widget);
|
||||
}
|
||||
|
||||
/************************/
|
||||
/* tool dnd functions */
|
||||
/************************/
|
||||
|
@ -1029,6 +1173,12 @@ gimp_dnd_tool_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_tool_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_TOOL, widget);
|
||||
}
|
||||
|
||||
/****************************/
|
||||
/* drawable dnd functions */
|
||||
/****************************/
|
||||
|
@ -1265,4 +1415,3 @@ gimp_dnd_file_dest_set (GtkWidget *widget)
|
|||
GTK_SIGNAL_FUNC (gimp_dnd_file_drag_data_received),
|
||||
widget);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,14 @@ enum
|
|||
GIMP_DND_TYPE_TOOL
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GIMP_DROP_NONE,
|
||||
GIMP_DROP_ABOVE,
|
||||
GIMP_DROP_BELOW
|
||||
} GimpDropType;
|
||||
|
||||
|
||||
#define GIMP_TARGET_URI_LIST \
|
||||
{ "text/uri-list", 0, GIMP_DND_TYPE_URI_LIST }
|
||||
|
||||
|
@ -84,12 +92,6 @@ enum
|
|||
#define GIMP_TARGET_TOOL \
|
||||
{ "GIMP_TOOL", GTK_TARGET_SAME_APP, GIMP_DND_TYPE_TOOL }
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GIMP_DROP_NONE,
|
||||
GIMP_DROP_ABOVE,
|
||||
GIMP_DROP_BELOW
|
||||
} GimpDropType;
|
||||
|
||||
/* color dnd functions */
|
||||
|
||||
|
@ -106,6 +108,26 @@ void gimp_dnd_color_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_color_dest_set (GtkWidget *widget,
|
||||
GimpDndDropColorFunc set_color_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_color_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* GimpViewable (by GtkType) dnd functions */
|
||||
|
||||
typedef void (* GimpDndDropViewableFunc) (GtkWidget *widget,
|
||||
GimpViewable *viewable,
|
||||
gpointer data);
|
||||
|
||||
void gimp_gtk_drag_dest_set_by_type (GtkWidget *widget,
|
||||
GtkDestDefaults flags,
|
||||
GtkType type,
|
||||
GdkDragAction actions);
|
||||
void gimp_dnd_viewable_dest_set (GtkWidget *widget,
|
||||
GtkType type,
|
||||
GimpDndDropViewableFunc set_viewable_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_viewable_dest_unset (GtkWidget *widget,
|
||||
GtkType type);
|
||||
|
||||
|
||||
/* brush dnd functions */
|
||||
|
||||
|
@ -121,6 +143,8 @@ void gimp_dnd_brush_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_brush_dest_set (GtkWidget *widget,
|
||||
GimpDndDropBrushFunc set_brush_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_brush_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* pattern dnd functions */
|
||||
|
||||
|
@ -136,6 +160,8 @@ void gimp_dnd_pattern_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_pattern_dest_set (GtkWidget *widget,
|
||||
GimpDndDropPatternFunc set_pattern_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_pattern_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* gradient dnd functions */
|
||||
|
||||
|
@ -151,6 +177,8 @@ void gimp_dnd_gradient_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_gradient_dest_set (GtkWidget *widget,
|
||||
GimpDndDropGradientFunc set_gradient_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_gradient_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* palette dnd functions */
|
||||
|
||||
|
@ -166,6 +194,8 @@ void gimp_dnd_palette_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_palette_dest_set (GtkWidget *widget,
|
||||
GimpDndDropPaletteFunc set_palette_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_palette_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* tool dnd functions */
|
||||
|
||||
|
@ -181,6 +211,8 @@ void gimp_dnd_tool_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_tool_dest_set (GtkWidget *widget,
|
||||
GimpDndDropToolFunc set_tool_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_tool_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* drawable dnd functions */
|
||||
|
||||
|
@ -188,8 +220,10 @@ void gimp_dnd_set_drawable_preview_icon (GtkWidget *widget,
|
|||
GdkDragContext *context,
|
||||
GimpDrawable *drawable);
|
||||
|
||||
|
||||
/* file / url dnd functions */
|
||||
|
||||
void gimp_dnd_file_dest_set (GtkWidget *widget);
|
||||
|
||||
|
||||
#endif /* __GIMP_DND_H__ */
|
||||
|
|
|
@ -4050,6 +4050,9 @@ gimp_image_get_new_preview (GimpViewable *viewable,
|
|||
y = (gint) RINT (ratio * off_y);
|
||||
w = (gint) RINT (ratio * gimp_drawable_width (GIMP_DRAWABLE (layer)));
|
||||
h = (gint) RINT (ratio * gimp_drawable_height (GIMP_DRAWABLE (layer)));
|
||||
|
||||
w = MAX (1, width);
|
||||
h = MAX (1, height);
|
||||
|
||||
x1 = CLAMP (x, 0, width);
|
||||
y1 = CLAMP (y, 0, height);
|
||||
|
|
|
@ -309,6 +309,41 @@ gimp_preview_new_full (GimpViewable *viewable,
|
|||
return GTK_WIDGET (preview);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint preview_size)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (preview_size > 0 && preview_size <= 256);
|
||||
|
||||
gimp_preview_set_size_full (preview,
|
||||
preview_size,
|
||||
preview_size,
|
||||
preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
g_return_if_fail (border_width >= 0 && border_width <= 16);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
preview->border_width = border_width;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable)
|
||||
|
@ -354,24 +389,6 @@ gimp_preview_set_context (GimpPreview *preview,
|
|||
g_return_if_fail (! context || GIMP_IS_CONTEXT (context));
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
static gint
|
||||
gimp_preview_button_press_event (GtkWidget *widget,
|
||||
GdkEventButton *bevent)
|
||||
|
@ -397,6 +414,10 @@ gimp_preview_button_press_event (GtkWidget *widget,
|
|||
bevent->y);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -432,6 +453,10 @@ gimp_preview_button_release_event (GtkWidget *widget,
|
|||
gtk_signal_emit (GTK_OBJECT (widget), preview_signals[CLICKED]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -78,10 +78,10 @@ struct _GimpPreviewClass
|
|||
|
||||
|
||||
GtkType gimp_preview_get_type (void);
|
||||
|
||||
GtkWidget * gimp_preview_new (GimpViewable *viewable,
|
||||
gint size,
|
||||
gint border_width);
|
||||
|
||||
GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
||||
gint width,
|
||||
gint height,
|
||||
|
@ -90,13 +90,17 @@ GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
|||
gboolean clickable,
|
||||
gboolean show_popup);
|
||||
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint size);
|
||||
void gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width);
|
||||
|
||||
void gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable);
|
||||
void gimp_preview_set_context (GimpPreview *preview,
|
||||
GimpContext *context);
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
|
||||
/* private */
|
||||
|
|
|
@ -79,8 +79,10 @@
|
|||
/* for the example dialogs */
|
||||
#include "brushes.h"
|
||||
#include "patterns.h"
|
||||
#include "gimpcontainer.h"
|
||||
#include "gimpcontainerlistview.h"
|
||||
#include "gimpcontainergridview.h"
|
||||
#include "gimpdnd.h"
|
||||
#include "gimppreview.h"
|
||||
|
||||
|
||||
|
@ -1320,33 +1322,77 @@ dialogs_module_browser_cmd_callback (GtkWidget *widget,
|
|||
gtk_widget_show (module_browser);
|
||||
}
|
||||
|
||||
/***** Container View Test Dialogs *****/
|
||||
|
||||
static void
|
||||
container_view_scale_callback (GtkAdjustment *adj,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gimp_container_view_set_preview_size (view,
|
||||
ROUND (adj->value),
|
||||
ROUND (adj->value));
|
||||
gimp_container_view_set_preview_size (view, ROUND (adj->value));
|
||||
}
|
||||
|
||||
static void
|
||||
drop_viewable_callback (GtkWidget *widget,
|
||||
GimpViewable *viewable,
|
||||
gpointer data)
|
||||
{
|
||||
GimpContainerView *view;
|
||||
|
||||
view = GIMP_CONTAINER_VIEW (widget);
|
||||
|
||||
gimp_context_set_by_type (view->context,
|
||||
view->container->children_type,
|
||||
GIMP_OBJECT (viewable));
|
||||
}
|
||||
|
||||
static void
|
||||
brushes_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, global_brush_list);
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (GTK_WIDGET (view),
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
view->container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
view->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
patterns_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, global_pattern_list);
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (GTK_WIDGET (view),
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
view->container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
view->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
images_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, image_context);
|
||||
}
|
||||
|
||||
|
@ -1364,9 +1410,7 @@ container_view_new (gboolean list,
|
|||
gchar *title,
|
||||
GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gboolean multi)
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *view;
|
||||
|
@ -1377,107 +1421,168 @@ container_view_new (gboolean list,
|
|||
{
|
||||
view = gimp_container_list_view_new (container,
|
||||
context,
|
||||
preview_width,
|
||||
preview_height,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = gimp_container_grid_view_new (container,
|
||||
context,
|
||||
preview_width,
|
||||
preview_height,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
|
||||
if (! multi)
|
||||
{
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, TRUE, TRUE,
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, TRUE, TRUE,
|
||||
|
||||
NULL);
|
||||
NULL);
|
||||
|
||||
gtk_widget_hide (GTK_DIALOG (dialog)->action_area);
|
||||
/*
|
||||
gtk_widget_hide (GTK_WIDGET (g_list_nth_data (gtk_container_children (GTK_CONTAINER (GTK_BIN (dialog)->child)), 1)));
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
GtkWidget *preview;
|
||||
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"Images", images_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
|
||||
/*
|
||||
"NULL", null_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
*/
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, FALSE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_brush (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (brushes_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"brush_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_pattern (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (patterns_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
}
|
||||
gtk_widget_hide (GTK_DIALOG (dialog)->action_area);
|
||||
/*
|
||||
gtk_widget_hide (GTK_WIDGET (g_list_nth_data (gtk_container_children (GTK_CONTAINER (GTK_BIN (dialog)->child)), 1)));
|
||||
*/
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), view);
|
||||
gtk_widget_show (view);
|
||||
|
||||
if (multi)
|
||||
adjustment = gtk_adjustment_new (preview_width, 16, 64, 4, 4, 0);
|
||||
else
|
||||
adjustment = gtk_adjustment_new (preview_width, 16, 257, 16, 16, 16);
|
||||
adjustment = gtk_adjustment_new (preview_size, 16, 256, 16, 16, 0);
|
||||
scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scale,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (scale);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
|
||||
GTK_SIGNAL_FUNC (container_view_scale_callback),
|
||||
view);
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
container_multi_view_new (gboolean list,
|
||||
gchar *title,
|
||||
GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *view;
|
||||
GtkObject *adjustment;
|
||||
GtkWidget *scale;
|
||||
GtkWidget *preview;
|
||||
|
||||
if (list)
|
||||
{
|
||||
view = gimp_container_list_view_new (container,
|
||||
context,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = gimp_container_grid_view_new (container,
|
||||
context,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (view,
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
GIMP_CONTAINER_VIEW (view)->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"Images", images_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
|
||||
/*
|
||||
"NULL", null_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
*/
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, FALSE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_brush (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (brushes_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"brush_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_pattern (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (patterns_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
/*
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_image (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (images_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
*/
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), view);
|
||||
gtk_widget_show (view);
|
||||
|
||||
adjustment = gtk_adjustment_new (preview_size, 16, 64, 4, 4, 0);
|
||||
scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scale,
|
||||
FALSE, FALSE, 0);
|
||||
|
@ -1497,8 +1602,7 @@ dialogs_test_image_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Image List",
|
||||
image_context,
|
||||
gimp_context_get_user (),
|
||||
64, 64,
|
||||
FALSE);
|
||||
64);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1508,8 +1612,7 @@ dialogs_test_pattern_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Pattern List",
|
||||
global_pattern_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1519,8 +1622,7 @@ dialogs_test_brush_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Brush List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1530,8 +1632,7 @@ dialogs_test_image_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Image Grid",
|
||||
image_context,
|
||||
gimp_context_get_user (),
|
||||
64, 64,
|
||||
FALSE);
|
||||
64);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1541,8 +1642,7 @@ dialogs_test_pattern_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Pattern Grid",
|
||||
global_pattern_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1552,30 +1652,27 @@ dialogs_test_brush_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Brush Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32, 32,
|
||||
FALSE);
|
||||
32);
|
||||
}
|
||||
|
||||
void
|
||||
dialogs_test_multi_container_list_view_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
container_view_new (TRUE, "Multi List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
TRUE);
|
||||
container_multi_view_new (TRUE, "Multi List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
dialogs_test_multi_container_grid_view_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
container_view_new (FALSE, "Multi Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32, 32,
|
||||
TRUE);
|
||||
container_multi_view_new (FALSE, "Multi Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32);
|
||||
}
|
||||
|
||||
/***** Help *****/
|
||||
|
|
|
@ -79,8 +79,10 @@
|
|||
/* for the example dialogs */
|
||||
#include "brushes.h"
|
||||
#include "patterns.h"
|
||||
#include "gimpcontainer.h"
|
||||
#include "gimpcontainerlistview.h"
|
||||
#include "gimpcontainergridview.h"
|
||||
#include "gimpdnd.h"
|
||||
#include "gimppreview.h"
|
||||
|
||||
|
||||
|
@ -1320,33 +1322,77 @@ dialogs_module_browser_cmd_callback (GtkWidget *widget,
|
|||
gtk_widget_show (module_browser);
|
||||
}
|
||||
|
||||
/***** Container View Test Dialogs *****/
|
||||
|
||||
static void
|
||||
container_view_scale_callback (GtkAdjustment *adj,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gimp_container_view_set_preview_size (view,
|
||||
ROUND (adj->value),
|
||||
ROUND (adj->value));
|
||||
gimp_container_view_set_preview_size (view, ROUND (adj->value));
|
||||
}
|
||||
|
||||
static void
|
||||
drop_viewable_callback (GtkWidget *widget,
|
||||
GimpViewable *viewable,
|
||||
gpointer data)
|
||||
{
|
||||
GimpContainerView *view;
|
||||
|
||||
view = GIMP_CONTAINER_VIEW (widget);
|
||||
|
||||
gimp_context_set_by_type (view->context,
|
||||
view->container->children_type,
|
||||
GIMP_OBJECT (viewable));
|
||||
}
|
||||
|
||||
static void
|
||||
brushes_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, global_brush_list);
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (GTK_WIDGET (view),
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
view->container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
view->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
patterns_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, global_pattern_list);
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (GTK_WIDGET (view),
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
view->container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
view->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
images_callback (GtkWidget *widget,
|
||||
GimpContainerView *view)
|
||||
{
|
||||
gtk_drag_dest_unset (GTK_WIDGET (view));
|
||||
gimp_dnd_viewable_dest_unset (GTK_WIDGET (view),
|
||||
view->container->children_type);
|
||||
|
||||
gimp_container_view_set_container (view, image_context);
|
||||
}
|
||||
|
||||
|
@ -1364,9 +1410,7 @@ container_view_new (gboolean list,
|
|||
gchar *title,
|
||||
GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gboolean multi)
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *view;
|
||||
|
@ -1377,107 +1421,168 @@ container_view_new (gboolean list,
|
|||
{
|
||||
view = gimp_container_list_view_new (container,
|
||||
context,
|
||||
preview_width,
|
||||
preview_height,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = gimp_container_grid_view_new (container,
|
||||
context,
|
||||
preview_width,
|
||||
preview_height,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
|
||||
if (! multi)
|
||||
{
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, TRUE, TRUE,
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, TRUE, TRUE,
|
||||
|
||||
NULL);
|
||||
NULL);
|
||||
|
||||
gtk_widget_hide (GTK_DIALOG (dialog)->action_area);
|
||||
/*
|
||||
gtk_widget_hide (GTK_WIDGET (g_list_nth_data (gtk_container_children (GTK_CONTAINER (GTK_BIN (dialog)->child)), 1)));
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
GtkWidget *preview;
|
||||
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"Images", images_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
|
||||
/*
|
||||
"NULL", null_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
*/
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, FALSE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_brush (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (brushes_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"brush_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_pattern (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (patterns_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
}
|
||||
gtk_widget_hide (GTK_DIALOG (dialog)->action_area);
|
||||
/*
|
||||
gtk_widget_hide (GTK_WIDGET (g_list_nth_data (gtk_container_children (GTK_CONTAINER (GTK_BIN (dialog)->child)), 1)));
|
||||
*/
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), view);
|
||||
gtk_widget_show (view);
|
||||
|
||||
if (multi)
|
||||
adjustment = gtk_adjustment_new (preview_width, 16, 64, 4, 4, 0);
|
||||
else
|
||||
adjustment = gtk_adjustment_new (preview_width, 16, 257, 16, 16, 16);
|
||||
adjustment = gtk_adjustment_new (preview_size, 16, 256, 16, 16, 0);
|
||||
scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scale,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (scale);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
|
||||
GTK_SIGNAL_FUNC (container_view_scale_callback),
|
||||
view);
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
container_multi_view_new (gboolean list,
|
||||
gchar *title,
|
||||
GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_size)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *view;
|
||||
GtkObject *adjustment;
|
||||
GtkWidget *scale;
|
||||
GtkWidget *preview;
|
||||
|
||||
if (list)
|
||||
{
|
||||
view = gimp_container_list_view_new (container,
|
||||
context,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
view = gimp_container_grid_view_new (container,
|
||||
context,
|
||||
preview_size,
|
||||
5, 5);
|
||||
}
|
||||
|
||||
gimp_gtk_drag_dest_set_by_type (view,
|
||||
GTK_DEST_DEFAULT_ALL,
|
||||
container->children_type,
|
||||
GDK_ACTION_COPY);
|
||||
gimp_dnd_viewable_dest_set (GTK_WIDGET (view),
|
||||
GIMP_CONTAINER_VIEW (view)->container->children_type,
|
||||
drop_viewable_callback,
|
||||
NULL);
|
||||
|
||||
dialog = gimp_dialog_new (title, "test",
|
||||
gimp_standard_help_func,
|
||||
NULL,
|
||||
GTK_WIN_POS_MOUSE,
|
||||
FALSE, TRUE, TRUE,
|
||||
|
||||
"Images", images_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
|
||||
/*
|
||||
"NULL", null_callback,
|
||||
view, NULL, NULL, FALSE, FALSE,
|
||||
*/
|
||||
|
||||
"_delete_event_", gtk_widget_destroy,
|
||||
NULL, 1, NULL, FALSE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_brush (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (brushes_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"brush_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_pattern (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (patterns_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
|
||||
/*
|
||||
preview =
|
||||
gimp_preview_new_full (GIMP_VIEWABLE (gimp_context_get_image (context)),
|
||||
32, 32, 1,
|
||||
FALSE, TRUE, FALSE);
|
||||
gimp_preview_set_context (GIMP_PREVIEW (preview), context);
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), preview,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (preview), "clicked",
|
||||
GTK_SIGNAL_FUNC (images_callback),
|
||||
view);
|
||||
|
||||
gtk_signal_connect_object_while_alive
|
||||
(GTK_OBJECT (context),
|
||||
"pattern_changed",
|
||||
GTK_SIGNAL_FUNC (gimp_preview_set_viewable),
|
||||
GTK_OBJECT (preview));
|
||||
*/
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), view);
|
||||
gtk_widget_show (view);
|
||||
|
||||
adjustment = gtk_adjustment_new (preview_size, 16, 64, 4, 4, 0);
|
||||
scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scale,
|
||||
FALSE, FALSE, 0);
|
||||
|
@ -1497,8 +1602,7 @@ dialogs_test_image_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Image List",
|
||||
image_context,
|
||||
gimp_context_get_user (),
|
||||
64, 64,
|
||||
FALSE);
|
||||
64);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1508,8 +1612,7 @@ dialogs_test_pattern_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Pattern List",
|
||||
global_pattern_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1519,8 +1622,7 @@ dialogs_test_brush_container_list_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (TRUE, "Brush List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1530,8 +1632,7 @@ dialogs_test_image_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Image Grid",
|
||||
image_context,
|
||||
gimp_context_get_user (),
|
||||
64, 64,
|
||||
FALSE);
|
||||
64);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1541,8 +1642,7 @@ dialogs_test_pattern_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Pattern Grid",
|
||||
global_pattern_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
FALSE);
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1552,30 +1652,27 @@ dialogs_test_brush_container_grid_view_cmd_callback (GtkWidget *widget,
|
|||
container_view_new (FALSE, "Brush Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32, 32,
|
||||
FALSE);
|
||||
32);
|
||||
}
|
||||
|
||||
void
|
||||
dialogs_test_multi_container_list_view_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
container_view_new (TRUE, "Multi List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24, 24,
|
||||
TRUE);
|
||||
container_multi_view_new (TRUE, "Multi List",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
24);
|
||||
}
|
||||
|
||||
void
|
||||
dialogs_test_multi_container_grid_view_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
container_view_new (FALSE, "Multi Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32, 32,
|
||||
TRUE);
|
||||
container_multi_view_new (FALSE, "Multi Grid",
|
||||
global_brush_list,
|
||||
gimp_context_get_user (),
|
||||
32);
|
||||
}
|
||||
|
||||
/***** Help *****/
|
||||
|
|
|
@ -162,8 +162,7 @@ gimp_container_grid_view_destroy (GtkObject *object)
|
|||
GtkWidget *
|
||||
gimp_container_grid_view_new (GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gint preview_size,
|
||||
gint min_items_x,
|
||||
gint min_items_y)
|
||||
{
|
||||
|
@ -174,8 +173,7 @@ gimp_container_grid_view_new (GimpContainer *container,
|
|||
g_return_val_if_fail (container != NULL, NULL);
|
||||
g_return_val_if_fail (GIMP_IS_CONTAINER (container), NULL);
|
||||
g_return_val_if_fail (! context || GIMP_IS_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (preview_width > 0 && preview_width <= 64, NULL);
|
||||
g_return_val_if_fail (preview_height > 0 && preview_height <= 64, NULL);
|
||||
g_return_val_if_fail (preview_size > 0 && preview_size <= 64, NULL);
|
||||
g_return_val_if_fail (min_items_x > 0 && min_items_x <= 64, NULL);
|
||||
g_return_val_if_fail (min_items_y > 0 && min_items_y <= 64, NULL);
|
||||
|
||||
|
@ -183,8 +181,7 @@ gimp_container_grid_view_new (GimpContainer *container,
|
|||
|
||||
view = GIMP_CONTAINER_VIEW (grid_view);
|
||||
|
||||
view->preview_width = preview_width;
|
||||
view->preview_height = preview_height;
|
||||
view->preview_size = preview_size;
|
||||
|
||||
window_border =
|
||||
GTK_SCROLLED_WINDOW (grid_view->scrolled_win)->vscrollbar->requisition.width +
|
||||
|
@ -192,8 +189,8 @@ gimp_container_grid_view_new (GimpContainer *container,
|
|||
grid_view->scrolled_win->style->klass->xthickness * 4;
|
||||
|
||||
gtk_widget_set_usize (grid_view->scrolled_win,
|
||||
(preview_width + 2) * min_items_x + window_border,
|
||||
(preview_height + 2) * min_items_y + window_border);
|
||||
(preview_size + 2) * min_items_x + window_border,
|
||||
(preview_size + 2) * min_items_y + window_border);
|
||||
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
|
@ -213,8 +210,8 @@ gimp_container_grid_view_insert_item (GimpContainerView *view,
|
|||
grid_view = GIMP_CONTAINER_GRID_VIEW (view);
|
||||
|
||||
preview = gimp_preview_new_full (viewable,
|
||||
view->preview_width,
|
||||
view->preview_height,
|
||||
view->preview_size,
|
||||
view->preview_size,
|
||||
1,
|
||||
FALSE, TRUE, TRUE);
|
||||
|
||||
|
@ -302,9 +299,7 @@ gimp_container_grid_view_set_preview_size (GimpContainerView *view)
|
|||
|
||||
preview = GIMP_PREVIEW (child->widget);
|
||||
|
||||
gimp_preview_set_size (preview,
|
||||
view->preview_width,
|
||||
view->preview_height);
|
||||
gimp_preview_set_size (preview, view->preview_size);
|
||||
}
|
||||
|
||||
gtk_widget_queue_resize (grid_view->wrap_box);
|
||||
|
|
|
@ -51,8 +51,7 @@ struct _GimpContainerGridViewClass
|
|||
GtkType gimp_container_grid_view_get_type (void);
|
||||
GtkWidget * gimp_container_grid_view_new (GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gint preview_size,
|
||||
gint min_items_x,
|
||||
gint min_items_y);
|
||||
|
||||
|
|
|
@ -155,8 +155,7 @@ gimp_container_list_view_destroy (GtkObject *object)
|
|||
GtkWidget *
|
||||
gimp_container_list_view_new (GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gint preview_size,
|
||||
gint min_items_x,
|
||||
gint min_items_y)
|
||||
{
|
||||
|
@ -167,8 +166,7 @@ gimp_container_list_view_new (GimpContainer *container,
|
|||
g_return_val_if_fail (container != NULL, NULL);
|
||||
g_return_val_if_fail (GIMP_IS_CONTAINER (container), NULL);
|
||||
g_return_val_if_fail (! context || GIMP_IS_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (preview_width > 0 && preview_width <= 64, NULL);
|
||||
g_return_val_if_fail (preview_height > 0 && preview_height <= 64, NULL);
|
||||
g_return_val_if_fail (preview_size > 0 && preview_size <= 64, NULL);
|
||||
g_return_val_if_fail (min_items_x > 0 && min_items_x <= 64, NULL);
|
||||
g_return_val_if_fail (min_items_y > 0 && min_items_y <= 64, NULL);
|
||||
|
||||
|
@ -176,8 +174,7 @@ gimp_container_list_view_new (GimpContainer *container,
|
|||
|
||||
view = GIMP_CONTAINER_VIEW (list_view);
|
||||
|
||||
view->preview_width = preview_width;
|
||||
view->preview_height = preview_height;
|
||||
view->preview_size = preview_size;
|
||||
|
||||
window_border =
|
||||
GTK_SCROLLED_WINDOW (list_view->scrolled_win)->vscrollbar->requisition.width +
|
||||
|
@ -185,8 +182,8 @@ gimp_container_list_view_new (GimpContainer *container,
|
|||
list_view->scrolled_win->style->klass->xthickness * 4;
|
||||
|
||||
gtk_widget_set_usize (list_view->gtk_list->parent,
|
||||
(preview_width + 2) * min_items_x + window_border,
|
||||
(preview_height + 2) * min_items_y + window_border);
|
||||
(preview_size + 2) * min_items_x + window_border,
|
||||
(preview_size + 2) * min_items_y + window_border);
|
||||
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
|
@ -222,11 +219,7 @@ gimp_container_list_view_insert_item (GimpContainerView *view,
|
|||
gtk_container_add (GTK_CONTAINER (list_item), hbox);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
preview = gimp_preview_new_full (viewable,
|
||||
view->preview_width,
|
||||
view->preview_height,
|
||||
1,
|
||||
FALSE, FALSE, FALSE);
|
||||
preview = gimp_preview_new (viewable, view->preview_size, 1);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), preview, FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
|
@ -355,9 +348,7 @@ gimp_container_list_view_set_preview_size (GimpContainerView *view)
|
|||
|
||||
preview = gtk_object_get_data (GTK_OBJECT (list->data), "preview");
|
||||
|
||||
gimp_preview_set_size (preview,
|
||||
view->preview_width,
|
||||
view->preview_height);
|
||||
gimp_preview_set_size (preview, view->preview_size);
|
||||
}
|
||||
|
||||
gtk_widget_queue_resize (list_view->gtk_list);
|
||||
|
|
|
@ -49,8 +49,7 @@ struct _GimpContainerListViewClass
|
|||
GtkType gimp_container_list_view_get_type (void);
|
||||
GtkWidget * gimp_container_list_view_new (GimpContainer *container,
|
||||
GimpContext *context,
|
||||
gint preview_width,
|
||||
gint preview_height,
|
||||
gint preview_size,
|
||||
gint min_items_x,
|
||||
gint min_items_y);
|
||||
|
||||
|
|
|
@ -170,8 +170,7 @@ gimp_container_view_init (GimpContainerView *view)
|
|||
|
||||
view->hash_table = g_hash_table_new (g_direct_hash, g_direct_equal);
|
||||
|
||||
view->preview_width = 0;
|
||||
view->preview_height = 0;
|
||||
view->preview_size = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -307,16 +306,13 @@ gimp_container_view_set_context (GimpContainerView *view,
|
|||
|
||||
void
|
||||
gimp_container_view_set_preview_size (GimpContainerView *view,
|
||||
gint width,
|
||||
gint height)
|
||||
gint preview_size)
|
||||
{
|
||||
g_return_if_fail (view != NULL);
|
||||
g_return_if_fail (GIMP_IS_CONTAINER_VIEW (view));
|
||||
g_return_if_fail (width > 0 && width <= 256 /* FIXME: 64 */);
|
||||
g_return_if_fail (height > 0 && height <= 256 /* FIXME: 64 */);
|
||||
g_return_if_fail (preview_size > 0 && preview_size <= 256 /* FIXME: 64 */);
|
||||
|
||||
view->preview_width = width;
|
||||
view->preview_height = height;
|
||||
view->preview_size = preview_size;
|
||||
|
||||
gtk_signal_emit (GTK_OBJECT (view), view_signals[SET_PREVIEW_SIZE]);
|
||||
}
|
||||
|
|
|
@ -42,8 +42,7 @@ struct _GimpContainerView
|
|||
|
||||
GHashTable *hash_table;
|
||||
|
||||
gint preview_width;
|
||||
gint preview_height;
|
||||
gint preview_size;
|
||||
};
|
||||
|
||||
struct _GimpContainerViewClass
|
||||
|
@ -71,8 +70,7 @@ void gimp_container_view_set_container (GimpContainerView *view,
|
|||
void gimp_container_view_set_context (GimpContainerView *view,
|
||||
GimpContext *context);
|
||||
void gimp_container_view_set_preview_size (GimpContainerView *view,
|
||||
gint width,
|
||||
gint height);
|
||||
gint preview_size);
|
||||
void gimp_container_view_select_item (GimpContainerView *view,
|
||||
GimpViewable *viewable);
|
||||
|
||||
|
|
|
@ -488,6 +488,27 @@ gimp_dnd_data_dest_set (GimpDndDataType data_type,
|
|||
set_data_data);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_dnd_data_dest_unset (GimpDndDataType data_type,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
gboolean drop_connected;
|
||||
|
||||
drop_connected =
|
||||
(gboolean) gtk_object_get_data (GTK_OBJECT (widget),
|
||||
"gimp_dnd_drop_connected");
|
||||
|
||||
if (! drop_connected)
|
||||
return;
|
||||
|
||||
gtk_object_set_data (GTK_OBJECT (widget),
|
||||
dnd_data_defs[data_type].set_data_func_name,
|
||||
NULL);
|
||||
gtk_object_set_data (GTK_OBJECT (widget),
|
||||
dnd_data_defs[data_type].set_data_data_name,
|
||||
NULL);
|
||||
}
|
||||
|
||||
/*************************/
|
||||
/* color dnd functions */
|
||||
/*************************/
|
||||
|
@ -587,6 +608,105 @@ gimp_dnd_color_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_color_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_COLOR, widget);
|
||||
}
|
||||
|
||||
/*********************************************/
|
||||
/* GimpViewable (by GtkType) dnd functions */
|
||||
/*********************************************/
|
||||
|
||||
void
|
||||
gimp_gtk_drag_dest_set_by_type (GtkWidget *widget,
|
||||
GtkDestDefaults flags,
|
||||
GtkType type,
|
||||
GdkDragAction actions)
|
||||
{
|
||||
const GtkTargetEntry *target_table = NULL;
|
||||
guint n_targets = 0;
|
||||
|
||||
static const GtkTargetEntry brush_target_table[] =
|
||||
{
|
||||
GIMP_TARGET_BRUSH
|
||||
};
|
||||
static const guint brush_n_targets = (sizeof (brush_target_table) /
|
||||
sizeof (brush_target_table[0]));
|
||||
|
||||
static const GtkTargetEntry pattern_target_table[] =
|
||||
{
|
||||
GIMP_TARGET_PATTERN
|
||||
};
|
||||
static const guint pattern_n_targets = (sizeof (pattern_target_table) /
|
||||
sizeof (pattern_target_table[0]));
|
||||
|
||||
if (type == GIMP_TYPE_BRUSH)
|
||||
{
|
||||
target_table = brush_target_table;
|
||||
n_targets = brush_n_targets;
|
||||
}
|
||||
else if (type == GIMP_TYPE_PATTERN)
|
||||
{
|
||||
target_table = pattern_target_table;
|
||||
n_targets = pattern_n_targets;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_warning ("%s(): unsupported GtkType", G_GNUC_FUNCTION);
|
||||
}
|
||||
|
||||
if (target_table && n_targets)
|
||||
{
|
||||
gtk_drag_dest_set (widget, flags,
|
||||
target_table,
|
||||
n_targets,
|
||||
actions);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_viewable_dest_set (GtkWidget *widget,
|
||||
GtkType type,
|
||||
GimpDndDropViewableFunc set_viewable_func,
|
||||
gpointer data)
|
||||
{
|
||||
if (type == GIMP_TYPE_BRUSH)
|
||||
{
|
||||
gimp_dnd_brush_dest_set (widget,
|
||||
(GimpDndDropBrushFunc) set_viewable_func,
|
||||
data);
|
||||
}
|
||||
else if (type == GIMP_TYPE_PATTERN)
|
||||
{
|
||||
gimp_dnd_pattern_dest_set (widget,
|
||||
(GimpDndDropPatternFunc) set_viewable_func,
|
||||
data);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_warning ("%s(): unsupported GtkType", G_GNUC_FUNCTION);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_viewable_dest_unset (GtkWidget *widget,
|
||||
GtkType type)
|
||||
{
|
||||
if (type == GIMP_TYPE_BRUSH)
|
||||
{
|
||||
gimp_dnd_brush_dest_unset (widget);
|
||||
}
|
||||
else if (type == GIMP_TYPE_PATTERN)
|
||||
{
|
||||
gimp_dnd_pattern_dest_unset (widget);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_warning ("%s(): unsupported GtkType", G_GNUC_FUNCTION);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************/
|
||||
/* brush dnd functions */
|
||||
/*************************/
|
||||
|
@ -684,6 +804,12 @@ gimp_dnd_brush_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_brush_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_BRUSH, widget);
|
||||
}
|
||||
|
||||
/***************************/
|
||||
/* pattern dnd functions */
|
||||
/***************************/
|
||||
|
@ -781,6 +907,12 @@ gimp_dnd_pattern_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_pattern_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_PATTERN, widget);
|
||||
}
|
||||
|
||||
/****************************/
|
||||
/* gradient dnd functions */
|
||||
/****************************/
|
||||
|
@ -882,6 +1014,12 @@ gimp_dnd_gradient_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_gradient_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_GRADIENT, widget);
|
||||
}
|
||||
|
||||
/***************************/
|
||||
/* palette dnd functions */
|
||||
/***************************/
|
||||
|
@ -934,6 +1072,12 @@ gimp_dnd_palette_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_palette_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_PALETTE, widget);
|
||||
}
|
||||
|
||||
/************************/
|
||||
/* tool dnd functions */
|
||||
/************************/
|
||||
|
@ -1029,6 +1173,12 @@ gimp_dnd_tool_dest_set (GtkWidget *widget,
|
|||
data);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dnd_tool_dest_unset (GtkWidget *widget)
|
||||
{
|
||||
gimp_dnd_data_dest_unset (GIMP_DND_DATA_TOOL, widget);
|
||||
}
|
||||
|
||||
/****************************/
|
||||
/* drawable dnd functions */
|
||||
/****************************/
|
||||
|
@ -1265,4 +1415,3 @@ gimp_dnd_file_dest_set (GtkWidget *widget)
|
|||
GTK_SIGNAL_FUNC (gimp_dnd_file_drag_data_received),
|
||||
widget);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,14 @@ enum
|
|||
GIMP_DND_TYPE_TOOL
|
||||
};
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GIMP_DROP_NONE,
|
||||
GIMP_DROP_ABOVE,
|
||||
GIMP_DROP_BELOW
|
||||
} GimpDropType;
|
||||
|
||||
|
||||
#define GIMP_TARGET_URI_LIST \
|
||||
{ "text/uri-list", 0, GIMP_DND_TYPE_URI_LIST }
|
||||
|
||||
|
@ -84,12 +92,6 @@ enum
|
|||
#define GIMP_TARGET_TOOL \
|
||||
{ "GIMP_TOOL", GTK_TARGET_SAME_APP, GIMP_DND_TYPE_TOOL }
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GIMP_DROP_NONE,
|
||||
GIMP_DROP_ABOVE,
|
||||
GIMP_DROP_BELOW
|
||||
} GimpDropType;
|
||||
|
||||
/* color dnd functions */
|
||||
|
||||
|
@ -106,6 +108,26 @@ void gimp_dnd_color_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_color_dest_set (GtkWidget *widget,
|
||||
GimpDndDropColorFunc set_color_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_color_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* GimpViewable (by GtkType) dnd functions */
|
||||
|
||||
typedef void (* GimpDndDropViewableFunc) (GtkWidget *widget,
|
||||
GimpViewable *viewable,
|
||||
gpointer data);
|
||||
|
||||
void gimp_gtk_drag_dest_set_by_type (GtkWidget *widget,
|
||||
GtkDestDefaults flags,
|
||||
GtkType type,
|
||||
GdkDragAction actions);
|
||||
void gimp_dnd_viewable_dest_set (GtkWidget *widget,
|
||||
GtkType type,
|
||||
GimpDndDropViewableFunc set_viewable_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_viewable_dest_unset (GtkWidget *widget,
|
||||
GtkType type);
|
||||
|
||||
|
||||
/* brush dnd functions */
|
||||
|
||||
|
@ -121,6 +143,8 @@ void gimp_dnd_brush_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_brush_dest_set (GtkWidget *widget,
|
||||
GimpDndDropBrushFunc set_brush_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_brush_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* pattern dnd functions */
|
||||
|
||||
|
@ -136,6 +160,8 @@ void gimp_dnd_pattern_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_pattern_dest_set (GtkWidget *widget,
|
||||
GimpDndDropPatternFunc set_pattern_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_pattern_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* gradient dnd functions */
|
||||
|
||||
|
@ -151,6 +177,8 @@ void gimp_dnd_gradient_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_gradient_dest_set (GtkWidget *widget,
|
||||
GimpDndDropGradientFunc set_gradient_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_gradient_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* palette dnd functions */
|
||||
|
||||
|
@ -166,6 +194,8 @@ void gimp_dnd_palette_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_palette_dest_set (GtkWidget *widget,
|
||||
GimpDndDropPaletteFunc set_palette_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_palette_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* tool dnd functions */
|
||||
|
||||
|
@ -181,6 +211,8 @@ void gimp_dnd_tool_source_set (GtkWidget *widget,
|
|||
void gimp_dnd_tool_dest_set (GtkWidget *widget,
|
||||
GimpDndDropToolFunc set_tool_func,
|
||||
gpointer data);
|
||||
void gimp_dnd_tool_dest_unset (GtkWidget *widget);
|
||||
|
||||
|
||||
/* drawable dnd functions */
|
||||
|
||||
|
@ -188,8 +220,10 @@ void gimp_dnd_set_drawable_preview_icon (GtkWidget *widget,
|
|||
GdkDragContext *context,
|
||||
GimpDrawable *drawable);
|
||||
|
||||
|
||||
/* file / url dnd functions */
|
||||
|
||||
void gimp_dnd_file_dest_set (GtkWidget *widget);
|
||||
|
||||
|
||||
#endif /* __GIMP_DND_H__ */
|
||||
|
|
|
@ -309,6 +309,41 @@ gimp_preview_new_full (GimpViewable *viewable,
|
|||
return GTK_WIDGET (preview);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint preview_size)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (preview_size > 0 && preview_size <= 256);
|
||||
|
||||
gimp_preview_set_size_full (preview,
|
||||
preview_size,
|
||||
preview_size,
|
||||
preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
g_return_if_fail (border_width >= 0 && border_width <= 16);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
preview->border_width = border_width;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable)
|
||||
|
@ -354,24 +389,6 @@ gimp_preview_set_context (GimpPreview *preview,
|
|||
g_return_if_fail (! context || GIMP_IS_CONTEXT (context));
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
static gint
|
||||
gimp_preview_button_press_event (GtkWidget *widget,
|
||||
GdkEventButton *bevent)
|
||||
|
@ -397,6 +414,10 @@ gimp_preview_button_press_event (GtkWidget *widget,
|
|||
bevent->y);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -432,6 +453,10 @@ gimp_preview_button_release_event (GtkWidget *widget,
|
|||
gtk_signal_emit (GTK_OBJECT (widget), preview_signals[CLICKED]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -78,10 +78,10 @@ struct _GimpPreviewClass
|
|||
|
||||
|
||||
GtkType gimp_preview_get_type (void);
|
||||
|
||||
GtkWidget * gimp_preview_new (GimpViewable *viewable,
|
||||
gint size,
|
||||
gint border_width);
|
||||
|
||||
GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
||||
gint width,
|
||||
gint height,
|
||||
|
@ -90,13 +90,17 @@ GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
|||
gboolean clickable,
|
||||
gboolean show_popup);
|
||||
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint size);
|
||||
void gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width);
|
||||
|
||||
void gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable);
|
||||
void gimp_preview_set_context (GimpPreview *preview,
|
||||
GimpContext *context);
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
|
||||
/* private */
|
||||
|
|
|
@ -309,6 +309,41 @@ gimp_preview_new_full (GimpViewable *viewable,
|
|||
return GTK_WIDGET (preview);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint preview_size)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (preview_size > 0 && preview_size <= 256);
|
||||
|
||||
gimp_preview_set_size_full (preview,
|
||||
preview_size,
|
||||
preview_size,
|
||||
preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
g_return_if_fail (border_width >= 0 && border_width <= 16);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
preview->border_width = border_width;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable)
|
||||
|
@ -354,24 +389,6 @@ gimp_preview_set_context (GimpPreview *preview,
|
|||
g_return_if_fail (! context || GIMP_IS_CONTEXT (context));
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
static gint
|
||||
gimp_preview_button_press_event (GtkWidget *widget,
|
||||
GdkEventButton *bevent)
|
||||
|
@ -397,6 +414,10 @@ gimp_preview_button_press_event (GtkWidget *widget,
|
|||
bevent->y);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -432,6 +453,10 @@ gimp_preview_button_release_event (GtkWidget *widget,
|
|||
gtk_signal_emit (GTK_OBJECT (widget), preview_signals[CLICKED]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -78,10 +78,10 @@ struct _GimpPreviewClass
|
|||
|
||||
|
||||
GtkType gimp_preview_get_type (void);
|
||||
|
||||
GtkWidget * gimp_preview_new (GimpViewable *viewable,
|
||||
gint size,
|
||||
gint border_width);
|
||||
|
||||
GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
||||
gint width,
|
||||
gint height,
|
||||
|
@ -90,13 +90,17 @@ GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
|||
gboolean clickable,
|
||||
gboolean show_popup);
|
||||
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint size);
|
||||
void gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width);
|
||||
|
||||
void gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable);
|
||||
void gimp_preview_set_context (GimpPreview *preview,
|
||||
GimpContext *context);
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
|
||||
/* private */
|
||||
|
|
|
@ -309,6 +309,41 @@ gimp_preview_new_full (GimpViewable *viewable,
|
|||
return GTK_WIDGET (preview);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint preview_size)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (preview_size > 0 && preview_size <= 256);
|
||||
|
||||
gimp_preview_set_size_full (preview,
|
||||
preview_size,
|
||||
preview_size,
|
||||
preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
g_return_if_fail (border_width >= 0 && border_width <= 16);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
preview->border_width = border_width;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable)
|
||||
|
@ -354,24 +389,6 @@ gimp_preview_set_context (GimpPreview *preview,
|
|||
g_return_if_fail (! context || GIMP_IS_CONTEXT (context));
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
static gint
|
||||
gimp_preview_button_press_event (GtkWidget *widget,
|
||||
GdkEventButton *bevent)
|
||||
|
@ -397,6 +414,10 @@ gimp_preview_button_press_event (GtkWidget *widget,
|
|||
bevent->y);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -432,6 +453,10 @@ gimp_preview_button_release_event (GtkWidget *widget,
|
|||
gtk_signal_emit (GTK_OBJECT (widget), preview_signals[CLICKED]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -78,10 +78,10 @@ struct _GimpPreviewClass
|
|||
|
||||
|
||||
GtkType gimp_preview_get_type (void);
|
||||
|
||||
GtkWidget * gimp_preview_new (GimpViewable *viewable,
|
||||
gint size,
|
||||
gint border_width);
|
||||
|
||||
GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
||||
gint width,
|
||||
gint height,
|
||||
|
@ -90,13 +90,17 @@ GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
|||
gboolean clickable,
|
||||
gboolean show_popup);
|
||||
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint size);
|
||||
void gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width);
|
||||
|
||||
void gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable);
|
||||
void gimp_preview_set_context (GimpPreview *preview,
|
||||
GimpContext *context);
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
|
||||
/* private */
|
||||
|
|
|
@ -309,6 +309,41 @@ gimp_preview_new_full (GimpViewable *viewable,
|
|||
return GTK_WIDGET (preview);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint preview_size)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (preview_size > 0 && preview_size <= 256);
|
||||
|
||||
gimp_preview_set_size_full (preview,
|
||||
preview_size,
|
||||
preview_size,
|
||||
preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
g_return_if_fail (border_width >= 0 && border_width <= 16);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
preview->border_width = border_width;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable)
|
||||
|
@ -354,24 +389,6 @@ gimp_preview_set_context (GimpPreview *preview,
|
|||
g_return_if_fail (! context || GIMP_IS_CONTEXT (context));
|
||||
}
|
||||
|
||||
void
|
||||
gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
g_return_if_fail (preview != NULL);
|
||||
g_return_if_fail (GIMP_IS_PREVIEW (preview));
|
||||
g_return_if_fail (width > 0 && width <= 256);
|
||||
g_return_if_fail (height > 0 && height <= 256);
|
||||
|
||||
preview->width = width;
|
||||
preview->height = height;
|
||||
|
||||
gtk_preview_size (GTK_PREVIEW (preview),
|
||||
width + 2 * preview->border_width,
|
||||
height + 2 * preview->border_width);
|
||||
}
|
||||
|
||||
static gint
|
||||
gimp_preview_button_press_event (GtkWidget *widget,
|
||||
GdkEventButton *bevent)
|
||||
|
@ -397,6 +414,10 @@ gimp_preview_button_press_event (GtkWidget *widget,
|
|||
bevent->y);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -432,6 +453,10 @@ gimp_preview_button_release_event (GtkWidget *widget,
|
|||
gtk_signal_emit (GTK_OBJECT (widget), preview_signals[CLICKED]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -78,10 +78,10 @@ struct _GimpPreviewClass
|
|||
|
||||
|
||||
GtkType gimp_preview_get_type (void);
|
||||
|
||||
GtkWidget * gimp_preview_new (GimpViewable *viewable,
|
||||
gint size,
|
||||
gint border_width);
|
||||
|
||||
GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
||||
gint width,
|
||||
gint height,
|
||||
|
@ -90,13 +90,17 @@ GtkWidget * gimp_preview_new_full (GimpViewable *viewable,
|
|||
gboolean clickable,
|
||||
gboolean show_popup);
|
||||
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint size);
|
||||
void gimp_preview_set_size_full (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height,
|
||||
gint border_width);
|
||||
|
||||
void gimp_preview_set_viewable (GimpPreview *preview,
|
||||
GimpViewable *viewable);
|
||||
void gimp_preview_set_context (GimpPreview *preview,
|
||||
GimpContext *context);
|
||||
void gimp_preview_set_size (GimpPreview *preview,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
|
||||
/* private */
|
||||
|
|
Loading…
Reference in New Issue