From a58b32a5b362f5059c697d9ff39b7fcee536a4df Mon Sep 17 00:00:00 2001 From: Patrick Griffis Date: Sat, 26 Dec 2015 21:38:50 -0500 Subject: Start modernizing GObject usage Long way to go... --- src/trg-gtk-app.c | 82 ++++++++++++++++++++++--------------------------------- 1 file changed, 32 insertions(+), 50 deletions(-) (limited to 'src/trg-gtk-app.c') diff --git a/src/trg-gtk-app.c b/src/trg-gtk-app.c index 0f44d99..7865767 100644 --- a/src/trg-gtk-app.c +++ b/src/trg-gtk-app.c @@ -21,6 +21,7 @@ #include "config.h" #endif +#include #include #include "trg-main-window.h" @@ -28,24 +29,30 @@ #include "util.h" enum { - PROP_0, PROP_CLIENT, PROP_MINIMISE_ON_START + PROP_0, + PROP_CLIENT, + PROP_MINIMISE_ON_START, + N_PROPS, }; -G_DEFINE_TYPE(TrgGtkApp, trg_gtk_app, GTK_TYPE_APPLICATION) -#define GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRG_TYPE_GTK_APP, TrgGtkAppPrivate)) -typedef struct _TrgGtkAppPrivate TrgGtkAppPrivate; +struct _TrgGtkApp +{ + GtkApplication parent; +}; -struct _TrgGtkAppPrivate { +typedef struct +{ TrgClient *client; gboolean min_start; -}; +} TrgGtkAppPrivate; + +G_DEFINE_TYPE_WITH_PRIVATE(TrgGtkApp, trg_gtk_app, GTK_TYPE_APPLICATION) static void trg_gtk_app_get_property(GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - TrgGtkAppPrivate *priv = GET_PRIVATE(object); + TrgGtkAppPrivate *priv = trg_gtk_app_get_instance_private (TRG_GTK_APP(object)); switch (property_id) { case PROP_CLIENT: g_value_set_pointer(value, priv->client); @@ -63,7 +70,7 @@ static void trg_gtk_app_set_property(GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - TrgGtkAppPrivate *priv = GET_PRIVATE(object); + TrgGtkAppPrivate *priv = trg_gtk_app_get_instance_private (TRG_GTK_APP(object)); switch (property_id) { case PROP_CLIENT: priv->client = g_value_get_pointer(value); @@ -77,22 +84,12 @@ trg_gtk_app_set_property(GObject * object, guint property_id, } } -static void trg_gtk_app_dispose(GObject * object) +static void trg_gtk_app_startup(GApplication * app, gpointer userdata) { - G_OBJECT_CLASS(trg_gtk_app_parent_class)->dispose(object); -} - -static void trg_gtk_app_finalize(GObject * object) -{ - G_OBJECT_CLASS(trg_gtk_app_parent_class)->finalize(object); -} - -static void trg_gtk_app_startup(GtkApplication * app, gpointer data) -{ - TrgGtkAppPrivate *priv = GET_PRIVATE(app); + TrgGtkAppPrivate *priv = trg_gtk_app_get_instance_private (TRG_GTK_APP(app)); TrgMainWindow *window = trg_main_window_new(priv->client, priv->min_start); - gtk_window_set_application(GTK_WINDOW(window), app); + gtk_window_set_application(GTK_WINDOW(window), GTK_APPLICATION(app)); } static int @@ -137,7 +134,7 @@ static gboolean test_local_cmdline(GApplication * application, gchar *** arguments, gint * exit_status) { - TrgGtkAppPrivate *priv = GET_PRIVATE(application); + TrgGtkAppPrivate *priv = trg_gtk_app_get_instance_private (TRG_GTK_APP(application)); gchar **argv; gchar *cwd = g_get_current_dir(); gchar *tmp; @@ -173,45 +170,30 @@ static void trg_gtk_app_class_init(TrgGtkAppClass * klass) GObjectClass *object_class = G_OBJECT_CLASS(klass); GApplicationClass *app_class = G_APPLICATION_CLASS(klass); - g_type_class_add_private(klass, sizeof(TrgGtkAppPrivate)); - object_class->get_property = trg_gtk_app_get_property; object_class->set_property = trg_gtk_app_set_property; - object_class->dispose = trg_gtk_app_dispose; - object_class->finalize = trg_gtk_app_finalize; app_class->local_command_line = test_local_cmdline; - //app_class->command_line = trg_gtk_app_command_line; + //app_class->startup = trg_gtk_app_startup; + app_class->command_line = trg_gtk_app_command_line; g_object_class_install_property(object_class, PROP_CLIENT, g_param_spec_pointer("trg-client", "TClient", - "Client", - G_PARAM_READWRITE - | - G_PARAM_CONSTRUCT_ONLY - | - G_PARAM_STATIC_NAME - | - G_PARAM_STATIC_NICK - | - G_PARAM_STATIC_BLURB)); + _("Client"), + G_PARAM_READWRITE| + G_PARAM_CONSTRUCT_ONLY| + G_PARAM_STATIC_STRINGS)); g_object_class_install_property(object_class, PROP_MINIMISE_ON_START, g_param_spec_boolean("min-on-start", "Min On Start", - "Min On Start", + _("Min On Start"), FALSE, - G_PARAM_READWRITE - | - G_PARAM_CONSTRUCT_ONLY - | - G_PARAM_STATIC_NAME - | - G_PARAM_STATIC_NICK - | - G_PARAM_STATIC_BLURB)); + G_PARAM_READWRITE| + G_PARAM_CONSTRUCT_ONLY| + G_PARAM_STATIC_STRINGS)); } static void trg_gtk_app_init(TrgGtkApp * self) @@ -219,8 +201,8 @@ static void trg_gtk_app_init(TrgGtkApp * self) g_application_set_inactivity_timeout(G_APPLICATION(self), 10000); g_signal_connect(self, "command-line", G_CALLBACK(trg_gtk_app_command_line), NULL); - g_signal_connect(self, "startup", G_CALLBACK(trg_gtk_app_startup), - NULL); + g_signal_connect(self, "startup", + G_CALLBACK(trg_gtk_app_startup), NULL); } TrgGtkApp *trg_gtk_app_new(TrgClient * client) -- cgit v1.2.3