From: <kr_...@us...> - 2003-11-15 13:33:14
|
Update of /cvsroot/htoolkit/port/src/cbits/GTK In directory sc8-pr-cvs1:/tmp/cvs-serv27743/src/cbits/GTK Modified Files: Menu.c StatusBar.c Log Message: Extended StatusBar API for Linux. Partial support for MenuItem tooltips Index: Menu.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/Menu.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Menu.c 17 Aug 2003 22:02:45 -0000 1.11 --- Menu.c 15 Nov 2003 13:33:10 -0000 1.12 *************** *** 5,8 **** --- 5,20 ---- #include <gdk/gdkkeysyms.h> + static const char *apphelper_statusbar_hint = "apphelper_statusbar_hint"; + + static menu_destroy(GtkWidget *menu) + { + handleMenuDestroy(menu); + + gchar *hint = g_object_get_data(G_OBJECT(menu), apphelper_statusbar_hint); + if (hint) free(hint); + + g_object_set_data(G_OBJECT(menu), apphelper_statusbar_hint, NULL); + } + static MenuHandle getMenu(MenuHandle parent) { *************** *** 77,81 **** GtkWidget *popUpMenu = gtk_menu_new(); gtk_signal_connect (GTK_OBJECT(popUpMenu), "destroy", ! GTK_SIGNAL_FUNC(handleMenuDestroy), NULL); gtk_signal_connect (GTK_OBJECT(popUpMenu), "show", --- 89,93 ---- GtkWidget *popUpMenu = gtk_menu_new(); gtk_signal_connect (GTK_OBJECT(popUpMenu), "destroy", ! GTK_SIGNAL_FUNC(menu_destroy), NULL); gtk_signal_connect (GTK_OBJECT(popUpMenu), "show", *************** *** 121,125 **** gtk_signal_connect (GTK_OBJECT(menuItem), "destroy", ! GTK_SIGNAL_FUNC(handleMenuDestroy), NULL); gtk_signal_connect (GTK_OBJECT(popUpMenu), "show", --- 133,137 ---- gtk_signal_connect (GTK_OBJECT(menuItem), "destroy", ! GTK_SIGNAL_FUNC(menu_destroy), NULL); gtk_signal_connect (GTK_OBJECT(popUpMenu), "show", *************** *** 149,153 **** NULL); gtk_signal_connect (GTK_OBJECT(menuItem), "destroy", ! GTK_SIGNAL_FUNC(handleMenuDestroy), NULL); --- 161,165 ---- NULL); gtk_signal_connect (GTK_OBJECT(menuItem), "destroy", ! GTK_SIGNAL_FUNC(menu_destroy), NULL); *************** *** 174,178 **** NULL); gtk_signal_connect (GTK_OBJECT(menuItem), "destroy", ! GTK_SIGNAL_FUNC(handleMenuDestroy), NULL); --- 186,190 ---- NULL); gtk_signal_connect (GTK_OBJECT(menuItem), "destroy", ! GTK_SIGNAL_FUNC(menu_destroy), NULL); *************** *** 190,194 **** GtkWidget *item = gtk_separator_menu_item_new(); gtk_signal_connect (GTK_OBJECT(item), "destroy", ! GTK_SIGNAL_FUNC(handleMenuDestroy), NULL); --- 202,206 ---- GtkWidget *item = gtk_separator_menu_item_new(); gtk_signal_connect (GTK_OBJECT(item), "destroy", ! GTK_SIGNAL_FUNC(menu_destroy), NULL); *************** *** 222,226 **** NULL); gtk_signal_connect (GTK_OBJECT(menuItem), "destroy", ! GTK_SIGNAL_FUNC(handleMenuDestroy), NULL); --- 234,238 ---- NULL); gtk_signal_connect (GTK_OBJECT(menuItem), "destroy", ! GTK_SIGNAL_FUNC(menu_destroy), NULL); *************** *** 306,309 **** --- 318,334 ---- else return NULL; + }; + + void osSetMenuTip(MenuHandle item, char* title) + { + gchar *hint = g_object_get_data(G_OBJECT(item), apphelper_statusbar_hint); + if (hint) free(hint); + + g_object_set_data(G_OBJECT(item), apphelper_statusbar_hint, strdup(title)); + } + + char *osGetMenuTip(MenuHandle item) + { + return g_object_get_data(G_OBJECT(item), apphelper_statusbar_hint); }; Index: StatusBar.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/StatusBar.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** StatusBar.c 14 Nov 2003 22:35:20 -0000 1.1 --- StatusBar.c 15 Nov 2003 13:33:11 -0000 1.2 *************** *** 1,4 **** #include "StatusBar.h" - #include "DockBar.h" #include "Internals.h" --- 1,3 ---- *************** *** 14,16 **** --- 13,36 ---- { return GTK_WIDGET_VISIBLE(GNOME_APP(gFrameWidget)->statusbar); + } + + void osPushStatusBarContext() + { + gnome_appbar_push(GNOME_APPBAR(GNOME_APP(gFrameWidget)->statusbar), ""); + } + + void osPopStatusBarContext() + { + gnome_appbar_pop(GNOME_APPBAR(GNOME_APP(gFrameWidget)->statusbar)); + } + + char *osGetStatusBarTitle() + { + GtkWidget *label = gnome_appbar_get_status(GNOME_APPBAR(GNOME_APP(gFrameWidget)->statusbar)); + return strdup(gtk_label_get_text(GTK_LABEL(label))); + } + + void osSetStatusBarTitle(char *title) + { + gnome_appbar_set_status(GNOME_APPBAR(GNOME_APP(gFrameWidget)->statusbar), title); } |