/************************************************
  
   Variables for temporary storage of data

*************************************************/

extern int        TG_reflectstore;
extern int        TG_graphstore;
extern int        TG_visualstore;
extern int        TG_P1spot, TG_P2spot;
extern int        TG_S1spot, TG_S2spot;
extern int        SpotActive[4];
extern int        TG_1spots, TG_2spots;
extern int        FitSpotS[16];
extern SpotLight  SpotStore[2][2];            /* surface spots             */

/************************************************
  
   Global widgets

*************************************************/


/* -------------------  entry fields (basic)  --------------------- */

extern   GtkWidget   *e_101;         /* mass ratio                  */
extern   GtkWidget   *e_102;         /* inclination                 */
extern   GtkWidget   *e_103;         /* primary rochefill           */
extern   GtkWidget   *e_104;         /* secondary rochefill         */
extern   GtkWidget   *e_105;         /* primary temperature         */
extern   GtkWidget   *e_106;         /* secondary temperature       */

/* ----------------  entry fields (advanced)  --------------------- */

extern   GtkWidget   *e_107;         /* eccentricity                */
extern   GtkWidget   *e_108;         /* periastron length           */
extern   GtkWidget   *e_109;         /* primary F ratio             */
extern   GtkWidget   *e_110;         /* secondary F ratio           */
extern   GtkWidget   *e_111;         /* line rest wavelength        */
extern   GtkWidget   *e_112;         /* # of lightcurve steps       */
extern   GtkWidget   *e_113;         /* # of reflection iterations  */
extern   GtkWidget   *e_114;         /* outer disk radius           */
extern   GtkWidget   *e_115;         /* inner disk radius           */
extern   GtkWidget   *e_116;         /* disk tilt                   */
extern   GtkWidget   *e_117;         /* disk warp                   */
extern   GtkWidget   *e_118;         /* disk thickness              */
extern   GtkWidget   *e_119;         /* disk H/R                    */
extern   GtkWidget   *e_120;         /* disk temperature            */
extern   GtkWidget   *e_121;         /* primary log_g               */
extern   GtkWidget   *e_122;         /* secondary log_g             */

extern   GtkWidget   *e_130;         /* hot spot temperature        */
extern   GtkWidget   *e_131;         /* hot spot longitude          */
extern   GtkWidget   *e_132;         /* hot spot extent             */
extern   GtkWidget   *e_133;         /* hot spot depth              */


 		       
/* ------------------  entry fields (fit)  ------------------------ */

extern   GtkWidget   *e_name;        /* system name                 */
extern   GtkWidget   *e_301;         /* fit tolerance               */
extern   GtkWidget   *e_302;         /* period                      */
extern   GtkWidget   *e_303;         /* mass                        */
extern   GtkWidget   *e_304;         /* separation                  */
extern   GtkWidget   *e_305;         /* step1                       */
extern   GtkWidget   *e_306;         /* step2                       */
		
/* -----------------------  entry fields (spots)  ----------------- */

extern   GtkWidget   *e_401;         /* spot1 primary   longitude   */
extern   GtkWidget   *e_402;         /* spot1 primary   latitude    */
extern   GtkWidget   *e_403;         /* spot1 primary   radius      */
extern   GtkWidget   *e_404;         /* spot1 primary   dimfactor   */
extern   GtkWidget   *e_405;         /* spot2 primary   longitude   */
extern   GtkWidget   *e_406;         /* spot2 primary   latitude    */
extern   GtkWidget   *e_407;         /* spot2 primary   radius      */
extern   GtkWidget   *e_408;         /* spot2 primary   dimfactor   */
extern   GtkWidget   *e_409;         /* spot1 secondary longitude   */
extern   GtkWidget   *e_410;         /* spot1 secondary latitude    */
extern   GtkWidget   *e_411;         /* spot1 secondary radius      */
extern   GtkWidget   *e_412;         /* spot1 secondary dimfactor   */
extern   GtkWidget   *e_413;         /* spot2 secondary longitude   */
extern   GtkWidget   *e_414;         /* spot2 secondary latitude    */
extern   GtkWidget   *e_415;         /* spot2 secondary radius      */
extern   GtkWidget   *e_416;         /* spot2 secondary dimfactor   */
		
/* ----------------------  entry fields (third light)  ------------ */

