1 /************************************************ 2 3 Variables for temporary storage of data 4 5 *************************************************/ 6 7 extern int TG_reflectstore; 8 extern int TG_graphstore; 9 extern int TG_visualstore; 10 extern int TG_P1spot, TG_P2spot; 11 extern int TG_S1spot, TG_S2spot; 12 extern int SpotActive[4]; 13 extern int TG_1spots, TG_2spots; 14 extern int FitSpotS[16]; 15 extern SpotLight SpotStore[2][2]; /* surface spots */ 16 17 /************************************************ 18 19 Global widgets 20 21 *************************************************/ 22 23 24 /* ------------------- entry fields (basic) --------------------- */ 25 26 extern GtkWidget *e_101; /* mass ratio */ 27 extern GtkWidget *e_102; /* inclination */ 28 extern GtkWidget *e_103; /* primary rochefill */ 29 extern GtkWidget *e_104; /* secondary rochefill */ 30 extern GtkWidget *e_105; /* primary temperature */ 31 extern GtkWidget *e_106; /* secondary temperature */ 32 33 /* ---------------- entry fields (advanced) --------------------- */ 34 35 extern GtkWidget *e_107; /* eccentricity */ 36 extern GtkWidget *e_108; /* periastron length */ 37 extern GtkWidget *e_109; /* primary F ratio */ 38 extern GtkWidget *e_110; /* secondary F ratio */ 39 extern GtkWidget *e_111; /* line rest wavelength */ 40 extern GtkWidget *e_112; /* # of lightcurve steps */ 41 extern GtkWidget *e_113; /* # of reflection iterations */ 42 43 extern GtkWidget *e_114; /* outer disk radius */ 44 extern GtkWidget *e_115; /* inner disk radius */ 45 extern GtkWidget *e_116; /* disk tilt */ 46 extern GtkWidget *e_117; /* disk warp */ 47 extern GtkWidget *e_118; /* disk thickness */ 48 extern GtkWidget *e_119; /* disk H/R */ 49 extern GtkWidget *e_120; /* disk temperature */ 50 51 extern GtkWidget *e_121; /* primary log_g */ 52 extern GtkWidget *e_122; /* secondary log_g */ 53 54 extern GtkWidget *e_130; /* hot spot temperature */ 55 extern GtkWidget *e_131; /* hot spot longitude */ 56 extern GtkWidget *e_132; /* hot spot extent */ 57 extern GtkWidget *e_133; /* hot spot depth */ 58 extern GtkWidget *e_134; /* hot spot puff */ 59 60 extern GtkWidget *e_140; /* Warp maximum */ 61 extern GtkWidget *e_141; /* Warp longitude */ 62 extern GtkWidget *e_142; /* Warp width */ 63 extern GtkWidget *e_143; /* Warp centre */ 64 65 66 67 /* ------------------ entry fields (fit) ------------------------ */ 68 69 extern GtkWidget *e_name; /* system name */ 70 extern GtkWidget *e_301; /* fit tolerance */ 71 extern GtkWidget *e_302; /* period */ 72 extern GtkWidget *e_303; /* mass */ 73 extern GtkWidget *e_304; /* separation */ 74 extern GtkWidget *e_305; /* step1 */ 75 extern GtkWidget *e_306; /* step2 */ 76 77 /* ----------------------- entry fields (spots) ----------------- */ 78 79 extern GtkWidget *e_401; /* spot1 primary longitude */ 80 extern GtkWidget *e_402; /* spot1 primary latitude */ 81 extern GtkWidget *e_403; /* spot1 primary radius */ 82 extern GtkWidget *e_404; /* spot1 primary dimfactor */ 83 extern GtkWidget *e_405; /* spot2 primary longitude */ 84 extern GtkWidget *e_406; /* spot2 primary latitude */ 85 extern GtkWidget *e_407; /* spot2 primary radius */ 86 extern GtkWidget *e_408; /* spot2 primary dimfactor */ 87 extern GtkWidget *e_409; /* spot1 secondary longitude */ 88 extern GtkWidget *e_410; /* spot1 secondary latitude */ 89 extern GtkWidget *e_411; /* spot1 secondary radius */ 90 extern GtkWidget *e_412; /* spot1 secondary dimfactor */ 91 extern GtkWidget *e_413; /* spot2 secondary longitude */ 92 extern GtkWidget *e_414; /* spot2 secondary latitude */ 93 extern GtkWidget *e_415; /* spot2 secondary radius */ 94 extern GtkWidget *e_416; /* spot2 secondary dimfactor */ 95 96 /* ---------------------- entry fields (third light) ------------ */ 97 98 extern GtkWidget *e_501; /* third light U */ 99 extern GtkWidget *e_502; /* third light B */ 100 extern GtkWidget *e_503; /* third light V */ 101 extern GtkWidget *e_504; /* third light R */ 102 extern GtkWidget *e_505; /* third light I */ 103 extern GtkWidget *e_506; /* third light J */ 104 extern GtkWidget *e_507; /* third light H */ 105 extern GtkWidget *e_508; /* third light K */ 106 extern GtkWidget *e_509; /* third light u */ 107 extern GtkWidget *e_510; /* third light v */ 108 extern GtkWidget *e_511; /* third light b */ 109 extern GtkWidget *e_512; /* third light y */ 110 111 /* ------------------------ toggle buttons ---------------------- */ 112 113 extern GtkWidget *t_anim_button; /* toggle animated */ 114 extern GtkWidget *t_disk_button; /* toggle disk on/off */ 115 extern GtkWidget *t_warp_button; /* toggle warped disk */ 116 extern GtkWidget *t_eccentric_button; /* toggle eccentric */ 117 extern GtkWidget *t_fpri_button; /* toggle asynchron pri. */ 118 extern GtkWidget *t_fsec_button; /* toggle asynchron sec. */ 119 extern GtkWidget *t_ssp1_button; /* toggle spot1 sec. */ 120 extern GtkWidget *t_ssp2_button; /* toggle spot2 sec. */ 121 extern GtkWidget *t_psp1_button; /* toggle spot1 pri. */ 122 extern GtkWidget *t_psp2_button; /* toggle spot2 pri. */ 123 extern GtkWidget *t_bbody_button; /* toggle blackbody */ 124 extern GtkWidget *t_sian_button; /* toggle simul.anneal */ 125 extern GtkWidget *t_mcmc_button; /* toggle mcmc */ 126 127 extern GtkWidget *td_button_0; /* disk temp distribution*/ 128 extern GtkWidget *td_button_1; /* disk temp distribution*/ 129 extern GtkWidget *td_button_2; /* disk temp distribution*/ 130 131 extern GtkWidget *hs_temp_label; /* hot spot temperature */ 132 extern GtkWidget *hs_longitude_label; /* hot spot longitude */ 133 extern GtkWidget *hs_extent_label; /* hot spot extent */ 134 extern GtkWidget *hs_depth_label; /* hot spot depth */ 135 extern GtkWidget *hs_puff_label; /* hot spot puff */ 136 137 extern GtkWidget *wp_max_label; /* warp maximum */ 138 extern GtkWidget *wp_longitude_label; /* warp longitude */ 139 extern GtkWidget *wp_width_label; /* warp width */ 140 extern GtkWidget *wp_centre_label; /* warp centre */ 141 142 143 /* ------------------------ menu items (to grey out) ------------ */ 144 145 extern GtkWidget *menu_plot; /* plot lightcurve */ 146 extern GtkWidget *menu_profile; /* line profiles */ 147 extern GtkWidget *ome_button; /* fit omega */ 148 extern GtkWidget *ecc_button; /* fit eccentricity */ 149 extern GtkWidget *as1_button; /* fit async primary */ 150 extern GtkWidget *as2_button; /* fit async secondary */ 151 extern GtkWidget *ref_label; /* reflection label */ 152 extern GtkWidget *orad_label; /* outer radius label */ 153 extern GtkWidget *irad_label; /* inner radius label */ 154 extern GtkWidget *tilt_label; /* disk tilt label */ 155 extern GtkWidget *warp_label; /* disk warp label */ 156 extern GtkWidget *thick_label; /* disk trickness label */ 157 extern GtkWidget *hr_label; /* disk H/R label */ 158 extern GtkWidget *disktmp_label; /* disk temperature label*/ 159 160 161 /* -------------------------- misc -------------------- */ 162 163 extern GtkWidget *progress_bar; /* progress bar */ 164 extern GtkWidget *top_window; /* the top window */ 165 extern GtkWidget *notebook; /* the notebook */ 166 extern GtkTooltips *tooltips; /* the tooltips */ 167 168 169 /************************************************ 170 171 PROTOTYPES 172 173 *************************************************/ 174 175 /* --- main window ---------------------------- */ 176 177 #ifdef HAVE_GNOME 178 void MakeMenu(); 179 #else 180 void MakeMenu(GtkWidget *menu_bar); 181 #endif 182 183 184 /* --- session manager ------------------------ */ 185 186 void doQuit(); 187 188 /* --- configuration -------------------------- */ 189 190 void show_properties_dialog(); 191 192 /* --- convenience function ------------------ */ 193 194 GtkWidget * create_pixmap(GtkWidget *widget, 195 gchar **data); 196 197 /* --- interactive plotting ------------------- */ 198 199 void Profiler(); 200 201 void MakeSliceBox(); 202 203 void MakeVbox(); 204 205 /* --- error handling ------------------- */ 206 207 void make_dialog (char *message); 208 209 void delete_dialog (GtkWidget *widget, gpointer *data); 210 211 void check_data (); 212 213 void my_appbar_push(char *message); 214 215 /* --- toggle buttons -------------------- */ 216 217 void toggle_fit_spot (GtkWidget *widget, gpointer *data); 218 void toggle_p_spot1 (GtkWidget *widget, gpointer *data); 219 void toggle_p_spot2 (GtkWidget *widget, gpointer *data); 220 void toggle_s_spot1 (GtkWidget *widget, gpointer *data); 221 void toggle_s_spot2 (GtkWidget *widget, gpointer *data); 222 void toggle_anneal (GtkWidget *widget, gpointer *data); 223 void toggle_elliptic (GtkWidget *widget, gpointer *data); 224 void toggle_fratio1 (GtkWidget *widget, gpointer *data); 225 void toggle_fratio2 (GtkWidget *widget, gpointer *data); 226 void toggle_blackbody (GtkWidget *widget, gpointer *data); 227 void toggle_fractional (GtkWidget *widget, gpointer *data); 228 void toggle_reflect (GtkWidget *widget, gpointer *data); 229 void toggle_lineprofile (GtkWidget *widget, gpointer *data); 230 void toggle_animate (GtkWidget *widget, gpointer *data); 231 void toggle_psfile (GtkWidget *widget, gpointer *data); 232 #ifdef _WITH_OPENGL 233 void toggle_opengl (GtkWidget *widget, gpointer *data); 234 #endif 235 void toggle_fit (GtkWidget *widget, gpointer *data); 236 void toggle_debug (GtkWidget *widget, gpointer *data); 237 void toggle_disk (GtkWidget *widget, gpointer *data); 238 void toggle_warp (GtkWidget *widget, gpointer *data); 239 240 /* --- entry fields -------------------- */ 241 242 void enter_name(GtkWidget *widget, GtkWidget *entry); 243 void enter_abs_period(GtkWidget *widget, GtkWidget *entry); 244 void enter_abs_mass(GtkWidget *widget, GtkWidget *entry); 245 void enter_abs_distance(GtkWidget *widget, GtkWidget *entry); 246 void enter_step1(GtkWidget *widget, GtkWidget *entry); 247 void enter_step2(GtkWidget *widget, GtkWidget *entry); 248 void enter_thirdU(GtkWidget *widget, GtkWidget *entry); 249 void enter_thirdB(GtkWidget *widget, GtkWidget *entry); 250 void enter_thirdV(GtkWidget *widget, GtkWidget *entry); 251 void enter_thirdR(GtkWidget *widget, GtkWidget *entry); 252 void enter_thirdI(GtkWidget *widget, GtkWidget *entry); 253 void enter_thirdJ(GtkWidget *widget, GtkWidget *entry); 254 void enter_thirdH(GtkWidget *widget, GtkWidget *entry); 255 void enter_thirdK(GtkWidget *widget, GtkWidget *entry); 256 void enter_thirdu(GtkWidget *widget, GtkWidget *entry); 257 void enter_thirdb(GtkWidget *widget, GtkWidget *entry); 258 void enter_thirdv(GtkWidget *widget, GtkWidget *entry); 259 void enter_thirdy(GtkWidget *widget, GtkWidget *entry); 260 void enter_longitude_p_spot1(GtkWidget *widget, GtkWidget *entry); 261 void enter_longitude_p_spot2(GtkWidget *widget, GtkWidget *entry); 262 void enter_longitude_s_spot1(GtkWidget *widget, GtkWidget *entry); 263 void enter_longitude_s_spot2(GtkWidget *widget, GtkWidget *entry); 264 void enter_latitude_p_spot1(GtkWidget *widget, GtkWidget *entry); 265 void enter_latitude_p_spot2(GtkWidget *widget, GtkWidget *entry); 266 void enter_latitude_s_spot1(GtkWidget *widget, GtkWidget *entry); 267 void enter_latitude_s_spot2(GtkWidget *widget, GtkWidget *entry); 268 void enter_radius_p_spot1(GtkWidget *widget, GtkWidget *entry); 269 void enter_radius_p_spot2(GtkWidget *widget, GtkWidget *entry); 270 void enter_radius_s_spot1(GtkWidget *widget, GtkWidget *entry); 271 void enter_radius_s_spot2(GtkWidget *widget, GtkWidget *entry); 272 void enter_dimfactor_p_spot1(GtkWidget *widget, GtkWidget *entry); 273 void enter_dimfactor_p_spot2(GtkWidget *widget, GtkWidget *entry); 274 void enter_dimfactor_s_spot1(GtkWidget *widget, GtkWidget *entry); 275 void enter_dimfactor_s_spot2(GtkWidget *widget, GtkWidget *entry); 276 void enter_massratio(GtkWidget *widget, GtkWidget *entry); 277 void enter_inclination(GtkWidget *widget, GtkWidget *entry); 278 void enter_rochefill1(GtkWidget *widget, GtkWidget *entry); 279 void enter_rochefill2(GtkWidget *widget, GtkWidget *entry); 280 void enter_temp1(GtkWidget *widget, GtkWidget *entry); 281 void enter_temp2(GtkWidget *widget, GtkWidget *entry); 282 void enter_odiskrad(GtkWidget *widget, GtkWidget *entry); 283 void enter_idiskrad(GtkWidget *widget, GtkWidget *entry); 284 void enter_disktilt(GtkWidget *widget, GtkWidget *entry); 285 void enter_diskwarp(GtkWidget *widget, GtkWidget *entry); 286 void enter_diskthick(GtkWidget *widget, GtkWidget *entry); 287 void enter_diskhr(GtkWidget *widget, GtkWidget *entry); 288 void enter_disktemp(GtkWidget *widget, GtkWidget *entry); 289 void enter_excentricity(GtkWidget *widget, GtkWidget *entry); 290 void enter_omega(GtkWidget *widget, GtkWidget *entry); 291 void enter_fratio1(GtkWidget *widget, GtkWidget *entry); 292 void enter_fratio2(GtkWidget *widget, GtkWidget *entry); 293 void enter_linewave (GtkWidget *widget, GtkWidget *entry); 294 void enter_reflect_iterations (GtkWidget *widget, GtkWidget *entry); 295 void enter_phasesteps (GtkWidget *widget, GtkWidget *entry); 296 void enter_simplextol (GtkWidget *widget, GtkWidget *entry); 297 void enter_log_g_1 (GtkWidget *widget, GtkWidget *entry); 298 void enter_log_g_2(GtkWidget *widget, GtkWidget *entry); 299 void enter_hs_longitude(GtkWidget *widget, GtkWidget *entry); 300 void enter_hs_extent(GtkWidget *widget, GtkWidget *entry); 301 void enter_hs_depth(GtkWidget *widget, GtkWidget *entry); 302 void enter_hs_temp(GtkWidget *widget, GtkWidget *entry); 303 void enter_hs_puff(GtkWidget *widget, GtkWidget *entry); 304 void enter_warp_max(GtkWidget *widget, GtkWidget *entry); 305 void enter_warp_longitude(GtkWidget *widget, GtkWidget *entry); 306 void enter_warp_width(GtkWidget *widget, GtkWidget *entry); 307 void enter_warp_centre(GtkWidget *widget, GtkWidget *entry); 308 309 310 /* --- radio buttons ----------------------- */ 311 312 void radio_tdisk (GtkWidget *widget, gpointer *data); 313 void radio_limb (GtkWidget *widget, gpointer *data); 314 void radio_band (GtkWidget *widget, gpointer *data); 315 void radio_graph (GtkWidget *widget, gpointer *data); 316 void radio_visual (GtkWidget *widget, gpointer *data); 317 318 /* --- applications ----------------------- */ 319 320 void reset_params (GtkWidget *widget, gpointer *data); 321 322 void delete_event (GtkWidget *widget, gpointer *data); 323 void lightcurve_event (GtkWidget *widget, gpointer *data); 324 void lightfit_event (GtkWidget *widget, gpointer *data); 325 void lightcurveplot_event (GtkWidget *widget, gpointer *data); 326 void reset_event (GtkWidget *widget, gpointer *data); 327 void lightgeometry_event (GtkWidget *widget, gpointer *data); 328 void help_event (GtkWidget *widget, gpointer *data); 329 void lightstarview_event (GtkWidget *widget, gpointer *data); 330 void lightslice_event (GtkWidget *widget, gpointer *data); 331 void showdata_event (GtkWidget *widget, gpointer *data); 332 void profiler_event (GtkWidget *widget, gpointer *data); 333 void lightmap_event (GtkWidget *widget, gpointer *data); 334 335 /* --- file readin ---------------------- */ 336 337 void select_file (GtkWidget *widget, gpointer *data); 338 void file_ok_sel (GtkWidget *w, GtkFileSelection *fs); 339 340 void select_config (GtkWidget *widget, gpointer *data); 341 void config_ok_sel (GtkWidget *w, GtkFileSelection *fs); 342 343 void out_config (GtkWidget *widget, gpointer *data); 344 void config_ok_out (GtkWidget *w, GtkFileSelection *fs); 345 346 /* --- MAIN ---------------------- */ 347 348 int the_gui (int argc, char *argv[]); 349 void makepage3 (); 350 void updatepage3 (); 351 void updateplotflagpage3 (); 352 353 /* ------ LightConfig.c ------------------------- */ 354 355 /* update the entry fields in the GUI */ 356 void UpdateGui(); 357 358 void WriteConfig(const char *OutputFile); 359 360 361 362 363 364