diff --git a/src/config-keys.h b/src/config-keys.h
index 7647b82f..3564c0c7 100644
--- a/src/config-keys.h
+++ b/src/config-keys.h
@@ -100,6 +100,9 @@
#define MOD_CFG_MAP_SAT_COL "SAT_COLOUR"
#define MOD_CFG_MAP_SAT_SEL_COL "SAT_SEL_COLOUR"
#define MOD_CFG_MAP_SAT_COV_COL "COV_AREA_COLOUR"
+#define MOD_CFG_MAP_SAT_COV_COL_FO "COV_AREA_COLOUR_FULLOP"
+#define MOD_CFG_MAP_SAT_COV_COL_PO "COV_AREA_COLOUR_PARTOP"
+#define MOD_CFG_MAP_SAT_COV_COL_NO "COV_AREA_COLOUR_NONOP"
#define MOD_CFG_MAP_QTH_COL "QTH_COLOUR"
#define MOD_CFG_MAP_INFO_COL "INFO_COLOUR"
#define MOD_CFG_MAP_INFO_BGD_COL "INFO_BGD_COLOUR"
diff --git a/src/gtk-sat-map.c b/src/gtk-sat-map.c
index ea8d38b7..33a9187d 100644
--- a/src/gtk-sat-map.c
+++ b/src/gtk-sat-map.c
@@ -1737,24 +1737,44 @@ static void plot_sat(gpointer key, gpointer value, gpointer data)
MOD_CFG_MAP_SAT_COL, SAT_CFG_INT_MAP_SAT_COL);
/* area coverage colour */
- covcol = mod_cfg_get_int(satmap->cfgdata,
- MOD_CFG_MAP_SECTION,
- MOD_CFG_MAP_SAT_COV_COL,
- SAT_CFG_INT_MAP_SAT_COV_COL);
- /* coverage color */
if (obj->showcov)
{
- covcol = mod_cfg_get_int(satmap->cfgdata,
+ switch(sat->tle.status) {
+ case OP_STAT_OPERATIONAL:
+ covcol = mod_cfg_get_int(satmap->cfgdata,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_FO,
+ SAT_CFG_INT_MAP_SAT_COV_COL_FO);
+ break;
+ case OP_STAT_PARTIAL:
+ covcol = mod_cfg_get_int(satmap->cfgdata,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_PO,
+ SAT_CFG_INT_MAP_SAT_COV_COL_PO);
+ break;
+ case OP_STAT_NONOP:
+ covcol = mod_cfg_get_int(satmap->cfgdata,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_NO,
+ SAT_CFG_INT_MAP_SAT_COV_COL_NO);
+ break;
+ case OP_STAT_UNKNOWN:
+ case OP_STAT_STDBY:
+ case OP_STAT_SPARE:
+ case OP_STAT_EXTENDED:
+ default:
+ covcol = mod_cfg_get_int(satmap->cfgdata,
MOD_CFG_MAP_SECTION,
MOD_CFG_MAP_SAT_COV_COL,
SAT_CFG_INT_MAP_SAT_COV_COL);
+
+ }
}
else
{
covcol = 0x00000000;
}
-
/* shadow colour (only alpha channel) */
shadowcol = mod_cfg_get_int(satmap->cfgdata,
MOD_CFG_MAP_SECTION,
@@ -2064,15 +2084,42 @@ static void update_sat(gpointer key, gpointer value, gpointer data)
/* coverage color */
if (obj->showcov)
{
- covcol = mod_cfg_get_int(satmap->cfgdata,
- MOD_CFG_MAP_SECTION,
- MOD_CFG_MAP_SAT_COV_COL,
- SAT_CFG_INT_MAP_SAT_COV_COL);
+ switch(sat->tle.status) {
+ case OP_STAT_OPERATIONAL:
+ covcol = mod_cfg_get_int(satmap->cfgdata,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_FO,
+ SAT_CFG_INT_MAP_SAT_COV_COL_FO);
+ break;
+ case OP_STAT_PARTIAL:
+ covcol = mod_cfg_get_int(satmap->cfgdata,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_PO,
+ SAT_CFG_INT_MAP_SAT_COV_COL_PO);
+ break;
+ case OP_STAT_NONOP:
+ covcol = mod_cfg_get_int(satmap->cfgdata,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_NO,
+ SAT_CFG_INT_MAP_SAT_COV_COL_NO);
+ break;
+ case OP_STAT_UNKNOWN:
+ case OP_STAT_STDBY:
+ case OP_STAT_SPARE:
+ case OP_STAT_EXTENDED:
+ default:
+ covcol = mod_cfg_get_int(satmap->cfgdata,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL,
+ SAT_CFG_INT_MAP_SAT_COV_COL);
+
+ }
}
else
{
covcol = 0x00000000;
}
+
obj->range2 = goo_canvas_polyline_model_new(root, FALSE, 0,
"points", points2,
"line-width", 1.0,
diff --git a/src/sat-cfg.c b/src/sat-cfg.c
index f86b7478..d1376748 100644
--- a/src/sat-cfg.c
+++ b/src/sat-cfg.c
@@ -155,7 +155,10 @@ sat_cfg_int_t sat_cfg_int[SAT_CFG_INT_NUM] = {
{"MODULES", "MAP_QTH_COLOUR", 0x00FFFFFF},
{"MODULES", "MAP_SAT_COLOUR", 0xF0F000FF},
{"MODULES", "MAP_SELECTED_SAT_COLOUR", 0xFFFFFFFF},
- {"MODULES", "MAP_COV_AREA_COLOUR", 0xFFFFFF1F},
+ {"MODULES", "MAP_COV_AREA_COLOUR_DEFAULT", 0xFFFFFF1F},
+ {"MODULES", "MAP_COV_AREA_COLOUR_OPERATIONAL", 0xFFFFFF1F},
+ {"MODULES", "MAP_COV_AREA_COLOUR_PARTOPERATIONAL", 0xFFFFFF1F},
+ {"MODULES", "MAP_COV_AREA_COLOUR_NONOPERATIONAL", 0xFFFFFF1F},
{"MODULES", "MAP_GRID_COLOUR", 0x7F7F7FC8},
{"MODULES", "MAP_TERMINATOR_COLOUR", 0xFFFF0080},
{"MODULES", "MAP_EARTH_SHADOW_COLOUR", 0x00000060},
diff --git a/src/sat-cfg.h b/src/sat-cfg.h
index 446e19fa..21714a98 100644
--- a/src/sat-cfg.h
+++ b/src/sat-cfg.h
@@ -76,7 +76,10 @@ typedef enum {
SAT_CFG_INT_MAP_QTH_COL, /*!< QTH mark colour on map. */
SAT_CFG_INT_MAP_SAT_COL, /*!< Satellite colour on maps */
SAT_CFG_INT_MAP_SAT_SEL_COL, /*!< Selected satellite colour */
- SAT_CFG_INT_MAP_SAT_COV_COL, /*!< Map coverage area colour */
+ SAT_CFG_INT_MAP_SAT_COV_COL, /*!< Map coverage area colour (default)*/
+ SAT_CFG_INT_MAP_SAT_COV_COL_FO, /*!< Map coverage area colour (fully oper) */
+ SAT_CFG_INT_MAP_SAT_COV_COL_PO, /*!< Map coverage area colour (part oper) */
+ SAT_CFG_INT_MAP_SAT_COV_COL_NO, /*!< Map coverage area colour (non oper) */
SAT_CFG_INT_MAP_GRID_COL, /*!< Grid colour. */
SAT_CFG_INT_MAP_TERMINATOR_COL, /*!< Solar terminator colour. */
SAT_CFG_INT_MAP_GLOBAL_SHADOW_COL, /*!< Earth shadow colour. */
diff --git a/src/sat-pref-map-view.c b/src/sat-pref-map-view.c
index c107a326..290676ae 100644
--- a/src/sat-pref-map-view.c
+++ b/src/sat-pref-map-view.c
@@ -42,6 +42,7 @@ static GtkWidget *qth, *next, *curs, *grid;
static GtkWidget *qthc, *gridc, *tickc;
static GtkWidget *satc, *ssatc, *trackc;
static GtkWidget *covc, *infofg, *infobg;
+static GtkWidget *covc_fo, *covc_po, *covc_no;
static GtkWidget *terminator, *globe_shadow;
static GtkWidget *shadow;
@@ -227,6 +228,18 @@ static void reset_cb(GtkWidget * button, gpointer cfg)
rgba = sat_cfg_get_int_def(SAT_CFG_INT_MAP_SAT_COV_COL);
rgba_from_cfg(rgba, &gdk_rgba);
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc), &gdk_rgba);
+
+ rgba = sat_cfg_get_int_def(SAT_CFG_INT_MAP_SAT_COV_COL_FO);
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc_fo), &gdk_rgba);
+
+ rgba = sat_cfg_get_int_def(SAT_CFG_INT_MAP_SAT_COV_COL_PO);
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc_po), &gdk_rgba);
+
+ rgba = sat_cfg_get_int_def(SAT_CFG_INT_MAP_SAT_COV_COL_NO);
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc_no), &gdk_rgba);
rgba = sat_cfg_get_int_def(SAT_CFG_INT_MAP_INFO_COL);
rgba_from_cfg(rgba, &gdk_rgba);
@@ -244,7 +257,7 @@ static void reset_cb(GtkWidget * button, gpointer cfg)
rgba_from_cfg(rgba, &gdk_rgba);
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(globe_shadow), &gdk_rgba);
- /* shadow */
+ /* shadow alpha */
gtk_range_set_value(GTK_RANGE(shadow),
sat_cfg_get_int_def(SAT_CFG_INT_MAP_SHADOW_ALPHA));
@@ -309,6 +322,18 @@ static void reset_cb(GtkWidget * button, gpointer cfg)
rgba_from_cfg(rgba, &gdk_rgba);
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc), &gdk_rgba);
+ rgba = sat_cfg_get_int_def(SAT_CFG_INT_MAP_SAT_COV_COL_FO);
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc_fo), &gdk_rgba);
+
+ rgba = sat_cfg_get_int_def(SAT_CFG_INT_MAP_SAT_COV_COL_PO);
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc_po), &gdk_rgba);
+
+ rgba = sat_cfg_get_int_def(SAT_CFG_INT_MAP_SAT_COV_COL_NO);
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc_no), &gdk_rgba);
+
rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_INFO_COL);
rgba_from_cfg(rgba, &gdk_rgba);
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(infofg), &gdk_rgba);
@@ -425,6 +450,21 @@ void sat_pref_map_view_ok(GKeyFile * cfg)
rgba = rgba_to_cfg(&gdk_rgba);
g_key_file_set_integer(cfg, MOD_CFG_MAP_SECTION,
MOD_CFG_MAP_SAT_COV_COL, rgba);
+
+ gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(covc_fo), &gdk_rgba);
+ rgba = rgba_to_cfg(&gdk_rgba);
+ g_key_file_set_integer(cfg, MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_FO, rgba);
+
+ gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(covc_po), &gdk_rgba);
+ rgba = rgba_to_cfg(&gdk_rgba);
+ g_key_file_set_integer(cfg, MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_PO, rgba);
+
+ gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(covc_no), &gdk_rgba);
+ rgba = rgba_to_cfg(&gdk_rgba);
+ g_key_file_set_integer(cfg, MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_NO, rgba);
gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(infofg), &gdk_rgba);
rgba = rgba_to_cfg(&gdk_rgba);
@@ -630,6 +670,9 @@ void sat_pref_map_view_ok(GKeyFile * cfg)
sat_cfg_reset_int(SAT_CFG_INT_MAP_SAT_SEL_COL);
sat_cfg_reset_int(SAT_CFG_INT_MAP_TRACK_COL);
sat_cfg_reset_int(SAT_CFG_INT_MAP_SAT_COV_COL);
+ sat_cfg_reset_int(SAT_CFG_INT_MAP_SAT_COV_COL_FO);
+ sat_cfg_reset_int(SAT_CFG_INT_MAP_SAT_COV_COL_PO);
+ sat_cfg_reset_int(SAT_CFG_INT_MAP_SAT_COV_COL_NO);
sat_cfg_reset_int(SAT_CFG_INT_MAP_INFO_COL);
sat_cfg_reset_int(SAT_CFG_INT_MAP_INFO_BGD_COL);
sat_cfg_reset_int(SAT_CFG_INT_MAP_SHADOW_ALPHA);
@@ -885,13 +928,13 @@ static void create_colour_selectors(GKeyFile * cfg, GtkBox * vbox)
GdkRGBA gdk_rgba;
guint rgba; /* RRGGBBAA encoded colour */
- /* create header */
+ /* create header for Map Colours*/
label = gtk_label_new(NULL);
g_object_set(label, "xalign", 0.0f, "yalign", 0.5f, NULL);
- gtk_label_set_markup(GTK_LABEL(label), _("Colours:"));
+ gtk_label_set_markup(GTK_LABEL(label), _("Map Colours:"));
gtk_box_pack_start(vbox, label, FALSE, TRUE, 5);
- /* container */
+ /* container for Map Colours */
table = gtk_grid_new();
gtk_grid_set_row_homogeneous(GTK_GRID(table), TRUE);
gtk_grid_set_column_homogeneous(GTK_GRID(table), FALSE);
@@ -899,7 +942,7 @@ static void create_colour_selectors(GKeyFile * cfg, GtkBox * vbox)
gtk_grid_set_column_spacing(GTK_GRID(table), 10);
gtk_box_pack_start(vbox, table, FALSE, TRUE, 0);
- /* background */
+ /* ground station */
label = gtk_label_new(_("Ground Station:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
gtk_grid_attach(GTK_GRID(table), label, 0, 0, 1, 1);
@@ -965,13 +1008,76 @@ static void create_colour_selectors(GKeyFile * cfg, GtkBox * vbox)
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(tickc), &gdk_rgba);
g_signal_connect(tickc, "color-set", G_CALLBACK(colour_changed), NULL);
+ /* Solar terminator */
+ label = gtk_label_new(_("Solar terminator:"));
+ g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
+ gtk_grid_attach(GTK_GRID(table), label, 0, 1, 1, 1);
+ terminator = gtk_color_button_new();
+ gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(terminator), TRUE);
+ gtk_grid_attach(GTK_GRID(table), terminator, 1, 1, 1, 1);
+ gtk_widget_set_tooltip_text(terminator,
+ _("Select solar terminator colour"));
+ if (cfg != NULL)
+ {
+ rgba = mod_cfg_get_int(cfg,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_TERMINATOR_COL,
+ SAT_CFG_INT_MAP_TERMINATOR_COL);
+ }
+ else
+ {
+ rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_TERMINATOR_COL);
+ }
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(terminator), &gdk_rgba);
+ g_signal_connect(terminator, "color-set", G_CALLBACK(colour_changed),
+ NULL);
+
+ /* Earth shadow */
+ label = gtk_label_new(_("Global shadow:"));
+ g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
+ gtk_grid_attach(GTK_GRID(table), label, 2, 1, 1, 1);
+ globe_shadow = gtk_color_button_new();
+ gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(globe_shadow), TRUE);
+ gtk_grid_attach(GTK_GRID(table), globe_shadow, 3, 1, 1, 1);
+ gtk_widget_set_tooltip_text(globe_shadow, _("Select Earth shadow colour"));
+ if (cfg != NULL)
+ {
+ rgba = mod_cfg_get_int(cfg,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_GLOBAL_SHADOW_COL,
+ SAT_CFG_INT_MAP_GLOBAL_SHADOW_COL);
+ }
+ else
+ {
+ rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_GLOBAL_SHADOW_COL);
+ }
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(globe_shadow), &gdk_rgba);
+ g_signal_connect(globe_shadow, "color-set", G_CALLBACK(colour_changed),
+ NULL);
+
+ /* create header for satellite colours*/
+ label = gtk_label_new(NULL);
+ g_object_set(label, "xalign", 0.0f, "yalign", 0.5f, NULL);
+ gtk_label_set_markup(GTK_LABEL(label), _("Satellite Colours:"));
+ gtk_box_pack_start(vbox, label, FALSE, TRUE, 5);
+
+ /* container for satellite colours*/
+ table = gtk_grid_new();
+ gtk_grid_set_row_homogeneous(GTK_GRID(table), TRUE);
+ gtk_grid_set_column_homogeneous(GTK_GRID(table), FALSE);
+ gtk_grid_set_row_spacing(GTK_GRID(table), 3);
+ gtk_grid_set_column_spacing(GTK_GRID(table), 10);
+ gtk_box_pack_start(vbox, table, FALSE, TRUE, 0);
+
/* satellite */
label = gtk_label_new(_("Satellite:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 0, 1, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), label, 0, 0, 1, 1);
satc = gtk_color_button_new();
gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(satc), TRUE);
- gtk_grid_attach(GTK_GRID(table), satc, 1, 1, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), satc, 1, 0, 1, 1);
gtk_widget_set_tooltip_text(satc, _("Select the satellite colour"));
if (cfg != NULL)
{
@@ -990,10 +1096,10 @@ static void create_colour_selectors(GKeyFile * cfg, GtkBox * vbox)
/* selected satellite */
label = gtk_label_new(_("Selected Sat.:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 2, 1, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), label, 2, 0, 1, 1);
ssatc = gtk_color_button_new();
gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(ssatc), TRUE);
- gtk_grid_attach(GTK_GRID(table), ssatc, 3, 1, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), ssatc, 3, 0, 1, 1);
gtk_widget_set_tooltip_text(ssatc,
_("Select colour for selected satellites"));
if (cfg != NULL)
@@ -1011,13 +1117,13 @@ static void create_colour_selectors(GKeyFile * cfg, GtkBox * vbox)
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(ssatc), &gdk_rgba);
g_signal_connect(ssatc, "color-set", G_CALLBACK(colour_changed), NULL);
- /* tack */
+ /* ground track */
label = gtk_label_new(_("Ground Track:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 4, 1, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), label, 4, 0, 1, 1);
trackc = gtk_color_button_new();
gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(trackc), TRUE);
- gtk_grid_attach(GTK_GRID(table), trackc, 5, 1, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), trackc, 5, 0, 1, 1);
gtk_widget_set_tooltip_text(trackc, _("Select ground track colour"));
if (cfg != NULL)
{
@@ -1034,38 +1140,51 @@ static void create_colour_selectors(GKeyFile * cfg, GtkBox * vbox)
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(trackc), &gdk_rgba);
g_signal_connect(trackc, "color-set", G_CALLBACK(colour_changed), NULL);
- /* coverage */
- label = gtk_label_new(_("Area Coverage:"));
+ /* Satellite Shadow */
+ label = gtk_label_new(_("Satellite Shadow:"));
+ g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
+ gtk_grid_attach(GTK_GRID(table), label, 0, 1, 1, 1);
+ label = gtk_label_new(NULL);
+ gtk_label_set_markup(GTK_LABEL(label), _("Transp."));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
gtk_grid_attach(GTK_GRID(table), label, 0, 2, 1, 1);
- covc = gtk_color_button_new();
- gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(covc), TRUE);
- gtk_grid_attach(GTK_GRID(table), covc, 1, 2, 1, 1);
- gtk_widget_set_tooltip_text(covc,
- _("Select colour for coverage area.\n"
- "Hint: Make it transparent"));
+ label = gtk_label_new(NULL);
+ gtk_label_set_markup(GTK_LABEL(label), _("Opaque"));
+ g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
+ gtk_grid_attach(GTK_GRID(table), label, 5, 2, 1, 1);
+
+ shadow = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 255, 1);
+ gtk_scale_set_draw_value(GTK_SCALE(shadow), FALSE);
if (cfg != NULL)
{
rgba = mod_cfg_get_int(cfg,
MOD_CFG_MAP_SECTION,
- MOD_CFG_MAP_SAT_COV_COL,
- SAT_CFG_INT_MAP_SAT_COV_COL);
+ MOD_CFG_MAP_SHADOW_ALPHA,
+ SAT_CFG_INT_MAP_SHADOW_ALPHA);
}
else
{
- rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_SAT_COV_COL);
+ rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_SHADOW_ALPHA);
}
- rgba_from_cfg(rgba, &gdk_rgba);
- gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc), &gdk_rgba);
- g_signal_connect(covc, "color-set", G_CALLBACK(colour_changed), NULL);
+ gtk_range_set_value(GTK_RANGE(shadow), rgba);
+ gtk_widget_set_tooltip_text(shadow,
+ _("Shadow transparency under the satellite "
+ "marker.\n\n"
+ "The shadow improves the visibility "
+ "of the satellites where the colour of the "
+ "background is light, e.g. the South Pole. "
+ "Fully transparent is the same as no shadow."));
+ gtk_grid_attach(GTK_GRID(table), shadow, 1, 2, 4, 1);
+ g_signal_connect(shadow, "value-changed", G_CALLBACK(shadow_changed),
+ NULL);
/* Info foreground */
label = gtk_label_new(_("Info Text FG:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 2, 2, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), label, 0, 4, 1, 1);
infofg = gtk_color_button_new();
gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(infofg), TRUE);
- gtk_grid_attach(GTK_GRID(table), infofg, 3, 2, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), infofg, 1, 4, 1, 1);
gtk_widget_set_tooltip_text(infofg,
_("Select info text foreground colour"));
if (cfg != NULL)
@@ -1086,10 +1205,10 @@ static void create_colour_selectors(GKeyFile * cfg, GtkBox * vbox)
/* Info background */
label = gtk_label_new(_("Info Text BG:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 4, 2, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), label, 2, 4, 1, 1);
infobg = gtk_color_button_new();
gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(infobg), TRUE);
- gtk_grid_attach(GTK_GRID(table), infobg, 5, 2, 1, 1);
+ gtk_grid_attach(GTK_GRID(table), infobg, 3, 4, 1, 1);
gtk_widget_set_tooltip_text(infobg,
_("Select info text background colour"));
if (cfg != NULL)
@@ -1107,91 +1226,129 @@ static void create_colour_selectors(GKeyFile * cfg, GtkBox * vbox)
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(infobg), &gdk_rgba);
g_signal_connect(infobg, "color-set", G_CALLBACK(colour_changed), NULL);
- /* Solar terminator */
- label = gtk_label_new(_("Solar terminator:"));
+ /* create header for coverage colours*/
+ label = gtk_label_new(NULL);
+ g_object_set(label, "xalign", 0.0f, "yalign", 0.5f, NULL);
+ gtk_label_set_markup(GTK_LABEL(label), _("Coverage Colours:"));
+ gtk_box_pack_start(vbox, label, FALSE, TRUE, 5);
+
+ /* container for satellite colours*/
+ table = gtk_grid_new();
+ gtk_grid_set_row_homogeneous(GTK_GRID(table), TRUE);
+ gtk_grid_set_column_homogeneous(GTK_GRID(table), FALSE);
+ gtk_grid_set_row_spacing(GTK_GRID(table), 3);
+ gtk_grid_set_column_spacing(GTK_GRID(table), 10);
+ gtk_box_pack_start(vbox, table, FALSE, TRUE, 0);
+
+ /* Default coverage */
+ label = gtk_label_new(_("Default:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 0, 3, 1, 1);
- terminator = gtk_color_button_new();
- gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(terminator), TRUE);
- gtk_grid_attach(GTK_GRID(table), terminator, 1, 3, 1, 1);
- gtk_widget_set_tooltip_text(terminator,
- _("Select solar terminator colour"));
+ gtk_grid_attach(GTK_GRID(table), label, 0, 0, 1, 1);
+ covc = gtk_color_button_new();
+ gtk_grid_attach(GTK_GRID(table), covc, 1, 0, 1, 1);
+ gtk_widget_set_tooltip_text(covc,
+ _("Select colour for coverage area.\n"
+ "Hint: Make it transparent"));
+
+ gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(covc), TRUE);
+
if (cfg != NULL)
{
rgba = mod_cfg_get_int(cfg,
MOD_CFG_MAP_SECTION,
- MOD_CFG_MAP_TERMINATOR_COL,
- SAT_CFG_INT_MAP_TERMINATOR_COL);
+ MOD_CFG_MAP_SAT_COV_COL,
+ SAT_CFG_INT_MAP_SAT_COV_COL);
}
else
{
- rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_TERMINATOR_COL);
+ rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_SAT_COV_COL);
}
rgba_from_cfg(rgba, &gdk_rgba);
- gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(terminator), &gdk_rgba);
- g_signal_connect(terminator, "color-set", G_CALLBACK(colour_changed),
- NULL);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc), &gdk_rgba);
+ g_signal_connect(covc, "color-set", G_CALLBACK(colour_changed), NULL);
- /* Earth shadow */
- label = gtk_label_new(_("Global shadow:"));
+ /* Fully Operational Coverage */
+ label = gtk_label_new(_("Fully Operational:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 2, 3, 1, 1);
- globe_shadow = gtk_color_button_new();
- gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(globe_shadow), TRUE);
- gtk_grid_attach(GTK_GRID(table), globe_shadow, 3, 3, 1, 1);
- gtk_widget_set_tooltip_text(globe_shadow, _("Select Earth shadow colour"));
+ gtk_grid_attach(GTK_GRID(table), label, 0, 1, 1, 1);
+ covc_fo = gtk_color_button_new();
+ gtk_grid_attach(GTK_GRID(table), covc_fo, 1, 1, 1, 1);
+ gtk_widget_set_tooltip_text(covc_fo,
+ _("Select colour for coverage area.\n"
+ "Hint: Make it transparent"));
+
+ gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(covc_fo), TRUE);
+
if (cfg != NULL)
{
rgba = mod_cfg_get_int(cfg,
MOD_CFG_MAP_SECTION,
- MOD_CFG_MAP_GLOBAL_SHADOW_COL,
- SAT_CFG_INT_MAP_GLOBAL_SHADOW_COL);
+ MOD_CFG_MAP_SAT_COV_COL_FO,
+ SAT_CFG_INT_MAP_SAT_COV_COL_FO);
}
else
{
- rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_GLOBAL_SHADOW_COL);
+ rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_SAT_COV_COL_FO);
}
rgba_from_cfg(rgba, &gdk_rgba);
- gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(globe_shadow), &gdk_rgba);
- g_signal_connect(globe_shadow, "color-set", G_CALLBACK(colour_changed),
- NULL);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc_fo), &gdk_rgba);
+ g_signal_connect(covc_fo, "color-set", G_CALLBACK(colour_changed), NULL);
- /* Shadow */
- label = gtk_label_new(_("Shadow:"));
- g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 0, 4, 1, 1);
- label = gtk_label_new(NULL);
- gtk_label_set_markup(GTK_LABEL(label), _("Transp."));
+ /* Partially Operational Coverage */
+ label = gtk_label_new(_("Partially Operational:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 1, 4, 1, 1);
- label = gtk_label_new(NULL);
- gtk_label_set_markup(GTK_LABEL(label), _("Opaque"));
+ gtk_grid_attach(GTK_GRID(table), label, 2, 1, 1, 1);
+ covc_po = gtk_color_button_new();
+ gtk_grid_attach(GTK_GRID(table), covc_po, 3, 1, 1, 1);
+ gtk_widget_set_tooltip_text(covc_po,
+ _("Select colour for coverage area.\n"
+ "Hint: Make it transparent"));
+
+ gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(covc_po), TRUE);
+
+ if (cfg != NULL)
+ {
+ rgba = mod_cfg_get_int(cfg,
+ MOD_CFG_MAP_SECTION,
+ MOD_CFG_MAP_SAT_COV_COL_PO,
+ SAT_CFG_INT_MAP_SAT_COV_COL_PO);
+ }
+ else
+ {
+ rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_SAT_COV_COL_PO);
+ }
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc_po), &gdk_rgba);
+ g_signal_connect(covc_po, "color-set", G_CALLBACK(colour_changed), NULL);
+
+ /* Non Operational Coverage */
+ label = gtk_label_new(_("Non-Operational:"));
g_object_set(label, "xalign", 1.0f, "yalign", 0.5f, NULL);
- gtk_grid_attach(GTK_GRID(table), label, 5, 4, 1, 1);
- shadow = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 255, 1);
- gtk_scale_set_draw_value(GTK_SCALE(shadow), FALSE);
+ gtk_grid_attach(GTK_GRID(table), label, 4, 1, 1, 1);
+ covc_no = gtk_color_button_new();
+ gtk_grid_attach(GTK_GRID(table), covc_no, 5, 1, 1, 1);
+ gtk_widget_set_tooltip_text(covc_no,
+ _("Select colour for coverage area.\n"
+ "Hint: Make it transparent"));
+
+ gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(covc_no), TRUE);
+
if (cfg != NULL)
{
rgba = mod_cfg_get_int(cfg,
MOD_CFG_MAP_SECTION,
- MOD_CFG_MAP_SHADOW_ALPHA,
- SAT_CFG_INT_MAP_SHADOW_ALPHA);
+ MOD_CFG_MAP_SAT_COV_COL_NO,
+ SAT_CFG_INT_MAP_SAT_COV_COL_NO);
}
else
{
- rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_SHADOW_ALPHA);
+ rgba = sat_cfg_get_int(SAT_CFG_INT_MAP_SAT_COV_COL_NO);
}
- gtk_range_set_value(GTK_RANGE(shadow), rgba);
- gtk_widget_set_tooltip_text(shadow,
- _("Shadow transparency under the satellite "
- "marker.\n\n"
- "The shadow improves the visibility "
- "of the satellites where the colour of the "
- "background is light, e.g. the South Pole. "
- "Fully transparent is the same as no shadow."));
- gtk_grid_attach(GTK_GRID(table), shadow, 2, 4, 3, 1);
- g_signal_connect(shadow, "value-changed", G_CALLBACK(shadow_changed),
- NULL);
+ rgba_from_cfg(rgba, &gdk_rgba);
+ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(covc_no), &gdk_rgba);
+ g_signal_connect(covc_no, "color-set", G_CALLBACK(colour_changed), NULL);
+
+
}
/**
@@ -1373,4 +1530,4 @@ GtkWidget *sat_pref_map_view_create(GKeyFile * cfg)
gtk_container_add(GTK_CONTAINER(swin), vbox);
return swin;
-}
+}
\ No newline at end of file