static GtkListItem * gtk_combo_find (GtkCombo * combo) { gchar *text; gchar *ltext; GList *clist; int (*string_compare) (const char *, const char *); if (combo->case_sensitive) string_compare = strcmp; else string_compare = g_strcasecmp; text = gtk_entry_get_text (GTK_ENTRY (combo->entry)); clist = GTK_LIST (combo->list)->children; while (clist && clist->data) { ltext = gtk_combo_func (GTK_LIST_ITEM (clist->data)); if (!ltext) continue; if (!(*string_compare) (ltext, text)) return (GtkListItem *) clist->data; clist = clist->next; } return NULL; }
/* Deselects the item, by emitting the item's "deselect" signal. */ int clip_GTK_LISTITEMDESELECT(ClipMachine *cm) { C_widget *clitm = _fetch_cw_arg(cm); CHECKCWID(clitm,GTK_IS_LIST_ITEM); gtk_list_item_deselect(GTK_LIST_ITEM(clitm->widget)); return 0; err: return 1; }
/*---------------------------------------------------------------------*/ obj_t bglk_gtk_glist_strings( GList *lst ) { obj_t res = BNIL; while( lst ) { GtkListItem *li = GTK_LIST_ITEM( lst->data ); char *str = bglk_gtk_glist_item_get_string( li ); res = make_pair( string_to_bstring( str ), res ); lst = lst->next; } return res; }
static void gtk_combo_update_entry (GtkList * list, GtkCombo * combo) { char *text; gtk_grab_remove (GTK_WIDGET (combo)); gtk_signal_handler_block (GTK_OBJECT (list), combo->list_change_id); if (list->selection) { text = gtk_combo_func (GTK_LIST_ITEM (list->selection->data)); if (!text) text = ""; gtk_entry_set_text (GTK_ENTRY (combo->entry), text); } gtk_signal_handler_unblock (GTK_OBJECT (list), combo->list_change_id); }
static void okButton_clicked( GtkWidget *widget, void *data ) { gtk_widget_hide( microcodeWindow ); if (GTK_LIST(microcodeList)->selection != 0) { char *text = 0; GtkListItem *item = GTK_LIST_ITEM(GTK_LIST(microcodeList)->selection->data); GtkLabel *label = GTK_LABEL(GTK_BIN(item)->child); gtk_label_get( label, &text ); if (text != 0) for (int i = 0; i < numMicrocodeTypes; i++) if (!strcmp( text, MicrocodeTypes[i] )) { selectedMicrocode = i; return; } } selectedMicrocode = NONE; }
GtkWidget *scripts_config_page () { GtkWidget *page_vbox; GtkWidget *frame; GtkWidget *vbox; GtkWidget *button; GtkWidget *label; GtkWidget *gtklist=NULL; GtkWidget *scrollwin=NULL; GtkWidget *games_hbox; unsigned i = 0; GList* s; page_vbox = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (page_vbox), 8); games_hbox = gtk_hbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (games_hbox), 0); gtk_box_pack_start (GTK_BOX (page_vbox), games_hbox, TRUE, TRUE, 0); vbox = gtk_vbox_new (FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); scrollwin = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtklist = gtk_list_new (); gtk_widget_set_usize (gtklist, 136, -1); // gtk_container_add (GTK_CONTAINER (scrollwin), gtklist); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrollwin), gtklist); gtk_container_add (GTK_CONTAINER (frame), scrollwin); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); button = gtk_button_new_with_label(_("Install ...")); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", G_CALLBACK(install_button_callback), NULL); #if have_time_to_implement_that button = gtk_button_new_with_label(_("Remove")); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); #endif gtk_box_pack_start (GTK_BOX (games_hbox), vbox, FALSE, FALSE, 0); notebook = gtk_notebook_new (); // the tabs are hidden, so nobody will notice its a notebook gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); gtk_box_pack_start (GTK_BOX (games_hbox), notebook, FALSE, FALSE, 15); for (s = scripts; s; s = g_list_next(s), ++i) { const char* filename = s->data; GtkWidget *page; GtkWidget* item; Script* script; script = g_datalist_get_data(&scriptdata, filename); item = gtk_list_item_new(); if (s == scripts) { gtk_list_item_select(GTK_LIST_ITEM(item)); } gtk_container_add (GTK_CONTAINER (item), gtk_label_new(filename)); gtk_signal_connect (GTK_OBJECT (item), "select", GTK_SIGNAL_FUNC(scripts_page_select_callback), GINT_TO_POINTER(i)); gtk_widget_show_all(item); gtk_container_add (GTK_CONTAINER (gtklist), item); label = gtk_label_new (filename); if (script) { page = generic_script_frame(filename, script); gtk_object_set_data_full (GTK_OBJECT (notebook), filename, script, (GtkDestroyNotify) unref_option_widgets); } else { page = gtk_label_new(_("Invalid script")); gtk_widget_show(page); } gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label); } gtk_widget_show_all (page_vbox); return page_vbox; }