From 51f55d4f15981ada4b47171f9bc5aabbb950cfc1 Mon Sep 17 00:00:00 2001 From: Zwarf Date: Wed, 30 Mar 2022 00:10:16 +0200 Subject: [PATCH] Add marker layer to show center of the map for which the calculations are processed --- data/icons/location-icon-symbolic-red.svg | 1156 +++++++++++++++++++++ data/icons/meson.build | 4 + src/picplanner.gresource.xml | 1 + src/window/overview-page/overview-view.c | 55 +- src/window/overview-page/overview-view.h | 14 +- src/window/picplanner-window.c | 6 + 6 files changed, 1217 insertions(+), 19 deletions(-) create mode 100644 data/icons/location-icon-symbolic-red.svg diff --git a/data/icons/location-icon-symbolic-red.svg b/data/icons/location-icon-symbolic-red.svg new file mode 100644 index 0000000..1de19b9 --- /dev/null +++ b/data/icons/location-icon-symbolic-red.svg @@ -0,0 +1,1156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/meson.build b/data/icons/meson.build index 4fcbad2..4a4fe33 100644 --- a/data/icons/meson.build +++ b/data/icons/meson.build @@ -16,3 +16,7 @@ install_data( 'milky-way-symbolic.svg', install_dir: join_paths(get_option('datadir'), 'icons') ) +install_data( + 'location-icon-symbolic-red.svg', + install_dir: join_paths(get_option('datadir'), 'icons') +) diff --git a/src/picplanner.gresource.xml b/src/picplanner.gresource.xml index d267215..5506752 100644 --- a/src/picplanner.gresource.xml +++ b/src/picplanner.gresource.xml @@ -8,5 +8,6 @@ window/moon-page/moon-view.ui window/milky-way-page/milky-way-view.ui ../data/icons/milky-way-symbolic.svg + ../data/icons/location-icon-symbolic-red.svg diff --git a/src/window/overview-page/overview-view.c b/src/window/overview-page/overview-view.c index 76ceb64..9e72a9f 100644 --- a/src/window/overview-page/overview-view.c +++ b/src/window/overview-page/overview-view.c @@ -10,24 +10,27 @@ static guint signal_input_changed; struct _PicplannerOverview { - GtkBox parent_instance; - GtkWidget *calendar; - GtkWidget *calendar_popover; - GtkWidget *calendar_button; - GtkWidget *spin_button_hour; - GtkWidget *spin_button_minute; - GtkWidget *label_sun_rise; - GtkWidget *label_sun_set; - GtkWidget *label_moon_rise; - GtkWidget *label_moon_set; - GtkWidget *label_milky_way_rise; - GtkWidget *label_milky_way_set; - ShumateSimpleMap *map; - ShumateViewport *viewport; + GtkBox parent_instance; + GtkWidget *calendar; + GtkWidget *calendar_popover; + GtkWidget *calendar_button; + GtkWidget *spin_button_hour; + GtkWidget *spin_button_minute; + GtkWidget *label_sun_rise; + GtkWidget *label_sun_set; + GtkWidget *label_moon_rise; + GtkWidget *label_moon_set; + GtkWidget *label_milky_way_rise; + GtkWidget *label_milky_way_set; - GDateTime *date_time; + ShumateSimpleMap *map; + ShumateViewport *viewport; + ShumateMarker *marker_central; + ShumateMarkerLayer *marker_layer; - GSettings *settings; + GDateTime *date_time; + + GSettings *settings; }; @@ -150,6 +153,23 @@ picplanner_overview_set_current_coordinates_milky_way (PicplannerOverview *overv g_free (char_milky_way_set); } +void +picplanner_overview_update_map (PicplannerOverview *overview, + double latitude, + double longitude) +{ + GtkWidget *image = gtk_image_new_from_icon_name ("location-icon-symbolic-red"); + gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE); + + shumate_location_set_location (SHUMATE_LOCATION (overview->marker_central), + latitude, + longitude); + shumate_marker_set_child (overview->marker_central, + image); + shumate_marker_layer_add_marker (overview->marker_layer, + overview->marker_central); +} + /* * Changing the date_time variable after a user input was recognized. @@ -282,6 +302,9 @@ picplanner_overview_init (PicplannerOverview *overview) map_source = shumate_map_source_registry_get_by_id (registry, SHUMATE_MAP_SOURCE_OSM_MAPNIK); shumate_simple_map_set_map_source (overview->map, map_source); overview->viewport = shumate_simple_map_get_viewport (overview->map); + overview->marker_layer = shumate_marker_layer_new (overview->viewport); + shumate_simple_map_add_overlay_layer (overview->map, SHUMATE_LAYER (overview->marker_layer)); + overview->marker_central = shumate_marker_new (); /* * Make all the bindings between widget properties and g_settings. diff --git a/src/window/overview-page/overview-view.h b/src/window/overview-page/overview-view.h index 76f2477..01453cc 100644 --- a/src/window/overview-page/overview-view.h +++ b/src/window/overview-page/overview-view.h @@ -13,12 +13,20 @@ GDateTime *picplanner_overview_get_date_time (PicplannerOverview *overview); void -picplanner_overview_set_current_coordinates_sun (PicplannerOverview *overview, int *rise_upper_set_index); +picplanner_overview_set_current_coordinates_sun (PicplannerOverview *overview, + int *rise_upper_set_index); void -picplanner_overview_set_current_coordinates_moon (PicplannerOverview *overview, int *rise_upper_set_index); +picplanner_overview_set_current_coordinates_moon (PicplannerOverview *overview, + int *rise_upper_set_index); void -picplanner_overview_set_current_coordinates_milky_way (PicplannerOverview *overview, int *rise_upper_set_index); +picplanner_overview_set_current_coordinates_milky_way (PicplannerOverview *overview, + int *rise_upper_set_index); + +void +picplanner_overview_update_map (PicplannerOverview *overview, + double latitude, + double longitude); G_END_DECLS diff --git a/src/window/picplanner-window.c b/src/window/picplanner-window.c index aa05d3a..bce470e 100644 --- a/src/window/picplanner-window.c +++ b/src/window/picplanner-window.c @@ -292,6 +292,12 @@ calculate_positions (PicplannerWindow *window) rise_upper_set_index_milky_way); + /* + * Update Shumate Map + */ + picplanner_overview_update_map (PICPLANNER_OVERVIEW (window->overview_box), latitude, longitude); + + g_free (rise_upper_set_index_sun); g_free (rise_upper_set_index_moon); g_free (rise_upper_set_index_milky_way);