diff options
author | Tim Janik <timj@gtk.org> | 1998-07-17 00:03:35 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-07-17 00:03:35 +0000 |
commit | ca17982ed272888a5120db6951ad15e216596e30 (patch) | |
tree | 7a1fd041b6e3e504135322917d3a6835dc985e60 /gtk | |
parent | 699dcbab17cb1525c065323dc9fb549ec8704c78 (diff) | |
download | gtk+-ca17982ed272888a5120db6951ad15e216596e30.tar.gz |
use misc->xpad for x calculation instead of ypad (typo). (gtk_arrow_set):
Fri Jul 17 01:21:32 1998 Tim Janik <timj@gtk.org>
* gtk/gtkarrow.c (gtk_arrow_expose): use misc->xpad for x calculation
instead of ypad (typo).
(gtk_arrow_set): clear all of the arrow's allocation (left a 1 pixel
border around the allocation).
(gtk_arrow_init): the static requisition needs to be setup in this
function rather than gtk_widget_new(), so arrow creation works without
the gtk_arrow_new() constructing.
(gtk_arrow_expose): return TRUE, since we actually handled the expose.
* gtk/gtkwidget.c (gtk_widget_real_size_request): provide a default
implementation for GtkWidget::size_request, so size requisition for
simple statically sized widgets like GtkArrow works.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkarrow.c | 20 | ||||
-rw-r--r-- | gtk/gtkwidget.c | 21 |
2 files changed, 23 insertions, 18 deletions
diff --git a/gtk/gtkarrow.c b/gtk/gtkarrow.c index adccf52e1b..566b5ecc09 100644 --- a/gtk/gtkarrow.c +++ b/gtk/gtkarrow.c @@ -136,6 +136,9 @@ gtk_arrow_init (GtkArrow *arrow) { GTK_WIDGET_SET_FLAGS (arrow, GTK_NO_WINDOW); + GTK_WIDGET (arrow)->requisition.width = MIN_ARROW_SIZE + GTK_MISC (arrow)->xpad * 2; + GTK_WIDGET (arrow)->requisition.height = MIN_ARROW_SIZE + GTK_MISC (arrow)->ypad * 2; + arrow->arrow_type = GTK_ARROW_RIGHT; arrow->shadow_type = GTK_SHADOW_OUT; } @@ -146,10 +149,7 @@ gtk_arrow_new (GtkArrowType arrow_type, { GtkArrow *arrow; - arrow = gtk_type_new (gtk_arrow_get_type ()); - - GTK_WIDGET (arrow)->requisition.width = MIN_ARROW_SIZE + GTK_MISC (arrow)->xpad * 2; - GTK_WIDGET (arrow)->requisition.height = MIN_ARROW_SIZE + GTK_MISC (arrow)->ypad * 2; + arrow = gtk_type_new (GTK_TYPE_ARROW); arrow->arrow_type = arrow_type; arrow->shadow_type = shadow_type; @@ -174,10 +174,10 @@ gtk_arrow_set (GtkArrow *arrow, if (GTK_WIDGET_DRAWABLE (arrow)) { gdk_window_clear_area (GTK_WIDGET (arrow)->window, - GTK_WIDGET (arrow)->allocation.x + 1, - GTK_WIDGET (arrow)->allocation.y + 1, - GTK_WIDGET (arrow)->allocation.width - 2, - GTK_WIDGET (arrow)->allocation.height - 2); + GTK_WIDGET (arrow)->allocation.x, + GTK_WIDGET (arrow)->allocation.y, + GTK_WIDGET (arrow)->allocation.width, + GTK_WIDGET (arrow)->allocation.height); gtk_widget_queue_draw (GTK_WIDGET (arrow)); } } @@ -209,7 +209,7 @@ gtk_arrow_expose (GtkWidget *widget, extent = MIN (width, height); x = ((widget->allocation.x + misc->xpad) * (1.0 - misc->xalign) + - (widget->allocation.x + widget->allocation.width - extent - misc->ypad) * misc->xalign); + (widget->allocation.x + widget->allocation.width - extent - misc->xpad) * misc->xalign); y = ((widget->allocation.y + misc->ypad) * (1.0 - misc->yalign) + (widget->allocation.y + widget->allocation.height - extent - misc->ypad) * misc->yalign); @@ -232,5 +232,5 @@ gtk_arrow_expose (GtkWidget *widget, x, y, extent, extent); } - return FALSE; + return TRUE; } diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 72ecdb322c..d19896353c 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -183,6 +183,8 @@ static void gtk_widget_real_realize (GtkWidget *widget); static void gtk_widget_real_unrealize (GtkWidget *widget); static void gtk_widget_real_draw (GtkWidget *widget, GdkRectangle *area); +static void gtk_widget_real_size_request (GtkWidget *widget, + GtkRequisition *requisition); static void gtk_widget_real_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gint gtk_widget_real_key_press_event (GtkWidget *widget, @@ -718,7 +720,7 @@ gtk_widget_class_init (GtkWidgetClass *klass) klass->unrealize = gtk_widget_real_unrealize; klass->draw = gtk_widget_real_draw; klass->draw_focus = NULL; - klass->size_request = NULL; + klass->size_request = gtk_widget_real_size_request; klass->size_allocate = gtk_widget_real_size_allocate; klass->state_changed = NULL; klass->parent_set = NULL; @@ -3839,13 +3841,16 @@ gtk_widget_real_draw (GtkWidget *widget, } } -/***************************************** - * gtk_widget_real_size_allocate: - * - * arguments: - * - * results: - *****************************************/ +static void +gtk_widget_real_size_request (GtkWidget *widget, + GtkRequisition *requisition) +{ + g_return_if_fail (widget != NULL); + g_return_if_fail (GTK_IS_WIDGET (widget)); + + requisition->width = widget->requisition.width; + requisition->height = widget->requisition.height; +} static void gtk_widget_real_size_allocate (GtkWidget *widget, |