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_map (GtkWidget *widget);
|
||||
static void gtk_hsv_unmap (GtkWidget *widget);
|
||||
static void gtk_hsv_realize (GtkWidget *widget);
|
||||
static void gtk_hsv_unrealize (GtkWidget *widget);
|
||||
static void gtk_hsv_size_request (GtkWidget *widget,
|
||||
GtkRequisition *requisition);
|
||||
static void gtk_hsv_get_preferred_width (GtkWidget *widget,
|
||||
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,
|
||||
GtkAllocation *allocation);
|
||||
static gint gtk_hsv_button_press (GtkWidget *widget,
|
||||
static gboolean gtk_hsv_button_press (GtkWidget *widget,
|
||||
GdkEventButton *event);
|
||||
static gint gtk_hsv_button_release (GtkWidget *widget,
|
||||
static gboolean gtk_hsv_button_release (GtkWidget *widget,
|
||||
GdkEventButton *event);
|
||||
static gint gtk_hsv_motion (GtkWidget *widget,
|
||||
static gboolean gtk_hsv_motion (GtkWidget *widget,
|
||||
GdkEventMotion *event);
|
||||
static gboolean gtk_hsv_draw (GtkWidget *widget,
|
||||
cairo_t *cr);
|
||||
@ -128,11 +130,10 @@ gtk_hsv_class_init (GtkHSVClass *class)
|
||||
hsv_class = GTK_HSV_CLASS (class);
|
||||
|
||||
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->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->button_press_event = gtk_hsv_button_press;
|
||||
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,
|
||||
"move", 1,
|
||||
G_TYPE_ENUM, GTK_DIR_UP);
|
||||
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, 0,
|
||||
"move", 1,
|
||||
G_TYPE_ENUM, GTK_DIR_DOWN);
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Down, 0,
|
||||
"move", 1,
|
||||
G_TYPE_ENUM, GTK_DIR_DOWN);
|
||||
|
||||
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Right, 0,
|
||||
"move", 1,
|
||||
G_TYPE_ENUM, GTK_DIR_RIGHT);
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Right, 0,
|
||||
"move", 1,
|
||||
G_TYPE_ENUM, GTK_DIR_RIGHT);
|
||||
|
||||
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Left, 0,
|
||||
"move", 1,
|
||||
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));
|
||||
}
|
||||
|
||||
/* Object initialization function for the HSV color selector */
|
||||
static void
|
||||
gtk_hsv_init (GtkHSV *hsv)
|
||||
{
|
||||
@ -217,43 +213,12 @@ gtk_hsv_init (GtkHSV *hsv)
|
||||
priv->ring_width = DEFAULT_RING_WIDTH;
|
||||
}
|
||||
|
||||
/* Destroy handler for the HSV color selector */
|
||||
static void
|
||||
gtk_hsv_destroy (GtkWidget *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
|
||||
gtk_hsv_realize (GtkWidget *widget)
|
||||
{
|
||||
@ -266,8 +231,6 @@ gtk_hsv_realize (GtkWidget *widget)
|
||||
|
||||
gtk_widget_set_realized (widget, TRUE);
|
||||
|
||||
/* Create window */
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
|
||||
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);
|
||||
gdk_window_set_user_data (priv->window, hsv);
|
||||
gdk_window_show (priv->window);
|
||||
|
||||
gtk_widget_style_attach (widget);
|
||||
}
|
||||
|
||||
/* Unrealize handler for the HSV color selector */
|
||||
static void
|
||||
gtk_hsv_unrealize (GtkWidget *widget)
|
||||
{
|
||||
@ -309,10 +272,10 @@ gtk_hsv_unrealize (GtkWidget *widget)
|
||||
GTK_WIDGET_CLASS (gtk_hsv_parent_class)->unrealize (widget);
|
||||
}
|
||||
|
||||
/* Size_request handler for the HSV color selector */
|
||||
static void
|
||||
gtk_hsv_size_request (GtkWidget *widget,
|
||||
GtkRequisition *requisition)
|
||||
gtk_hsv_get_preferred_width (GtkWidget *widget,
|
||||
gint *minimum,
|
||||
gint *natural)
|
||||
{
|
||||
GtkHSV *hsv = GTK_HSV (widget);
|
||||
GtkHSVPrivate *priv = hsv->priv;
|
||||
@ -324,11 +287,29 @@ gtk_hsv_size_request (GtkWidget *widget,
|
||||
"focus-padding", &focus_pad,
|
||||
NULL);
|
||||
|
||||
requisition->width = priv->size + 2 * (focus_width + focus_pad);
|
||||
requisition->height = priv->size + 2 * (focus_width + focus_pad);
|
||||
*minimum = 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
|
||||
gtk_hsv_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation)
|
||||
@ -718,7 +699,6 @@ gtk_hsv_grab_broken (GtkWidget *widget,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Button_press_event handler for the HSV color selector */
|
||||
static gint
|
||||
gtk_hsv_button_press (GtkWidget *widget,
|
||||
GdkEventButton *event)
|
||||
@ -768,7 +748,6 @@ gtk_hsv_button_press (GtkWidget *widget,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Button_release_event handler for the HSV color selector */
|
||||
static gint
|
||||
gtk_hsv_button_release (GtkWidget *widget,
|
||||
GdkEventButton *event)
|
||||
@ -792,21 +771,26 @@ gtk_hsv_button_release (GtkWidget *widget,
|
||||
y = event->y;
|
||||
|
||||
if (mode == DRAG_H)
|
||||
{
|
||||
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);
|
||||
gtk_hsv_set_color (hsv, priv->h, s, v);
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
gdk_display_pointer_ungrab (gdk_window_get_display (event->window),
|
||||
event->time);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Motion_notify_event handler for the HSV color selector */
|
||||
static gint
|
||||
gtk_hsv_motion (GtkWidget *widget,
|
||||
GdkEventMotion *event)
|
||||
@ -831,7 +815,7 @@ gtk_hsv_motion (GtkWidget *widget,
|
||||
}
|
||||
else if (priv->mode == DRAG_SV)
|
||||
{
|
||||
double s, v;
|
||||
gdouble s, v;
|
||||
|
||||
compute_sv (hsv, x, y, &s, &v);
|
||||
gtk_hsv_set_color (hsv, priv->h, s, v);
|
||||
@ -839,6 +823,7 @@ gtk_hsv_motion (GtkWidget *widget,
|
||||
}
|
||||
|
||||
g_assert_not_reached ();
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user