[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gtk
Subject:    Re: Getting menu to show
From:       Jonathan Hayward <christos.jonathan.hayward () gmail ! com>
Date:       2005-07-28 22:12:48
Message-ID: fdc31b65050728151273bf00bd () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Post script: in order to make it work more like the tutorial, I changed the 
end to follow the manual menu example in the tutorial. I put:

void gtk_specific_init(int *argc, char ***argv)
{
GtkItemFactory *factory;
GtkWidget *vbox, *root_menu;
gtk_init(argc, argv);
main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 gtk_accelerators = gtk_accel_group_new();
factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>",
gtk_accelerators);
gtk_item_factory_create_items(factory, 125, menu_entries, NULL);
gtk_window_add_accel_group(main_window, gtk_accelerators);
/*
gtk_check_menu_item_set_active(GTK_TYPE_MENU_BAR
(gtk_item_factory_get_item(factory, "<main>")), TRUE);
gtk_widget_show(gtk_item_factory_get_item(factory, "<main>"));
*/
printf("Reached 1!\n");
vbox = gtk_vbox_new(FALSE, 0);
printf("Reached 2!\n");
gtk_container_add(GTK_CONTAINER (main_window), vbox);
printf("Reached 3!\n");
gtk_widget_show(vbox);
printf("Reached 4!\n");
root_menu = gtk_item_factory_get_item (factory, "<main>");
printf("Reached 5!\n");
gtk_box_pack_start(GTK_BOX (vbox), root_menu, FALSE, FALSE, 2);
printf("Reached 6!\n");
gtk_widget_show(root_menu);
printf("Reached 7!\n");
gtk_widget_show(main_window);
};

It gave the following output:

Reached 1!
Reached 2!
Reached 3!
Reached 4!
Reached 5!

(test:23283): Gtk-CRITICAL **: gtk_box_pack_start: assertion `GTK_IS_WIDGET 
(child)' failed
Reached 6!
Segmentation fault


-- 
++ Jonathan Hayward, jonathan.hayward@pobox.com
** To see an award-winning website with stories, essays, artwork,
** games, and a four-dimensional maze, why not visit my home page?
** All of this is waiting for you at http://JonathansCorner.com

** If you'd like a Google Mail (gmail.com <http://gmail.com>) account, 
please tell me!

[Attachment #5 (text/html)]

Post script: in order to make it work more like the tutorial, I changed
the end to follow the manual menu example in the tutorial. I put:<span class="q"><br>
<br>
void gtk_specific_init(int *argc, char ***argv)<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; GtkItemFactory *factory;<br></span>
&nbsp;&nbsp;&nbsp; GtkWidget *vbox, *root_menu;<span class="q"><br>
&nbsp;&nbsp;&nbsp; gtk_init(argc, argv);<br>
&nbsp;&nbsp;&nbsp; main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);<br></span>
<span class="q">
&nbsp;&nbsp;&nbsp; gtk_accelerators = gtk_accel_group_new();<br>
&nbsp;&nbsp;&nbsp; factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, \
&quot;&lt;main&gt;&quot;,<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gtk_accelerators);<br>
&nbsp;&nbsp;&nbsp; gtk_item_factory_create_items(factory, 125, menu_entries, \
NULL);<br> &nbsp;&nbsp;&nbsp; gtk_window_add_accel_group(main_window, \
gtk_accelerators);<br> &nbsp;&nbsp;&nbsp; /*<br>
&nbsp;&nbsp;&nbsp; gtk_check_menu_item_set_active(GTK_TYPE_MENU_BAR<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (gtk_item_factory_get_item(factory, \
&quot;&lt;main&gt;&quot;)), TRUE);<br> &nbsp;&nbsp;&nbsp; \
gtk_widget_show(gtk_item_factory_get_item(factory, \
&quot;&lt;main&gt;&quot;));<br></span> &nbsp;&nbsp;&nbsp; */<br>

&nbsp;&nbsp;&nbsp; printf(&quot;Reached 1!\n&quot;);<br>

&nbsp;&nbsp;&nbsp; vbox = gtk_vbox_new(FALSE, 0);<br>

&nbsp;&nbsp;&nbsp; printf(&quot;Reached 2!\n&quot;);<br>

&nbsp;&nbsp;&nbsp; gtk_container_add(GTK_CONTAINER (main_window), vbox);<br>

&nbsp;&nbsp;&nbsp; printf(&quot;Reached 3!\n&quot;);<br>

&nbsp;&nbsp;&nbsp; gtk_widget_show(vbox);<br>

&nbsp;&nbsp;&nbsp; printf(&quot;Reached 4!\n&quot;);<br>

&nbsp;&nbsp;&nbsp; root_menu = gtk_item_factory_get_item
<div id="mb_1">(factory, &quot;&lt;main&gt;&quot;);<br>
&nbsp;&nbsp;&nbsp; printf(&quot;Reached 5!\n&quot;);<br>
&nbsp;&nbsp;&nbsp; gtk_box_pack_start(GTK_BOX (vbox), root_menu, FALSE, FALSE, \
2);<br> &nbsp;&nbsp;&nbsp; printf(&quot;Reached 6!\n&quot;);<br>
&nbsp;&nbsp;&nbsp; gtk_widget_show(root_menu);<br>
&nbsp;&nbsp;&nbsp; printf(&quot;Reached 7!\n&quot;);<span class="q"><br>
&nbsp;&nbsp;&nbsp; gtk_widget_show(main_window);<br></span>
&nbsp;&nbsp;&nbsp; };<br>
<br>
It gave the following output:<br>
<br>
Reached 1!<br>
Reached 2!<br>
Reached 3!<br>
Reached 4!<br>
Reached 5!<br>
<br>
(test:23283): Gtk-CRITICAL **: gtk_box_pack_start: assertion `GTK_IS_WIDGET (child)' \
failed<br> Reached 6!<br>
Segmentation fault</div>
<br clear="all"><br>-- <br>++ Jonathan Hayward, <a \
href="mailto:jonathan.hayward@pobox.com">jonathan.hayward@pobox.com</a><br>** To see \
an award-winning website with stories, essays, artwork,<br>** games, and a \
four-dimensional maze, why not visit my home page? <br>** All of this is waiting for \
you at <a href="http://JonathansCorner.com">http://JonathansCorner.com</a><br><br>** \
If you'd like a Google Mail (<a href="http://gmail.com">gmail.com</a>) account, \
please tell me!



_______________________________________________
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic