Allocation/ requisition accessors in KatzeThrobber

This commit is contained in:
Christian Dywan 2010-02-19 16:39:14 +01:00
parent 42cf028781
commit ff97ec6232

View file

@ -16,6 +16,10 @@
#include <glib/gi18n.h> #include <glib/gi18n.h>
#include <math.h> #include <math.h>
#if !GTK_CHECK_VERSION (2, 18, 0)
#define gtk_widget_get_allocation (wdgt, alloc) *alloc = wdgt->allocation
#endif
struct _KatzeThrobber struct _KatzeThrobber
{ {
GtkMisc parent_instance; GtkMisc parent_instance;
@ -793,16 +797,20 @@ katze_throbber_aligned_coords (GtkWidget* widget,
{ {
gfloat xalign, yalign; gfloat xalign, yalign;
gint xpad, ypad; gint xpad, ypad;
GtkAllocation allocation;
GtkRequisition requisition;
gtk_misc_get_alignment (GTK_MISC (widget), &xalign, &yalign); gtk_misc_get_alignment (GTK_MISC (widget), &xalign, &yalign);
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
xalign = 1.0f - xalign; xalign = 1.0f - xalign;
gtk_misc_get_padding (GTK_MISC (widget), &xpad, &ypad); gtk_misc_get_padding (GTK_MISC (widget), &xpad, &ypad);
*ax = floor (widget->allocation.x + xpad gtk_widget_get_allocation (widget, &allocation);
+ ((widget->allocation.width - widget->requisition.width) * xalign)); gtk_widget_size_request (widget, &requisition);
*ay = floor (widget->allocation.y + ypad *ax = floor (allocation.x + xpad
+ ((widget->allocation.height - widget->requisition.height) * yalign)); + ((allocation.width - requisition.width) * xalign));
*ay = floor (allocation.y + ypad
+ ((allocation.height - requisition.height) * yalign));
} }
static gboolean static gboolean