Update of /cvsroot/htoolkit/port/src/cbits/GTK
In directory sc8-pr-cvs1:/tmp/cvs-serv28296/src/cbits/GTK
Modified Files:
Notebook.c
Log Message:
Thanks to the PortLayout widget the implementation of osGetNotebookReqSize
is now simple and efficient.
Index: Notebook.c
===================================================================
RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/Notebook.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Notebook.c 1 Oct 2003 21:47:15 -0000 1.5
--- Notebook.c 1 Oct 2003 22:09:00 -0000 1.6
***************
*** 31,62 ****
void osGetNotebookReqSize(WindowHandle notebook, int *res)
{
- int w,h;
GtkRequisition requisition;
- int i, count;
- GtkWidget *label;
-
- w = 0; h = 0;
- count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(notebook));
- for (i = 0; i < count; i++)
- {
- label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(notebook),
- gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), i));
- gtk_widget_size_request(label, &requisition);
! switch (gtk_notebook_get_tab_pos(GTK_NOTEBOOK(notebook)))
! {
! case GTK_POS_LEFT:
! case GTK_POS_RIGHT:
! if (w < requisition.width) w = requisition.width;
! break;
! case GTK_POS_TOP:
! case GTK_POS_BOTTOM:
! if (h < requisition.height) h = requisition.height;
! break;
! }
! }
! res[0] = w+12;
! res[1] = h+6;
}
--- 31,44 ----
void osGetNotebookReqSize(WindowHandle notebook, int *res)
{
GtkRequisition requisition;
! // The size requisition of PortLayout is always 0. That means that the size request of notebook
! // will be equal to the external size of the notebook (i.e. the size consumed from borders and from
! // page labels. This is exactly what we need. In the haskell world to the external size is added
! // the size required to fit the pages of the notebook.
! gtk_widget_size_request (notebook, &requisition);
! res[0] = requisition.width;
! res[1] = requisition.height;
}
|