static void limited_int_update_value(node_gui_t *ng) { GtkWidget *listw; GList *list; unsigned long value; value = cml_node_get_value(ng->node)->value.integer; listw = GTK_COMBO(ng->combo)->list; list = gtk_container_children(GTK_CONTAINER(listw)); while (list != 0) { GtkWidget *item = (GtkWidget *)list->data; unsigned long itemvalue; itemvalue = (unsigned long)gtk_object_get_user_data(GTK_OBJECT(item)); if (itemvalue == value) { gtk_list_select_child(GTK_LIST(listw), item); break; } list = g_list_remove_link(list, list); } while (list != 0) list = g_list_remove_link(list, list); }
void SetID3Genre(GripInfo *ginfo,int id3_genre) { GtkWidget *item; item= GTK_WIDGET(g_list_nth(ginfo->gui_info.id3_genre_item_list, ID3GenrePos(id3_genre))->data); gtk_list_select_child(GTK_LIST(GTK_COMBO(ginfo->gui_info.id3_genre_combo)-> list),item); }
/* Selects the given child. The signal GtkList::select-child will be emitted. */ int clip_GTK_LISTSELECTCHILD(ClipMachine * ClipMachineMemory) { C_widget *clst = _fetch_cw_arg(ClipMachineMemory); C_widget *cchild = CWIDGET_ARG(ClipMachineMemory, 2); CHECKCWID(clst, GTK_IS_LIST); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWID(cchild, GTK_IS_LIST_ITEM); gtk_list_select_child(GTK_LIST(clst->widget), cchild->widget); return 0; err: return 1; }
void RefreshCamListCombo( void ) { if( !g_pCamListCombo ) return; GList *combo_list = (GList*)NULL; CCamera *combo_cam = firstCam; if( combo_cam ) { while( combo_cam ) { //combo_list = g_list_append( combo_list, (void *)combo_cam->GetCam()->getName() ); //if( combo_cam->HasBeenSaved() ) { combo_list = g_list_append( combo_list, (void *)combo_cam->GetFileName() ); /*} else { char buf[128]; sprintf( buf, "Unsaved Camera %i", combo_cam->GetCamNum() ); combo_list = g_list_append( combo_list, (void *)buf ); //combo_list = g_list_append( combo_list, (void *)combo_cam->GetCam()->getName() ); // FIXME: this requires camera.dll to create unique names for new cams }*/ combo_cam = combo_cam->GetNext(); } }else { // add one empty string make gtk be quiet combo_list = g_list_append( combo_list, (gpointer)g_cNull ); } gtk_combo_set_popdown_strings( GTK_COMBO( g_pCamListCombo ), combo_list ); g_list_free( combo_list ); // select our current entry in the list if( GetCurrentCam() ) { // stop editing on the current cam //GetCurrentCam()->GetCam()->stopEdit(); // FIXME: this crashed on creating new cameras, why is it here? GList *li = GTK_LIST( GTK_COMBO(g_pCamListCombo)->list)->children; combo_cam = firstCam; while( li && combo_cam ) { if( combo_cam == GetCurrentCam() ) { gtk_list_select_child( GTK_LIST( GTK_COMBO(g_pCamListCombo)->list ), GTK_WIDGET( li->data ) ); break; } li = li->next; combo_cam = combo_cam->GetNext(); } } RefreshPathListCombo(); }
static void gtk_combo_update_list (GtkEntry * entry, GtkCombo * combo) { GtkList *list = GTK_LIST (combo->list); GList *slist = list->selection; GtkListItem *li; gtk_grab_remove (GTK_WIDGET (combo)); gtk_signal_handler_block (GTK_OBJECT (entry), combo->entry_change_id); if (slist && slist->data) gtk_list_unselect_child (list, GTK_WIDGET (slist->data)); li = gtk_combo_find (combo); if (li) gtk_list_select_child (list, GTK_WIDGET (li)); gtk_signal_handler_unblock (GTK_OBJECT (entry), combo->entry_change_id); }
static int gtk_combo_entry_key_press (GtkEntry * entry, GdkEventKey * event, GtkCombo * combo) { GList *li; /* completion */ if ((event->keyval == GDK_Tab) && (event->state & GDK_MOD1_MASK)) { GCompletion * cmpl; gchar* prefix; gchar* nprefix = NULL; gint pos; if ( !GTK_LIST (combo->list)->children ) return FALSE; gtk_signal_emit_stop_by_name (GTK_OBJECT (entry), "key_press_event"); cmpl = g_completion_new ((GCompletionFunc)gtk_combo_func); g_completion_add_items (cmpl, GTK_LIST (combo->list)->children); pos = GTK_EDITABLE (entry)->current_pos; prefix = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, pos); g_completion_complete(cmpl, prefix, &nprefix); if (nprefix && strlen (nprefix) > strlen (prefix)) { gtk_editable_insert_text (GTK_EDITABLE (entry), nprefix + pos, strlen (nprefix) - strlen (prefix), &pos); GTK_EDITABLE (entry)->current_pos = pos; } if (nprefix) g_free (nprefix); g_free (prefix); g_completion_free (cmpl); return TRUE; } if (!combo->use_arrows || !GTK_LIST (combo->list)->children) return FALSE; li = g_list_find (GTK_LIST (combo->list)->children, gtk_combo_find (combo)); if ((event->keyval == GDK_Up) || (event->keyval == GDK_KP_Up) || ((event->state & GDK_MOD1_MASK) && ((event->keyval == 'p') || (event->keyval == 'P')))) { if (li) li = li->prev; if (!li && combo->use_arrows_always) { li = g_list_last (GTK_LIST (combo->list)->children); } if (li) { gtk_list_select_child (GTK_LIST (combo->list), GTK_WIDGET (li->data)); gtk_signal_emit_stop_by_name (GTK_OBJECT (entry), "key_press_event"); return TRUE; } } else if ((event->keyval == GDK_Down) || (event->keyval == GDK_KP_Down) || ((event->state & GDK_MOD1_MASK) && ((event->keyval == 'n') || (event->keyval == 'N')))) { if (li) li = li->next; if (!li && combo->use_arrows_always) { li = GTK_LIST (combo->list)->children; } if (li) { gtk_list_select_child (GTK_LIST (combo->list), GTK_WIDGET (li->data)); gtk_signal_emit_stop_by_name (GTK_OBJECT (entry), "key_press_event"); return TRUE; } } return FALSE; }
static gint ci_add_target( GtkWidget *widget, gpointer data ) { GtkWidget *window, *w, *vbox, *vbox2, *hbox, *frame, *name; GtkWidget *fixed, *interpolated, *spline; EMessageBoxReturn ret; int loop = 1; GSList *targetTypeRadio = NULL; char buf[128]; if( !GetCurrentCam() ) return TRUE; // create the window window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_window_set_title( GTK_WINDOW (window), "Add Target" ); gtk_signal_connect( GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC( dialog_delete_callback ), NULL ); gtk_signal_connect( GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC( gtk_widget_destroy ), NULL ); gtk_window_set_transient_for( GTK_WINDOW( window ), GTK_WINDOW( g_pCameraInspectorWnd ) ); g_object_set_data (G_OBJECT (window), "loop", &loop); g_object_set_data (G_OBJECT (window), "ret", &ret); gtk_widget_realize (window); // fill the window vbox = gtk_vbox_new( FALSE, 5 ); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_widget_show( vbox ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_label_new( "Name:" ); gtk_box_pack_start( GTK_BOX( hbox ), w, FALSE, FALSE, 0 ); gtk_widget_show( w ); name = gtk_entry_new(); gtk_box_pack_start( GTK_BOX( hbox ), name, TRUE, TRUE, 0 ); gtk_widget_show( name ); sprintf( buf, "target%i", GetCurrentCam()->GetCam()->numTargets() + 1 ); gtk_entry_set_text( GTK_ENTRY(name), buf ); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); frame = gtk_frame_new( "Type" ); gtk_box_pack_start( GTK_BOX( hbox ), frame, TRUE, TRUE, 0 ); gtk_widget_show( frame ); vbox2 = gtk_vbox_new( FALSE, 5 ); gtk_container_add( GTK_CONTAINER( frame ), vbox2 ); gtk_container_set_border_width( GTK_CONTAINER (vbox2), 5 ); gtk_widget_show( vbox2 ); // -------------------------- // fixed = gtk_radio_button_new_with_label( targetTypeRadio, "Fixed" ); gtk_box_pack_start( GTK_BOX( vbox2 ), fixed, FALSE, FALSE, 3 ); gtk_widget_show( fixed ); targetTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( fixed ) ); interpolated = gtk_radio_button_new_with_label( targetTypeRadio, "Interpolated" ); gtk_box_pack_start( GTK_BOX( vbox2 ), interpolated, FALSE, FALSE, 3 ); gtk_widget_show( interpolated ); targetTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( interpolated ) ); spline = gtk_radio_button_new_with_label( targetTypeRadio, "Spline" ); gtk_box_pack_start( GTK_BOX( vbox2 ), spline, FALSE, FALSE, 3 ); gtk_widget_show( spline ); targetTypeRadio = gtk_radio_button_group( GTK_RADIO_BUTTON( spline ) ); // -------------------------- // w = gtk_hseparator_new (); gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 2); gtk_widget_show (w); // -------------------------- // hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 ); gtk_widget_show( hbox ); w = gtk_button_new_with_label ("Ok"); gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDOK)); gtk_widget_show (w); GTK_WIDGET_SET_FLAGS( w, GTK_CAN_DEFAULT ); gtk_widget_grab_default( w ); w = gtk_button_new_with_label ("Cancel"); gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (w), "clicked", GTK_SIGNAL_FUNC (dialog_button_callback), GINT_TO_POINTER (eIDCANCEL)); gtk_widget_show (w); ret = eIDCANCEL; // -------------------------- // gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); gtk_widget_show (window); gtk_grab_add (window); bool dialogError = TRUE; while (dialogError) { loop = 1; while (loop) gtk_main_iteration (); dialogError = FALSE; if( ret == eIDOK ) { const char *str = gtk_entry_get_text( GTK_ENTRY(name) ); if( str && str[0] ) { int type; GList *li; if( gtk_toggle_button_get_active( (GtkToggleButton*)fixed ) ) type = 0; else if( gtk_toggle_button_get_active( (GtkToggleButton*)interpolated ) ) type = 1; else if( gtk_toggle_button_get_active( (GtkToggleButton*)spline ) ) type = 2; // Add the target GetCurrentCam()->GetCam()->addTarget( str, static_cast<idCameraPosition::positionType>(type) ); // Rebuild the listbox RefreshPathListCombo(); // Select the last item in the listbox li = g_list_last( GTK_LIST(GTK_COMBO(g_pPathListCombo)->list)->children ); gtk_list_select_child( GTK_LIST(GTK_COMBO(g_pPathListCombo)->list), GTK_WIDGET (li->data) ); // If this was the first one, refresh the event list if( GetCurrentCam()->GetCam()->numTargets() == 1 ) { RefreshEventList(); } // Go to editmode Add gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(g_pEditModeAddRadioButton), TRUE ); } else { dialogError = TRUE; } } } gtk_grab_remove (window); gtk_widget_destroy (window); return TRUE; }