/* NIGHTFALL Light Curve Synthesis Program */ /* Copyright (C) 1998 Rainer Wichmann */ /* */ /* This program is free software; you can redistribute it */ /* and/or modify */ /* it under the terms of the GNU General Public License as */ /* published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* ANSI C forbids an empty source file, so put this outside */ #include #include #include #include #include "Light.h" #ifdef _WITH_GTK #include "pixmaps/mcomp.xpm" #include "pixmaps/manim.xpm" #include "pixmaps/mplot.xpm" #include "pixmaps/mhelp.xpm" #ifdef HAVE_GNOME GnomeUIInfo toolbar[] = { GNOMEUIINFO_ITEM(N_("Compute"), N_("Compute a synthetic lightcurve w/ current options"), lightcurve_event, mcomp_xpm), GNOMEUIINFO_TOGGLEITEM(N_("Animate"), N_("Toggle animated view of binary during lightcurve computation"), toggle_animate, manim_xpm), GNOMEUIINFO_ITEM(N_("Plot"), N_("Plot computed lightcurve"), lightcurveplot_event, mplot_xpm), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_ITEM(N_("Info"), N_("Help on the active notebook page"), help_event, mhelp_xpm), GNOMEUIINFO_END }; /* ---------------- status bar ------------------ */ GnomeAppBar *status_bar; #else GtkWidget *status_bar; gint context_id; #endif /************************************************************* Variables for temporary storage of data **************************************************************/ int TG_reflectstore; /* the reflection flag */ int TG_graphstore; /* the plot flag */ int TG_visualstore; /* the visualize flag */ /* -------- required for arbitrary ON/OFF of spots --------- */ int TG_P1spot = 0, TG_P2spot = 0; int TG_S1spot = 0, TG_S2spot = 0; int SpotActive[4] = { 0, 0, 0, 0 }; int TG_1spots = 0, TG_2spots = 0; int FitSpotS[16] = { 0 }; SpotLight SpotStore[2][2]; /************************************************************* Global widgets **************************************************************/ /* --------------- entry fields (basic) ------------------ */ GtkWidget *e_101; /* mass ratio */ GtkWidget *e_102; /* inclination */ GtkWidget *e_103; /* primary rochefill */ GtkWidget *e_104; /* secondary rochefill */ GtkWidget *e_105; /* primary temperature */ GtkWidget *e_106; /* secondary temperature */ /* ---------------- entry fields (advanced) -------------- */ GtkWidget *e_107; /* eccentricity */ GtkWidget *e_108; /* periastron length */ GtkWidget *e_109; /* primary F ratio */ GtkWidget *e_110; /* secondary F ratio */ GtkWidget *e_111; /* line rest wavelength */ GtkWidget *e_112; /* # of lightcurve steps */ GtkWidget *e_113; /* # of reflection iterations */ #ifdef HAVE_DISK GtkWidget *e_114; /* outer disk radius */ GtkWidget *e_115; /* inner disk radius */ GtkWidget *e_116; /* disk tilt */ GtkWidget *e_117; /* disk warp */ GtkWidget *e_118; /* disk hight */ GtkWidget *e_119; /* disk H/R */ GtkWidget *e_120; /* disk temperature */ #endif GtkWidget *e_121; /* primary log_g */ GtkWidget *e_122; /* secondary log_g */ #ifdef HAVE_DISK GtkWidget *e_130; /* hot spot temperature */ GtkWidget *e_131; /* hot spot longitude */ GtkWidget *e_132; /* hot spot extent */ GtkWidget *e_133; /* hot spot depth */ #endif /* ---------------- entry fields (fit) ------------------- */ GtkWidget *e_name; /* system name */ GtkWidget *e_301; /* fit tolerance */ GtkWidget *e_302; /* period */ GtkWidget *e_303; /* mass */ GtkWidget *e_304; /* separation */ GtkWidget *e_305; /* step1 */ GtkWidget *e_306; /* step2 */ /* --------------- entry fields (spots) ------------------ */ GtkWidget *e_401; /* spot1 primary longitude */ GtkWidget *e_402; /* spot1 primary latitude */ GtkWidget *e_403; /* spot1 primary radius */ GtkWidget *e_404; /* spot1 primary dimfactor */ GtkWidget *e_405; /* spot2 primary longitude */ GtkWidget *e_406; /* spot2 primary latitude */ GtkWidget *e_407; /* spot2 primary radius */ GtkWidget *e_408; /* spot2 primary dimfactor */ GtkWidget *e_409; /* spot1 secondary longitude */ GtkWidget *e_410; /* spot1 secondary latitude */ GtkWidget *e_411; /* spot1 secondary radius */ GtkWidget *e_412; /* spot1 secondary dimfactor */ GtkWidget *e_413; /* spot2 secondary longitude */ GtkWidget *e_414; /* spot2 secondary latitude */ GtkWidget *e_415; /* spot2 secondary radius */ GtkWidget *e_416; /* spot2 secondary dimfactor */ /* --------------- entry fields (third light) ------------ */ GtkWidget *e_501; /* third light U */ GtkWidget *e_502; /* third light B */ GtkWidget *e_503; /* third light V */ GtkWidget *e_504; /* third light R */ GtkWidget *e_505; /* third light I */ GtkWidget *e_506; /* third light J */ GtkWidget *e_507; /* third light H */ GtkWidget *e_508; /* third light K */ GtkWidget *e_509; /* third light u */ GtkWidget *e_510; /* third light v */ GtkWidget *e_511; /* third light b */ GtkWidget *e_512; /* third light y */ /* ------------------ toggle buttons --------------------- */ GtkWidget *t_anim_button; /* toggle animated */ #ifdef HAVE_DISK GtkWidget *t_disk_button; /* toggle disk on/off */ GtkWidget *t_warp_button; /* toggle warped disk */ #endif GtkWidget *t_eccentric_button; /* toggle eccentric */ GtkWidget *t_fpri_button; /* toggle asynchron pri. */ GtkWidget *t_fsec_button; /* toggle asynchron sec. */ GtkWidget *t_ssp1_button; /* toggle spot1 sec. */ GtkWidget *t_ssp2_button; /* toggle spot2 sec. */ GtkWidget *t_psp1_button; /* toggle spot1 pri. */ GtkWidget *t_psp2_button; /* toggle spot2 pri. */ GtkWidget *t_bbody_button; /* toggle blackbody */ #ifdef HAVE_DISK GtkWidget *td_button_0; /* disk temp distribution*/ GtkWidget *td_button_1; /* disk temp distribution*/ GtkWidget *td_button_2; /* disk temp distribution*/ GtkWidget *hs_temp_label; /* hot spot temperature */ GtkWidget *hs_longitude_label; /* hot spot longitude */ GtkWidget *hs_extent_label; /* hot spot extent */ GtkWidget *hs_depth_label; /* hot spot depth */ #endif /* ------------------------ items to grey out ------------ */ GtkWidget *menu_plot; /* plot lightcurve */ GtkWidget *menu_profile; /* line profiles */ GtkWidget *ome_button; /* fit omega */ GtkWidget *ecc_button; /* fit eccentricity */ GtkWidget *as1_button; /* fit async primary */ GtkWidget *as2_button; /* fit async secondary */ GtkWidget *ref_label; /* reflection label */ #ifdef HAVE_DISK GtkWidget *orad_label; /* outer radius label */ GtkWidget *irad_label; /* inner radius label */ GtkWidget *tilt_label; /* disk tilt label */ GtkWidget *warp_label; /* disk warp label */ GtkWidget *thick_label; /* disk trickness label */ GtkWidget *hr_label; /* disk H/R label */ GtkWidget *disktmp_label; /* disk temperature label*/ #endif /* --------------------- misc ------------------ */ GtkWidget *progress_bar; /* progress bar */ GtkWidget *top_window; /* the top window */ GtkWidget *notebook; /* the notebook */ GtkTooltips *tooltips; /* the tooltips */ /****************************************************************** @package nightfall @author Rainer Wichmann (rwichman@lsw.uni-heidelberg.de) @version 1.0 @short Push message on status bar @tip function arguments are not used @param (char) *message Message @return (void) @heading Graphical User Interface *******************************************************************/ void my_appbar_push (char *message) { #ifdef HAVE_GNOME gnome_appbar_clear_stack(status_bar); gnome_appbar_push (status_bar, message); while (gtk_events_pending()) gtk_main_iteration(); #else gtk_statusbar_pop(GTK_STATUSBAR(status_bar), context_id); gtk_statusbar_push(GTK_STATUSBAR(status_bar), context_id, message); while (gtk_events_pending()) gtk_main_iteration(); #endif return; } /****************************************************************** @package nightfall @author Rainer Wichmann (rwichman@lsw.uni-heidelberg.de) @version 1.0 @short Main GTK routine, creates GUI and waits for input @param (int) argc The number of arguments @param (char *) argv[] The argument array @return (int) The exit status @heading Graphical User Interface *******************************************************************/ int the_gui (int argc, char *argv[]) { GtkWidget *label; GtkWidget *button; GtkWidget *table; GtkWidget *box1; GtkWidget *box2; GtkWidget *box3; GtkWidget *box4; GSList *group; #ifndef HAVE_GNOME GtkWidget *menu_bar; GtkWidget *handlebox; GtkWidget *toolbar; char my_rc[] = "nightfallrc"; /* theme file */ char my_full_rc[1024] = "\0"; /* full path to theme file */ FILE *test; /* test for file */ #endif #ifdef _WITH_OPENGL gchar *info_str; /* OpenGL hardware information */ #endif char InitString[64]; /* init string for entry field */ int i; /* misc */ char top_title[256]; /* title string */ /* >>>>>>>>>>> initialize <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ #ifdef HAVE_GNOME int lo; GnomeClient *client; gint restarted = 0, dummy; gint os_x = 20, os_y = 20, os_w = 554, os_h = 408; gchar * configFile = NULL; gchar * dataFile = NULL; gchar * theName = NULL; gchar *ptr; gchar path[512]; gint old_page = 0; extern gint die (GnomeClient *client, gpointer client_data); extern gint save_yourself (GnomeClient *client, gint phase, GnomeRestartStyle restart_style, gint shutdown, GnomeInteractStyle interact_style, gint fast, gpointer client_data); gnome_program_init(PACKAGE, VERSION, LIBGNOMEUI_MODULE, argc, argv, /* GNOME_PARAM_POPT_TABLE, options, */ GNOME_PARAM_HUMAN_READABLE_NAME, _("Binary Star Simulator"), GNOME_PARAM_APP_SYSCONFDIR, SYSCONFDIR, GNOME_PARAM_APP_DATADIR, GDOCDIR, GNOME_PARAM_APP_LIBDIR, LIBDIR, NULL); /* gnome_init("nightfall", NULL, argc, argv); */ client= gnome_master_client (); gtk_signal_connect (GTK_OBJECT (client), "save_yourself", GTK_SIGNAL_FUNC (save_yourself), NULL); gtk_signal_connect (GTK_OBJECT (client), "die", GTK_SIGNAL_FUNC (die), NULL); #else gtk_init (&argc, &argv); if (getenv("HOME") != NULL) { /* test for $HOME/.nightfallrc */ strncpy(my_full_rc, getenv("HOME"), (sizeof(my_full_rc) - sizeof(my_rc) - 3)); strcat(my_full_rc, "/."); strncat(my_full_rc, my_rc, sizeof(my_rc)); /* test for $HOME/.gtkrc */ if ( (test = fopen(my_full_rc, "r")) == NULL) { strncpy(my_full_rc, getenv("HOME"), (sizeof(my_full_rc) - 8)); strcat(my_full_rc, "/.gtkrc"); test = fopen(my_full_rc, "r"); } if (test != NULL) { /* parse $HOME/.nightfallrc or $HOME/.gtkrc */ fclose(test); gtk_rc_parse(my_full_rc); } else { /* try ./nightfallrc */ my_full_rc[0] = '.'; my_full_rc[1] = '/'; my_full_rc[2] = '\0'; strcat(my_full_rc, my_rc); test = fopen(my_full_rc, "r"); if (test != NULL) { fclose(test); gtk_rc_parse(my_full_rc); } else { gtk_rc_parse("./.gtkrc"); } } } #endif #ifdef _WITH_OPENGL /* Check if OpenGL is supported by local display */ /* Needed for remote displays with no GL support */ if ((gdk_gl_query() == FALSE) && (Flags.debug[WARN] == ON)) { g_print("**Warning**: This binary was compiled with OpenGL support ON and\n"); g_print("**Warning**: is currently running on a machine supporting OpenGL,\n"); g_print("**Warning**: but probably your remote display does not support OpenGL !\n"); g_print("**Warning**: Thus we switch back to normal display !!\n"); Flags.GL = OFF; } else { if (Flags.debug[VERBOSE] == ON) { /* vendor dependent version info string */ info_str = gdk_gl_get_info(); g_print(info_str); g_free(info_str); } Flags.GL = ON; } #endif /* -------------- initialize flags ---------------------------- */ TG_reflectstore = Flags.reflect; TG_graphstore = Flags.plot; Flags.plot = OFF; TG_visualstore = Flags.visualize; Flags.visualize = OFF; sprintf(top_title, "%10s %5s", PACKAGE, VERSION); /* save current spot parameters */ SpotStore[0][0] = Spot[0][0]; SpotStore[0][1] = Spot[0][1]; SpotStore[1][0] = Spot[1][0]; SpotStore[1][1] = Spot[1][1]; TG_1spots = Flags.Spots1; if (Flags.Spots1 > 0) { TG_P1spot = ON; SpotActive[0] = ON; } if (Flags.Spots1 > 1) { TG_P2spot = ON; SpotActive[1] = ON; } TG_2spots = Flags.Spots1; if (Flags.Spots2 > 0) { TG_S1spot = ON; SpotActive[2] = ON; } if (Flags.Spots2 > 1) { TG_S2spot = ON; SpotActive[3] = ON; } for (i=0; i<16; ++i) FitSpotS[i] = Flags.simplex[10+i]; /* >>>>>>>>>>> top window <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ /* -------------- create new window ------------------------------ */ #ifdef HAVE_GNOME top_window = gnome_app_new("nightfall", top_title); if (GNOME_CLIENT_CONNECTED (client)) { if (gnome_client_get_flags (client) & GNOME_CLIENT_RESTORED) { restarted = 1; /* set flag */ gnome_config_push_prefix (gnome_client_get_config_prefix (client)); os_x = gnome_config_get_int ("Geometry/x"); os_y = gnome_config_get_int ("Geometry/y"); os_w = gnome_config_get_int ("Geometry/w"); os_h = gnome_config_get_int ("Geometry/h"); Flags.GN_tooltips = gnome_config_get_int ("Options/HaveTooltips=1"); Flags.GN_rempos = gnome_config_get_int ("Options/RememberPosition=1"); Flags.GN_exitconfirm = gnome_config_get_int ("Options/PromptOnQuit=0"); /* first, we read the config file. As the config file may have * commands to read data, we then clear the data, and read * those that were in memory when we were terminated. */ configFile = gnome_config_get_string ("Configuration/File"); if (configFile != NULL) { ptr = strrchr(configFile,'/'); if (ptr == NULL) { ParseConfig(configFile, &dummy); } else { ++ptr; ParseConfig(ptr, &dummy); } g_free(configFile); } /* set data count for all passbands to zero */ for ( i = 0; i < (NUM_MAG+2); ++ i) Flags.Passbands[i] = 0; /* clear data file list */ ClearList(); for (i = 0; i < 12; ++i) { snprintf(path, 255, "Data/File%02d", i); dataFile = gnome_config_get_string(path); if (dataFile != NULL) { Read ( dataFile ); g_free( dataFile ); } } Flags.fill = gnome_config_get_int("Flags/fill"); Flags.elliptic = gnome_config_get_int("Flags/elliptic"); Flags.asynchron1 = gnome_config_get_int("Flags/asynchron1"); Flags.asynchron2 = gnome_config_get_int("Flags/asynchron2"); Flags.animate = gnome_config_get_int("Flags/animate"); Flags.plot = gnome_config_get_int("Flags/plot"); Flags.eps = gnome_config_get_int("Flags/eps"); Flags.lineprofile = gnome_config_get_int("Flags/lineprofile"); Flags.blackbody = gnome_config_get_int("Flags/blackbody"); Flags.fractional = gnome_config_get_int("Flags/fractional"); Flags.limb = gnome_config_get_int("Flags/limb"); Flags.reflect = gnome_config_get_int("Flags/reflect"); Flags.anneal = gnome_config_get_int("Flags/anneal"); Flags.PlotBand = gnome_config_get_int("Flags/PlotBand"); Flags.SimplexTol = gnome_config_get_float("Flags/STol"); Flags.Step[0] = gnome_config_get_float("Flags/Step0"); Flags.Step[1] = gnome_config_get_float("Flags/Step1"); for (lo = 0; lo < 12; ++lo) { snprintf(path, 255, "Flags/Dbg%02d", lo); Flags.debug[lo] = gnome_config_get_int (path ); } TG_reflectstore = gnome_config_get_int("Flags/reflectstore"); TG_graphstore = gnome_config_get_int("Flags/graphstore"); TG_visualstore = gnome_config_get_int("Flags/visualstore"); PhaseSteps = gnome_config_get_float("Misc/PhaseSteps"); old_page = gnome_config_get_int("Misc/NoteBookPage"); theName = gnome_config_get_string("Orbit/Name"); if (theName != NULL) { strncpy (Orbit.Name, theName, MAX_CFG_INLINE); free (theName); } Orbit.LambdaZero = gnome_config_get_float("Orbit/LambdaZero"); Orbit.Third[Umag] = gnome_config_get_float("Orbit/ThirdU"); Orbit.Third[Bmag] = gnome_config_get_float("Orbit/ThirdB"); Orbit.Third[Vmag] = gnome_config_get_float("Orbit/ThirdV"); Orbit.Third[Rmag] = gnome_config_get_float("Orbit/ThirdR"); Orbit.Third[Imag] = gnome_config_get_float("Orbit/ThirdI"); Orbit.Third[Jmag] = gnome_config_get_float("Orbit/ThirdJ"); Orbit.Third[Hmag] = gnome_config_get_float("Orbit/ThirdH"); Orbit.Third[Kmag] = gnome_config_get_float("Orbit/ThirdK"); Orbit.Third[umag] = gnome_config_get_float("Orbit/Thirdu"); Orbit.Third[vmag] = gnome_config_get_float("Orbit/Thirdv"); Orbit.Third[bmag] = gnome_config_get_float("Orbit/Thirdb"); Orbit.Third[ymag] = gnome_config_get_float("Orbit/Thirdy"); Orbit.TruePeriod = gnome_config_get_float("Orbit/Period"); Orbit.TrueMass = gnome_config_get_float("Orbit/Mass"); Orbit.TrueDistance = gnome_config_get_float("Orbit/Distance"); Orbit.Excentricity = gnome_config_get_float("Orbit/Excentr"); Orbit.Omega = gnome_config_get_float("Orbit/Omega"); Orbit.Inclination = gnome_config_get_float("Orbit/Inclination"); Binary[Primary].Fratio = gnome_config_get_float("Binary/FR1"); Binary[Secondary].Fratio = gnome_config_get_float("Binary/FR2"); Binary[Primary].Mq = gnome_config_get_float("Binary/MQ1"); Binary[Secondary].Mq = gnome_config_get_float("Binary/MQ2"); Binary[Primary].RocheFill = gnome_config_get_float("Binary/RocheFill1"); Binary[Secondary].RocheFill = gnome_config_get_float("Binary/RocheFill2"); Binary[Primary].Temperature = gnome_config_get_float("Binary/Temp1"); Binary[Secondary].Temperature =gnome_config_get_float("Binary/Temp2"); Binary[Primary].log_g = gnome_config_get_float("Binary/LogG1"); Binary[Secondary].log_g = gnome_config_get_float("Binary/LogG2"); Flags.Spots1 = gnome_config_get_int("Flags/Spots1"); Flags.Spots2 = gnome_config_get_int("Flags/Spots2"); SpotStore[Primary][0].longitude = gnome_config_get_float("SpotP1/logitude"); SpotStore[Primary][0].latitude = gnome_config_get_float("SpotP1/latitude"); SpotStore[Primary][0].radius = gnome_config_get_float("SpotP1/radius"); SpotStore[Primary][0].dimfactor = gnome_config_get_float("SpotP1/dimfactor"); SpotStore[Primary][1].longitude = gnome_config_get_float("SpotP2/logitude"); SpotStore[Primary][1].latitude = gnome_config_get_float("SpotP2/latitude"); SpotStore[Primary][1].radius = gnome_config_get_float("SpotP2/radius"); SpotStore[Primary][1].dimfactor = gnome_config_get_float("SpotP2/dimfactor"); SpotStore[Secondary][0].longitude = gnome_config_get_float("SpotS1/logitude"); SpotStore[Secondary][0].latitude = gnome_config_get_float("SpotS1/latitude"); SpotStore[Secondary][0].radius = gnome_config_get_float("SpotS1/radius"); SpotStore[Secondary][0].dimfactor = gnome_config_get_float("SpotS1/dimfactor"); SpotStore[Secondary][1].longitude = gnome_config_get_float("SpotS2/logitude"); SpotStore[Secondary][1].latitude = gnome_config_get_float("SpotS2/latitude"); SpotStore[Secondary][1].radius = gnome_config_get_float("SpotS2/radius"); SpotStore[Secondary][1].dimfactor = gnome_config_get_float("SpotS2/dimfactor"); TG_P1spot = gnome_config_get_int ("Flags/TGP1"); TG_P2spot = gnome_config_get_int ("Flags/TGP2"); TG_S1spot = gnome_config_get_int ("Flags/TGS1"); TG_S2spot = gnome_config_get_int ("Flags/TGS2"); for (lo = 0; lo < 4; ++lo) { snprintf(path, 255, "SpotActive/%02d", lo); SpotActive[lo] = gnome_config_get_int (path ); } for (lo = 0; lo < 16; ++lo) { snprintf(path, 255, "SpotFit/%02d", lo); FitSpotS[lo] = gnome_config_get_int (path ); } for (lo = 0; lo < Flags.Spots1; ++lo) { snprintf(path, 255, "Spot_P%02d/longitude", lo); Spot[Primary][lo].longitude = gnome_config_get_float (path ); snprintf(path, 255, "Spot_P%02d/latitude", lo); Spot[Primary][lo].latitude = gnome_config_get_float (path ); snprintf(path, 255, "Spot_P%02d/radius", lo); Spot[Primary][lo].radius = gnome_config_get_float (path ); snprintf(path, 255, "Spot_P%02d/dimfactor", lo); Spot[Primary][lo].dimfactor = gnome_config_get_float (path ); } for (lo = 0; lo < Flags.Spots2; ++lo) { snprintf(path, 255, "Spot_S%02d/longitude", lo); Spot[Secondary][lo].longitude = gnome_config_get_float (path ); snprintf(path, 255, "Spot_S%02d/latitude", lo); Spot[Secondary][lo].latitude = gnome_config_get_float (path ); snprintf(path, 255, "Spot_S%02d/radius", lo); Spot[Secondary][lo].radius = gnome_config_get_float (path ); snprintf(path, 255, "Spot_S%02d/dimfactor", lo); Spot[Secondary][lo].dimfactor = gnome_config_get_float (path ); } /* fit flags */ for (lo = 0; lo < 64; ++lo) { snprintf(path, 255, "Simplex/%02d", lo); Flags.simplex[lo] = gnome_config_get_int (path ); } gnome_config_pop_prefix (); } else { /*get this info from the config*/ gnome_config_push_prefix ("nightfall/"); Flags.GN_tooltips = gnome_config_get_int ("Options/HaveTooltips=1"); Flags.GN_rempos = gnome_config_get_int ("Options/RememberPosition=1"); Flags.GN_exitconfirm = gnome_config_get_int ("Options/PromptOnQuit=0"); if (Flags.GN_rempos) { os_x = gnome_config_get_int ("Geometry/x=20"); os_y = gnome_config_get_int ("Geometry/y=20"); /* if (strcmp("de", guess_the_locale() ) == 0) os_w = gnome_config_get_int ("Geometry/w=595"); else */ os_w = gnome_config_get_int ("Geometry/w=568"); os_h = gnome_config_get_int ("Geometry/h=408"); } gnome_config_pop_prefix(); } } else { if (Flags.debug[WARN] == ON) printf("**Warning**: GNOME_CLIENT_CONNECTED == FALSE (Gnome not running ?!?)\n"); Flags.GN_tooltips = 1; Flags.GN_rempos = 1; Flags.GN_exitconfirm = 0; os_w = 568; os_h = 408; os_x = 20; os_y = 20; } gtk_widget_set_uposition (GTK_WIDGET (top_window), os_x, os_y); gtk_window_set_policy (GTK_WINDOW(top_window), TRUE, TRUE, FALSE); #else top_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width(GTK_CONTAINER(top_window), 0); gtk_window_set_title(GTK_WINDOW(top_window), top_title); gtk_widget_realize(top_window); /* #ifdef HAVE_GNOME (#else branch) */ #endif /* ----------- connect the exit handler --------------------------- */ gtk_signal_connect (GTK_OBJECT (top_window), "delete_event", GTK_SIGNAL_FUNC (delete_event), (gpointer) "9"); /* --------------- set border width of window -------------------- */ gtk_container_set_border_width (GTK_CONTAINER (top_window), 0); /* -------------- initialize tooltips ---------------------------- */ tooltips = gtk_tooltips_new (); gtk_tooltips_set_delay (tooltips, 1200); #ifdef HAVE_GNOME if (! Flags.GN_tooltips) gtk_tooltips_disable( tooltips ); #endif /* >>>>>>>>>>> the main vertical box <<<<<<<<<<<<<<<<<<<<<<<<< */ box3 = gtk_vbox_new (FALSE, 0); #ifdef HAVE_GNOME gnome_app_set_contents(GNOME_APP(top_window), box3); #else gtk_container_add (GTK_CONTAINER (top_window), GTK_WIDGET (box3)); #endif /* >>>>>>>>>>> the menu bar <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ #ifdef HAVE_GNOME MakeMenu(); #else menu_bar = gtk_menu_bar_new(); gtk_box_pack_start (GTK_BOX (box3), menu_bar, FALSE, FALSE, 0); MakeMenu(menu_bar); #endif /* >>>>>>>>>>> the toolbar <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ #ifdef HAVE_GNOME gnome_app_create_toolbar(GNOME_APP(top_window), toolbar); t_anim_button = toolbar[1].widget; if (Flags.animate == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_anim_button), TRUE); #else handlebox = gtk_handle_box_new (); gtk_box_pack_start ( GTK_BOX (box3) , handlebox, FALSE, TRUE, 0 ); #ifdef USING_GTK2 toolbar = gtk_toolbar_new (); #else toolbar = gtk_toolbar_new ( GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH ); #endif gtk_container_set_border_width ( GTK_CONTAINER ( toolbar ) , 0 ); #ifndef USING_GTK2 gtk_toolbar_set_space_size ( GTK_TOOLBAR ( toolbar ), 309 ); #endif gtk_toolbar_set_tooltips(GTK_TOOLBAR(toolbar), TRUE); gtk_container_add ( GTK_CONTAINER ( handlebox ) , toolbar ); gtk_toolbar_append_item ( GTK_TOOLBAR (toolbar), _("Compute"), _("Compute a synthetic lightcurve w/ current options"), NULL, create_pixmap(top_window, mcomp_xpm), GTK_SIGNAL_FUNC (lightcurve_event), NULL ); t_anim_button = gtk_toolbar_append_element ( GTK_TOOLBAR (toolbar), GTK_TOOLBAR_CHILD_TOGGLEBUTTON, NULL, _("Animate"), _("Toggle animated view of binary during lightcurve computation"), NULL, create_pixmap(top_window, manim_xpm), GTK_SIGNAL_FUNC (toggle_animate), NULL ); if (Flags.animate == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_anim_button), TRUE); gtk_toolbar_append_item ( GTK_TOOLBAR (toolbar), _("Plot"), _("Plot computed lightcurve"), NULL, create_pixmap(top_window, mplot_xpm), GTK_SIGNAL_FUNC (lightcurveplot_event), NULL ); gtk_toolbar_append_space(GTK_TOOLBAR(toolbar)); gtk_toolbar_append_item ( GTK_TOOLBAR (toolbar), _("Info"), _("Help on the active notebook page"), NULL, create_pixmap(top_window, mhelp_xpm), GTK_SIGNAL_FUNC (help_event), NULL ); gtk_widget_show ( toolbar ); gtk_widget_show (handlebox); #endif /* >>>>>>>>>>> the notebook <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ box4 = gtk_hbox_new (TRUE, 0); gtk_box_pack_start (GTK_BOX (box3), box4, FALSE, FALSE, 5); gtk_widget_show (box4); box4 = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (box3), box4, FALSE, FALSE, 0); /* --------------- initialize notebook ------------------------ */ notebook = gtk_notebook_new (); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_TOP); gtk_box_pack_start (GTK_BOX (box4), notebook, FALSE, FALSE, 0); gtk_widget_show(notebook); gtk_widget_show(box4); /* --------------- First Page ----------------------------------- */ label = gtk_label_new (_("Basic")); box1 = gtk_hbox_new (TRUE, 0); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box1, label); /* gtk_container_add (GTK_CONTAINER (top_window), box1); */ gtk_widget_show (label); gtk_widget_show (box1); /* -------------------------------------------------------------- */ /* the first vertical box holds a table with entry fields */ /* for the numerical arguments */ /* -------------------------------------------------------------- */ box2 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (box2), 0); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); gtk_widget_show (box2); table = gtk_table_new (8, 4, TRUE); e_101 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_101), "changed", GTK_SIGNAL_FUNC(enter_massratio), e_101); sprintf(InitString, "%6.3f", Binary[Primary].Mq); gtk_entry_set_text (GTK_ENTRY (e_101), InitString); gtk_entry_select_region (GTK_ENTRY (e_101), 0, GTK_ENTRY(e_101)->text_length); gtk_table_attach (GTK_TABLE(table), e_101, 1, 2, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_101); button = gtk_toggle_button_new_with_label (_("Mass Ratio:")); if (Flags.simplex[0] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "0"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for Mass Ratio"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_102 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_102), "changed", GTK_SIGNAL_FUNC(enter_inclination), e_102); sprintf(InitString, "%8.5f", RTOD*Orbit.Inclination); gtk_entry_set_text (GTK_ENTRY (e_102), InitString); gtk_entry_select_region (GTK_ENTRY (e_102), 0, GTK_ENTRY(e_102)->text_length); gtk_table_attach (GTK_TABLE(table), e_102, 3, 4, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_102); button = gtk_toggle_button_new_with_label (_("Inclination:")); if (Flags.simplex[1] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "1"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for Inclination"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_103 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_103), "changed", GTK_SIGNAL_FUNC(enter_rochefill1), e_103); sprintf(InitString, "%6.3f", Binary[Primary].RocheFill); gtk_entry_set_text (GTK_ENTRY (e_103), InitString); gtk_entry_select_region (GTK_ENTRY (e_103), 0, GTK_ENTRY(e_103)->text_length); gtk_table_attach (GTK_TABLE(table), e_103, 1, 2, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_103); button = gtk_toggle_button_new_with_label (_("Fill Factor (P):")); if (Flags.simplex[2] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "2"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for Primary Roche Fill Factor"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_104 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_104), "changed", GTK_SIGNAL_FUNC(enter_rochefill2), e_104); sprintf(InitString, "%6.3f", Binary[Secondary].RocheFill); gtk_entry_set_text (GTK_ENTRY (e_104), InitString); gtk_entry_select_region (GTK_ENTRY (e_104), 0, GTK_ENTRY(e_104)->text_length); gtk_table_attach (GTK_TABLE(table), e_104, 3, 4, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_104); button = gtk_toggle_button_new_with_label (_("Fill Factor (S):")); if (Flags.simplex[3] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "3"); gtk_tooltips_set_tip(tooltips, button, _("Toggle CONST/FIT for Secondary Roche Fill Factor"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_105 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_105), "changed", GTK_SIGNAL_FUNC(enter_temp1), e_105); sprintf(InitString, "%6.3f", Binary[Primary].Temperature); gtk_entry_set_text (GTK_ENTRY (e_105), InitString); gtk_entry_select_region (GTK_ENTRY (e_105), 0, GTK_ENTRY(e_105)->text_length); gtk_table_attach (GTK_TABLE(table), e_105, 1, 2, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_105); button = gtk_toggle_button_new_with_label (_("Temperature (P):")); if (Flags.simplex[4] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "4"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for Primary Temperature"),NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_106 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_106), "changed", GTK_SIGNAL_FUNC(enter_temp2), e_106); sprintf(InitString, "%6.3f", Binary[Secondary].Temperature); gtk_entry_set_text (GTK_ENTRY (e_106), InitString); gtk_entry_select_region (GTK_ENTRY (e_106), 0, GTK_ENTRY(e_106)->text_length); gtk_table_attach (GTK_TABLE(table), e_106, 3, 4, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_106); button = gtk_toggle_button_new_with_label (_("Temperature (S):")); if (Flags.simplex[5] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "5"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for Secondary Temperature"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); label = gtk_label_new (_("Terminal Output:")); gtk_table_attach (GTK_TABLE(table), label, 0, 1, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (label); button = gtk_check_button_new_with_label (_("Warning")); if (Flags.debug[WARN] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_debug), (gpointer) "1"); gtk_tooltips_set_tip (tooltips, button, _("Toggle output of warnings"),NULL); gtk_table_attach (GTK_TABLE(table), button, 1, 2, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); button = gtk_check_button_new_with_label (_("Verbose")); if (Flags.debug[VERBOSE] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_debug), (gpointer) "3"); gtk_tooltips_set_tip (tooltips, button, _("Toggle verbose output"),NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); button = gtk_check_button_new_with_label (_("Busy")); if (Flags.debug[BUSY] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_debug), (gpointer) "2"); gtk_tooltips_set_tip (tooltips, button, _("Toggle status output"),NULL); gtk_table_attach (GTK_TABLE(table), button, 3, 4, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (box2), table, FALSE, FALSE, 0); #ifdef HAVE_DISK /* --------------- Disk Page ----------------------------------- */ label = gtk_label_new (_("Disk")); box1 = gtk_hbox_new (TRUE, 0); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box1, label); /* gtk_container_add (GTK_CONTAINER (top_window), box1); */ gtk_widget_show (label); gtk_widget_show (box1); /*-------------------- Disk stuff ------------------------------*/ box2 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (box2), 0); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); gtk_widget_show (box2); table = gtk_table_new (8, 4, TRUE); t_disk_button = gtk_check_button_new_with_label (_("Accretion Disk")); if (Flags.disk == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_disk_button), TRUE); gtk_signal_connect (GTK_OBJECT (t_disk_button), "toggled", GTK_SIGNAL_FUNC (toggle_disk), NULL ); gtk_tooltips_set_tip (tooltips, t_disk_button, _("Switch on accretion disk"), NULL); gtk_table_attach (GTK_TABLE(table), t_disk_button, 0, 2, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (t_disk_button); /* outer radius */ e_114 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_114), "changed", GTK_SIGNAL_FUNC(enter_odiskrad), e_114); sprintf(InitString, "%6.3f", Binary[Disk].Rout); gtk_entry_set_text (GTK_ENTRY (e_114), InitString); gtk_entry_select_region (GTK_ENTRY (e_114), 0, GTK_ENTRY(e_114)->text_length); gtk_table_attach (GTK_TABLE(table), e_114, 1, 2, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_114); orad_label = gtk_toggle_button_new_with_label (_("Outer Radius:")); if (Flags.simplex[40] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (orad_label), TRUE); gtk_signal_connect (GTK_OBJECT (orad_label), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "40"); gtk_tooltips_set_tip (tooltips, orad_label, _("Toggle CONST/FIT for Outer Radius"), NULL); gtk_table_attach (GTK_TABLE(table), orad_label, 0, 1, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (orad_label); /* inner radius */ e_115 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_115), "changed", GTK_SIGNAL_FUNC(enter_idiskrad), e_115); sprintf(InitString, "%6.3f", Binary[Disk].Rin); gtk_entry_set_text (GTK_ENTRY (e_115), InitString); gtk_entry_select_region (GTK_ENTRY (e_115), 0, GTK_ENTRY(e_115)->text_length); gtk_table_attach (GTK_TABLE(table), e_115, 3, 4, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_115); irad_label = gtk_toggle_button_new_with_label (_("Inner Radius:")); if (Flags.simplex[41] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (irad_label), TRUE); gtk_signal_connect (GTK_OBJECT (irad_label), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "41"); gtk_tooltips_set_tip (tooltips, irad_label, _("Toggle CONST/FIT for Inner Radius"), NULL); gtk_table_attach (GTK_TABLE(table), irad_label, 2, 3, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (irad_label); /* disk tilt */ e_116 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_116), "changed", GTK_SIGNAL_FUNC(enter_disktilt), e_116); sprintf(InitString, "%6.3f", Binary[Disk].Tilt); gtk_entry_set_text (GTK_ENTRY (e_116), InitString); gtk_entry_select_region (GTK_ENTRY (e_116), 0, GTK_ENTRY(e_116)->text_length); #if 0 gtk_table_attach (GTK_TABLE(table), e_116, 1, 2, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_116); #endif tilt_label = gtk_label_new (_("Inclination:")); #if 0 gtk_table_attach (GTK_TABLE(table), tilt_label, 0, 1, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (tilt_label); #endif /* disk thickness */ e_118 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_118), "changed", GTK_SIGNAL_FUNC(enter_diskthick), e_118); sprintf(InitString, "%6.3f", Binary[Disk].Thick); gtk_entry_set_text (GTK_ENTRY (e_118), InitString); gtk_entry_select_region (GTK_ENTRY (e_118), 0, GTK_ENTRY(e_118)->text_length); gtk_table_attach (GTK_TABLE(table), e_118, 3, 4, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_118); thick_label = gtk_toggle_button_new_with_label (_("Thickness:")); if (Flags.simplex[42] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (thick_label), TRUE); gtk_signal_connect (GTK_OBJECT (thick_label), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "42"); gtk_tooltips_set_tip (tooltips, thick_label, _("Toggle CONST/FIT for Thickness"), NULL); gtk_table_attach (GTK_TABLE(table), thick_label, 2, 3, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (thick_label); /* disk H/R */ e_119 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_119), "changed", GTK_SIGNAL_FUNC(enter_diskhr), e_119); sprintf(InitString, "%6.3f", Binary[Disk].HR); gtk_entry_set_text (GTK_ENTRY (e_119), InitString); gtk_entry_select_region (GTK_ENTRY (e_119), 0, GTK_ENTRY(e_119)->text_length); gtk_table_attach (GTK_TABLE(table), e_119, 1, 2, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_119); hr_label = gtk_toggle_button_new_with_label (_("H/R:")); if (Flags.simplex[43] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (hr_label), TRUE); gtk_signal_connect (GTK_OBJECT (hr_label), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "43"); gtk_tooltips_set_tip (tooltips, hr_label, _("Toggle CONST/FIT for H/R"), NULL); gtk_table_attach (GTK_TABLE(table), hr_label, 0, 1, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (hr_label); /* disk temperature */ e_120 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_120), "changed", GTK_SIGNAL_FUNC(enter_disktemp), e_120); gtk_tooltips_set_tip (tooltips, e_120, _("Effective temperature of the accretion disk"), NULL); sprintf(InitString, "%6.3f", Binary[Disk].Temperature); gtk_entry_set_text (GTK_ENTRY (e_120), InitString); gtk_entry_select_region (GTK_ENTRY (e_120), 0, GTK_ENTRY(e_120)->text_length); gtk_table_attach (GTK_TABLE(table), e_120, 3, 4, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_120); disktmp_label = gtk_toggle_button_new_with_label (_("Temperature:")); if (Flags.simplex[44] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (disktmp_label), TRUE); gtk_signal_connect (GTK_OBJECT (disktmp_label), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "44"); gtk_tooltips_set_tip (tooltips, disktmp_label, _("Toggle CONST/FIT for Temperature"), NULL); gtk_table_attach (GTK_TABLE(table), disktmp_label, 2, 3, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (disktmp_label); /* --------------- Hot spot ------------------------------ */ /* Temperature */ e_130 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_130), "changed", GTK_SIGNAL_FUNC(enter_hs_temp), e_130); gtk_tooltips_set_tip (tooltips, e_130, _("Effective temperature of the hot spot"), NULL); sprintf(InitString, "%6.3f", Binary[Disk].tempHS); gtk_entry_set_text (GTK_ENTRY (e_130), InitString); gtk_entry_select_region (GTK_ENTRY (e_130), 0, GTK_ENTRY(e_130)->text_length); gtk_table_attach (GTK_TABLE(table), e_130, 1, 2, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_130); hs_temp_label = gtk_toggle_button_new_with_label (_("T (hot spot):")); if (Flags.simplex[45] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (hs_temp_label), TRUE); gtk_signal_connect (GTK_OBJECT (hs_temp_label), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "45"); gtk_tooltips_set_tip (tooltips, hs_temp_label, _("Toggle CONST/FIT for T (hot spot)"), NULL); gtk_table_attach (GTK_TABLE(table), hs_temp_label, 0, 1, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (hs_temp_label); /* Longitude */ e_131 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_131), "changed", GTK_SIGNAL_FUNC(enter_hs_longitude), e_131); gtk_tooltips_set_tip (tooltips, e_131, _("Longitude of the hot spot"), NULL); sprintf(InitString, "%6.3f", Binary[Disk].longitudeHS); gtk_entry_set_text (GTK_ENTRY (e_131), InitString); gtk_entry_select_region (GTK_ENTRY (e_131), 0, GTK_ENTRY(e_131)->text_length); gtk_table_attach (GTK_TABLE(table), e_131, 3, 4, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_131); hs_longitude_label = gtk_toggle_button_new_with_label (_("Longitude (hot spot):")); if (Flags.simplex[46] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (hs_longitude_label), TRUE); gtk_signal_connect (GTK_OBJECT (hs_longitude_label), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "46"); gtk_tooltips_set_tip (tooltips, hs_longitude_label, _("Toggle CONST/FIT for Longitude (hot spot)"), NULL); gtk_table_attach (GTK_TABLE(table), hs_longitude_label, 2, 3, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (hs_longitude_label); /* Extent */ e_132 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_132), "changed", GTK_SIGNAL_FUNC(enter_hs_extent), e_132); gtk_tooltips_set_tip (tooltips, e_132, _("Extent of the hot spot"), NULL); sprintf(InitString, "%6.3f", Binary[Disk].extentHS); gtk_entry_set_text (GTK_ENTRY (e_132), InitString); gtk_entry_select_region (GTK_ENTRY (e_132), 0, GTK_ENTRY(e_132)->text_length); gtk_table_attach (GTK_TABLE(table), e_132, 1, 2, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_132); hs_extent_label = gtk_toggle_button_new_with_label (_("Extent (hot spot):")); if (Flags.simplex[47] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (hs_extent_label), TRUE); gtk_signal_connect (GTK_OBJECT (hs_extent_label), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "47"); gtk_tooltips_set_tip (tooltips, hs_extent_label, _("Toggle CONST/FIT for Extent (hot spot)"), NULL); gtk_table_attach (GTK_TABLE(table), hs_extent_label, 0, 1, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (hs_extent_label); /* Depth */ e_133 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_133), "changed", GTK_SIGNAL_FUNC(enter_hs_depth), e_133); gtk_tooltips_set_tip (tooltips, e_133, _("Depth of the hot spot"), NULL); sprintf(InitString, "%6.3f", Binary[Disk].depthHS); gtk_entry_set_text (GTK_ENTRY (e_133), InitString); gtk_entry_select_region (GTK_ENTRY (e_133), 0, GTK_ENTRY(e_133)->text_length); gtk_table_attach (GTK_TABLE(table), e_133, 3, 4, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (e_133); hs_depth_label = gtk_toggle_button_new_with_label (_("Depth (hot spot):")); if (Flags.simplex[48] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (hs_depth_label), TRUE); gtk_signal_connect (GTK_OBJECT (hs_depth_label), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "48"); gtk_tooltips_set_tip (tooltips, hs_depth_label, _("Toggle CONST/FIT for Depth (hot spot)"), NULL); gtk_table_attach (GTK_TABLE(table), hs_depth_label, 2, 3, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (hs_depth_label); /* --------------- Disk model ------------------------------ */ td_button_0 = gtk_radio_button_new_with_label (NULL, _("simple")); if (Flags.tdisk == 0) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (td_button_0), TRUE); gtk_signal_connect (GTK_OBJECT (td_button_0), "toggled", GTK_SIGNAL_FUNC (radio_tdisk), (gpointer) "0"); gtk_table_attach (GTK_TABLE(table), td_button_0, 1, 2, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (td_button_0); group = gtk_radio_button_group (GTK_RADIO_BUTTON (td_button_0)); td_button_1 = gtk_radio_button_new_with_label (group, _("isothermal")); if (Flags.tdisk == 1) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (td_button_1), TRUE); gtk_signal_connect (GTK_OBJECT (td_button_1), "toggled", GTK_SIGNAL_FUNC (radio_tdisk), (gpointer) "1"); gtk_table_attach (GTK_TABLE(table), td_button_1, 2, 3, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (td_button_1); group = gtk_radio_button_group (GTK_RADIO_BUTTON (td_button_1)); td_button_2 = gtk_radio_button_new_with_label (group, _("reprocessing")); if (Flags.tdisk == 2) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (td_button_2), TRUE); gtk_signal_connect (GTK_OBJECT (td_button_2), "toggled", GTK_SIGNAL_FUNC (radio_tdisk), (gpointer) "2"); gtk_table_attach (GTK_TABLE(table), td_button_2, 3, 4, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (td_button_2); /* ----------------- Disk Warp ----------------------------------- */ /* toggle disk warp */ t_warp_button = gtk_check_button_new_with_label (_("Warped Disk")); if (Flags.warp == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_warp_button), TRUE); gtk_signal_connect (GTK_OBJECT (t_warp_button), "toggled", GTK_SIGNAL_FUNC (toggle_warp), NULL ); gtk_tooltips_set_tip (tooltips, t_warp_button, _("Toggle warped disk"), NULL); #if 0 gtk_table_attach (GTK_TABLE(table), t_warp_button, 0, 1, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.disk == ON) gtk_widget_show (t_warp_button); #endif /* disk warp */ e_117 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_117), "changed", GTK_SIGNAL_FUNC(enter_diskwarp), e_117); sprintf(InitString, "%6.3f", Binary[Disk].Warp); gtk_entry_set_text (GTK_ENTRY (e_117), InitString); gtk_entry_select_region (GTK_ENTRY (e_117), 0, GTK_ENTRY(e_117)->text_length); gtk_table_attach (GTK_TABLE(table), e_117, 3, 4, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if ((Flags.disk == ON) && (Flags.warp == ON)) gtk_widget_show (e_117); warp_label = gtk_label_new (_("Warp Factor:")); gtk_table_attach (GTK_TABLE(table), warp_label, 2, 3, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if ((Flags.disk == ON) && (Flags.warp == ON)) gtk_widget_show (warp_label); /* ------------------- Show table ----------------------------- */ gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (box2), table, FALSE, FALSE, 0); /* ------------------- End Disk stuff ----------------------------- */ #endif /* --------------- Second Page ---------------------------------- */ label = gtk_label_new (_("Advanced")); box1 = gtk_hbox_new (TRUE, 0); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box1, label); gtk_widget_show (label); gtk_widget_show (box1); box2 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (box2), 0); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); gtk_widget_show (box2); table = gtk_table_new (8, 4, TRUE); /* --------------- Eccentric orbit ----------------------------- */ t_eccentric_button = gtk_check_button_new_with_label (_("Eccentric Orbit")); if (Flags.elliptic == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_eccentric_button), TRUE); gtk_signal_connect (GTK_OBJECT (t_eccentric_button), "toggled", GTK_SIGNAL_FUNC (toggle_elliptic), NULL ); gtk_tooltips_set_tip (tooltips, t_eccentric_button, _("Switch on eccentric orbit"), NULL); gtk_table_attach (GTK_TABLE(table), t_eccentric_button, 0, 2, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (t_eccentric_button); e_107 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_107), "changed", GTK_SIGNAL_FUNC(enter_excentricity), e_107); sprintf(InitString, "%6.3f", Orbit.Excentricity); gtk_entry_set_text (GTK_ENTRY (e_107), InitString); gtk_entry_select_region (GTK_ENTRY (e_107), 0, GTK_ENTRY(e_107)->text_length); gtk_table_attach (GTK_TABLE(table), e_107, 1, 2, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.elliptic == ON) gtk_widget_show (e_107); ecc_button = gtk_toggle_button_new_with_label (_("Eccentricity:")); if (Flags.simplex[6] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ecc_button), TRUE); gtk_signal_connect (GTK_OBJECT (ecc_button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "6"); gtk_tooltips_set_tip (tooltips, ecc_button, _("Toggle CONST/FIT for eccentricity"), NULL); gtk_table_attach (GTK_TABLE(table), ecc_button, 0, 1, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.elliptic == ON) gtk_widget_show (ecc_button); e_108 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_108), "changed", GTK_SIGNAL_FUNC(enter_omega), e_108); sprintf(InitString, "%6.3f", Orbit.Omega); gtk_entry_set_text (GTK_ENTRY (e_108), InitString); gtk_entry_select_region (GTK_ENTRY (e_108), 0, GTK_ENTRY(e_108)->text_length); gtk_table_attach (GTK_TABLE(table), e_108, 1, 2, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.elliptic == ON) gtk_widget_show (e_108); ome_button = gtk_toggle_button_new_with_label (_("Periastron Length:")); if (Flags.simplex[7] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ome_button), TRUE); gtk_signal_connect (GTK_OBJECT (ome_button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "7"); gtk_tooltips_set_tip (tooltips, ome_button, _("Toggle CONST/FIT for periastron length"), NULL); gtk_table_attach (GTK_TABLE(table), ome_button, 0, 1, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.elliptic == ON) gtk_widget_show (ome_button); /* --------------- Asynchroneous rotation ----------------------- */ e_109 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_109), "changed", GTK_SIGNAL_FUNC(enter_fratio1), e_109); sprintf(InitString, "%6.3f", Binary[Primary].Fratio); gtk_entry_set_text (GTK_ENTRY (e_109), InitString); gtk_entry_select_region (GTK_ENTRY (e_109), 0, GTK_ENTRY(e_109)->text_length); gtk_table_attach (GTK_TABLE(table), e_109, 3, 4, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.asynchron1 == ON) gtk_widget_show (e_109); as1_button = gtk_toggle_button_new_with_label (_("F_Ratio (P):")); if (Flags.simplex[8] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (as1_button), TRUE); gtk_signal_connect (GTK_OBJECT (as1_button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "8"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for Primary asynchron rotation"), NULL); gtk_table_attach (GTK_TABLE(table), as1_button, 2, 3, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.asynchron1 == ON) gtk_widget_show (as1_button); e_110 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_110), "changed", GTK_SIGNAL_FUNC(enter_fratio2), e_110); sprintf(InitString, "%6.3f", Binary[Secondary].Fratio); gtk_entry_set_text (GTK_ENTRY (e_110), InitString); gtk_entry_select_region (GTK_ENTRY (e_110), 0, GTK_ENTRY(e_110)->text_length); gtk_table_attach (GTK_TABLE(table), e_110, 3, 4, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.asynchron2 == ON) gtk_widget_show (e_110); as2_button = gtk_toggle_button_new_with_label (_("F_Ratio (S):")); if (Flags.simplex[9] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (as2_button), TRUE); gtk_signal_connect (GTK_OBJECT (as2_button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "9"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for Secondary Asynchron Rotation"), NULL); gtk_table_attach (GTK_TABLE(table), as2_button, 2, 3, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.asynchron2 == ON) gtk_widget_show (as2_button); t_fpri_button = gtk_check_button_new_with_label (_("Primary asynchron")); if (Flags.asynchron1 == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_fpri_button), TRUE); gtk_signal_connect (GTK_OBJECT (t_fpri_button), "toggled", GTK_SIGNAL_FUNC (toggle_fratio1), NULL ); gtk_tooltips_set_tip (tooltips, t_fpri_button, _("Switch on Primary asynchron rotation"),NULL); gtk_table_attach (GTK_TABLE(table), t_fpri_button, 2, 3, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (t_fpri_button); t_fsec_button = gtk_check_button_new_with_label (_("Secondary asynchron")); if (Flags.asynchron2 == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_fsec_button), TRUE); gtk_signal_connect (GTK_OBJECT (t_fsec_button), "toggled", GTK_SIGNAL_FUNC (toggle_fratio2), NULL ); gtk_tooltips_set_tip (tooltips, t_fsec_button, _("Switch On Secondary Asynchron Rotation"),NULL); gtk_table_attach (GTK_TABLE(table), t_fsec_button, 3, 4, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (t_fsec_button); /* --------------- Model Atmosphere ---------------------------- */ t_bbody_button = gtk_check_button_new_with_label (_("Model Atmosphere (with log g [P/S])")); if (Flags.blackbody == OFF) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_bbody_button), TRUE); gtk_signal_connect (GTK_OBJECT (t_bbody_button), "toggled", GTK_SIGNAL_FUNC (toggle_blackbody), NULL); gtk_tooltips_set_tip (tooltips, t_bbody_button, _("Toggle Blackbody/Model Atmosphere Flux"),NULL); gtk_table_attach (GTK_TABLE(table), t_bbody_button, 0, 2, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (t_bbody_button); e_121 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_121), "changed", GTK_SIGNAL_FUNC(enter_log_g_1), e_121); sprintf(InitString, "%3.1f", Binary[Primary].log_g); gtk_entry_set_text (GTK_ENTRY (e_121), InitString); gtk_entry_select_region (GTK_ENTRY (e_121), 0, GTK_ENTRY(e_121)->text_length); gtk_table_attach (GTK_TABLE(table), e_121, 0, 1, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.blackbody == OFF) gtk_widget_show (e_121); e_122 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_122), "changed", GTK_SIGNAL_FUNC(enter_log_g_2), e_122); sprintf(InitString, "%3.1f", Binary[Secondary].log_g); gtk_entry_set_text (GTK_ENTRY (e_122), InitString); gtk_entry_select_region (GTK_ENTRY (e_122), 0, GTK_ENTRY(e_122)->text_length); gtk_table_attach (GTK_TABLE(table), e_122, 1, 2, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.blackbody == OFF) gtk_widget_show (e_122); /* --------------- Fractional Visibility ----------------------- */ button = gtk_check_button_new_with_label (_("Fractional Visibility")); if (Flags.fractional == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fractional), NULL); gtk_tooltips_set_tip (tooltips, button, _("Compute Fractional Visibility to smooth Lightcurve"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 4, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); /* --------------- Line Profile -------------------------------- */ button = gtk_check_button_new_with_label (_("Line Profile at: (nm)")); if (Flags.lineprofile == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_lineprofile), NULL ); gtk_tooltips_set_tip (tooltips, button, _("Compute Line Profiles at different Phases for given rest wavelength"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_111 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_111), "changed", GTK_SIGNAL_FUNC(enter_linewave), e_111); sprintf(InitString, "%8.1f", Orbit.LambdaZero); gtk_entry_set_text (GTK_ENTRY (e_111), InitString); gtk_entry_select_region (GTK_ENTRY (e_111), 0, GTK_ENTRY(e_111)->text_length); gtk_table_attach (GTK_TABLE(table), e_111, 1, 2, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_111); /* --------------- Reflection ---------------------------------- */ button = gtk_check_button_new_with_label (_("Detailed Reflection:")); if (Flags.reflect > 0) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_reflect), NULL ); gtk_tooltips_set_tip (tooltips, button, _("Toggle point source/detailed (iterative) reflection"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 2, 6, 7, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); ref_label = gtk_label_new (_("Reflection iterations:")); gtk_misc_set_alignment (GTK_MISC(ref_label), 0,0); gtk_tooltips_set_tip (tooltips, ref_label, _("Set number of iterations for exact reflection"),NULL); gtk_table_attach (GTK_TABLE(table), ref_label, 0, 1, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.reflect > 0) gtk_widget_show (ref_label); e_113 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_113), "changed", GTK_SIGNAL_FUNC(enter_reflect_iterations), e_113); sprintf(InitString, "%3d", Flags.reflect); gtk_entry_set_text (GTK_ENTRY (e_113), InitString); gtk_entry_select_region (GTK_ENTRY (e_113), 0, GTK_ENTRY(e_113)->text_length); gtk_table_attach (GTK_TABLE(table), e_113, 1, 2, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); if (Flags.reflect > 0) gtk_widget_show (e_113); /* --------------- Limb Darkening ------------------------------ */ label = gtk_label_new (_("Limb Darkening Law")); gtk_misc_set_alignment (GTK_MISC(label), 0,1); gtk_table_attach (GTK_TABLE(table), label, 2, 4, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (label); button = gtk_radio_button_new_with_label (NULL, _("linear")); if (Flags.limb == 0) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (radio_limb), (gpointer) "0"); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 6, 7, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); group = gtk_radio_button_group (GTK_RADIO_BUTTON (button)); button = gtk_radio_button_new_with_label (group, _("quadratic")); if (Flags.limb == 1) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (radio_limb), (gpointer) "1"); gtk_table_attach (GTK_TABLE(table), button, 3, 4, 6, 7, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); group = gtk_radio_button_group (GTK_RADIO_BUTTON (button)); button = gtk_radio_button_new_with_label (group, _("square root")); if (Flags.limb == 2) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (radio_limb), (gpointer) "2"); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); #if (LD_LAW_MAX > 2) group = gtk_radio_button_group (GTK_RADIO_BUTTON (button)); button = gtk_radio_button_new_with_label (group, _("inverse")); if (Flags.limb == 3) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (radio_limb), (gpointer) "3"); gtk_table_attach (GTK_TABLE(table), button, 3, 4, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); #endif /* --------------- Lightcurve Steps ---------------------------- */ label = gtk_label_new (_("Lightcurve Steps:")); /* gtk_misc_set_alignment (GTK_MISC(label), 0, 1); */ gtk_tooltips_set_tip (tooltips, label, _("Set number of steps for lightcurve"), NULL); gtk_table_attach (GTK_TABLE(table), label, 2, 3, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (label); e_112 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_112), "changed", GTK_SIGNAL_FUNC(enter_phasesteps), e_112); sprintf(InitString, "%8d", PhaseSteps); gtk_entry_set_text (GTK_ENTRY (e_112), InitString); gtk_entry_select_region (GTK_ENTRY (e_112), 0, GTK_ENTRY(e_112)->text_length); gtk_table_attach (GTK_TABLE(table), e_112, 3, 4, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_112); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (box2), table, FALSE, FALSE, 0); /* --------------- Third Page ----------------------------------- */ makepage3 (); /* --------------- Fourth Page ------------------------------------ */ label = gtk_label_new (_("Data Fitting")); box1 = gtk_hbox_new (TRUE, 0); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box1, label); /* gtk_container_add (GTK_CONTAINER (top_window), box1); */ gtk_widget_show (label); gtk_widget_show (box1); box2 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (box2), 0); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); gtk_widget_show (box2); table = gtk_table_new (8, 4, TRUE); e_name = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_name), "changed", GTK_SIGNAL_FUNC(enter_name), e_name); gtk_entry_set_text (GTK_ENTRY (e_name), Orbit.Name); gtk_entry_select_region (GTK_ENTRY (e_name), 0, GTK_ENTRY(e_name)->text_length); gtk_table_attach (GTK_TABLE(table), e_name, 2, 4, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_name); label = gtk_label_new (_("Name of binary:")); gtk_table_attach (GTK_TABLE(table), label, 0, 2, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (label); e_302 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_302), "changed", GTK_SIGNAL_FUNC(enter_abs_period), e_302); sprintf(InitString, "%8.4f", Orbit.TruePeriod/86400.); gtk_entry_set_text (GTK_ENTRY (e_302), InitString); gtk_entry_select_region (GTK_ENTRY (e_302), 0, GTK_ENTRY(e_302)->text_length); gtk_table_attach (GTK_TABLE(table), e_302, 2, 4, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_302); label = gtk_label_new (_("Period (days):")); gtk_table_attach (GTK_TABLE(table), label, 0, 2, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (label); e_303 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_303), "changed", GTK_SIGNAL_FUNC(enter_abs_mass), e_303); sprintf(InitString, "%8.4f", Orbit.TrueMass/1.989E30 ); gtk_entry_set_text (GTK_ENTRY (e_303), InitString); gtk_entry_select_region (GTK_ENTRY (e_303), 0, GTK_ENTRY(e_303)->text_length); gtk_table_attach (GTK_TABLE(table), e_303, 2, 4, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_303); button = gtk_toggle_button_new_with_label (_("Mass (solar masses):")); if (Flags.simplex[26] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "26"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for binary mass"),NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 2, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_304 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_304), "changed", GTK_SIGNAL_FUNC(enter_abs_distance), e_304); sprintf(InitString, "%8.4f", Orbit.TrueDistance/6.960E8); gtk_entry_set_text (GTK_ENTRY (e_304), InitString); gtk_entry_select_region (GTK_ENTRY (e_304), 0, GTK_ENTRY(e_304)->text_length); gtk_table_attach (GTK_TABLE(table), e_304, 2, 4, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_304); button = gtk_toggle_button_new_with_label(_("Separation (solar radii):")); if (Flags.simplex[27] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "27"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for binary separation"),NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 2, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_301 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_301), "changed", GTK_SIGNAL_FUNC(enter_simplextol), e_301); sprintf(InitString, "%6.4f", Flags.SimplexTol); gtk_entry_set_text (GTK_ENTRY (e_301), InitString); gtk_entry_select_region (GTK_ENTRY (e_301), 0, GTK_ENTRY(e_301)->text_length); gtk_table_attach (GTK_TABLE(table), e_301, 2, 4, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_301); button = gtk_button_new_with_label (_("FIT with tolerance:")); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (lightfit_event), NULL); gtk_tooltips_set_tip (tooltips, button, _("Determine best-fit model for observational data"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 2, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); button = gtk_check_button_new_with_label (_("Simulated Annealing")); if (Flags.anneal == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_anneal), NULL ); gtk_tooltips_set_tip (tooltips, button, _("Switch on global (SA) fitting"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 2, 6, 7, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); button = gtk_button_new_with_label (_("MAP ChiSquare with steps:")); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (lightmap_event), NULL); gtk_tooltips_set_tip (tooltips, button, _("Compute 2D chi-square map in two parameters"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 2, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_305 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_305), "changed", GTK_SIGNAL_FUNC(enter_step1), e_305); sprintf(InitString, "%6.4f", Flags.Step[0]); gtk_entry_set_text (GTK_ENTRY (e_305), InitString); gtk_entry_select_region (GTK_ENTRY (e_305), 0, GTK_ENTRY(e_305)->text_length); gtk_table_attach (GTK_TABLE(table), e_305, 2, 3, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_305); e_306 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_306), "changed", GTK_SIGNAL_FUNC(enter_step2), e_306); sprintf(InitString, "%6.4f", Flags.Step[1]); gtk_entry_set_text (GTK_ENTRY (e_306), InitString); gtk_entry_select_region (GTK_ENTRY (e_306), 0, GTK_ENTRY(e_306)->text_length); gtk_table_attach (GTK_TABLE(table), e_306, 3, 4, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_306); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (box2), table, FALSE, FALSE, 0); /* --------------- Fifth Page ------------------------------------ */ label = gtk_label_new (_("Spots Primary")); box1 = gtk_hbox_new (TRUE, 0); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box1, label); gtk_widget_show (label); gtk_widget_show (box1); box2 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (box2), 0); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); gtk_widget_show (box2); table = gtk_table_new (8, 4, TRUE); /* ------------- PRIMARY SPOT 1 ------------------------- */ t_psp1_button = gtk_check_button_new_with_label (_("Primary Spot One")); if (SpotActive[0] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_psp1_button),TRUE); gtk_signal_connect (GTK_OBJECT (t_psp1_button), "toggled", GTK_SIGNAL_FUNC (toggle_p_spot1), NULL); gtk_tooltips_set_tip (tooltips, t_psp1_button, _("Toggle inclusion/exclusion of spot"), NULL); gtk_table_attach (GTK_TABLE(table), t_psp1_button, 0, 2, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (t_psp1_button); e_401 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_401), "changed", GTK_SIGNAL_FUNC(enter_longitude_p_spot1), e_401); sprintf(InitString, "%6.3f", SpotStore[Primary][0].longitude); gtk_entry_set_text (GTK_ENTRY (e_401), InitString); gtk_entry_select_region (GTK_ENTRY (e_401), 0, GTK_ENTRY(e_401)->text_length); gtk_table_attach (GTK_TABLE(table), e_401, 1, 2, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_401); button = gtk_toggle_button_new_with_label (_("Longitude:")); if (FitSpotS[10-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "10"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for longitude"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_402 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_402), "changed", GTK_SIGNAL_FUNC(enter_latitude_p_spot1), e_402); sprintf(InitString, "%6.3f", SpotStore[Primary][0].latitude); gtk_entry_set_text (GTK_ENTRY (e_402), InitString); gtk_entry_select_region (GTK_ENTRY (e_402), 0, GTK_ENTRY(e_402)->text_length); gtk_table_attach (GTK_TABLE(table), e_402, 1, 2, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_402); button = gtk_toggle_button_new_with_label (_("Latitude:")); if (FitSpotS[11-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "11"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for latitude"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_403 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_403), "changed", GTK_SIGNAL_FUNC(enter_radius_p_spot1), e_403); if (Spot[Primary][0].radius < LIM_SRA_L) Spot[Primary][0].radius = LIM_SRA_L; if (SpotStore[Primary][0].radius < LIM_SRA_L) SpotStore[Primary][0].radius = LIM_SRA_L; sprintf(InitString, "%6.3f", SpotStore[Primary][0].radius); gtk_entry_set_text (GTK_ENTRY (e_403), InitString); gtk_entry_select_region (GTK_ENTRY (e_403), 0, GTK_ENTRY(e_403)->text_length); gtk_table_attach (GTK_TABLE(table), e_403, 1, 2, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_403); button = gtk_toggle_button_new_with_label (_("Radius:")); if (FitSpotS[12-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "12"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for radius"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_404 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_404), "changed", GTK_SIGNAL_FUNC(enter_dimfactor_p_spot1), e_404); if (Spot[Primary][0].dimfactor < LIM_SDF_L) Spot[Primary][0].dimfactor = LIM_SDF_L; if (SpotStore[Primary][0].dimfactor < LIM_SDF_L) SpotStore[Primary][0].dimfactor = LIM_SDF_L; sprintf(InitString, "%6.3f", SpotStore[Primary][0].dimfactor); gtk_entry_set_text (GTK_ENTRY (e_404), InitString); gtk_entry_select_region (GTK_ENTRY (e_404), 0, GTK_ENTRY(e_404)->text_length); gtk_table_attach (GTK_TABLE(table), e_404, 1, 2, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_404); button = gtk_toggle_button_new_with_label (_("Dimfactor:")); if (FitSpotS[13-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "13"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for dimfactor"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); /* ------------- PRIMARY SPOT 2 ------------------------- */ t_psp2_button = gtk_check_button_new_with_label (_("Primary Spot Two")); if (SpotActive[1] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_psp2_button),TRUE); gtk_signal_connect (GTK_OBJECT (t_psp2_button), "toggled", GTK_SIGNAL_FUNC (toggle_p_spot2), NULL); gtk_tooltips_set_tip (tooltips, t_psp2_button, _("Toggle inclusion/exclusion of spot"), NULL); gtk_table_attach (GTK_TABLE(table), t_psp2_button, 2, 4, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (t_psp2_button); e_405 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_405), "changed", GTK_SIGNAL_FUNC(enter_longitude_p_spot2), e_405); sprintf(InitString, "%6.3f", SpotStore[Primary][1].longitude); gtk_entry_set_text (GTK_ENTRY (e_405), InitString); gtk_entry_select_region (GTK_ENTRY (e_405), 0, GTK_ENTRY(e_405)->text_length); gtk_table_attach (GTK_TABLE(table), e_405, 3, 4, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_405); button = gtk_toggle_button_new_with_label (_("Longitude:")); if (FitSpotS[14-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "14"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for longitude"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_406 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_406), "changed", GTK_SIGNAL_FUNC(enter_latitude_p_spot2), e_406); sprintf(InitString, "%6.3f", SpotStore[Primary][1].latitude); gtk_entry_set_text (GTK_ENTRY (e_406), InitString); gtk_entry_select_region (GTK_ENTRY (e_406), 0, GTK_ENTRY(e_406)->text_length); gtk_table_attach (GTK_TABLE(table), e_406, 3, 4, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_406); button = gtk_toggle_button_new_with_label (_("Latitude:")); if (FitSpotS[15-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "15"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for latitude"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_407 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_407), "changed", GTK_SIGNAL_FUNC(enter_radius_p_spot2), e_407); if (Spot[Primary][1].radius < LIM_SRA_L) Spot[Primary][1].radius = LIM_SRA_L; if (SpotStore[Primary][1].radius < LIM_SRA_L) SpotStore[Primary][1].radius = LIM_SRA_L; sprintf(InitString, "%6.3f", SpotStore[Primary][1].radius); gtk_entry_set_text (GTK_ENTRY (e_407), InitString); gtk_entry_select_region (GTK_ENTRY (e_407), 0, GTK_ENTRY(e_407)->text_length); gtk_table_attach (GTK_TABLE(table), e_407, 3, 4, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_407); button = gtk_toggle_button_new_with_label (_("Radius:")); if (FitSpotS[16-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "16"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for radius"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_408 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_408), "changed", GTK_SIGNAL_FUNC(enter_dimfactor_p_spot2), e_408); if (Spot[Primary][1].dimfactor < LIM_SDF_L) Spot[Primary][1].dimfactor = LIM_SDF_L; if (SpotStore[Primary][1].dimfactor < LIM_SDF_L) SpotStore[Primary][1].dimfactor = LIM_SDF_L; sprintf(InitString, "%6.3f", SpotStore[Primary][1].dimfactor); gtk_entry_set_text (GTK_ENTRY (e_408), InitString); gtk_entry_select_region (GTK_ENTRY (e_408), 0, GTK_ENTRY(e_408)->text_length); gtk_table_attach (GTK_TABLE(table), e_408, 3, 4, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_408); button = gtk_toggle_button_new_with_label (_("Dimfactor:")); if (FitSpotS[17-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "17"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for dimfactor"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (box2), table, FALSE, FALSE, 0); /* --------------- Sixth Page ------------------------------------- */ label = gtk_label_new (_("Spots Secondary")); box1 = gtk_hbox_new (TRUE, 0); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box1, label); gtk_widget_show (label); gtk_widget_show (box1); box2 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (box2), 0); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); gtk_widget_show (box2); table = gtk_table_new (8, 4, TRUE); /* ------------- SECONDARY SPOT 1 ------------------------ */ t_ssp1_button = gtk_check_button_new_with_label (_("Secondary Spot One")); if (SpotActive[2] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_ssp1_button),TRUE); gtk_signal_connect (GTK_OBJECT (t_ssp1_button), "toggled", GTK_SIGNAL_FUNC (toggle_s_spot1), NULL); gtk_tooltips_set_tip (tooltips, t_ssp1_button, "Toggle inclusion/exclusion of spot ",NULL); gtk_table_attach (GTK_TABLE(table), t_ssp1_button, 0, 2, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (t_ssp1_button); e_409 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_409), "changed", GTK_SIGNAL_FUNC(enter_longitude_s_spot1), e_409); sprintf(InitString, "%6.3f", SpotStore[Secondary][0].longitude); gtk_entry_set_text (GTK_ENTRY (e_409), InitString); gtk_entry_select_region (GTK_ENTRY (e_409), 0, GTK_ENTRY(e_409)->text_length); gtk_table_attach (GTK_TABLE(table), e_409, 1, 2, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_409); button = gtk_toggle_button_new_with_label (_("Longitude:")); if (FitSpotS[18-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "18"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for longitude"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_410 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_410), "changed", GTK_SIGNAL_FUNC(enter_latitude_s_spot1), e_410); sprintf(InitString, "%6.3f", SpotStore[Secondary][0].latitude); gtk_entry_set_text (GTK_ENTRY (e_410), InitString); gtk_entry_select_region (GTK_ENTRY (e_410), 0, GTK_ENTRY(e_410)->text_length); gtk_table_attach (GTK_TABLE(table), e_410, 1, 2, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_410); button = gtk_toggle_button_new_with_label (_("Latitude:")); if (FitSpotS[19-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "19"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for latitude"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_411 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_411), "changed", GTK_SIGNAL_FUNC(enter_radius_s_spot1), e_411); if (Spot[Secondary][0].radius < LIM_SRA_L) Spot[Secondary][0].radius = LIM_SRA_L; if (SpotStore[Secondary][0].radius < LIM_SRA_L) SpotStore[Secondary][0].radius = LIM_SRA_L; sprintf(InitString, "%6.3f", SpotStore[Secondary][0].radius); gtk_entry_set_text (GTK_ENTRY (e_411), InitString); gtk_entry_select_region (GTK_ENTRY (e_411), 0, GTK_ENTRY(e_411)->text_length); gtk_table_attach (GTK_TABLE(table), e_411, 1, 2, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_411); button = gtk_toggle_button_new_with_label (_("Radius:")); if (FitSpotS[20-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "20"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for radius"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_412 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_412), "changed", GTK_SIGNAL_FUNC(enter_dimfactor_s_spot1), e_412); if (Spot[Secondary][0].dimfactor < LIM_SDF_L) Spot[Secondary][0].dimfactor = LIM_SDF_L; if (SpotStore[Secondary][0].dimfactor < LIM_SDF_L) SpotStore[Secondary][0].dimfactor = LIM_SDF_L; sprintf(InitString, "%6.3f", SpotStore[Secondary][0].dimfactor); gtk_entry_set_text (GTK_ENTRY (e_412), InitString); gtk_entry_select_region (GTK_ENTRY (e_412), 0, GTK_ENTRY(e_412)->text_length); gtk_table_attach (GTK_TABLE(table), e_412, 1, 2, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_412); button = gtk_toggle_button_new_with_label (_("Dimfactor:")); if (FitSpotS[21-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "21"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for dimfactor"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); /* ------------- SECONDARY SPOT 2 ----------------------- */ t_ssp2_button = gtk_check_button_new_with_label (_("Secondary Spot Two")); if (SpotActive[3] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (t_ssp2_button),TRUE); gtk_signal_connect (GTK_OBJECT (t_ssp2_button), "toggled", GTK_SIGNAL_FUNC (toggle_s_spot2), NULL ); gtk_tooltips_set_tip (tooltips, t_ssp2_button, _("Toggle inclusion/exclusion of spot"), NULL); gtk_table_attach (GTK_TABLE(table), t_ssp2_button, 2, 4, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (t_ssp2_button); e_413 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_413), "changed", GTK_SIGNAL_FUNC(enter_longitude_s_spot2), e_413); sprintf(InitString, "%6.3f", SpotStore[Secondary][1].longitude); gtk_entry_set_text (GTK_ENTRY (e_413), InitString); gtk_entry_select_region (GTK_ENTRY (e_413), 0, GTK_ENTRY(e_413)->text_length); gtk_table_attach (GTK_TABLE(table), e_413, 3, 4, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_413); button = gtk_toggle_button_new_with_label (_("Longitude:")); if (FitSpotS[22-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "22"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for longitude"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_414 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_414), "changed", GTK_SIGNAL_FUNC(enter_latitude_s_spot2), e_414); sprintf(InitString, "%6.3f", SpotStore[Secondary][1].latitude); gtk_entry_set_text (GTK_ENTRY (e_414), InitString); gtk_entry_select_region (GTK_ENTRY (e_414), 0, GTK_ENTRY(e_414)->text_length); gtk_table_attach (GTK_TABLE(table), e_414, 3, 4, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_414); button = gtk_toggle_button_new_with_label (_("Latitude:")); if (FitSpotS[23-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "23"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for latitude"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_415 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_415), "changed", GTK_SIGNAL_FUNC(enter_radius_s_spot2), e_415); if (Spot[Secondary][1].radius < LIM_SRA_L) Spot[Secondary][1].radius = LIM_SRA_L; if (SpotStore[Secondary][1].radius < LIM_SRA_L) SpotStore[Secondary][1].radius = LIM_SRA_L; sprintf(InitString, "%6.3f", SpotStore[Secondary][1].radius); gtk_entry_set_text (GTK_ENTRY (e_415), InitString); gtk_entry_select_region (GTK_ENTRY (e_415), 0, GTK_ENTRY(e_415)->text_length); gtk_table_attach (GTK_TABLE(table), e_415, 3, 4, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_415); button = gtk_toggle_button_new_with_label (_("Radius:")); if (FitSpotS[24-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "24"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for radius"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_416 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_416), "changed", GTK_SIGNAL_FUNC(enter_dimfactor_s_spot2), e_416); if (Spot[Secondary][1].dimfactor < LIM_SDF_L) Spot[Secondary][1].dimfactor = LIM_SDF_L; if (SpotStore[Secondary][1].dimfactor < LIM_SDF_L) SpotStore[Secondary][1].dimfactor = LIM_SDF_L; sprintf(InitString, "%6.3f", SpotStore[Secondary][1].dimfactor); gtk_entry_set_text (GTK_ENTRY (e_416), InitString); gtk_entry_select_region (GTK_ENTRY (e_416), 0, GTK_ENTRY(e_416)->text_length); gtk_table_attach (GTK_TABLE(table), e_416, 3, 4, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_416); button = gtk_toggle_button_new_with_label (_("Dimfactor:")); if (FitSpotS[25-10] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit_spot), (gpointer) "25"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for dimfactor"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (box2), table, FALSE, FALSE, 0); /* --------------- Seventh Page ----------------------------------- */ label = gtk_label_new (_("Third Light")); box1 = gtk_hbox_new (TRUE, 0); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box1, label); gtk_widget_show (label); gtk_widget_show (box1); box2 = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (box2), 0); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); gtk_widget_show (box2); table = gtk_table_new (8, 4, TRUE); e_501 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_501), "changed", GTK_SIGNAL_FUNC(enter_thirdU), e_501); sprintf(InitString, "%6.3f", Orbit.Third[Umag]); gtk_entry_set_text (GTK_ENTRY (e_501), InitString); gtk_entry_select_region (GTK_ENTRY (e_501), 0, GTK_ENTRY(e_501)->text_length); gtk_table_attach (GTK_TABLE(table), e_501, 1, 2, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_501); button = gtk_toggle_button_new_with_label (_("U Band:")); if (Flags.simplex[28] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "28"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in U band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_502 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_502), "changed", GTK_SIGNAL_FUNC(enter_thirdB), e_502); sprintf(InitString, "%6.3f", Orbit.Third[Bmag]); gtk_entry_set_text (GTK_ENTRY (e_502), InitString); gtk_entry_select_region (GTK_ENTRY (e_502), 0, GTK_ENTRY(e_502)->text_length); gtk_table_attach (GTK_TABLE(table), e_502, 1, 2, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_502); button = gtk_toggle_button_new_with_label (_("B Band:")); if (Flags.simplex[29] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "29"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in B band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_503 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_503), "changed", GTK_SIGNAL_FUNC(enter_thirdV), e_503); sprintf(InitString, "%6.3f", Orbit.Third[Vmag]); gtk_entry_set_text (GTK_ENTRY (e_503), InitString); gtk_entry_select_region (GTK_ENTRY (e_503), 0, GTK_ENTRY(e_503)->text_length); gtk_table_attach (GTK_TABLE(table), e_503, 1, 2, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_503); button = gtk_toggle_button_new_with_label (_("V Band:")); if (Flags.simplex[30] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "30"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in V band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_504 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_504), "changed", GTK_SIGNAL_FUNC(enter_thirdR), e_504); sprintf(InitString, "%6.3f", Orbit.Third[Rmag]); gtk_entry_set_text (GTK_ENTRY (e_504), InitString); gtk_entry_select_region (GTK_ENTRY (e_504), 0, GTK_ENTRY(e_504)->text_length); gtk_table_attach (GTK_TABLE(table), e_504, 1, 2, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_504); button = gtk_toggle_button_new_with_label (_("R Band:")); if (Flags.simplex[31] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "31"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in R band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 3, 4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_505 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_505), "changed", GTK_SIGNAL_FUNC(enter_thirdI), e_505); sprintf(InitString, "%6.3f", Orbit.Third[Imag]); gtk_entry_set_text (GTK_ENTRY (e_505), InitString); gtk_entry_select_region (GTK_ENTRY (e_505), 0, GTK_ENTRY(e_505)->text_length); gtk_table_attach (GTK_TABLE(table), e_505, 1, 2, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_505); button = gtk_toggle_button_new_with_label (_("I Band:")); if (Flags.simplex[32] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "32"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in I band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 0, 1, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_506 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_506), "changed", GTK_SIGNAL_FUNC(enter_thirdJ), e_506); sprintf(InitString, "%6.3f", Orbit.Third[Jmag]); gtk_entry_set_text (GTK_ENTRY (e_506), InitString); gtk_entry_select_region (GTK_ENTRY (e_506), 0, GTK_ENTRY(e_506)->text_length); gtk_table_attach (GTK_TABLE(table), e_506, 3, 4, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_506); button = gtk_toggle_button_new_with_label (_("J Band:") ); if (Flags.simplex[33] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "33"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in J band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_507 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_507), "changed", GTK_SIGNAL_FUNC(enter_thirdH), e_507); sprintf(InitString, "%6.3f", Orbit.Third[Hmag]); gtk_entry_set_text (GTK_ENTRY (e_507), InitString); gtk_entry_select_region (GTK_ENTRY (e_507), 0, GTK_ENTRY(e_507)->text_length); gtk_table_attach (GTK_TABLE(table), e_507, 3, 4, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_507); button = gtk_toggle_button_new_with_label (_("H Band:")); if (Flags.simplex[34] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "34"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in H band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 1, 2, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_508 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_508), "changed", GTK_SIGNAL_FUNC(enter_thirdK), e_508); sprintf(InitString, "%6.3f", Orbit.Third[Kmag]); gtk_entry_set_text (GTK_ENTRY (e_508), InitString); gtk_entry_select_region (GTK_ENTRY (e_508), 0, GTK_ENTRY(e_508)->text_length); gtk_table_attach (GTK_TABLE(table), e_508, 3, 4, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_508); button = gtk_toggle_button_new_with_label (_("K Band:")); if (Flags.simplex[35] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "35"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in K band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 2, 3, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_509 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_509), "changed", GTK_SIGNAL_FUNC(enter_thirdu), e_509); sprintf(InitString, "%6.3f", Orbit.Third[umag]); gtk_entry_set_text (GTK_ENTRY (e_509), InitString); gtk_entry_select_region (GTK_ENTRY (e_509), 0, GTK_ENTRY(e_509)->text_length); gtk_table_attach (GTK_TABLE(table), e_509, 3, 4, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_509); button = gtk_toggle_button_new_with_label (_("u Band:")); if (Flags.simplex[36] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "36"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in u band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 4, 5, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_510 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_510), "changed", GTK_SIGNAL_FUNC(enter_thirdv), e_510); sprintf(InitString, "%6.3f", Orbit.Third[vmag]); gtk_entry_set_text (GTK_ENTRY (e_510), InitString); gtk_entry_select_region (GTK_ENTRY (e_510), 0, GTK_ENTRY(e_510)->text_length); gtk_table_attach (GTK_TABLE(table), e_510, 3, 4, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_510); button = gtk_toggle_button_new_with_label (_("v Band:")); if (Flags.simplex[37] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "37"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in v band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 5, 6, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_511 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_511), "changed", GTK_SIGNAL_FUNC(enter_thirdb), e_511); sprintf(InitString, "%6.3f", Orbit.Third[bmag]); gtk_entry_set_text (GTK_ENTRY (e_511), InitString); gtk_entry_select_region (GTK_ENTRY (e_511), 0, GTK_ENTRY(e_511)->text_length); gtk_table_attach (GTK_TABLE(table), e_511, 3, 4, 6, 7, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_511); button = gtk_toggle_button_new_with_label (_("b Band:")); if (Flags.simplex[38] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "38"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in b band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 6, 7, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); e_512 = gtk_entry_new_with_max_length (10); gtk_signal_connect(GTK_OBJECT(e_512), "changed", GTK_SIGNAL_FUNC(enter_thirdy), e_512); sprintf(InitString, "%6.3f", Orbit.Third[ymag]); gtk_entry_set_text (GTK_ENTRY (e_512), InitString); gtk_entry_select_region (GTK_ENTRY (e_512), 0, GTK_ENTRY(e_512)->text_length); gtk_table_attach (GTK_TABLE(table), e_512, 3, 4, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (e_512); button = gtk_toggle_button_new_with_label (_("y Band:")); if (Flags.simplex[39] == ON) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); gtk_signal_connect (GTK_OBJECT (button), "toggled", GTK_SIGNAL_FUNC (toggle_fit), (gpointer) "39"); gtk_tooltips_set_tip (tooltips, button, _("Toggle CONST/FIT for third light in y band"), NULL); gtk_table_attach (GTK_TABLE(table), button, 2, 3, 7, 8, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 2, 2); gtk_widget_show (button); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (box2), table, FALSE, FALSE, 0); /* >>>>>>>>>>> the progress bar <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ #ifdef HAVE_GNOME status_bar = GNOME_APPBAR (gnome_appbar_new(TRUE, TRUE, GNOME_PREFERENCES_NEVER)); progress_bar = GTK_WIDGET(gnome_appbar_get_progress(status_bar)); gnome_appbar_set_default(status_bar, _("Waiting")); gnome_app_set_statusbar(GNOME_APP(top_window), GTK_WIDGET(status_bar)); #else box4 = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (box3), box4, FALSE, FALSE, 0); table = gtk_table_new (5, 1, FALSE /* TRUE */); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (box4), table, FALSE, FALSE, 0); status_bar = gtk_statusbar_new(); gtk_table_attach (GTK_TABLE(table), status_bar, 0, 3, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 0, 0); context_id = gtk_statusbar_get_context_id( GTK_STATUSBAR(status_bar), _("Waiting")); gtk_statusbar_push(GTK_STATUSBAR(status_bar), context_id, _("Waiting")); gtk_widget_show (status_bar); progress_bar = gtk_progress_bar_new (); gtk_table_attach (GTK_TABLE(table), progress_bar, 3, 5, 0, 1, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 0, 0); gtk_widget_show (progress_bar); gtk_widget_show (box4); #endif gtk_widget_show (box3); gtk_widget_show (top_window); #ifdef HAVE_GNOME if (restarted == 1) gtk_notebook_set_page(GTK_NOTEBOOK(notebook), old_page); #endif /* >>>>>>>>>>> enter main loop <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ gtk_main (); return 0; } #endif