// 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 <libnova/libnova.h>
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);
}
}
syntax highlighted by Code2HTML, v. 0.9.1