Does anyone have any insight into how I might read a file (which might
change from day to day) into a Gtk program and create an OptionMenu from
the list, and upon selection of the option menu, update a text entry
field?
--- snippet from the function creating the optionmenu
clientMenu1_menu = gtk_menu_new ();
glade_menuitem = gtk_menu_item_new_with_label (_("Clients"));
gtk_widget_show (glade_menuitem);
gtk_menu_append (GTK_MENU (clientMenu1_menu), glade_menuitem);
if((clientList=fopen("client_list","r"))==NULL) {
fprintf(stderr,"Could not open client list file. Should be in same
directory as ListEditor binary.\n");
exit(-1);
}
while(!feof(clientList)) {
bzero(clientName,30);
fscanf(clientList,"%[^,]%s%*['\n']",clientName,junk);
glade_menuitem = gtk_menu_item_new_with_label (_(clientName));
gtk_signal_connect_object(GTK_OBJECT(glade_menuitem),
"activate",GTK_SIGNAL_FUNC(client_select1),GTK_OBJECT(glade_menuitem));
gtk_menu_append (GTK_MENU (clientMenu1_menu), glade_menuitem);
gtk_widget_show (glade_menuitem);
}
fclose(clientList);
gtk_option_menu_set_menu (GTK_OPTION_MENU (clientMenu1),
clientMenu1_menu);
----
--- snippet from the callbacks funtions
extern GtkWidget
*clientEntry1,*clientEntry2,*actionEntry1,*actionEntry2;
void
client_select1 (GtkObject *selectedItem,
gpointer user_data)
{
GtkLabel *label;
gchar textData[80];
/*gtk_label_get(GTK_LABEL(GTK_BIN(selectedItem)->child),&textData);*/
label=GTK_LABEL(GTK_BIN(user_data)->child);
gtk_label_get(label,textData);
gtk_entry_set_text(GTK_ENTRY(clientEntry1),textData);
}
-----
Errors received:
leah% ./listedit
Gtk-WARNING **: invalid cast from (NULL) pointer to `GtkLabel'
Gtk-CRITICAL **: file gtklabel.c: line 333 (gtk_label_get): assertion
`label != NULL' failed.
---
I believe that it caused by the menu creation that I am attempting not
creating a unique menuitem object and overwriting the last one. Not
sure how the gtk_signal_connect_object() function creates the signal...
Any help is most welcome.
Thanks,
Bob O'ConnorAttachment:
roconnor.vcf
Description: Card for Bob O'Connor