extern   GtkWidget   *e_501;         /* third light U               */
extern   GtkWidget   *e_502;         /* third light B               */
extern   GtkWidget   *e_503;         /* third light V               */
extern   GtkWidget   *e_504;         /* third light R               */
extern   GtkWidget   *e_505;         /* third light I               */
extern   GtkWidget   *e_506;         /* third light J               */
extern   GtkWidget   *e_507;         /* third light H               */
extern   GtkWidget   *e_508;         /* third light K               */
extern   GtkWidget   *e_509;         /* third light u               */
extern   GtkWidget   *e_510;         /* third light v               */
extern   GtkWidget   *e_511;         /* third light b               */
extern   GtkWidget   *e_512;         /* third light y               */

/* ------------------------  toggle buttons  ---------------------- */

extern   GtkWidget   *t_anim_button;       /* toggle animated       */
extern   GtkWidget   *t_disk_button;       /* toggle disk on/off    */
extern   GtkWidget   *t_warp_button;       /* toggle warped disk    */
extern   GtkWidget   *t_eccentric_button;  /* toggle eccentric      */
extern   GtkWidget   *t_fpri_button;	   /* toggle asynchron pri. */
extern   GtkWidget   *t_fsec_button;	   /* toggle asynchron sec. */
extern   GtkWidget   *t_ssp1_button;       /* toggle spot1 sec.     */
extern   GtkWidget   *t_ssp2_button;       /* toggle spot2 sec.     */
extern   GtkWidget   *t_psp1_button;       /* toggle spot1 pri.     */
extern   GtkWidget   *t_psp2_button;       /* toggle spot2 pri.     */
extern   GtkWidget   *t_bbody_button;      /* toggle blackbody      */

extern   GtkWidget   *td_button_0;         /* disk temp distribution*/
extern   GtkWidget   *td_button_1;         /* disk temp distribution*/
extern   GtkWidget   *td_button_2;         /* disk temp distribution*/

extern   GtkWidget   *hs_temp_label;       /* hot spot temperature  */
extern   GtkWidget   *hs_longitude_label;  /* hot spot longitude    */
extern   GtkWidget   *hs_extent_label;     /* hot spot extent       */
extern   GtkWidget   *hs_depth_label;      /* hot spot depth        */


/* ------------------------  menu items (to grey out)  ------------ */

extern   GtkWidget   *menu_plot;           /* plot lightcurve       */
extern   GtkWidget   *menu_profile;        /* line profiles         */
extern   GtkWidget   *ome_button;          /* fit omega             */
extern   GtkWidget   *ecc_button;          /* fit eccentricity      */
extern   GtkWidget   *as1_button;          /* fit async primary     */
extern   GtkWidget   *as2_button;          /* fit async secondary   */
extern   GtkWidget   *ref_label;           /* reflection label      */
extern   GtkWidget   *orad_label;          /* outer radius label    */
extern   GtkWidget   *irad_label;          /* inner radius label    */
extern   GtkWidget   *tilt_label;          /* disk tilt label       */
extern   GtkWidget   *warp_label;          /* disk warp label       */
extern   GtkWidget   *thick_label;         /* disk trickness label  */
extern   GtkWidget   *hr_label;            /* disk H/R label        */
extern   GtkWidget   *disktmp_label;       /* disk temperature label*/


/* --------------------------  misc            -------------------- */

extern   GtkWidget   *progress_bar;        /* progress bar          */
extern   GtkWidget   *top_window;          /* the top window        */
extern   GtkWidget   *notebook;            /* the notebook          */
extern   GtkTooltips *tooltips;            /* the tooltips          */


/************************************************
  
   PROTOTYPES

*************************************************/

/* --- main window ---------------------------- */

#ifdef HAVE_GNOME
void MakeMenu();
#else
void MakeMenu(GtkWidget *menu_bar);
#endif


/* --- session manager ------------------------ */

void doQuit();

/* --- configuration -------------------------- */

void show_properties_dialog();

/* --- convenience function  ------------------ */

GtkWidget * create_pixmap(GtkWidget *widget, 
				  gchar **data);

/* --- interactive plotting ------------------- */

void Profiler();

void MakeSliceBox();

void MakeVbox();

/* --- error handling       ------------------- */

