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;
		}
	}
}
Exemple #3
0
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);
}