int gui_update_el3_lum_value () { int i, lcno, status; double L1, L2, l3; PHOEBE_el3_units l3units; status = phoebe_el3_units_id (&l3units); if (status != SUCCESS) { gui_warning ("Third light computation issue", "Third light units are not set or are invalid. Please review the settings in the Luminosities tab."); return SUCCESS; } phoebe_parameter_get_value (phoebe_parameter_lookup ("phoebe_lcno"), &lcno); for (i = 0; i < lcno; i++) { phoebe_parameter_get_value (phoebe_parameter_lookup ("phoebe_el3"), i, &l3); /* If third light units are flux, then simply update the value and exit: */ if (l3units == PHOEBE_EL3_UNITS_FLUX) phoebe_parameter_set_value (phoebe_parameter_lookup ("gui_el3_lum_units"), i, 4*M_PI*l3); else { /* Otherwise we need to convert. */ phoebe_parameter_get_value (phoebe_parameter_lookup ("phoebe_hla"), i, &L1); phoebe_parameter_get_value (phoebe_parameter_lookup ("phoebe_cla"), i, &L2); phoebe_parameter_set_value (phoebe_parameter_lookup ("gui_el3_lum_units"), i, (L1+L2)*l3/(1.-l3)); } } return SUCCESS; }
gchar *gui_get_filename_with_overwrite_confirmation(GtkWidget *dialog, char *gui_confirmation_title) { /* Returns a valid filename or NULL if the user canceled Replaces functionality of gtk_file_chooser_set_do_overwrite_confirmation avaliable in Gtk 2.8 (PHOEBE only requires 2.6) */ gchar *filename; while (TRUE) { if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT){ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); if (!phoebe_filename_exists(filename)) /* file does not exist */ return filename; if(gui_warning(gui_confirmation_title, "This file already exists. Do you want to replace it?")){ /* file may be overwritten */ return filename; } /* user doesn't want to overwrite, display the dialog again */ g_free (filename); } else{ gui_status("%s cancelled.", gui_confirmation_title); return NULL; } } }
G_MODULE_EXPORT void gui_preferences_apply(GtkWidget *widget,gui_gd_t *gd) { gui_preferences_gui2data(gd,&gd->preferences.current); if (gui_preferences_save("config.ini",&gd->preferences.current)==-1) { gui_error(gd,"Saving","Could not save preferences"); } if (gui_preferences_upload(&gd->preferences.current)==-1) { if (nxtcam_com_is_connected()) { gui_error(gd,"Uploading","Can not upload preferences to NXTCam."); } else { gui_warning(gd,"Not connected","NXTCam is not connected, so preferences are not uploaded."); } } }
static void cb_level_remove(GtkWidget *widget, gpointer data) { LevelFrame *lf = (LevelFrame *) data; gchar *text; gchar *filename; if(lf->game->state == STATE_STOPPED) { g_assert(lf->level_list_selection); filename = leveldata_remove(lf->level_list_selection); remove_flags_levelfile(newflags, filename); g_free(filename); gtk_list_store_remove(lf->level_list_store, &(lf->level_list_iter)); g_free(lf->level_list_selection); lf->level_list_selection = NULL; } else { gui_warning("Cannot add or remove levels while the game is running"); } set_flags_changed(TRUE); }
static void cb_filesel_ok(GtkWidget *w, gpointer data) { LevelFrame *lf = (LevelFrame *) data; gchar *filename; gchar *title; filename = (gchar *) gtk_file_selection_get_filename (GTK_FILE_SELECTION (lf->fsel)); if(lf->game->state == STATE_STOPPED) { if((title = leveldata_add(filename))) { gtk_list_store_append(lf->level_list_store, &(lf->level_list_iter)); gtk_list_store_set(lf->level_list_store, &(lf->level_list_iter), 0, title, -1); add_flags_levelfile(newflags, filename); } } else { gui_warning("Cannot add or remove levels while the game is running"); } gtk_widget_destroy(GTK_WIDGET(lf->fsel)); lf->fsel = NULL; set_flags_changed(TRUE); }
static void cb_level_add(GtkWidget *widget, gpointer data) { LevelFrame *lf = (LevelFrame *) data; if(lf->game->state == STATE_STOPPED) { lf->fsel = gtk_file_selection_new ("Add Levelfile"); /* Connect Signals */ g_signal_connect(GTK_OBJECT(lf->fsel), "destroy", (GtkSignalFunc) cb_filesel_cancel, data); g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION (lf->fsel)->cancel_button), "clicked", (GtkSignalFunc) cb_filesel_cancel, data); g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION (lf->fsel)->ok_button), "clicked", (GtkSignalFunc) cb_filesel_ok, data); /* Set defaults */ gtk_file_selection_set_filename(GTK_FILE_SELECTION(lf->fsel), "*.gbl"); /* Show the selector */ gtk_widget_show(lf->fsel); } else { gui_warning("Cannot add or remove levels while the game is running"); } set_flags_changed(TRUE); }