Update of /cvsroot/htoolkit/port/src/cbits/GTK
In directory sc8-pr-cvs1:/tmp/cvs-serv28152/src/cbits/GTK
Modified Files:
Notebook.c
Log Message:
Implement osSetNotebookPageBitmap function for GNOME
Index: Notebook.c
===================================================================
RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/Notebook.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Notebook.c 25 Aug 2003 23:20:52 -0000 1.1
--- Notebook.c 31 Aug 2003 08:09:00 -0000 1.2
***************
*** 89,92 ****
--- 89,93 ----
WindowHandle osInsertNotebookPage(WindowHandle notebook, int pos)
{
+ GtkWidget *hbox;
GtkWidget *page = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(page),
***************
*** 98,105 ****
gtk_widget_show_all(page);
if (pos < 0)
! gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,gtk_label_new(""));
else
! gtk_notebook_insert_page(GTK_NOTEBOOK(notebook),page,gtk_label_new(""),pos);
return page;
}
--- 99,110 ----
gtk_widget_show_all(page);
+ hbox = gtk_hbox_new(FALSE, 1);
+ gtk_box_pack_end(GTK_BOX(hbox), gtk_label_new(""), TRUE, TRUE, 0);
+ gtk_widget_show_all(hbox);
+
if (pos < 0)
! gtk_notebook_append_page(GTK_NOTEBOOK(notebook),page,hbox);
else
! gtk_notebook_insert_page(GTK_NOTEBOOK(notebook),page,hbox,pos);
return page;
}
***************
*** 107,118 ****
char *osGetNotebookPageTitle(WindowHandle page)
{
! GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gtk_widget_get_parent(page)),page);
! return strdup(gtk_label_get_text(GTK_LABEL(label)));
};
void osSetNotebookPageTitle(WindowHandle page, char *txt)
{
! GtkWidget *label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gtk_widget_get_parent(page)),page);
! return gtk_label_set_text(GTK_LABEL(label), txt);
};
--- 112,135 ----
char *osGetNotebookPageTitle(WindowHandle page)
{
! GList *children;
! GtkWidget *notebook, *tab_label;
!
! notebook = gtk_widget_get_parent(page);
! tab_label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(notebook),page);
! children = gtk_container_get_children(GTK_CONTAINER(tab_label));
!
! return strdup(gtk_label_get_text(GTK_LABEL(g_list_last(children)->data)));
};
void osSetNotebookPageTitle(WindowHandle page, char *txt)
{
! GList *children;
! GtkWidget *notebook, *tab_label;
!
! notebook = gtk_widget_get_parent(page);
! tab_label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(notebook),page);
! children = gtk_container_get_children(GTK_CONTAINER(tab_label));
!
! return gtk_label_set_text(GTK_LABEL(g_list_last(children)->data), txt);
};
***************
*** 131,133 ****
--- 148,184 ----
res[0] = page->allocation.width-4;
res[1] = page->allocation.height-4;
+ }
+
+ void osSetNotebookPageBitmap(WindowHandle page, BitmapHandle bitmap)
+ {
+ GList *children;
+ GtkWidget *notebook, *tab_label, *image;
+
+ notebook = GTK_NOTEBOOK(gtk_widget_get_parent(page));
+ tab_label = gtk_notebook_get_tab_label(notebook,page);
+ children = gtk_container_get_children(GTK_CONTAINER(tab_label));
+
+ if (bitmap)
+ {
+ if (g_list_length(children) == 1)
+ {
+ image = gtk_image_new();
+ gtk_box_pack_start(GTK_BOX(tab_label), image, TRUE, TRUE, 0);
+ gtk_widget_show(image);
+ }
+ else
+ {
+ image = GTK_WIDGET(g_list_first(children)->data);
+ }
+
+ gtk_image_set_from_pixbuf(image, bitmap->pixbuf);
+ }
+ else
+ {
+ if (g_list_length(children) == 2)
+ {
+ image = GTK_WIDGET(g_list_first(children)->data);
+ gtk_container_remove(GTK_CONTAINER(tab_label), image);
+ }
+ }
}
|