r998 - trunk/src/target/OM-2007/openmoko-libs/libmokoui
mickey at sita.openmoko.org
mickey at sita.openmoko.org
Thu Feb 15 21:12:12 CET 2007
Author: mickey
Date: 2007-02-15 21:12:12 +0100 (Thu, 15 Feb 2007)
New Revision: 998
Modified:
trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-alignment.c
Log:
libmokoui: revert svn diff -r982:983 since it rendered openmoko-finger-demo in an endless loop.
Thomas, please have a look. It's bug #186 now
Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-alignment.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-alignment.c 2007-02-15 19:58:52 UTC (rev 997)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-alignment.c 2007-02-15 20:12:12 UTC (rev 998)
@@ -33,6 +33,16 @@
static GtkAlignmentClass* parent_class = NULL;
+//FIXME this is a bit hackish
+#define GTK_ALIGNMENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GTK_TYPE_ALIGNMENT, GtkAlignmentPrivate))
+typedef struct _GtkAlignmentPrivate
+{
+ guint padding_top;
+ guint padding_bottom;
+ guint padding_left;
+ guint padding_right;
+};
+
typedef struct _MokoAlignmentPrivate
{
} MokoAlignmentPrivate;
@@ -47,6 +57,7 @@
moko_alignment_class_init (MokoAlignmentClass *klass)
{
/* hook parent */
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
parent_class = g_type_class_peek_parent(klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
@@ -89,9 +100,13 @@
"padding", &padding,
NULL);
+ GtkAlignmentPrivate *priv = GTK_ALIGNMENT_GET_PRIVATE(widget);
if ( padding )
{
- gtk_alignment_set_padding (GTK_ALIGNMENT (widget), padding->top, padding->bottom, padding->left, padding->right);
+ priv->padding_top = padding->top;
+ priv->padding_bottom = padding->bottom;
+ priv->padding_left = padding->left;
+ priv->padding_right = padding->right;
}
GtkBin* bin = GTK_BIN(widget);
@@ -109,10 +124,8 @@
requisition->height += child_requisition.height;
/* Request extra space for the padding: */
- guint p_top, p_bottom, p_left, p_right;
- gtk_alignment_get_padding (GTK_ALIGNMENT (widget), &p_top, &p_bottom, &p_left, &p_right);
- requisition->width += (p_left + p_right);
- requisition->height += (p_top + p_bottom);
+ requisition->width += (priv->padding_left + priv->padding_right);
+ requisition->height += (priv->padding_top + priv->padding_bottom);
}
}
@@ -127,6 +140,7 @@
gint width, height;
gint border_width;
gint padding_horizontal, padding_vertical;
+ GtkAlignmentPrivate *priv;
padding_horizontal = 0;
padding_vertical = 0;
@@ -151,12 +165,10 @@
border_width = GTK_CONTAINER (alignment)->border_width;
- guint p_top, p_bottom, p_left, p_right;
- gtk_alignment_get_padding (GTK_ALIGNMENT (widget), &p_top, &p_bottom, &p_left, &p_right);
+ priv = GTK_ALIGNMENT_GET_PRIVATE (widget);
+ padding_horizontal = priv->padding_left + priv->padding_right;
+ padding_vertical = priv->padding_top + priv->padding_bottom;
- padding_horizontal = p_left + p_right;
- padding_vertical = p_top + p_bottom;
-
width = allocation->width - padding_horizontal - 2 * border_width;
height = allocation->height - padding_vertical - 2 * border_width;
@@ -177,20 +189,20 @@
if (GTK_WIDGET_NO_WINDOW (widget))
{
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
- child_allocation.x = (1.0 - alignment->xalign) * (width - child_allocation.width) + allocation->x + border_width + p_right;
+ child_allocation.x = (1.0 - alignment->xalign) * (width - child_allocation.width) + allocation->x + border_width + priv->padding_right;
else
- child_allocation.x = alignment->xalign * (width - child_allocation.width) + allocation->x + border_width + p_left;
+ child_allocation.x = alignment->xalign * (width - child_allocation.width) + allocation->x + border_width + priv->padding_left;
- child_allocation.y = alignment->yalign * (height - child_allocation.height) + allocation->y + border_width + p_top;
+ child_allocation.y = alignment->yalign * (height - child_allocation.height) + allocation->y + border_width + priv->padding_top;
}
else
{
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
- child_allocation.x = (1.0 - alignment->xalign) * (width - child_allocation.width) + border_width + p_right;
+ child_allocation.x = (1.0 - alignment->xalign) * (width - child_allocation.width) + border_width + priv->padding_right;
else
- child_allocation.x = alignment->xalign * (width - child_allocation.width) + border_width + p_left;
+ child_allocation.x = alignment->xalign * (width - child_allocation.width) + border_width + priv->padding_left;
- child_allocation.y = alignment->yalign * (height - child_allocation.height) + border_width + p_top;
+ child_allocation.y = alignment->yalign * (height - child_allocation.height) + border_width + priv->padding_top;
}
gtk_widget_size_allocate (bin->child, &child_allocation);
}
More information about the commitlog
mailing list