From 4b6159f2c8829a8eb6f09bf8e17e56040ea81907 Mon Sep 17 00:00:00 2001 From: Zwarf Date: Tue, 18 Jan 2022 11:30:19 +0100 Subject: [PATCH] finaly the overview page is now a new GObject subclass! 0 Errors 0 Warnings (Wuhuu) --- src/meson.build | 1 + src/picplanner-application.c | 3 +++ src/picplanner-window.c | 26 +++++++++++++++++++++++- src/picplanner-window.h | 1 + src/picplanner-window.ui | 13 ++++++------ src/picplanner.gresource.xml | 1 + src/ui-defines/overview-view.c | 31 +++++++++++++++++++++++++++++ src/ui-defines/overview-view.h | 13 ++++++++++++ src/ui-defines/preferences-dialog.c | 3 +-- src/ui-defines/preferences-dialog.h | 9 +++------ src/ui/overview-view.ui | 2 +- 11 files changed, 87 insertions(+), 16 deletions(-) diff --git a/src/meson.build b/src/meson.build index f9a46e6..455a750 100644 --- a/src/meson.build +++ b/src/meson.build @@ -3,6 +3,7 @@ picplanner_sources = [ 'picplanner-window.c', 'picplanner-application.c', 'ui-defines/preferences-dialog.c', + 'ui-defines/overview-view.c', 'calculations/calculations_transformations.c', 'calculations/calculations_sun.c', 'calculations/calculations_moon.c', diff --git a/src/picplanner-application.c b/src/picplanner-application.c index 40060c6..59a8a4c 100644 --- a/src/picplanner-application.c +++ b/src/picplanner-application.c @@ -19,6 +19,7 @@ #include "picplanner-application.h" #include "picplanner-window.h" #include "ui-defines/preferences-dialog.h" +#include "ui-defines/overview-view.h" struct _PicplannerApplication { @@ -117,6 +118,7 @@ picplanner_application_show_about (GSimpleAction *action, NULL); } + static void picplanner_application_show_preferences (GSimpleAction *action, GVariant *parameter, @@ -149,6 +151,7 @@ picplanner_application_init (PicplannerApplication *self) g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (preferences_action)); + const char *accels[] = {"q", NULL}; gtk_application_set_accels_for_action (GTK_APPLICATION (self), "app.quit", accels); } diff --git a/src/picplanner-window.c b/src/picplanner-window.c index af63ca1..59fc13c 100644 --- a/src/picplanner-window.c +++ b/src/picplanner-window.c @@ -16,8 +16,9 @@ * along with this program. If not, see . */ -#include "picplanner-config.h" #include "picplanner-window.h" +#include "ui-defines/overview-view.h" + struct _PicplannerWindow { @@ -25,10 +26,27 @@ struct _PicplannerWindow /* Template widgets */ GtkHeaderBar *header_bar; + GtkWidget *overview_page; + GtkWidget *sun_page; + GtkWidget *moon_page; + GtkWidget *milky_way_page; }; G_DEFINE_TYPE (PicplannerWindow, picplanner_window, GTK_TYPE_APPLICATION_WINDOW) + +static void +overview_realize (GtkWidget *self, + gpointer user_data) +{ + (void) self; + (void) user_data; + g_print ("overview is being realized"); + PicplannerOverview *overview = picplanner_overview_new (); + gtk_box_append (GTK_BOX(self), GTK_WIDGET(overview)); +} + + static void picplanner_window_class_init (PicplannerWindowClass *klass) { @@ -36,6 +54,12 @@ picplanner_window_class_init (PicplannerWindowClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/de/zwarf/picplanner/picplanner-window.ui"); gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, header_bar); + gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, overview_page); + gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, sun_page); + gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, moon_page); + gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, milky_way_page); + + gtk_widget_class_bind_template_callback (widget_class, overview_realize); } static void diff --git a/src/picplanner-window.h b/src/picplanner-window.h index ec2c8a3..962eea7 100644 --- a/src/picplanner-window.h +++ b/src/picplanner-window.h @@ -19,6 +19,7 @@ #pragma once #include +#include "picplanner-config.h" #include "picplanner-application.h" G_BEGIN_DECLS diff --git a/src/picplanner-window.ui b/src/picplanner-window.ui index aecacf1..432987a 100644 --- a/src/picplanner-window.ui +++ b/src/picplanner-window.ui @@ -46,18 +46,19 @@ - + page1 Overview - - Overview + + vertical + - + page2 Sun @@ -68,7 +69,7 @@ - + page3 Moon @@ -79,7 +80,7 @@ - + page4 Milky Way diff --git a/src/picplanner.gresource.xml b/src/picplanner.gresource.xml index 2923749..a98323d 100644 --- a/src/picplanner.gresource.xml +++ b/src/picplanner.gresource.xml @@ -3,5 +3,6 @@ picplanner-window.ui ui/preferences-dialog.ui + ui/overview-view.ui diff --git a/src/ui-defines/overview-view.c b/src/ui-defines/overview-view.c index e69de29..b575b3d 100644 --- a/src/ui-defines/overview-view.c +++ b/src/ui-defines/overview-view.c @@ -0,0 +1,31 @@ +#include "overview-view.h" + + +struct _PicplannerOverview +{ + GtkBox parent_instance; + GtkWidget parent; + +}; + +G_DEFINE_TYPE (PicplannerOverview, picplanner_overview, GTK_TYPE_BOX) + +static void +picplanner_overview_init (PicplannerOverview *self) +{ + gtk_widget_init_template (GTK_WIDGET (self)); +} + +static void +picplanner_overview_class_init (PicplannerOverviewClass *class) +{ + gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class), + "/de/zwarf/picplanner/ui/overview-view.ui"); +} + +PicplannerOverview * +picplanner_overview_new () +{ + return g_object_new (PICPLANNER_OVERVIEW_TYPE, NULL); +} + diff --git a/src/ui-defines/overview-view.h b/src/ui-defines/overview-view.h index e69de29..458b30a 100644 --- a/src/ui-defines/overview-view.h +++ b/src/ui-defines/overview-view.h @@ -0,0 +1,13 @@ +#include +#include "picplanner-window.h" +#include "picplanner-application.h" + +G_BEGIN_DECLS + +#define PICPLANNER_OVERVIEW_TYPE (picplanner_overview_get_type ()) +G_DECLARE_FINAL_TYPE (PicplannerOverview, picplanner_overview, PICPLANNER, OVERVIEW, GtkBox) + + +PicplannerOverview *picplanner_overview_new (); + +G_END_DECLS diff --git a/src/ui-defines/preferences-dialog.c b/src/ui-defines/preferences-dialog.c index f5de16c..1786edb 100644 --- a/src/ui-defines/preferences-dialog.c +++ b/src/ui-defines/preferences-dialog.c @@ -1,6 +1,5 @@ #include "preferences-dialog.h" -#include "picplanner-application.h" -#include "picplanner-window.h" + struct _PicplannerPrefs { diff --git a/src/ui-defines/preferences-dialog.h b/src/ui-defines/preferences-dialog.h index 5353319..34d2a85 100644 --- a/src/ui-defines/preferences-dialog.h +++ b/src/ui-defines/preferences-dialog.h @@ -15,12 +15,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef __PICPLANNERAPPPREFS_H -#define __PICPLANNERAPPPREFS_H - #include #include "picplanner-window.h" +#include "picplanner-application.h" +G_BEGIN_DECLS #define PICPLANNER_PREFS_TYPE (picplanner_prefs_get_type ()) G_DECLARE_FINAL_TYPE (PicplannerPrefs, picplanner_prefs, PICPLANNER, PREFS, GtkDialog) @@ -28,6 +27,4 @@ G_DECLARE_FINAL_TYPE (PicplannerPrefs, picplanner_prefs, PICPLANNER, PREFS, GtkD PicplannerPrefs *picplanner_prefs_new (PicplannerWindow *win); - -#endif - +G_END_DECLS diff --git a/src/ui/overview-view.ui b/src/ui/overview-view.ui index 28a4525..0f34eda 100644 --- a/src/ui/overview-view.ui +++ b/src/ui/overview-view.ui @@ -1,6 +1,6 @@ -