Remove size_request from GtkHSV
This commit is contained in:
parent
b3f6f67c33
commit
381cd8b07c
109
gtk/gtkhsv.c
109
gtk/gtkhsv.c
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user