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);
}
|