Add change stack signal

main
Zwarf 2023-07-19 14:06:56 +02:00
rodzic 1111e7115a
commit 79bbf19c44
2 zmienionych plików z 53 dodań i 0 usunięć

Wyświetl plik

@ -91,12 +91,35 @@ G_DEFINE_TYPE (PicplannerOverview, picplanner_overview, GTK_TYPE_BOX)
* Catch all signals from the buttons and emit a signal which can be used by
* picplanner-window to change the stack page.
*/
static guint signal_button_pressed;
void
change_stack_page (GtkButton *self,
gpointer user_data)
{
int stack_page = 0;
PicplannerOverview *overview = user_data;
if (self == GTK_BUTTON(overview->switch_to_sun_stack))
{
g_print("Button Sun\n");
stack_page = 1;
}
else if (self == GTK_BUTTON(overview->switch_to_moon_stack))
{
g_print("Button Moon\n");
stack_page = 2;
}
else if (self == GTK_BUTTON(overview->switch_to_milky_way_stack))
{
g_print("Button Milky Way\n");
stack_page = 3;
}
g_signal_emit (overview,
signal_button_pressed,
0, NULL,
stack_page);
}
@ -771,6 +794,14 @@ picplanner_overview_init (PicplannerOverview *overview)
"clicked",
G_CALLBACK (change_stack_page),
overview);
g_signal_connect (G_OBJECT (overview->switch_to_moon_stack),
"clicked",
G_CALLBACK (change_stack_page),
overview);
g_signal_connect (G_OBJECT (overview->switch_to_milky_way_stack),
"clicked",
G_CALLBACK (change_stack_page),
overview);
/*
@ -812,6 +843,13 @@ picplanner_overview_class_init (PicplannerOverviewClass *class)
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), PicplannerOverview, label_azimuth_moon);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), PicplannerOverview, label_azimuth_milky_way);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), PicplannerOverview, basic_information);
signal_button_pressed = g_signal_new ("change-stack",
G_OBJECT_CLASS_TYPE (class),
G_SIGNAL_RUN_LAST,
0, NULL, NULL, NULL,
G_TYPE_NONE,
1, G_TYPE_INT);
}
PicplannerOverview *

Wyświetl plik

@ -76,6 +76,16 @@ struct _PicplannerWindow
G_DEFINE_TYPE (PicplannerWindow, picplanner_window, ADW_TYPE_APPLICATION_WINDOW)
/*
* Change the stack page after a button is pressed in the overview dialog
*/
static void
change_stack_page (GtkWidget *self,
int stack_page,
gpointer user_data)
{
g_print("Page: %d\n", stack_page);
}
/*
* Function used after the user selects a search result
@ -659,6 +669,11 @@ picplanner_window_init (PicplannerWindow *window)
G_CALLBACK (input_changed),
window);
g_signal_connect (G_OBJECT (window->overview_box),
"change-stack",
G_CALLBACK (change_stack_page),
window);
/*
* Initialisation of values needed to detect when a user input ends
*/