From: <kr_...@us...> - 2003-08-31 08:09:03
|
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); + } + } } |