kopia lustrzana https://gitlab.com/Zwarf/picplanner
Show positon of sun, moon and milky way on the map with the help of the new draw layer
rodzic
6ec2bb3678
commit
c22cf61c29
|
@ -168,6 +168,11 @@ picplanner_draw_layer_snapshot (GtkWidget *widget,
|
|||
PicplannerDrawLayerPrivate *priv = picplanner_draw_layer_get_instance_private (self);
|
||||
int width, height;
|
||||
cairo_t *cr;
|
||||
GtkWidget *child;
|
||||
|
||||
/*
|
||||
* Draw the lines given by the coordinates.
|
||||
*/
|
||||
|
||||
width = gtk_widget_get_allocated_width (widget);
|
||||
height = gtk_widget_get_allocated_height (widget);
|
||||
|
@ -184,7 +189,6 @@ picplanner_draw_layer_snapshot (GtkWidget *widget,
|
|||
double x, y;
|
||||
x = priv->nodes_coordinates[i*2];
|
||||
y = priv->nodes_coordinates[i*2+1];
|
||||
g_print ("x: %f,y: %f\n",x,y);
|
||||
cairo_line_to (cr, x, y);
|
||||
}
|
||||
|
||||
|
@ -197,12 +201,15 @@ picplanner_draw_layer_snapshot (GtkWidget *widget,
|
|||
|
||||
cairo_destroy (cr);
|
||||
|
||||
GtkWidget *child;
|
||||
|
||||
/*
|
||||
* Draw the children added to the layer.
|
||||
*/
|
||||
for (child = gtk_widget_get_first_child (widget);
|
||||
child != NULL;
|
||||
child = gtk_widget_get_next_sibling (child))
|
||||
gtk_widget_snapshot_child (widget, child, snapshot);
|
||||
{
|
||||
gtk_widget_snapshot_child (widget, child, snapshot);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -13,8 +13,11 @@
|
|||
#include "map/marker.h"
|
||||
|
||||
#define LENGTH_SCALE_FACTOR 0.38
|
||||
#define ICON_SIZE_SMALL 32
|
||||
#define ICON_SIZE_LARGE 48
|
||||
|
||||
static guint signal_input_changed;
|
||||
static guint signal_ui_changed;
|
||||
|
||||
struct _PicplannerOverview
|
||||
{
|
||||
|
@ -39,15 +42,21 @@ struct _PicplannerOverview
|
|||
ShumateSimpleMap *map;
|
||||
ShumateViewport *viewport;
|
||||
|
||||
PicplannerDrawLayer *pp_layer_center;
|
||||
PicplannerDrawLayer *pp_layer_sun;
|
||||
PicplannerDrawLayer *pp_layer_moon;
|
||||
PicplannerDrawLayer *pp_layer_milkyway;
|
||||
|
||||
PicplannerMarker *pp_marker_center;
|
||||
PicplannerDrawLayer *pp_layer_center;
|
||||
|
||||
PicplannerMarker *pp_marker_sun;
|
||||
PicplannerDrawLayer *pp_layer_sun;
|
||||
PicplannerDrawLayer *pp_layer_sun_rise_set;
|
||||
|
||||
PicplannerMarker *pp_marker_moon;
|
||||
PicplannerMarker *pp_marker_milkyway;
|
||||
PicplannerDrawLayer *pp_layer_moon;
|
||||
PicplannerDrawLayer *pp_layer_moon_rise_set;
|
||||
|
||||
PicplannerMarker *pp_marker_milky_way;
|
||||
PicplannerDrawLayer *pp_layer_milky_way;
|
||||
PicplannerDrawLayer *pp_layer_milky_way_rise_set;
|
||||
|
||||
|
||||
GDateTime *date_time;
|
||||
|
||||
|
@ -59,18 +68,22 @@ G_DEFINE_TYPE (PicplannerOverview, picplanner_overview, GTK_TYPE_BOX)
|
|||
|
||||
|
||||
static void
|
||||
emit_signal_input_changed (GtkWidget *self,
|
||||
emit_signal_changed (GtkWidget *self,
|
||||
gpointer overview_user_input,
|
||||
gpointer overview_view_size_change)
|
||||
{
|
||||
(void) self;
|
||||
PicplannerOverview *overview;
|
||||
if (PICPLANNER_IS_OVERVIEW (overview_user_input))
|
||||
overview = PICPLANNER_OVERVIEW (overview_user_input);
|
||||
{
|
||||
overview = PICPLANNER_OVERVIEW (overview_user_input);
|
||||
g_signal_emit (overview, signal_input_changed, 0, NULL);
|
||||
}
|
||||
else
|
||||
overview = PICPLANNER_OVERVIEW (overview_view_size_change);
|
||||
|
||||
g_signal_emit (overview, signal_input_changed, 0, NULL);
|
||||
{
|
||||
overview = PICPLANNER_OVERVIEW (overview_view_size_change);
|
||||
g_signal_emit (overview, signal_ui_changed, 0, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -172,6 +185,17 @@ picplanner_overview_set_current_coordinates_milky_way (PicplannerOverview *overv
|
|||
g_free (char_milky_way_set);
|
||||
}
|
||||
|
||||
void
|
||||
picplanner_overview_remove_map_content (PicplannerOverview *overview)
|
||||
{
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_sun);
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_sun_rise_set);
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_moon);
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_moon_rise_set);
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_milky_way);
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_milky_way_rise_set);
|
||||
}
|
||||
|
||||
void
|
||||
picplanner_overview_update_map_center (PicplannerOverview *overview,
|
||||
double latitude,
|
||||
|
@ -183,14 +207,14 @@ picplanner_overview_update_map_center (PicplannerOverview *overview,
|
|||
picplanner_draw_layer_remove_all (overview->pp_layer_center);
|
||||
|
||||
image_center = gtk_image_new_from_icon_name ("location-icon-symbolic-red");
|
||||
gtk_image_set_icon_size (GTK_IMAGE (image_center), GTK_ICON_SIZE_LARGE);
|
||||
gtk_image_set_pixel_size (GTK_IMAGE (image_center), ICON_SIZE_SMALL);
|
||||
|
||||
shumate_viewport_location_to_widget_coords (overview->viewport,
|
||||
GTK_WIDGET (overview->map),
|
||||
latitude, longitude,
|
||||
&x, &y);
|
||||
|
||||
picplanner_marker_set_location (overview->pp_marker_center, x, y);
|
||||
picplanner_marker_set_location (overview->pp_marker_center, x, y-ICON_SIZE_SMALL/2);
|
||||
picplanner_marker_set_child (overview->pp_marker_center, image_center);
|
||||
picplanner_draw_layer_add_marker (overview->pp_layer_center, overview->pp_marker_center);
|
||||
}
|
||||
|
@ -202,6 +226,10 @@ picplanner_overview_update_map_sun (PicplannerOverview *overview,
|
|||
double *array_coordinates_sun,
|
||||
int *rise_upper_set_sun)
|
||||
{
|
||||
int sun_stroke_width = 6;
|
||||
static GdkRGBA sun_color = {1., 0.9, 0., 0.8};
|
||||
static GdkRGBA sun_rise_set_color = {1., 0.8, 0., 0.5};
|
||||
|
||||
int width, height, min_size;
|
||||
|
||||
double x, y;
|
||||
|
@ -211,15 +239,15 @@ picplanner_overview_update_map_sun (PicplannerOverview *overview,
|
|||
double azimuth_sun, azimuth_sunrise, azimuth_sunset;
|
||||
|
||||
gboolean visible_sun = TRUE;
|
||||
|
||||
GtkWidget *image_sun;
|
||||
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_sun);
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_sun_rise_set);
|
||||
|
||||
if (array_coordinates_sun[NUM_DATA_POINTS+1]<0)
|
||||
visible_sun = FALSE;
|
||||
image_sun = gtk_image_new_from_icon_name ("sun");
|
||||
gtk_image_set_icon_size (GTK_IMAGE (image_sun), GTK_ICON_SIZE_LARGE);
|
||||
gtk_image_set_pixel_size (GTK_IMAGE (image_sun), ICON_SIZE_LARGE);
|
||||
gtk_widget_set_visible (image_sun, visible_sun);
|
||||
|
||||
shumate_viewport_location_to_widget_coords (overview->viewport,
|
||||
|
@ -241,23 +269,178 @@ picplanner_overview_update_map_sun (PicplannerOverview *overview,
|
|||
azimuth_sunrise = array_coordinates_sun[rise_upper_set_sun[0]*2];
|
||||
x_sunrise = x + sin(calc_deg_to_rad (azimuth_sunrise)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
y_sunrise = y - cos(calc_deg_to_rad (azimuth_sunrise)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
|
||||
g_print("Index Sunrise: %d", rise_upper_set_sun[0]);
|
||||
azimuth_sunset = array_coordinates_sun[rise_upper_set_sun[2]*2];
|
||||
x_sunset = x + sin(calc_deg_to_rad (azimuth_sunset)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
y_sunset = y - cos(calc_deg_to_rad (azimuth_sunset)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
|
||||
picplanner_marker_set_location (overview->pp_marker_sun, x_sun, y_sun);
|
||||
picplanner_marker_set_child (overview->pp_marker_sun, image_sun);
|
||||
picplanner_draw_layer_add_marker (overview->pp_layer_sun, overview->pp_marker_sun);
|
||||
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_sun, x_sunrise, y_sunrise);
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_sun, x, y);
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_sun, x_sunset, y_sunset);
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_sun, x_sun, y_sun);
|
||||
picplanner_draw_layer_set_stroke_color (overview->pp_layer_sun, &sun_color);
|
||||
picplanner_draw_layer_set_stroke_width (overview->pp_layer_sun, sun_stroke_width);
|
||||
picplanner_draw_layer_set_stroke (overview->pp_layer_sun, visible_sun);
|
||||
|
||||
/*
|
||||
* TODO:
|
||||
* - Add *location pointer to draw-layer
|
||||
* - Only add x,y via Function
|
||||
*/
|
||||
if (rise_upper_set_sun[0]!=-1)
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_sun_rise_set, x_sunrise, y_sunrise);
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_sun_rise_set, x, y);
|
||||
if (rise_upper_set_sun[2]!=-1)
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_sun_rise_set, x_sunset, y_sunset);
|
||||
picplanner_draw_layer_set_stroke_color (overview->pp_layer_sun_rise_set, &sun_rise_set_color);
|
||||
picplanner_draw_layer_set_stroke_width (overview->pp_layer_sun_rise_set, sun_stroke_width);
|
||||
}
|
||||
|
||||
void
|
||||
picplanner_overview_update_map_moon (PicplannerOverview *overview,
|
||||
double latitude,
|
||||
double longitude,
|
||||
double *array_coordinates_moon,
|
||||
int *rise_upper_set_moon)
|
||||
{
|
||||
int moon_stroke_width = 6;
|
||||
static GdkRGBA moon_color = {0.8, 0.8, 0.8, 0.8};
|
||||
static GdkRGBA moon_rise_set_color = {0.5, 0.5, 0.5, 0.5};
|
||||
|
||||
int width, height, min_size;
|
||||
|
||||
double x, y;
|
||||
double x_moon, y_moon;
|
||||
double x_moonrise, y_moonrise;
|
||||
double x_moonset, y_moonset;
|
||||
double azimuth_moon, azimuth_moonrise, azimuth_moonset;
|
||||
|
||||
gboolean visible_moon = TRUE;
|
||||
GtkWidget *image_moon;
|
||||
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_moon);
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_moon_rise_set);
|
||||
|
||||
if (array_coordinates_moon[NUM_DATA_POINTS+1]<0)
|
||||
visible_moon = FALSE;
|
||||
image_moon = gtk_image_new_from_icon_name ("fcitx-fullwidth-inactive-symbolic");
|
||||
gtk_image_set_pixel_size (GTK_IMAGE (image_moon), ICON_SIZE_LARGE);
|
||||
gtk_widget_set_visible (image_moon, visible_moon);
|
||||
|
||||
shumate_viewport_location_to_widget_coords (overview->viewport,
|
||||
GTK_WIDGET (overview->map),
|
||||
latitude, longitude,
|
||||
&x, &y);
|
||||
|
||||
width = gtk_widget_get_allocated_width (GTK_WIDGET (overview->map));
|
||||
height = gtk_widget_get_allocated_height (GTK_WIDGET (overview->map));
|
||||
if (width<height)
|
||||
min_size = width;
|
||||
else
|
||||
min_size = height;
|
||||
|
||||
azimuth_moon = array_coordinates_moon[NUM_DATA_POINTS];
|
||||
x_moon = x + sin(calc_deg_to_rad (azimuth_moon)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
y_moon = y - cos(calc_deg_to_rad (azimuth_moon)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
|
||||
azimuth_moonrise = array_coordinates_moon[rise_upper_set_moon[0]*2];
|
||||
x_moonrise = x + sin(calc_deg_to_rad (azimuth_moonrise)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
y_moonrise = y - cos(calc_deg_to_rad (azimuth_moonrise)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
|
||||
azimuth_moonset = array_coordinates_moon[rise_upper_set_moon[2]*2];
|
||||
x_moonset = x + sin(calc_deg_to_rad (azimuth_moonset)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
y_moonset = y - cos(calc_deg_to_rad (azimuth_moonset)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
|
||||
picplanner_marker_set_location (overview->pp_marker_moon, x_moon, y_moon);
|
||||
picplanner_marker_set_child (overview->pp_marker_moon, image_moon);
|
||||
picplanner_draw_layer_add_marker (overview->pp_layer_moon, overview->pp_marker_moon);
|
||||
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_moon, x, y);
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_moon, x_moon, y_moon);
|
||||
picplanner_draw_layer_set_stroke_color (overview->pp_layer_moon, &moon_color);
|
||||
picplanner_draw_layer_set_stroke_width (overview->pp_layer_moon, moon_stroke_width);
|
||||
picplanner_draw_layer_set_stroke (overview->pp_layer_moon, visible_moon);
|
||||
|
||||
if (rise_upper_set_moon[0]!=-1)
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_moon_rise_set, x_moonrise, y_moonrise);
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_moon_rise_set, x, y);
|
||||
if (rise_upper_set_moon[2]!=-1)
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_moon_rise_set, x_moonset, y_moonset);
|
||||
picplanner_draw_layer_set_stroke_color (overview->pp_layer_moon_rise_set, &moon_rise_set_color);
|
||||
picplanner_draw_layer_set_stroke_width (overview->pp_layer_moon_rise_set, moon_stroke_width);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
picplanner_overview_update_map_milky_way (PicplannerOverview *overview,
|
||||
double latitude,
|
||||
double longitude,
|
||||
double *array_coordinates_milky_way,
|
||||
int *rise_upper_set_milky_way)
|
||||
{
|
||||
int milky_way_stroke_width = 6;
|
||||
static GdkRGBA milky_way_color = {0.2, 0.2, 0.7, 0.8};
|
||||
static GdkRGBA milky_way_rise_set_color = {0.0, 0.0, 0.4, 0.5};
|
||||
|
||||
int width, height, min_size;
|
||||
|
||||
double x, y;
|
||||
double x_milky_way, y_milky_way;
|
||||
double x_milky_way_rise, y_milky_way_rise;
|
||||
double x_milky_way_set, y_milky_way_set;
|
||||
double azimuth_milky_way, azimuth_milky_way_rise, azimuth_milky_way_set;
|
||||
|
||||
gboolean visible_milky_way = TRUE;
|
||||
GtkWidget *image_milky_way;
|
||||
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_milky_way);
|
||||
picplanner_draw_layer_remove_all (overview->pp_layer_milky_way_rise_set);
|
||||
|
||||
if (array_coordinates_milky_way[NUM_DATA_POINTS+1]<0)
|
||||
visible_milky_way = FALSE;
|
||||
image_milky_way = gtk_image_new_from_icon_name ("milky-way-symbolic");
|
||||
gtk_image_set_pixel_size (GTK_IMAGE (image_milky_way), ICON_SIZE_LARGE);
|
||||
gtk_widget_set_visible (image_milky_way, visible_milky_way);
|
||||
|
||||
shumate_viewport_location_to_widget_coords (overview->viewport,
|
||||
GTK_WIDGET (overview->map),
|
||||
latitude, longitude,
|
||||
&x, &y);
|
||||
|
||||
width = gtk_widget_get_allocated_width (GTK_WIDGET (overview->map));
|
||||
height = gtk_widget_get_allocated_height (GTK_WIDGET (overview->map));
|
||||
if (width<height)
|
||||
min_size = width;
|
||||
else
|
||||
min_size = height;
|
||||
|
||||
azimuth_milky_way = array_coordinates_milky_way[NUM_DATA_POINTS];
|
||||
x_milky_way = x + sin(calc_deg_to_rad (azimuth_milky_way)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
y_milky_way = y - cos(calc_deg_to_rad (azimuth_milky_way)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
|
||||
azimuth_milky_way_rise = array_coordinates_milky_way[rise_upper_set_milky_way[0]*2];
|
||||
x_milky_way_rise = x + sin(calc_deg_to_rad (azimuth_milky_way_rise)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
y_milky_way_rise = y - cos(calc_deg_to_rad (azimuth_milky_way_rise)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
|
||||
azimuth_milky_way_set = array_coordinates_milky_way[rise_upper_set_milky_way[2]*2];
|
||||
x_milky_way_set = x + sin(calc_deg_to_rad (azimuth_milky_way_set)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
y_milky_way_set = y - cos(calc_deg_to_rad (azimuth_milky_way_set)) * min_size * LENGTH_SCALE_FACTOR;
|
||||
|
||||
picplanner_marker_set_location (overview->pp_marker_milky_way, x_milky_way, y_milky_way);
|
||||
picplanner_marker_set_child (overview->pp_marker_milky_way, image_milky_way);
|
||||
picplanner_draw_layer_add_marker (overview->pp_layer_milky_way, overview->pp_marker_milky_way);
|
||||
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_milky_way, x, y);
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_milky_way, x_milky_way, y_milky_way);
|
||||
picplanner_draw_layer_set_stroke_color (overview->pp_layer_milky_way, &milky_way_color);
|
||||
picplanner_draw_layer_set_stroke_width (overview->pp_layer_milky_way, milky_way_stroke_width);
|
||||
picplanner_draw_layer_set_stroke (overview->pp_layer_milky_way, visible_milky_way);
|
||||
|
||||
if (rise_upper_set_milky_way[0]!=-1)
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_milky_way_rise_set, x_milky_way_rise, y_milky_way_rise);
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_milky_way_rise_set, x, y);
|
||||
if (rise_upper_set_milky_way[2]!=-1)
|
||||
picplanner_draw_layer_add_node_coordinates (overview->pp_layer_milky_way_rise_set, x_milky_way_set, y_milky_way_set);
|
||||
picplanner_draw_layer_set_stroke_color (overview->pp_layer_milky_way_rise_set, &milky_way_rise_set_color);
|
||||
picplanner_draw_layer_set_stroke_width (overview->pp_layer_milky_way_rise_set, milky_way_stroke_width);
|
||||
}
|
||||
|
||||
/*
|
||||
* Changing the date_time variable after a user input was recognized.
|
||||
|
@ -299,7 +482,7 @@ change_date_time (GtkWidget *widget,
|
|||
/*
|
||||
* Emit a signal that the user changed the input.
|
||||
*/
|
||||
emit_signal_input_changed (widget, user_data, NULL);
|
||||
emit_signal_changed (widget, user_data, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -427,14 +610,34 @@ picplanner_overview_init (PicplannerOverview *overview)
|
|||
shumate_simple_map_set_map_source (overview->map, map_source);
|
||||
|
||||
|
||||
// TODO
|
||||
// Initialise drawing layers for the map
|
||||
overview->pp_marker_center = picplanner_marker_new ();
|
||||
g_object_ref (overview->pp_marker_center);
|
||||
overview->pp_layer_center = picplanner_draw_layer_new (overview->viewport);
|
||||
shumate_simple_map_add_overlay_layer (overview->map, SHUMATE_LAYER (overview->pp_layer_center));
|
||||
|
||||
overview->pp_marker_milky_way = picplanner_marker_new ();
|
||||
g_object_ref (overview->pp_marker_milky_way);
|
||||
overview->pp_layer_milky_way = picplanner_draw_layer_new (overview->viewport);
|
||||
shumate_simple_map_add_overlay_layer (overview->map, SHUMATE_LAYER (overview->pp_layer_milky_way));
|
||||
overview->pp_layer_milky_way_rise_set = picplanner_draw_layer_new (overview->viewport);
|
||||
shumate_simple_map_add_overlay_layer (overview->map, SHUMATE_LAYER (overview->pp_layer_milky_way_rise_set));
|
||||
|
||||
overview->pp_marker_moon = picplanner_marker_new ();
|
||||
g_object_ref (overview->pp_marker_moon);
|
||||
overview->pp_layer_moon = picplanner_draw_layer_new (overview->viewport);
|
||||
shumate_simple_map_add_overlay_layer (overview->map, SHUMATE_LAYER (overview->pp_layer_moon));
|
||||
overview->pp_layer_moon_rise_set = picplanner_draw_layer_new (overview->viewport);
|
||||
shumate_simple_map_add_overlay_layer (overview->map, SHUMATE_LAYER (overview->pp_layer_moon_rise_set));
|
||||
|
||||
overview->pp_marker_sun = picplanner_marker_new ();
|
||||
g_object_ref (overview->pp_marker_sun);
|
||||
overview->pp_layer_sun_rise_set = picplanner_draw_layer_new (overview->viewport);
|
||||
shumate_simple_map_add_overlay_layer (overview->map, SHUMATE_LAYER (overview->pp_layer_sun_rise_set));
|
||||
overview->pp_layer_sun = picplanner_draw_layer_new (overview->viewport);
|
||||
shumate_simple_map_add_overlay_layer (overview->map, SHUMATE_LAYER (overview->pp_layer_sun));
|
||||
|
||||
overview->pp_layer_center = picplanner_draw_layer_new (overview->viewport);
|
||||
shumate_simple_map_add_overlay_layer (overview->map, SHUMATE_LAYER (overview->pp_layer_center));
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
@ -477,17 +680,17 @@ picplanner_overview_init (PicplannerOverview *overview)
|
|||
|
||||
g_signal_connect (G_OBJECT (overview->viewport),
|
||||
"notify::zoom-level",
|
||||
G_CALLBACK (emit_signal_input_changed),
|
||||
G_CALLBACK (emit_signal_changed),
|
||||
overview);
|
||||
|
||||
g_signal_connect (G_OBJECT (overview->expander_date_time),
|
||||
"notify::expanded",
|
||||
G_CALLBACK (emit_signal_input_changed),
|
||||
G_CALLBACK (emit_signal_changed),
|
||||
overview);
|
||||
|
||||
g_signal_connect (G_OBJECT (overview->expander_basic_information),
|
||||
"notify::expanded",
|
||||
G_CALLBACK (emit_signal_input_changed),
|
||||
G_CALLBACK (emit_signal_changed),
|
||||
overview);
|
||||
|
||||
g_signal_connect (G_OBJECT (overview->settings),
|
||||
|
@ -538,6 +741,13 @@ picplanner_overview_class_init (PicplannerOverviewClass *class)
|
|||
0, NULL, NULL, NULL,
|
||||
G_TYPE_NONE,
|
||||
0);
|
||||
|
||||
signal_ui_changed = g_signal_new ("ui-changed",
|
||||
G_OBJECT_CLASS_TYPE (class),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0, NULL, NULL, NULL,
|
||||
G_TYPE_NONE,
|
||||
0);
|
||||
}
|
||||
|
||||
PicplannerOverview *
|
||||
|
|
|
@ -24,6 +24,9 @@ void
|
|||
picplanner_overview_set_current_coordinates_milky_way (PicplannerOverview *overview,
|
||||
int *rise_upper_set_index);
|
||||
|
||||
void
|
||||
picplanner_overview_remove_map_content (PicplannerOverview *overview);
|
||||
|
||||
void
|
||||
picplanner_overview_update_map_center (PicplannerOverview *overview,
|
||||
double latitude,
|
||||
|
@ -36,4 +39,18 @@ picplanner_overview_update_map_sun (PicplannerOverview *overview,
|
|||
double *array_coordinates_sun,
|
||||
int *rise_upper_set_sun);
|
||||
|
||||
void
|
||||
picplanner_overview_update_map_moon (PicplannerOverview *overview,
|
||||
double latitude,
|
||||
double longitude,
|
||||
double *array_coordinates_moon,
|
||||
int *rise_upper_set_moon);
|
||||
|
||||
void
|
||||
picplanner_overview_update_map_milky_way (PicplannerOverview *overview,
|
||||
double latitude,
|
||||
double longitude,
|
||||
double *array_coordinates_milky_way,
|
||||
int *rise_upper_set_milky_way);
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
* The time of no input of map movement that has to pass until a calculation of the positions
|
||||
* of sun, moon or milky way starts.
|
||||
*/
|
||||
#define INPUT_CHANGED_TIMEOUT_LENGTH 150
|
||||
#define INPUT_CHANGED_TIMEOUT_LENGTH 200
|
||||
|
||||
|
||||
struct _PicplannerWindow
|
||||
|
@ -305,6 +305,18 @@ calculate_positions (PicplannerWindow *window)
|
|||
array_coordinates_sun,
|
||||
rise_upper_set_index_sun);
|
||||
|
||||
picplanner_overview_update_map_moon (PICPLANNER_OVERVIEW (window->overview_box),
|
||||
latitude,
|
||||
longitude,
|
||||
array_coordinates_moon,
|
||||
rise_upper_set_index_moon);
|
||||
|
||||
picplanner_overview_update_map_milky_way (PICPLANNER_OVERVIEW (window->overview_box),
|
||||
latitude,
|
||||
longitude,
|
||||
array_coordinates_milky_way,
|
||||
rise_upper_set_index_milky_way);
|
||||
|
||||
|
||||
g_free (rise_upper_set_index_sun);
|
||||
g_free (rise_upper_set_index_moon);
|
||||
|
@ -351,11 +363,16 @@ input_changed (GtkWidget *self,
|
|||
{
|
||||
(void) self;
|
||||
PicplannerWindow *window;
|
||||
double longitude, latitude;
|
||||
|
||||
if (PICPLANNER_IS_WINDOW (data_map_move))
|
||||
window = PICPLANNER_WINDOW (data_map_move);
|
||||
else
|
||||
window = PICPLANNER_WINDOW (data_window_change);
|
||||
|
||||
longitude = gtk_spin_button_get_value (GTK_SPIN_BUTTON (window->east_entry));
|
||||
latitude = gtk_spin_button_get_value (GTK_SPIN_BUTTON (window->north_entry));
|
||||
|
||||
if (window->input_new)
|
||||
{
|
||||
window->input_new = FALSE;
|
||||
|
@ -363,8 +380,29 @@ input_changed (GtkWidget *self,
|
|||
input_timeout_signal,
|
||||
window);
|
||||
}
|
||||
|
||||
picplanner_overview_update_map_center (PICPLANNER_OVERVIEW (window->overview_box), latitude, longitude);
|
||||
|
||||
window->input_count++;
|
||||
}
|
||||
static void
|
||||
input_changed_remove_content (GtkWidget *self,
|
||||
gpointer data_map_move,
|
||||
gpointer data_window_change)
|
||||
{
|
||||
(void) self;
|
||||
PicplannerWindow *window;
|
||||
|
||||
if (PICPLANNER_IS_WINDOW (data_map_move))
|
||||
window = PICPLANNER_WINDOW (data_map_move);
|
||||
else
|
||||
window = PICPLANNER_WINDOW (data_window_change);
|
||||
|
||||
if (window->input_new)
|
||||
picplanner_overview_remove_map_content (PICPLANNER_OVERVIEW (window->overview_box));
|
||||
|
||||
input_changed (self, data_map_move, data_window_change);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
|
@ -418,12 +456,12 @@ picplanner_window_init (PicplannerWindow *window)
|
|||
|
||||
g_signal_connect (G_OBJECT (window->north_entry),
|
||||
"value-changed",
|
||||
G_CALLBACK (input_changed),
|
||||
G_CALLBACK (input_changed_remove_content),
|
||||
window);
|
||||
|
||||
g_signal_connect (G_OBJECT (window->east_entry),
|
||||
"value-changed",
|
||||
G_CALLBACK (input_changed),
|
||||
G_CALLBACK (input_changed_remove_content),
|
||||
window);
|
||||
|
||||
g_signal_connect (G_OBJECT (window->overview_box),
|
||||
|
@ -431,9 +469,14 @@ picplanner_window_init (PicplannerWindow *window)
|
|||
G_CALLBACK (input_changed),
|
||||
window);
|
||||
|
||||
g_signal_connect (G_OBJECT (window->overview_box),
|
||||
"ui-changed",
|
||||
G_CALLBACK (input_changed_remove_content),
|
||||
window);
|
||||
|
||||
g_signal_connect (G_OBJECT (window->search_bar),
|
||||
"notify::search-mode-enabled",
|
||||
G_CALLBACK (input_changed),
|
||||
G_CALLBACK (input_changed_remove_content),
|
||||
window);
|
||||
|
||||
g_signal_connect (G_OBJECT (window->search_result_box),
|
||||
|
@ -443,17 +486,17 @@ picplanner_window_init (PicplannerWindow *window)
|
|||
|
||||
g_signal_connect (G_OBJECT (window),
|
||||
"notify::maximized",
|
||||
G_CALLBACK (input_changed),
|
||||
G_CALLBACK (input_changed_remove_content),
|
||||
window);
|
||||
|
||||
g_signal_connect (G_OBJECT (window),
|
||||
"notify::default-width",
|
||||
G_CALLBACK (input_changed),
|
||||
G_CALLBACK (input_changed_remove_content),
|
||||
window);
|
||||
|
||||
g_signal_connect (G_OBJECT (window),
|
||||
"notify::default-height",
|
||||
G_CALLBACK (input_changed),
|
||||
G_CALLBACK (input_changed_remove_content),
|
||||
window);
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue