Remove size_request from GtkHSV

This commit is contained in:
Matthias Clasen 2010-10-26 22:56:53 -04:00 committed by Tristan Van Berkom
parent b3f6f67c33
commit 381cd8b07c

View File

@ -87,19 +87,21 @@ enum {
}; };
static void gtk_hsv_destroy (GtkWidget *widget); static void gtk_hsv_destroy (GtkWidget *widget);
static void gtk_hsv_map (GtkWidget *widget);
static void gtk_hsv_unmap (GtkWidget *widget);
static void gtk_hsv_realize (GtkWidget *widget); static void gtk_hsv_realize (GtkWidget *widget);
static void gtk_hsv_unrealize (GtkWidget *widget); static void gtk_hsv_unrealize (GtkWidget *widget);
static void gtk_hsv_size_request (GtkWidget *widget, static void gtk_hsv_get_preferred_width (GtkWidget *widget,
GtkRequisition *requisition); gint *minimum,
gint *natural);
static void gtk_hsv_get_preferred_height (GtkWidget *widget,
gint *minimum,
gint *natural);
static void gtk_hsv_size_allocate (GtkWidget *widget, static void gtk_hsv_size_allocate (GtkWidget *widget,
GtkAllocation *allocation); GtkAllocation *allocation);
static gint gtk_hsv_button_press (GtkWidget *widget, static gboolean gtk_hsv_button_press (GtkWidget *widget,
GdkEventButton *event); GdkEventButton *event);
static gint gtk_hsv_button_release (GtkWidget *widget, static gboolean gtk_hsv_button_release (GtkWidget *widget,
GdkEventButton *event); GdkEventButton *event);
static gint gtk_hsv_motion (GtkWidget *widget, static gboolean gtk_hsv_motion (GtkWidget *widget,
GdkEventMotion *event); GdkEventMotion *event);
static gboolean gtk_hsv_draw (GtkWidget *widget, static gboolean gtk_hsv_draw (GtkWidget *widget,
cairo_t *cr); cairo_t *cr);
@ -128,11 +130,10 @@ gtk_hsv_class_init (GtkHSVClass *class)
hsv_class = GTK_HSV_CLASS (class); hsv_class = GTK_HSV_CLASS (class);
widget_class->destroy = gtk_hsv_destroy; widget_class->destroy = gtk_hsv_destroy;
widget_class->map = gtk_hsv_map;
widget_class->unmap = gtk_hsv_unmap;
widget_class->realize = gtk_hsv_realize; widget_class->realize = gtk_hsv_realize;
widget_class->unrealize = gtk_hsv_unrealize; widget_class->unrealize = gtk_hsv_unrealize;
widget_class->size_request = gtk_hsv_size_request; widget_class->get_preferred_width = gtk_hsv_get_preferred_width;
widget_class->get_preferred_height = gtk_hsv_get_preferred_height;
widget_class->size_allocate = gtk_hsv_size_allocate; widget_class->size_allocate = gtk_hsv_size_allocate;
widget_class->button_press_event = gtk_hsv_button_press; widget_class->button_press_event = gtk_hsv_button_press;
widget_class->button_release_event = gtk_hsv_button_release; widget_class->button_release_event = gtk_hsv_button_release;
@ -170,22 +171,18 @@ gtk_hsv_class_init (GtkHSVClass *class)
gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Up, 0, gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Up, 0,
"move", 1, "move", 1,
G_TYPE_ENUM, GTK_DIR_UP); G_TYPE_ENUM, GTK_DIR_UP);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, 0, gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, 0,
"move", 1, "move", 1,
G_TYPE_ENUM, GTK_DIR_DOWN); G_TYPE_ENUM, GTK_DIR_DOWN);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Down, 0, gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Down, 0,
"move", 1, "move", 1,
G_TYPE_ENUM, GTK_DIR_DOWN); G_TYPE_ENUM, GTK_DIR_DOWN);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Right, 0, gtk_binding_entry_add_signal (binding_set, GDK_KEY_Right, 0,
"move", 1, "move", 1,
G_TYPE_ENUM, GTK_DIR_RIGHT); G_TYPE_ENUM, GTK_DIR_RIGHT);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Right, 0, gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Right, 0,
"move", 1, "move", 1,
G_TYPE_ENUM, GTK_DIR_RIGHT); G_TYPE_ENUM, GTK_DIR_RIGHT);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Left, 0, gtk_binding_entry_add_signal (binding_set, GDK_KEY_Left, 0,
"move", 1, "move", 1,
G_TYPE_ENUM, GTK_DIR_LEFT); G_TYPE_ENUM, GTK_DIR_LEFT);
@ -196,7 +193,6 @@ gtk_hsv_class_init (GtkHSVClass *class)
g_type_class_add_private (gobject_class, sizeof (GtkHSVPrivate)); g_type_class_add_private (gobject_class, sizeof (GtkHSVPrivate));
} }
/* Object initialization function for the HSV color selector */
static void static void
gtk_hsv_init (GtkHSV *hsv) gtk_hsv_init (GtkHSV *hsv)
{ {
@ -217,43 +213,12 @@ gtk_hsv_init (GtkHSV *hsv)
priv->ring_width = DEFAULT_RING_WIDTH; priv->ring_width = DEFAULT_RING_WIDTH;
} }
/* Destroy handler for the HSV color selector */
static void static void
gtk_hsv_destroy (GtkWidget *widget) gtk_hsv_destroy (GtkWidget *widget)
{ {
GTK_WIDGET_CLASS (gtk_hsv_parent_class)->destroy (widget); GTK_WIDGET_CLASS (gtk_hsv_parent_class)->destroy (widget);
} }
/* Default signal handlers */
/* Map handler for the HSV color selector */
static void
gtk_hsv_map (GtkWidget *widget)
{
GtkHSV *hsv = GTK_HSV (widget);
GtkHSVPrivate *priv = hsv->priv;
GTK_WIDGET_CLASS (gtk_hsv_parent_class)->map (widget);
gdk_window_show (priv->window);
}
/* Unmap handler for the HSV color selector */
static void
gtk_hsv_unmap (GtkWidget *widget)
{
GtkHSV *hsv = GTK_HSV (widget);
GtkHSVPrivate *priv = hsv->priv;
gdk_window_hide (priv->window);
GTK_WIDGET_CLASS (gtk_hsv_parent_class)->unmap (widget);
}
/* Realize handler for the HSV color selector */
static void static void
gtk_hsv_realize (GtkWidget *widget) gtk_hsv_realize (GtkWidget *widget)
{ {
@ -266,8 +231,6 @@ gtk_hsv_realize (GtkWidget *widget)
gtk_widget_set_realized (widget, TRUE); gtk_widget_set_realized (widget, TRUE);
/* Create window */
gtk_widget_get_allocation (widget, &allocation); gtk_widget_get_allocation (widget, &allocation);
attr.window_type = GDK_WINDOW_CHILD; attr.window_type = GDK_WINDOW_CHILD;
@ -291,11 +254,11 @@ gtk_hsv_realize (GtkWidget *widget)
priv->window = gdk_window_new (parent_window, &attr, attr_mask); priv->window = gdk_window_new (parent_window, &attr, attr_mask);
gdk_window_set_user_data (priv->window, hsv); gdk_window_set_user_data (priv->window, hsv);
gdk_window_show (priv->window);
gtk_widget_style_attach (widget); gtk_widget_style_attach (widget);
} }
/* Unrealize handler for the HSV color selector */
static void static void
gtk_hsv_unrealize (GtkWidget *widget) gtk_hsv_unrealize (GtkWidget *widget)
{ {
@ -309,10 +272,10 @@ gtk_hsv_unrealize (GtkWidget *widget)
GTK_WIDGET_CLASS (gtk_hsv_parent_class)->unrealize (widget); GTK_WIDGET_CLASS (gtk_hsv_parent_class)->unrealize (widget);
} }
/* Size_request handler for the HSV color selector */
static void static void
gtk_hsv_size_request (GtkWidget *widget, gtk_hsv_get_preferred_width (GtkWidget *widget,
GtkRequisition *requisition) gint *minimum,
gint *natural)
{ {
GtkHSV *hsv = GTK_HSV (widget); GtkHSV *hsv = GTK_HSV (widget);
GtkHSVPrivate *priv = hsv->priv; GtkHSVPrivate *priv = hsv->priv;
@ -324,11 +287,29 @@ gtk_hsv_size_request (GtkWidget *widget,
"focus-padding", &focus_pad, "focus-padding", &focus_pad,
NULL); NULL);
requisition->width = priv->size + 2 * (focus_width + focus_pad); *minimum = priv->size + 2 * (focus_width + focus_pad);
requisition->height = priv->size + 2 * (focus_width + focus_pad); *natural = priv->size + 2 * (focus_width + focus_pad);
}
static void
gtk_hsv_get_preferred_height (GtkWidget *widget,
gint *minimum,
gint *natural)
{
GtkHSV *hsv = GTK_HSV (widget);
GtkHSVPrivate *priv = hsv->priv;
gint focus_width;
gint focus_pad;
gtk_widget_style_get (widget,
"focus-line-width", &focus_width,
"focus-padding", &focus_pad,
NULL);
*minimum = priv->size + 2 * (focus_width + focus_pad);
*natural = priv->size + 2 * (focus_width + focus_pad);
} }
/* Size_allocate handler for the HSV color selector */
static void static void
gtk_hsv_size_allocate (GtkWidget *widget, gtk_hsv_size_allocate (GtkWidget *widget,
GtkAllocation *allocation) GtkAllocation *allocation)
@ -718,7 +699,6 @@ gtk_hsv_grab_broken (GtkWidget *widget,
return TRUE; return TRUE;
} }
/* Button_press_event handler for the HSV color selector */
static gint static gint
gtk_hsv_button_press (GtkWidget *widget, gtk_hsv_button_press (GtkWidget *widget,
GdkEventButton *event) GdkEventButton *event)
@ -768,7 +748,6 @@ gtk_hsv_button_press (GtkWidget *widget,
return FALSE; return FALSE;
} }
/* Button_release_event handler for the HSV color selector */
static gint static gint
gtk_hsv_button_release (GtkWidget *widget, gtk_hsv_button_release (GtkWidget *widget,
GdkEventButton *event) GdkEventButton *event)
@ -792,21 +771,26 @@ gtk_hsv_button_release (GtkWidget *widget,
y = event->y; y = event->y;
if (mode == DRAG_H) if (mode == DRAG_H)
{
gtk_hsv_set_color (hsv, compute_v (hsv, x, y), priv->s, priv->v); gtk_hsv_set_color (hsv, compute_v (hsv, x, y), priv->s, priv->v);
else if (mode == DRAG_SV) { }
double s, v; else if (mode == DRAG_SV)
{
gdouble s, v;
compute_sv (hsv, x, y, &s, &v); compute_sv (hsv, x, y, &s, &v);
gtk_hsv_set_color (hsv, priv->h, s, v); gtk_hsv_set_color (hsv, priv->h, s, v);
} else }
else
{
g_assert_not_reached (); g_assert_not_reached ();
}
gdk_display_pointer_ungrab (gdk_window_get_display (event->window), gdk_display_pointer_ungrab (gdk_window_get_display (event->window),
event->time); event->time);
return TRUE; return TRUE;
} }
/* Motion_notify_event handler for the HSV color selector */
static gint static gint
gtk_hsv_motion (GtkWidget *widget, gtk_hsv_motion (GtkWidget *widget,
GdkEventMotion *event) GdkEventMotion *event)
@ -831,7 +815,7 @@ gtk_hsv_motion (GtkWidget *widget,
} }
else if (priv->mode == DRAG_SV) else if (priv->mode == DRAG_SV)
{ {
double s, v; gdouble s, v;
compute_sv (hsv, x, y, &s, &v); compute_sv (hsv, x, y, &s, &v);
gtk_hsv_set_color (hsv, priv->h, s, v); gtk_hsv_set_color (hsv, priv->h, s, v);
@ -839,6 +823,7 @@ gtk_hsv_motion (GtkWidget *widget,
} }
g_assert_not_reached (); g_assert_not_reached ();
return FALSE; return FALSE;
} }