started to add some more separator event handling.

2001-04-10  Michael Natterer  <mitch@gimp.org>

	* app/gimpdock.c: started to add some more separator event handling.

	* app/gimppalettepreview.c: we don't want a popup if n_colors == 0.

	* app/test_commands.c: cleanup.
This commit is contained in:
Michael Natterer 2001-04-10 20:38:42 +00:00 committed by Michael Natterer
parent cca3497143
commit 0b33c2bdfc
7 changed files with 274 additions and 280 deletions

View File

@ -1,3 +1,11 @@
2001-04-10 Michael Natterer <mitch@gimp.org>
* app/gimpdock.c: started to add some more separator event handling.
* app/gimppalettepreview.c: we don't want a popup if n_colors == 0.
* app/test_commands.c: cleanup.
2001-04-10 Sven Neumann <sven@gimp.org>
* app/tools/posterize.c

View File

@ -33,29 +33,35 @@
#include "gimpdockbook.h"
static void gimp_dock_class_init (GimpDockClass *klass);
static void gimp_dock_init (GimpDock *dock);
static void gimp_dock_class_init (GimpDockClass *klass);
static void gimp_dock_init (GimpDock *dock);
static void gimp_dock_destroy (GtkObject *object);
static GtkWidget * gimp_dock_separator_new (GimpDock *dock);
static void gimp_dock_destroy (GtkObject *object);
static gboolean gimp_dock_separator_button_press (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data);
static gboolean gimp_dock_separator_button_release (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data);
/*
static gboolean gimp_dock_tab_button_press (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data);
static void gimp_dock_tab_drag_begin (GtkWidget *widget,
GdkDragContext *context,
gpointer data);
static void gimp_dock_tab_drag_end (GtkWidget *widget,
GdkDragContext *context,
gpointer data);
static void gimp_dock_separator_drag_begin (GtkWidget *widget,
GdkDragContext *context,
gpointer data);
static void gimp_dock_separator_drag_end (GtkWidget *widget,
GdkDragContext *context,
gpointer data);
*/
static gboolean gimp_dock_separator_drag_drop (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
guint time,
gpointer data);
static gboolean gimp_dock_separator_drag_drop (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
guint time,
gpointer data);
static GtkWindowClass *parent_class = NULL;
@ -105,31 +111,6 @@ gimp_dock_class_init (GimpDockClass *klass)
object_class->destroy = gimp_dock_destroy;
}
static GtkWidget *
gimp_dock_separator_new (GimpDock *dock)
{
GtkWidget *event_box;
GtkWidget *frame;
event_box = gtk_event_box_new ();
gtk_widget_set_usize (event_box, -1, 8);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
gtk_container_add (GTK_CONTAINER (event_box), frame);
gtk_widget_show (frame);
gtk_drag_dest_set (GTK_WIDGET (event_box),
GTK_DEST_DEFAULT_ALL,
dialog_target_table, n_dialog_targets,
GDK_ACTION_MOVE);
gtk_signal_connect (GTK_OBJECT (event_box), "drag_drop",
GTK_SIGNAL_FUNC (gimp_dock_separator_drag_drop),
dock);
return event_box;
}
static void
gimp_dock_init (GimpDock *dock)
{
@ -165,6 +146,38 @@ gimp_dock_new (void)
return GTK_WIDGET (gtk_type_new (GIMP_TYPE_DOCK));
}
static GtkWidget *
gimp_dock_separator_new (GimpDock *dock)
{
GtkWidget *event_box;
GtkWidget *frame;
event_box = gtk_event_box_new ();
gtk_widget_set_usize (event_box, -1, 8);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
gtk_container_add (GTK_CONTAINER (event_box), frame);
gtk_widget_show (frame);
gtk_drag_dest_set (GTK_WIDGET (event_box),
GTK_DEST_DEFAULT_ALL,
dialog_target_table, n_dialog_targets,
GDK_ACTION_MOVE);
gtk_signal_connect (GTK_OBJECT (event_box), "drag_drop",
GTK_SIGNAL_FUNC (gimp_dock_separator_drag_drop),
dock);
gtk_signal_connect (GTK_OBJECT (event_box), "button_press_event",
GTK_SIGNAL_FUNC (gimp_dock_separator_button_press),
dock);
gtk_signal_connect (GTK_OBJECT (event_box), "button_release_event",
GTK_SIGNAL_FUNC (gimp_dock_separator_button_release),
dock);
return event_box;
}
void
gimp_dock_add (GimpDock *dock,
GimpDockable *dockable,
@ -291,36 +304,36 @@ gimp_dock_remove_book (GimpDock *dock,
}
}
/*
static gboolean
gimp_dock_tab_button_press (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data)
gimp_dock_separator_button_press (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data)
{
GimpDockable *dockable;
gint page_num;
dockable = GIMP_DOCKABLE (data);
switch (bevent->button)
if (bevent->type == GDK_BUTTON_PRESS)
{
case 3:
gtk_menu_popup (GTK_MENU (GTK_NOTEBOOK (dockable->dock->notebook)->menu),
NULL, NULL,
NULL, NULL, 3, bevent->time);
break;
default:
page_num = gtk_notebook_page_num (GTK_NOTEBOOK (dockable->dock->notebook),
GTK_WIDGET (dockable));
gtk_notebook_set_page (GTK_NOTEBOOK (dockable->dock->notebook), page_num);
break;
if (bevent->button == 1)
{
gtk_grab_add (widget);
}
}
return FALSE;
return TRUE;
}
static gboolean
gimp_dock_separator_button_release (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data)
{
if (bevent->button == 1)
{
gtk_grab_remove (widget);
}
return TRUE;
}
/*
static void
gimp_dock_tab_drag_begin (GtkWidget *widget,
GdkDragContext *context,

View File

@ -157,6 +157,9 @@ gimp_palette_preview_needs_popup (GimpPreview *preview)
palette = GIMP_PALETTE (preview->viewable);
if (! palette->n_colors)
return FALSE;
if (palette->n_columns)
popup_width = palette->n_columns;
else

View File

@ -25,6 +25,8 @@
#include "apptypes.h"
#include "tools/tool_manager.h"
#include "context_manager.h"
#include "gradient_editor.h"
#include "gimpchannel.h"
@ -685,8 +687,8 @@ test_palette_tab_func (GimpDockable *dockable,
}
void
test_list_dock_cmd_callback (GtkWidget *widget,
gpointer client_data)
test_dock_new (GimpViewType view_type,
GimpContext *context)
{
GtkWidget *dock;
GtkWidget *dockbook;
@ -701,10 +703,10 @@ test_list_dock_cmd_callback (GtkWidget *widget,
dockable = gimp_dockable_new ("Brush List", "Brushes",
test_brush_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
view = gimp_data_factory_view_new (view_type,
global_brush_factory,
NULL,
gimp_context_get_user (),
context,
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
@ -714,10 +716,10 @@ test_list_dock_cmd_callback (GtkWidget *widget,
dockable = gimp_dockable_new ("Pattern List", "Patterns",
test_pattern_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
view = gimp_data_factory_view_new (view_type,
global_pattern_factory,
NULL,
gimp_context_get_user (),
context,
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
@ -727,10 +729,10 @@ test_list_dock_cmd_callback (GtkWidget *widget,
dockable = gimp_dockable_new ("Gradient List", "Gradients",
test_gradient_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
view = gimp_data_factory_view_new (view_type,
global_gradient_factory,
NULL,
gimp_context_get_user (),
context,
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
@ -740,10 +742,10 @@ test_list_dock_cmd_callback (GtkWidget *widget,
dockable = gimp_dockable_new ("Palette List", "Palettes",
test_palette_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
view = gimp_data_factory_view_new (view_type,
global_palette_factory,
NULL,
gimp_context_get_user (),
context,
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
@ -751,75 +753,50 @@ test_list_dock_cmd_callback (GtkWidget *widget,
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
switch (view_type)
{
case GIMP_VIEW_TYPE_LIST:
dockable = gimp_dockable_new ("Tool List", "Tools",
NULL);
view = gimp_container_list_view_new (global_tool_info_list,
context,
22,
5, 3);
break;
case GIMP_VIEW_TYPE_GRID:
dockable = gimp_dockable_new ("Tool Grid", "Tools",
NULL);
view = gimp_container_grid_view_new (global_tool_info_list,
context,
22,
5, 3);
break;
default:
g_assert_not_reached ();
}
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
gtk_widget_show (dock);
}
void
test_list_dock_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
test_dock_new (GIMP_VIEW_TYPE_LIST,
gimp_context_get_user ());
}
void
test_grid_dock_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GtkWidget *dock;
GtkWidget *dockbook;
GtkWidget *dockable;
GtkWidget *view;
dock = gimp_dock_new ();
dockbook = gimp_dockbook_new ();
gimp_dock_add_book (GIMP_DOCK (dock), GIMP_DOCKBOOK (dockbook), 0);
dockable = gimp_dockable_new ("Brush Grid", "Brushes",
test_brush_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
global_brush_factory,
NULL,
gimp_context_get_user (),
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
dockable = gimp_dockable_new ("Pattern Grid", "Patterns",
test_pattern_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
global_pattern_factory,
NULL,
gimp_context_get_user (),
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
dockable = gimp_dockable_new ("Gradient Grid", "Gradients",
test_gradient_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
global_gradient_factory,
NULL,
gimp_context_get_user (),
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
dockable = gimp_dockable_new ("Palette Grid", "Palettes",
test_palette_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
global_palette_factory,
NULL,
gimp_context_get_user (),
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
gtk_widget_show (dock);
test_dock_new (GIMP_VIEW_TYPE_GRID,
gimp_context_get_user ());
}

View File

@ -25,6 +25,8 @@
#include "apptypes.h"
#include "tools/tool_manager.h"
#include "context_manager.h"
#include "gradient_editor.h"
#include "gimpchannel.h"
@ -685,8 +687,8 @@ test_palette_tab_func (GimpDockable *dockable,
}
void
test_list_dock_cmd_callback (GtkWidget *widget,
gpointer client_data)
test_dock_new (GimpViewType view_type,
GimpContext *context)
{
GtkWidget *dock;
GtkWidget *dockbook;
@ -701,10 +703,10 @@ test_list_dock_cmd_callback (GtkWidget *widget,
dockable = gimp_dockable_new ("Brush List", "Brushes",
test_brush_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
view = gimp_data_factory_view_new (view_type,
global_brush_factory,
NULL,
gimp_context_get_user (),
context,
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
@ -714,10 +716,10 @@ test_list_dock_cmd_callback (GtkWidget *widget,
dockable = gimp_dockable_new ("Pattern List", "Patterns",
test_pattern_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
view = gimp_data_factory_view_new (view_type,
global_pattern_factory,
NULL,
gimp_context_get_user (),
context,
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
@ -727,10 +729,10 @@ test_list_dock_cmd_callback (GtkWidget *widget,
dockable = gimp_dockable_new ("Gradient List", "Gradients",
test_gradient_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
view = gimp_data_factory_view_new (view_type,
global_gradient_factory,
NULL,
gimp_context_get_user (),
context,
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
@ -740,10 +742,10 @@ test_list_dock_cmd_callback (GtkWidget *widget,
dockable = gimp_dockable_new ("Palette List", "Palettes",
test_palette_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_LIST,
view = gimp_data_factory_view_new (view_type,
global_palette_factory,
NULL,
gimp_context_get_user (),
context,
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
@ -751,75 +753,50 @@ test_list_dock_cmd_callback (GtkWidget *widget,
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
switch (view_type)
{
case GIMP_VIEW_TYPE_LIST:
dockable = gimp_dockable_new ("Tool List", "Tools",
NULL);
view = gimp_container_list_view_new (global_tool_info_list,
context,
22,
5, 3);
break;
case GIMP_VIEW_TYPE_GRID:
dockable = gimp_dockable_new ("Tool Grid", "Tools",
NULL);
view = gimp_container_grid_view_new (global_tool_info_list,
context,
22,
5, 3);
break;
default:
g_assert_not_reached ();
}
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
gtk_widget_show (dock);
}
void
test_list_dock_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
test_dock_new (GIMP_VIEW_TYPE_LIST,
gimp_context_get_user ());
}
void
test_grid_dock_cmd_callback (GtkWidget *widget,
gpointer client_data)
{
GtkWidget *dock;
GtkWidget *dockbook;
GtkWidget *dockable;
GtkWidget *view;
dock = gimp_dock_new ();
dockbook = gimp_dockbook_new ();
gimp_dock_add_book (GIMP_DOCK (dock), GIMP_DOCKBOOK (dockbook), 0);
dockable = gimp_dockable_new ("Brush Grid", "Brushes",
test_brush_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
global_brush_factory,
NULL,
gimp_context_get_user (),
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
dockable = gimp_dockable_new ("Pattern Grid", "Patterns",
test_pattern_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
global_pattern_factory,
NULL,
gimp_context_get_user (),
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
dockable = gimp_dockable_new ("Gradient Grid", "Gradients",
test_gradient_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
global_gradient_factory,
NULL,
gimp_context_get_user (),
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
dockable = gimp_dockable_new ("Palette Grid", "Palettes",
test_palette_tab_func);
view = gimp_data_factory_view_new (GIMP_VIEW_TYPE_GRID,
global_palette_factory,
NULL,
gimp_context_get_user (),
32,
5, 3);
gtk_container_add (GTK_CONTAINER (dockable), view);
gtk_widget_show (view);
gimp_dock_add (GIMP_DOCK (dock), GIMP_DOCKABLE (dockable), -1, -1);
gtk_widget_show (dock);
test_dock_new (GIMP_VIEW_TYPE_GRID,
gimp_context_get_user ());
}

View File

@ -33,29 +33,35 @@
#include "gimpdockbook.h"
static void gimp_dock_class_init (GimpDockClass *klass);
static void gimp_dock_init (GimpDock *dock);
static void gimp_dock_class_init (GimpDockClass *klass);
static void gimp_dock_init (GimpDock *dock);
static void gimp_dock_destroy (GtkObject *object);
static GtkWidget * gimp_dock_separator_new (GimpDock *dock);
static void gimp_dock_destroy (GtkObject *object);
static gboolean gimp_dock_separator_button_press (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data);
static gboolean gimp_dock_separator_button_release (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data);
/*
static gboolean gimp_dock_tab_button_press (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data);
static void gimp_dock_tab_drag_begin (GtkWidget *widget,
GdkDragContext *context,
gpointer data);
static void gimp_dock_tab_drag_end (GtkWidget *widget,
GdkDragContext *context,
gpointer data);
static void gimp_dock_separator_drag_begin (GtkWidget *widget,
GdkDragContext *context,
gpointer data);
static void gimp_dock_separator_drag_end (GtkWidget *widget,
GdkDragContext *context,
gpointer data);
*/
static gboolean gimp_dock_separator_drag_drop (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
guint time,
gpointer data);
static gboolean gimp_dock_separator_drag_drop (GtkWidget *widget,
GdkDragContext *context,
gint x,
gint y,
guint time,
gpointer data);
static GtkWindowClass *parent_class = NULL;
@ -105,31 +111,6 @@ gimp_dock_class_init (GimpDockClass *klass)
object_class->destroy = gimp_dock_destroy;
}
static GtkWidget *
gimp_dock_separator_new (GimpDock *dock)
{
GtkWidget *event_box;
GtkWidget *frame;
event_box = gtk_event_box_new ();
gtk_widget_set_usize (event_box, -1, 8);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
gtk_container_add (GTK_CONTAINER (event_box), frame);
gtk_widget_show (frame);
gtk_drag_dest_set (GTK_WIDGET (event_box),
GTK_DEST_DEFAULT_ALL,
dialog_target_table, n_dialog_targets,
GDK_ACTION_MOVE);
gtk_signal_connect (GTK_OBJECT (event_box), "drag_drop",
GTK_SIGNAL_FUNC (gimp_dock_separator_drag_drop),
dock);
return event_box;
}
static void
gimp_dock_init (GimpDock *dock)
{
@ -165,6 +146,38 @@ gimp_dock_new (void)
return GTK_WIDGET (gtk_type_new (GIMP_TYPE_DOCK));
}
static GtkWidget *
gimp_dock_separator_new (GimpDock *dock)
{
GtkWidget *event_box;
GtkWidget *frame;
event_box = gtk_event_box_new ();
gtk_widget_set_usize (event_box, -1, 8);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);
gtk_container_add (GTK_CONTAINER (event_box), frame);
gtk_widget_show (frame);
gtk_drag_dest_set (GTK_WIDGET (event_box),
GTK_DEST_DEFAULT_ALL,
dialog_target_table, n_dialog_targets,
GDK_ACTION_MOVE);
gtk_signal_connect (GTK_OBJECT (event_box), "drag_drop",
GTK_SIGNAL_FUNC (gimp_dock_separator_drag_drop),
dock);
gtk_signal_connect (GTK_OBJECT (event_box), "button_press_event",
GTK_SIGNAL_FUNC (gimp_dock_separator_button_press),
dock);
gtk_signal_connect (GTK_OBJECT (event_box), "button_release_event",
GTK_SIGNAL_FUNC (gimp_dock_separator_button_release),
dock);
return event_box;
}
void
gimp_dock_add (GimpDock *dock,
GimpDockable *dockable,
@ -291,36 +304,36 @@ gimp_dock_remove_book (GimpDock *dock,
}
}
/*
static gboolean
gimp_dock_tab_button_press (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data)
gimp_dock_separator_button_press (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data)
{
GimpDockable *dockable;
gint page_num;
dockable = GIMP_DOCKABLE (data);
switch (bevent->button)
if (bevent->type == GDK_BUTTON_PRESS)
{
case 3:
gtk_menu_popup (GTK_MENU (GTK_NOTEBOOK (dockable->dock->notebook)->menu),
NULL, NULL,
NULL, NULL, 3, bevent->time);
break;
default:
page_num = gtk_notebook_page_num (GTK_NOTEBOOK (dockable->dock->notebook),
GTK_WIDGET (dockable));
gtk_notebook_set_page (GTK_NOTEBOOK (dockable->dock->notebook), page_num);
break;
if (bevent->button == 1)
{
gtk_grab_add (widget);
}
}
return FALSE;
return TRUE;
}
static gboolean
gimp_dock_separator_button_release (GtkWidget *widget,
GdkEventButton *bevent,
gpointer data)
{
if (bevent->button == 1)
{
gtk_grab_remove (widget);
}
return TRUE;
}
/*
static void
gimp_dock_tab_drag_begin (GtkWidget *widget,
GdkDragContext *context,

View File

@ -157,6 +157,9 @@ gimp_palette_preview_needs_popup (GimpPreview *preview)
palette = GIMP_PALETTE (preview->viewable);
if (! palette->n_colors)
return FALSE;
if (palette->n_columns)
popup_width = palette->n_columns;
else