[vox-tech] gtk question - gtk notebook page creation from a callback
Peter Jay Salzman
vox-tech@lists.lugod.org
Thu, 23 May 2002 16:14:37 -0700
any gtk programmers out there?
i'd like to add a page to a gtk notebook from a menuitem activation.
here's what i have (much snippage):
void viewSpritesItemCallback(GtkButton *widget)
{
printf("hello world\n");
}
int main(int argc, char *argv[])
{
GtkWidget *mainwin;
GtkWidget *mainVbox;
GtkWidget *menuBar *viewItem, *viewMenu, *viewSpritesItem;
GtkWidget *notebookWidget;
...
mainwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
mainVbox = gtk_vbox_new(FALSE, 0);
gtk_container_add( GTK_CONTAINER(mainwin), mainVbox);
...
viewSpritesItem = gtk_menu_item_new_with_label( "view sprites" );
gtk_signal_connect( GTK_OBJECT(viewSpritesItem), "activate",
viewSpritesItemCallback, NULL);
...
}
so when someone clicks "view sprites", it calls back
viewSpritesItemCallback. what i'd like to do is call:
gtk_notebook_append(GtkNotebook *notebook,
GtkWidget *ChildToEmbedInPage,
GtkWidget *PageLabel)
but if this is called within the callback, ChildToBeEmbededInPage and
PageLabel both go out of scope when the callback ends. if i dynamically
allocate static memory, the pointers are lost.
all i can think of is making everything global, but that can't be the
only answer. i'm a total gui novice -- are we expected to use lots of
global variables in gui programming?
any ideas on how i can make the callback add a page to the notebook?
pete