From 9bc67c084fddceb2a1a3ab122a9bd1ebae8bccaf Mon Sep 17 00:00:00 2001 From: Zwarf Date: Wed, 19 Jul 2023 22:42:47 +0200 Subject: [PATCH] Add back button --- src/window/overview-page/overview-view.c | 3 +-- src/window/picplanner-window.c | 29 ++++++++++++++++++++---- src/window/picplanner-window.ui | 16 ++++++++++--- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/src/window/overview-page/overview-view.c b/src/window/overview-page/overview-view.c index 21995ca..1bf0a62 100644 --- a/src/window/overview-page/overview-view.c +++ b/src/window/overview-page/overview-view.c @@ -118,8 +118,7 @@ change_stack_page (GtkButton *self, g_signal_emit (overview, signal_button_pressed, - 0, NULL, - stack_page); + 0, stack_page); } diff --git a/src/window/picplanner-window.c b/src/window/picplanner-window.c index 26d35de..af314d6 100644 --- a/src/window/picplanner-window.c +++ b/src/window/picplanner-window.c @@ -45,7 +45,6 @@ struct _PicplannerWindow GtkWidget *search_bar; /* Search bar for the location */ GtkWidget *search_entry; /* The search entry inside the search bar */ GtkWidget *search_button; /* The search button in the header bar so show the search bar */ - GtkWidget *map_button; /* The map button in the header bar to show the map fullscreen */ GtkWidget *location_button; /* Button in the header bar to start the GPS search of the device location */ GtkWidget *overview_box; /* The overview page */ GtkWidget *sun_box; /* The sun page */ @@ -53,8 +52,8 @@ struct _PicplannerWindow GtkWidget *milky_way_box; /* The milky way page */ GtkWidget *north_entry; /* SpinButton for North coordinates */ GtkWidget *east_entry; /* SpinButton for East coordinates */ - GtkWidget *overview_page; GtkWidget *time_picker; + GtkWidget *back_button; /* Go back to the overview page */ /* Search functionality */ GtkWidget *search_result_box; /* ListBox containing search results */ @@ -84,7 +83,24 @@ change_stack_page (GtkWidget *self, int stack_page, gpointer user_data) { - g_print("Page: %d\n", stack_page); + (void) self; + PicplannerWindow *window = user_data; + if (stack_page == 1) + gtk_stack_set_visible_child_name (GTK_STACK(window->stack), "sun"); + else if (stack_page == 2) + gtk_stack_set_visible_child_name (GTK_STACK(window->stack), "moon"); + else if (stack_page == 3) + gtk_stack_set_visible_child_name (GTK_STACK(window->stack), "milkyway"); +} +/* + * TODO: Hide and show back button + */ +static void +change_stack_page_back (GtkWidget *self, + gpointer user_data) +{ + PicplannerWindow *window = user_data; + gtk_stack_set_visible_child_name (GTK_STACK(window->stack), "overview"); } /* @@ -592,8 +608,8 @@ picplanner_window_class_init (PicplannerWindowClass *klass) gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, east_entry); gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, search_result_box); gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, search_results_scroll); - gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, overview_page); gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, time_picker); + gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, back_button); gtk_widget_class_bind_template_callback (widget_class, search_location); } @@ -674,6 +690,11 @@ picplanner_window_init (PicplannerWindow *window) G_CALLBACK (change_stack_page), window); + g_signal_connect (G_OBJECT (window->back_button), + "clicked", + G_CALLBACK (change_stack_page_back), + window); + /* * Initialisation of values needed to detect when a user input ends */ diff --git a/src/window/picplanner-window.ui b/src/window/picplanner-window.ui index e244028..b56d3ab 100644 --- a/src/window/picplanner-window.ui +++ b/src/window/picplanner-window.ui @@ -44,6 +44,12 @@ + + + go-previous-symbolic + Overview + + edit-find-symbolic @@ -185,27 +191,31 @@ 360 + overview Overview emoji-recent-symbolic overview_box - + + sun Sun weather-clear-symbolic sun_box - + + moon Moon weather-clear-night-symbolic moon_box - + + milkyway Milky Way milky-way-symbolic milky_way_box