Implemented uiWindowSetMargined() on GTK+.
This commit is contained in:
parent
7c6beec879
commit
d146167321
|
@ -55,14 +55,29 @@ static void uiContainer_remove(GtkContainer *container, GtkWidget *widget)
|
||||||
g_ptr_array_remove(c->children, widget);
|
g_ptr_array_remove(c->children, widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define gtkXMargin 12
|
||||||
|
#define gtkYMargin 12
|
||||||
|
|
||||||
static void uiContainer_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
|
static void uiContainer_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
|
||||||
{
|
{
|
||||||
uiContainer *c = uiContainer(widget);
|
uiContainer *c = uiContainer(widget);
|
||||||
uiSizing d;
|
uiSizing d;
|
||||||
|
intmax_t x, y, width, height;
|
||||||
|
|
||||||
gtk_widget_set_allocation(GTK_WIDGET(c), allocation);
|
gtk_widget_set_allocation(GTK_WIDGET(c), allocation);
|
||||||
if (c->child != NULL)
|
if (c->child == NULL)
|
||||||
(*(c->child->resize))(c->child, allocation->x, allocation->y, allocation->width, allocation->height, &d);
|
return;
|
||||||
|
x = allocation->x;
|
||||||
|
y = allocation->y;
|
||||||
|
width = allocation->width;
|
||||||
|
height = allocation->height;
|
||||||
|
if (c->margined) {
|
||||||
|
x += gtkXMargin;
|
||||||
|
y += gtkYMargin;
|
||||||
|
width -= 2 * gtkXMargin;
|
||||||
|
height -= 2 * gtkYMargin;
|
||||||
|
}
|
||||||
|
(*(c->child->resize))(c->child, x, y, width, height, &d);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct forall {
|
struct forall {
|
||||||
|
|
|
@ -26,6 +26,7 @@ struct uiContainer {
|
||||||
uiControl *child;
|
uiControl *child;
|
||||||
// these are the actual children widgets of the container as far as GTK+ is concerned
|
// these are the actual children widgets of the container as far as GTK+ is concerned
|
||||||
GPtrArray *children; // for forall()
|
GPtrArray *children; // for forall()
|
||||||
|
gboolean margined;
|
||||||
};
|
};
|
||||||
struct uiContainerClass {
|
struct uiContainerClass {
|
||||||
GtkContainerClass parent_class;
|
GtkContainerClass parent_class;
|
||||||
|
|
|
@ -81,3 +81,11 @@ void uiWindowSetChild(uiWindow *w, uiControl *c)
|
||||||
uiContainer(w->container)->child = c;
|
uiContainer(w->container)->child = c;
|
||||||
(*(c->setParent))(c, (uintptr_t) (w->container));
|
(*(c->setParent))(c, (uintptr_t) (w->container));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO margined
|
||||||
|
|
||||||
|
void uiWindowSetMargined(uiWindow *w, int margined)
|
||||||
|
{
|
||||||
|
uiContainer(w->container)->margined = margined;
|
||||||
|
updateParent((uintptr_t) (w->container));
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue