Add back button

main
Zwarf 2023-07-19 22:42:47 +02:00
rodzic 79bbf19c44
commit 9bc67c084f
3 zmienionych plików z 39 dodań i 9 usunięć

Wyświetl plik

@ -118,8 +118,7 @@ change_stack_page (GtkButton *self,
g_signal_emit (overview,
signal_button_pressed,
0, NULL,
stack_page);
0, stack_page);
}

Wyświetl plik

@ -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
*/

Wyświetl plik

@ -44,6 +44,12 @@
<object class="TimePicker" id="time_picker">
</object>
</property>
<child type="start">
<object class="GtkToggleButton" id="back_button">
<property name="icon-name">go-previous-symbolic</property>
<property name="tooltip-text">Overview</property>
</object>
</child>
<child type="start">
<object class="GtkToggleButton" id="search_button">
<property name="icon-name">edit-find-symbolic</property>
@ -185,27 +191,31 @@
<property name="width-request">360</property>
<child>
<object class="GtkStackPage" id="overview_page">
<property name="name">overview</property>
<property name="title" translatable="yes">Overview</property>
<property name="icon-name">emoji-recent-symbolic</property>
<property name="child">overview_box</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<object class="GtkStackPage" id="sun_page">
<property name="name">sun</property>
<property name="title" translatable="yes">Sun</property>
<property name="icon-name">weather-clear-symbolic</property>
<property name="child">sun_box</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<object class="GtkStackPage" id="moon_page">
<property name="name">moon</property>
<property name="title" translatable="yes">Moon</property>
<property name="icon-name">weather-clear-night-symbolic</property>
<property name="child">moon_box</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<object class="GtkStackPage" id="milky_way_page">
<property name="name">milkyway</property>
<property name="title" translatable="yes">Milky Way</property>
<property name="icon-name">milky-way-symbolic</property>
<property name="child">milky_way_box</property>