// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // Copyright Liam Girdwood 2003 #include "sky_appbar.hh" #include namespace Vega { SkyAppbar::SkyAppbar() { // Equ posn m_equ_bar.pack_start(m_equ_title, Gtk::PACK_SHRINK, 0); m_equ_bar.pack_start(m_equ_sep1, Gtk::PACK_SHRINK, 0); m_equ_rah.set_size_request(20, -1); m_equ_ra_bar.pack_start(m_equ_rah); m_equ_ra_bar.pack_start(m_equ_ra_sep1, Gtk::PACK_SHRINK, 0); m_equ_ram.set_size_request(20, -1); m_equ_ra_bar.pack_start(m_equ_ram); m_equ_ra_bar.pack_start(m_equ_ra_sep2, Gtk::PACK_SHRINK, 0); m_equ_ras.set_size_request(40, -1); m_equ_ra_bar.pack_start(m_equ_ras); m_equ_bar.pack_start(m_equ_ra_bar, Gtk::PACK_SHRINK, 0); m_equ_bar.pack_start(m_equ_sep2, Gtk::PACK_SHRINK, 0); m_equ_ded.set_size_request(20, -1); m_equ_dec_bar.pack_start(m_equ_ded); m_equ_dec_bar.pack_start(m_equ_dec_sep1, Gtk::PACK_SHRINK, 0); m_equ_dem.set_size_request(20, -1); m_equ_dec_bar.pack_start(m_equ_dem); m_equ_dec_bar.pack_start(m_equ_dec_sep2, Gtk::PACK_SHRINK, 0); m_equ_des.set_size_request(40, -1); m_equ_dec_bar.pack_start(m_equ_des); m_equ_bar.pack_start(m_equ_dec_bar, Gtk::PACK_SHRINK, 0); m_equ_title.set_text("Equ Posn "); m_equ_sep1.set_text("RA: "); m_equ_sep2.set_text("DEC: "); m_equ_ra_sep1.set_text(":"); m_equ_ra_sep2.set_text(":"); m_equ_dec_sep1.set_text(":"); m_equ_dec_sep2.set_text(":"); // hrz posn m_hrz_bar.pack_start(m_hrz_title, Gtk::PACK_SHRINK, 0); m_hrz_bar.pack_start(m_hrz_sep1, Gtk::PACK_SHRINK, 0); m_hrz_ald.set_size_request(20, -1); m_hrz_alt_bar.pack_start(m_hrz_ald); m_hrz_alt_bar.pack_start(m_hrz_alt_sep1, Gtk::PACK_SHRINK, 0); m_hrz_alm.set_size_request(20, -1); m_hrz_alt_bar.pack_start(m_hrz_alm); m_hrz_alt_bar.pack_start(m_hrz_alt_sep2, Gtk::PACK_SHRINK, 0); m_hrz_als.set_size_request(40, -1); m_hrz_alt_bar.pack_start(m_hrz_als); m_hrz_bar.pack_start(m_hrz_alt_bar, Gtk::PACK_SHRINK, 0); m_hrz_bar.pack_start(m_hrz_sep2, Gtk::PACK_SHRINK, 0); m_hrz_azd.set_size_request(30, -1); m_hrz_az_bar.pack_start(m_hrz_azd); m_hrz_az_bar.pack_start(m_hrz_az_sep1, Gtk::PACK_SHRINK, 0); m_hrz_azm.set_size_request(20, -1); m_hrz_az_bar.pack_start(m_hrz_azm); m_hrz_az_bar.pack_start(m_hrz_az_sep2, Gtk::PACK_SHRINK, 0); m_hrz_azs.set_size_request(40, -1); m_hrz_az_bar.pack_start(m_hrz_azs); m_hrz_bar.pack_start(m_hrz_az_bar, Gtk::PACK_SHRINK, 0); m_hrz_title.set_text("Hrz Posn "); m_hrz_sep1.set_text("ALT: "); m_hrz_sep2.set_text("AZ: "); m_hrz_alt_sep1.set_text(":"); m_hrz_alt_sep2.set_text(":"); m_hrz_az_sep1.set_text(":"); m_hrz_az_sep2.set_text(":"); // object m_object_name; m_object_mag_title.set_text("Mag:"); m_object_title.set_text("Object: "); m_object_bar.pack_start(m_object_title, Gtk::PACK_SHRINK, 0); m_object_name.set_size_request(80, -1); m_object_bar.pack_start(m_object_name); m_object_bar.pack_start(m_object_mag_title, Gtk::PACK_SHRINK, 0); m_object_mag.set_size_request(40, -1); m_object_bar.pack_start(m_object_mag); // fov and sky limits m_fov_title.set_text("FOV: "); m_fov_bar.pack_start(m_fov_title, Gtk::PACK_SHRINK, 0); m_fov.set_size_request(35, -1); m_fov_bar.pack_start(m_fov); pack_start(m_object_bar, Gtk::PACK_SHRINK, 0); pack_start(m_sep1); pack_start(m_fov_bar, Gtk::PACK_SHRINK, 0); pack_start(m_sep2); pack_start(m_equ_bar, Gtk::PACK_SHRINK, 0); pack_start(m_sep3); pack_start(m_hrz_bar, Gtk::PACK_SHRINK, 0); pack_start(m_sep4); set_border_width(2); set_spacing(3); show_all(); } SkyAppbar::~SkyAppbar() { } void SkyAppbar::set_equ_posn(double ra, double dec) { struct ln_hms hra; struct ln_dms hdec; char text[32]; ln_deg_to_dms (dec, &hdec); ln_deg_to_hms (ra, &hra); sprintf(text, "%2.2d", hra.hours); m_equ_rah.set_text(text); sprintf(text, "%2.2d", hra.minutes); m_equ_ram.set_text(text); sprintf(text, "%5.2f", hra.seconds); m_equ_ras.set_text(text); sprintf(text, "%2.2d", hdec.degrees); m_equ_ded.set_text(text); sprintf(text, "%2.2d", hdec.minutes); m_equ_dem.set_text(text); sprintf(text, "%5.2f", hdec.seconds); m_equ_des.set_text(text); } void SkyAppbar::set_hrz_posn(double alt, double az) { struct ln_dms halt, haz; char text[32]; ln_deg_to_dms (alt, &halt); ln_deg_to_dms (az, &haz); sprintf(text, "%2.2d", halt.degrees); m_hrz_ald.set_text(text); sprintf(text, "%2.2d", halt.minutes); m_hrz_alm.set_text(text); sprintf(text, "%5.2f", halt.seconds); m_hrz_als.set_text(text); sprintf(text, "%2.2d", haz.degrees); m_hrz_azd.set_text(text); sprintf(text, "%2.2d", haz.minutes); m_hrz_azm.set_text(text); sprintf(text, "%5.2f", haz.seconds); m_hrz_azs.set_text(text); } void SkyAppbar::set_object(Castor::AstroObject* object) { if (object) { char text[32]; std::string name; object->get_name(name); m_object_name.set_text(name); sprintf(text, "%4.2f", object->get_mag()); m_object_mag.set_text(text); } else { m_object_name.set_text("None"); m_object_mag.set_text(""); } } void SkyAppbar::set_fov(double fov) { char text[32]; sprintf(text, "%2.2f", fov); m_fov.set_text(text); } }