tMake GtkFrame borders work in the same way under Win32 as in real GTK+. - vacc… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 193aaa4907ea76ea36eae7d104a6a204d0b18630 | |
parent 47c9671ce85f3c44f0b6194a6888ecd3a5bf833c | |
Author: Ben Webb <[email protected]> | |
Date: Sun, 29 Sep 2002 15:59:30 +0000 | |
Make GtkFrame borders work in the same way under Win32 as in real GTK+. | |
Diffstat: | |
M src/gtkport/gtkport.c | 40 +++++++++++++++++++----------… | |
1 file changed, 25 insertions(+), 15 deletions(-) | |
--- | |
diff --git a/src/gtkport/gtkport.c b/src/gtkport/gtkport.c | |
t@@ -1706,14 +1706,24 @@ void gtk_container_set_size(GtkWidget *widget, GtkAllo… | |
void gtk_frame_set_size(GtkWidget *widget, GtkAllocation *allocation) | |
{ | |
GtkFrame *frame; | |
- GtkAllocation child_alloc; | |
+ GtkContainer *container; | |
frame = GTK_FRAME(widget); | |
- child_alloc.x = allocation->x + 3; | |
- child_alloc.y = allocation->y + 3 + frame->label_req.height; | |
- child_alloc.width = allocation->width - 6; | |
- child_alloc.height = allocation->height - frame->label_req.height - 6; | |
- gtk_container_set_size(widget, &child_alloc); | |
+ container = GTK_CONTAINER(widget); | |
+ allocation->x += container->border_width; | |
+ allocation->y += container->border_width; | |
+ allocation->width -= container->border_width * 2; | |
+ allocation->height -= container->border_width * 2; | |
+ | |
+ if (container->child) { | |
+ GtkAllocation child_alloc; | |
+ | |
+ child_alloc.x = allocation->x + 3; | |
+ child_alloc.y = allocation->y + 3 + frame->label_req.height; | |
+ child_alloc.width = allocation->width - 6; | |
+ child_alloc.height = allocation->height - frame->label_req.height - 6; | |
+ gtk_widget_set_size(container->child, &child_alloc); | |
+ } | |
} | |
void gtk_frame_set_shadow_type(GtkFrame *frame, GtkShadowType type) | |
t@@ -4280,9 +4290,7 @@ void gtk_notebook_destroy(GtkWidget *widget) | |
void gtk_notebook_set_size(GtkWidget *widget, GtkAllocation *allocation) | |
{ | |
GSList *children; | |
- GtkNotebookChild *note_child; | |
RECT rect; | |
- GtkAllocation child_alloc; | |
gtk_container_set_size(widget, allocation); | |
rect.left = allocation->x; | |
t@@ -4290,17 +4298,19 @@ void gtk_notebook_set_size(GtkWidget *widget, GtkAlloc… | |
rect.right = allocation->x + allocation->width; | |
rect.bottom = allocation->y + allocation->height; | |
TabCtrl_AdjustRect(widget->hWnd, FALSE, &rect); | |
- child_alloc.x = rect.left + GTK_CONTAINER(widget)->border_width; | |
- child_alloc.y = rect.top + GTK_CONTAINER(widget)->border_width; | |
- child_alloc.width = rect.right - rect.left | |
- - 2 * GTK_CONTAINER(widget)->border_width; | |
- child_alloc.height = rect.bottom - rect.top | |
- - 2 * GTK_CONTAINER(widget)->border_width; | |
for (children = GTK_NOTEBOOK(widget)->children; children; | |
children = g_slist_next(children)) { | |
- note_child = (GtkNotebookChild *)(children->data); | |
+ GtkNotebookChild *note_child = (GtkNotebookChild *)(children->data); | |
if (note_child && note_child->child) { | |
+ GtkAllocation child_alloc; | |
+ | |
+ child_alloc.x = rect.left + GTK_CONTAINER(widget)->border_width; | |
+ child_alloc.y = rect.top + GTK_CONTAINER(widget)->border_width; | |
+ child_alloc.width = rect.right - rect.left | |
+ - 2 * GTK_CONTAINER(widget)->border_width; | |
+ child_alloc.height = rect.bottom - rect.top | |
+ - 2 * GTK_CONTAINER(widget)->border_width; | |
SetWindowPos(note_child->tabpage, HWND_TOP, | |
rect.left, rect.top, rect.right - rect.left, | |
rect.bottom - rect.top, SWP_NOZORDER); |