/* * A variant of gtk_window_activate_default that does not end up reactivating * the widget that [Enter] was pressed in. */ static void cb_activate_default (GtkWindow *window) { GtkWidget *w = gtk_window_get_default_widget (window); if (w && gtk_widget_is_sensitive (w)) gtk_widget_activate (w); }
static void fix_focus_cb (GtkDialog *dialog, gpointer data) { GtkWidget *button; button = gtk_window_get_default_widget (GTK_WINDOW (dialog)); gtk_widget_grab_focus (button); }
static gboolean aoview_eeprom_parse(struct aoview_serial *serial, char *line) { char cmd; int tick; int a; int b; int serial_number; const char *name; char *utf8_name; if (!strcmp(line, "end")) { aoview_eeprom_done(serial); return FALSE; } if (sscanf(line, "serial-number %u", &serial_number) == 1) { aoview_file_set_serial(eeprom_file, serial_number); } else if (sscanf(line, "%c %x %x %x", &cmd, &tick, &a, &b) == 4) { if (cmd == 'F') aoview_file_set_flight(eeprom_file, b); aoview_file_printf(eeprom_file, "%s\n", line); if (cmd == 'S' && a == 8) { aoview_eeprom_done(serial); return FALSE; } if (!eeprom_save_shown) { name = aoview_file_name(eeprom_file); if (name) { utf8_name = g_filename_to_utf8(name, -1, NULL, NULL, NULL); if (!utf8_name) utf8_name = (char *) name; gtk_widget_set_sensitive(eeprom_save_close, FALSE); gtk_window_set_title(GTK_WINDOW(eeprom_save_done), "Saving EEPROM data"); gtk_message_dialog_set_markup(eeprom_save_done, "<b>Saving EEPROM data as</b>"); gtk_message_dialog_format_secondary_text(eeprom_save_done, "%s", utf8_name); if (utf8_name != name) g_free(utf8_name); gtk_container_check_resize(GTK_CONTAINER(eeprom_save_done)); gtk_widget_show(GTK_WIDGET(eeprom_save_done)); eeprom_save_shown = TRUE; eeprom_save_close = gtk_window_get_default_widget(GTK_WINDOW(eeprom_save_done)); if (eeprom_save_close) gtk_widget_set_sensitive(eeprom_save_close, FALSE); } } } return TRUE; }
static void aoview_eeprom_done(struct aoview_serial *serial) { gtk_window_set_title(GTK_WINDOW(eeprom_save_done), "EEPROM data saved"); gtk_message_dialog_set_markup(eeprom_save_done, "<b>EEPROM data saved as</b>"); if (!eeprom_save_shown) gtk_widget_show(GTK_WIDGET(eeprom_save_done)); eeprom_save_close = gtk_window_get_default_widget(GTK_WINDOW(eeprom_save_done)); if (eeprom_save_close) gtk_widget_set_sensitive(eeprom_save_close, TRUE); aoview_eeprom_disconnect(serial); }
void wxSpinCtrlGTKBase::OnChar( wxKeyEvent &event ) { wxCHECK_RET( m_widget != NULL, wxT("invalid spin ctrl") ); if (event.GetKeyCode() == WXK_RETURN) { wxWindow *top_frame = wxGetTopLevelParent(m_parent); if ( GTK_IS_WINDOW(top_frame->m_widget) ) { GtkWindow *window = GTK_WINDOW(top_frame->m_widget); if ( window ) { GtkWidget* widgetDef = gtk_window_get_default_widget(window); if ( widgetDef ) { gtk_widget_activate(widgetDef); return; } } } } if ((event.GetKeyCode() == WXK_RETURN) && (m_windowStyle & wxTE_PROCESS_ENTER)) { wxCommandEvent evt( wxEVT_COMMAND_TEXT_ENTER, m_windowId ); evt.SetEventObject(this); GtkSpinButton *gsb = GTK_SPIN_BUTTON(m_widget); wxString val = wxGTK_CONV_BACK( gtk_entry_get_text( &gsb->entry ) ); evt.SetString( val ); if (HandleWindowEvent(evt)) return; } event.Skip(); }