void make_dialog (char *message);

void delete_dialog (GtkWidget *widget, gpointer *data);

void check_data ();

void my_appbar_push(char *message);

/* --- toggle buttons     --------------------  */

void toggle_fit_spot (GtkWidget *widget, gpointer *data);
void toggle_p_spot1 (GtkWidget *widget, gpointer *data);
void toggle_p_spot2 (GtkWidget *widget, gpointer *data);
void toggle_s_spot1 (GtkWidget *widget, gpointer *data);
void toggle_s_spot2 (GtkWidget *widget, gpointer *data);
void toggle_anneal (GtkWidget *widget, gpointer *data);
void toggle_elliptic (GtkWidget *widget, gpointer *data);
void toggle_fratio1 (GtkWidget *widget, gpointer *data);
void toggle_fratio2 (GtkWidget *widget, gpointer *data);
void toggle_blackbody (GtkWidget *widget, gpointer *data);
void toggle_fractional (GtkWidget *widget, gpointer *data);
void toggle_reflect (GtkWidget *widget, gpointer *data);
void toggle_lineprofile (GtkWidget *widget, gpointer *data);
void toggle_animate (GtkWidget *widget, gpointer *data);
void toggle_psfile (GtkWidget *widget, gpointer *data);
#ifdef _WITH_OPENGL
void toggle_opengl (GtkWidget *widget, gpointer *data);
#endif
void toggle_fit (GtkWidget *widget, gpointer *data);
void toggle_debug (GtkWidget *widget, gpointer *data);
void toggle_disk (GtkWidget *widget, gpointer *data);
void toggle_warp (GtkWidget *widget, gpointer *data);

/* --- entry fields       --------------------  */

void enter_name(GtkWidget *widget, GtkWidget *entry);
void enter_abs_period(GtkWidget *widget, GtkWidget *entry);
void enter_abs_mass(GtkWidget *widget, GtkWidget *entry);
void enter_abs_distance(GtkWidget *widget, GtkWidget *entry);
void enter_step1(GtkWidget *widget, GtkWidget *entry);
void enter_step2(GtkWidget *widget, GtkWidget *entry);
void enter_thirdU(GtkWidget *widget, GtkWidget *entry);
void enter_thirdB(GtkWidget *widget, GtkWidget *entry);
void enter_thirdV(GtkWidget *widget, GtkWidget *entry);
void enter_thirdR(GtkWidget *widget, GtkWidget *entry);
void enter_thirdI(GtkWidget *widget, GtkWidget *entry);
void enter_thirdJ(GtkWidget *widget, GtkWidget *entry);
void enter_thirdH(GtkWidget *widget, GtkWidget *entry);
void enter_thirdK(GtkWidget *widget, GtkWidget *entry);
void enter_thirdu(GtkWidget *widget, GtkWidget *entry);
void enter_thirdb(GtkWidget *widget, GtkWidget *entry);
void enter_thirdv(GtkWidget *widget, GtkWidget *entry);
void enter_thirdy(GtkWidget *widget, GtkWidget *entry);
void enter_longitude_p_spot1(GtkWidget *widget, GtkWidget *entry);
void enter_longitude_p_spot2(GtkWidget *widget, GtkWidget *entry);
void enter_longitude_s_spot1(GtkWidget *widget, GtkWidget *entry);
void enter_longitude_s_spot2(GtkWidget *widget, GtkWidget *entry);
void enter_latitude_p_spot1(GtkWidget *widget, GtkWidget *entry);
void enter_latitude_p_spot2(GtkWidget *widget, GtkWidget *entry);
void enter_latitude_s_spot1(GtkWidget *widget, GtkWidget *entry);
void enter_latitude_s_spot2(GtkWidget *widget, GtkWidget *entry);
void enter_radius_p_spot1(GtkWidget *widget, GtkWidget *entry);
void enter_radius_p_spot2(GtkWidget *widget, GtkWidget *entry);
void enter_radius_s_spot1(GtkWidget *widget, GtkWidget *entry);
void enter_radius_s_spot2(GtkWidget *widget, GtkWidget *entry);
void enter_dimfactor_p_spot1(GtkWidget *widget, GtkWidget *entry);
void enter_dimfactor_p_spot2(GtkWidget *widget, GtkWidget *entry);
void enter_dimfactor_s_spot1(GtkWidget *widget, GtkWidget *entry);
void enter_dimfactor_s_spot2(GtkWidget *widget, GtkWidget *entry);
void enter_massratio(GtkWidget *widget, GtkWidget *entry);
void enter_inclination(GtkWidget *widget, GtkWidget *entry);
void enter_rochefill1(GtkWidget *widget, GtkWidget *entry);
void enter_rochefill2(GtkWidget *widget, GtkWidget *entry);
void enter_temp1(GtkWidget *widget, GtkWidget *entry);
void enter_temp2(GtkWidget *widget, GtkWidget *entry);
void enter_odiskrad(GtkWidget *widget, GtkWidget *entry);
void enter_idiskrad(GtkWidget *widget, GtkWidget *entry);
void enter_disktilt(GtkWidget *widget, GtkWidget *entry);
void enter_diskwarp(GtkWidget *widget, GtkWidget *entry);
void enter_diskthick(GtkWidget *widget, GtkWidget *entry);
void enter_diskhr(GtkWidget *widget, GtkWidget *entry);
void enter_disktemp(GtkWidget *widget, GtkWidget *entry);
void enter_excentricity(GtkWidget *widget, GtkWidget *entry);
void enter_omega(GtkWidget *widget, GtkWidget *entry);
void enter_fratio1(GtkWidget *widget, GtkWidget *entry);
void enter_fratio2(GtkWidget *widget, GtkWidget *entry);
void enter_linewave (GtkWidget *widget, GtkWidget *entry);
void enter_reflect_iterations (GtkWidget *widget, GtkWidget *entry);
void enter_phasesteps (GtkWidget *widget, GtkWidget *entry);
void enter_simplextol (GtkWidget *widget, GtkWidget *entry);
void enter_log_g_1 (GtkWidget *widget, GtkWidget *entry);
void enter_log_g_2(GtkWidget *widget, GtkWidget *entry);
void enter_hs_longitude(GtkWidget *widget, GtkWidget *entry);
void enter_hs_extent(GtkWidget *widget, GtkWidget *entry);
void enter_hs_depth(GtkWidget *widget, GtkWidget *entry);
void enter_hs_temp(GtkWidget *widget, GtkWidget *entry);


