开发者

adding toolbarItem to GtkToolbar to specific position on toolbar crashes

i'm using void gtk_toolbar_insert (GtkToolbar *toolbar, GtkToolItem *item, gint pos);

If i pass -1 or 0 for pos, it works fine. But if I try any other position, i get assertion failed. gtktoolbar.c line 2244 logical==0.

i'm basically followed this code: except for the position.

#include

int main( int argc, char *argv[]) {

 GtkWidget *window;
 GtkWidget *vbox;

 GtkWidget *toolbar;
 GtkToolItem *new;
 GtkToolItem *open;
 GtkToolItem *save;
 GtkToolItem *sep;
 GtkToolItem *exit;


 gtk_init(&argc, &argv);

 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 gtk_window_set_default_size(GTK_WINDOW(window), 250, 200);
 gtk_window_set_title(GTK_WINDOW(window), "toolbar");

 vbox = gtk_vbox_new(FALSE, 0);
 gtk_container_add(GTK_CONTAINER(window), vbox);


 toolbar = gtk_toolbar_new();
 gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);

 gtk_container_set_border_width(GTK_CONTAINER(toolbar), 2);

 new = gtk_tool_button_new_fr开发者_如何学JAVAom_stock(GTK_STOCK_NEW);
 gtk_toolbar_insert(GTK_TOOLBAR(toolbar), new, -1);

 open = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
 gtk_toolbar_insert(GTK_TOOLBAR(toolbar), open, -1);

 save = gtk_tool_button_new_from_stock(GTK_STOCK_SAVE);
 gtk_toolbar_insert(GTK_TOOLBAR(toolbar), save, -1);

 sep = gtk_separator_tool_item_new();
 gtk_toolbar_insert(GTK_TOOLBAR(toolbar), sep, -1); 

 exit = gtk_tool_button_new_from_stock(GTK_STOCK_QUIT);
 gtk_toolbar_insert(GTK_TOOLBAR(toolbar), exit, -1);

 gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 5);

 g_signal_connect(G_OBJECT(exit), "clicked", 
       G_CALLBACK(gtk_main_quit), NULL);

 g_signal_connect_swapped(G_OBJECT(window), "destroy",
    G_CALLBACK(gtk_main_quit), NULL);

 gtk_widget_show_all(window);

 gtk_main();

 return 0;

}

thanks


Remember that positions start counting at 0. If you add the items at positions 0, 1, 2, 3, and 4, everything works fine.

PS. If you indent your code by 4 spaces, then Stack Overflow will format it properly and it'll be easier to read and copy.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