Mercurial > pidgin.yaz
view finch/libgnt/test/menu.c @ 23323:a61bb76597fc
patch from Andrew Gaul that fixes a memleak, we weren't free'ing this when
we can't connect to fetch the image, I think:
==2802== 34 (24 direct, 10 indirect) bytes in 1 blocks are definitely lost in loss record 48 of 289
==2802== at 0x4A05854: calloc (vg_replace_malloc.c:397)
==2802== by 0x331303F849: g_malloc0 (in /lib64/libglib-2.0.so.0.1600.3)
==2802== by 0xE653A86: yahoo_process_picture (yahoo_picture.c:130)
==2802== by 0xE6474C4: yahoo_packet_process (yahoo.c:2448)
==2802== by 0xE648A42: yahoo_pending (yahoo.c:2575)
==2802== by 0x461B9D: pidgin_io_invoke (gtkeventloop.c:78)
==2802== by 0x331303749A: g_main_context_dispatch (in /lib64/libglib-2.0.so.0.1600.3)
==2802== by 0x331303AC7C: (within /lib64/libglib-2.0.so.0.1600.3)
==2802== by 0x331303B1AC: g_main_loop_run (in /lib64/libglib-2.0.so.0.1600.3)
==2802== by 0x3317584887: gtk_main (in /usr/lib64/libgtk-x11-2.0.so.0.1200.9)
==2802== by 0x4788A7: main (gtkmain.c:893)
author | Ka-Hing Cheung <khc@hxbc.us> |
---|---|
date | Sun, 08 Jun 2008 21:54:56 +0000 |
parents | f104e1d45d85 |
children | 57d350900136 |
line wrap: on
line source
#include "gnt.h" #include "gntbox.h" #include "gntlabel.h" #include "gntmenu.h" #include "gntmenuitem.h" #include "gntwindow.h" void dothis(GntMenuItem *item, gpointer null) { GntWidget *w = gnt_vbox_new(FALSE); gnt_box_set_toplevel(GNT_BOX(w), TRUE); gnt_box_add_widget(GNT_BOX(w), gnt_label_new("Callback to a menuitem")); gnt_widget_show(w); } int main() { freopen(".error", "w", stderr); gnt_init(); GntWidget *menu = gnt_menu_new(GNT_MENU_TOPLEVEL); GObject *item = gnt_menuitem_new("File"); gnt_menu_add_item(GNT_MENU(menu), GNT_MENU_ITEM(item)); item = gnt_menuitem_new("Edit"); gnt_menu_add_item(GNT_MENU(menu), GNT_MENU_ITEM(item)); item = gnt_menuitem_new("Help"); gnt_menu_add_item(GNT_MENU(menu), GNT_MENU_ITEM(item)); GntWidget *sub = gnt_menu_new(GNT_MENU_POPUP); gnt_menuitem_set_submenu(GNT_MENU_ITEM(item), GNT_MENU(sub)); item = gnt_menuitem_new("Online Helpasd"); gnt_menuitem_set_trigger(GNT_MENU_ITEM(item), 'h'); gnt_menu_add_item(GNT_MENU(sub), GNT_MENU_ITEM(item)); item = gnt_menuitem_new("Online Help"); gnt_menuitem_set_trigger(GNT_MENU_ITEM(item), 'h'); gnt_menu_add_item(GNT_MENU(sub), GNT_MENU_ITEM(item)); item = gnt_menuitem_new("About"); gnt_menuitem_set_trigger(GNT_MENU_ITEM(item), 'a'); gnt_menu_add_item(GNT_MENU(sub), GNT_MENU_ITEM(item)); sub = gnt_menu_new(GNT_MENU_POPUP); gnt_menuitem_set_submenu(GNT_MENU_ITEM(item), GNT_MENU(sub)); item = gnt_menuitem_new("Online Help"); gnt_menuitem_set_trigger(GNT_MENU_ITEM(item), 'O'); gnt_menu_add_item(GNT_MENU(sub), GNT_MENU_ITEM(item)); gnt_menuitem_set_callback(GNT_MENU_ITEM(item), dothis, NULL); gnt_screen_menu_show(menu); GntWidget *win = gnt_window_new(); gnt_box_add_widget(GNT_BOX(win), gnt_label_new("...")); gnt_box_set_title(GNT_BOX(win), "Title"); gnt_window_set_menu(GNT_WINDOW(win), GNT_MENU(menu)); gnt_widget_show(win); gnt_main(); gnt_quit(); return 0; }