/* --- radio buttons      -----------------------  */

void radio_tdisk (GtkWidget *widget, gpointer *data);
void radio_limb (GtkWidget *widget, gpointer *data);
void radio_band (GtkWidget *widget, gpointer *data);
void radio_graph (GtkWidget *widget, gpointer *data);
void radio_visual (GtkWidget *widget, gpointer *data);

/* --- applications       -----------------------  */

void delete_event (GtkWidget *widget, gpointer *data);
void lightcurve_event (GtkWidget *widget, gpointer *data);
void lightfit_event (GtkWidget *widget, gpointer *data);
void lightcurveplot_event (GtkWidget *widget, gpointer *data);
void reset_event (GtkWidget *widget, gpointer *data);
void lightgeometry_event (GtkWidget *widget, gpointer *data);
void help_event (GtkWidget *widget, gpointer *data);
void lightstarview_event (GtkWidget *widget, gpointer *data);
void lightslice_event (GtkWidget *widget, gpointer *data);
void showdata_event (GtkWidget *widget, gpointer *data);
void profiler_event (GtkWidget *widget, gpointer *data);
void lightmap_event (GtkWidget *widget, gpointer *data);

/* --- file readin        ----------------------  */

void select_file (GtkWidget *widget, gpointer *data);
void file_ok_sel (GtkWidget *w, GtkFileSelection *fs);

void select_config (GtkWidget *widget, gpointer *data);
void config_ok_sel (GtkWidget *w, GtkFileSelection *fs);

void out_config (GtkWidget *widget, gpointer *data);
void config_ok_out (GtkWidget *w, GtkFileSelection *fs);

/* --- MAIN               ----------------------  */

int  the_gui (int argc, char *argv[]);
void makepage3 ();
void updatepage3 ();
void updateplotflagpage3 ();

/* ------ LightConfig.c ------------------------- */

/* update the entry fields in the GUI             */
void UpdateGui();

void WriteConfig(const char *OutputFile);







syntax highlighted by Code2HTML, v. 0.9.1