From d672b07804e730b51b85ac903108e0b3a7fc1d4e Mon Sep 17 00:00:00 2001 From: Bruce Cowan <bruce@bcowan.me.uk> Date: Fri, 19 Aug 2016 00:55:59 +0100 Subject: [PATCH] Port to new GObject definition code --- src/rugby-application.c | 67 ++++++++++++++++----------------- src/rugby-application.h | 28 ++------------ src/rugby-cell-renderer-score.c | 44 ++++++++++------------ src/rugby-cell-renderer-score.h | 28 ++------------ src/rugby-score-store.c | 22 ++++------- src/rugby-score-store.h | 29 +------------- 6 files changed, 69 insertions(+), 149 deletions(-) diff --git a/src/rugby-application.c b/src/rugby-application.c index 623d4bd..8776aa7 100644 --- a/src/rugby-application.c +++ b/src/rugby-application.c @@ -4,8 +4,10 @@ #include "rugby-score-store.h" #include "rugby-scoring.h" -struct _RugbyApplicationPrivate +struct _RugbyApplication { + GtkApplication parent_instance; + GtkWidget *tryfilter; GtkWidget *tryscale; GtkWidget *kickfilter; @@ -25,14 +27,14 @@ scorespin_changed_cb (GtkSpinButton *spin, gint max_kicks; score = gtk_spin_button_get_value_as_int (spin); - rugby_score_store_set_score (app->priv->store, score); + rugby_score_store_set_score (app->store, score); /* I'd rather not have to do this */ max_tries = MAX (rugby_scoring_get_max_tries (score), 1.0); - gtk_range_set_range (GTK_RANGE (app->priv->tryscale), 0.0, max_tries); + gtk_range_set_range (GTK_RANGE (app->tryscale), 0.0, max_tries); max_kicks = MAX (rugby_scoring_get_max_kicks (score), 1.0); - gtk_range_set_range (GTK_RANGE (app->priv->kickscale), 0.0, max_kicks); + gtk_range_set_range (GTK_RANGE (app->kickscale), 0.0, max_kicks); } static void @@ -40,11 +42,11 @@ tryfilter_toggled_cb (GtkToggleButton *toggle, RugbyApplication *app) { if (gtk_toggle_button_get_active (toggle)) - gtk_widget_set_sensitive (app->priv->tryscale, TRUE); + gtk_widget_set_sensitive (app->tryscale, TRUE); else - gtk_widget_set_sensitive (app->priv->tryscale, FALSE); + gtk_widget_set_sensitive (app->tryscale, FALSE); - gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (app->priv->fmodel)); + gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (app->fmodel)); } /* TODO replace this with one function */ @@ -53,18 +55,18 @@ kickfilter_toggled_cb (GtkToggleButton *toggle, RugbyApplication *app) { if (gtk_toggle_button_get_active (toggle)) - gtk_widget_set_sensitive (app->priv->kickscale, TRUE); + gtk_widget_set_sensitive (app->kickscale, TRUE); else - gtk_widget_set_sensitive (app->priv->kickscale, FALSE); + gtk_widget_set_sensitive (app->kickscale, FALSE); - gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (app->priv->fmodel)); + gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (app->fmodel)); } static void scale_changed_cb (GtkRange *range, RugbyApplication *app) { - gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (app->priv->fmodel)); + gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (app->fmodel)); } static void @@ -89,20 +91,19 @@ filter_func (GtkTreeModel *model, GtkTreeIter *iter, RugbyApplication *app) { - RugbyApplicationPrivate *priv = app->priv; gint ctries, ckicks; /* TODO fix these crap names */ gint tries, utries, kicks; gboolean try, kick; - ctries = (gint) gtk_range_get_value (GTK_RANGE (app->priv->tryscale)); - ckicks = (gint) gtk_range_get_value (GTK_RANGE (app->priv->kickscale)); + ctries = (gint) gtk_range_get_value (GTK_RANGE (app->tryscale)); + ckicks = (gint) gtk_range_get_value (GTK_RANGE (app->kickscale)); gtk_tree_model_get (model, iter, RUGBY_SCORE_STORE_TRIES, &tries, RUGBY_SCORE_STORE_UTRIES, &utries, RUGBY_SCORE_STORE_KICKS, &kicks, -1); - try = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->tryfilter)); - kick = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->kickfilter)); + try = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (app->tryfilter)); + kick = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (app->kickfilter)); if (try && kick) return ((tries + utries == ctries) && (kicks == ckicks)) ? TRUE : FALSE; @@ -196,9 +197,9 @@ _gtk_css_provider_load_from_resource (GtkCssProvider *provider, } static void -rugby_application_activate (GApplication *app) +rugby_application_activate (GApplication *self) { - RugbyApplicationPrivate *priv = RUGBY_APPLICATION (app)->priv; + RugbyApplication *app = RUGBY_APPLICATION (self); GtkBuilder *builder; GError *err = NULL; GtkWidget *score; @@ -219,20 +220,20 @@ rugby_application_activate (GApplication *app) g_signal_connect (score, "value-changed", G_CALLBACK (scorespin_changed_cb), app); - priv->tryfilter = GTK_WIDGET (gtk_builder_get_object (builder, "tryfilter")); - g_signal_connect (priv->tryfilter, "toggled", + app->tryfilter = GTK_WIDGET (gtk_builder_get_object (builder, "tryfilter")); + g_signal_connect (app->tryfilter, "toggled", G_CALLBACK (tryfilter_toggled_cb), app); - priv->tryscale = GTK_WIDGET (gtk_builder_get_object (builder, "tryscale")); - g_signal_connect (priv->tryscale, "value-changed", + app->tryscale = GTK_WIDGET (gtk_builder_get_object (builder, "tryscale")); + g_signal_connect (app->tryscale, "value-changed", G_CALLBACK (scale_changed_cb), app); - priv->kickfilter = GTK_WIDGET (gtk_builder_get_object (builder, "kickfilter")); - g_signal_connect (priv->kickfilter, "toggled", + app->kickfilter = GTK_WIDGET (gtk_builder_get_object (builder, "kickfilter")); + g_signal_connect (app->kickfilter, "toggled", G_CALLBACK (kickfilter_toggled_cb), app); - priv->kickscale = GTK_WIDGET (gtk_builder_get_object (builder, "kickscale")); - g_signal_connect (priv->kickscale, "value-changed", + app->kickscale = GTK_WIDGET (gtk_builder_get_object (builder, "kickscale")); + g_signal_connect (app->kickscale, "value-changed", G_CALLBACK (scale_changed_cb), app); tree = GTK_WIDGET (gtk_builder_get_object (builder, "treeview")); @@ -247,14 +248,14 @@ rugby_application_activate (GApplication *app) gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column); /* Create a TreeModelFilter */ - priv->store = rugby_score_store_new (); - priv->fmodel = gtk_tree_model_filter_new (GTK_TREE_MODEL (priv->store), NULL); - gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (priv->fmodel), + app->store = rugby_score_store_new (); + app->fmodel = gtk_tree_model_filter_new (GTK_TREE_MODEL (app->store), NULL); + gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (app->fmodel), (GtkTreeModelFilterVisibleFunc) filter_func, app, NULL); - gtk_tree_view_set_model (GTK_TREE_VIEW (tree), priv->fmodel); + gtk_tree_view_set_model (GTK_TREE_VIEW (tree), app->fmodel); statusbar = GTK_WIDGET (gtk_builder_get_object (builder, "status")); - g_signal_connect (priv->store, "finished", + g_signal_connect (app->store, "finished", G_CALLBACK (store_finished_cb), statusbar); /* init CSS */ @@ -281,14 +282,12 @@ rugby_application_class_init (RugbyApplicationClass *klass) app_class->startup = rugby_application_startup; app_class->activate = rugby_application_activate; - - g_type_class_add_private (klass, sizeof (RugbyApplicationPrivate)); } static void rugby_application_init (RugbyApplication *app) { - app->priv = G_TYPE_INSTANCE_GET_PRIVATE (app, RUGBY_TYPE_APPLICATION, RugbyApplicationPrivate); + } /** diff --git a/src/rugby-application.h b/src/rugby-application.h index fa79dfc..973c453 100644 --- a/src/rugby-application.h +++ b/src/rugby-application.h @@ -5,32 +5,10 @@ G_BEGIN_DECLS -#define RUGBY_TYPE_APPLICATION (rugby_application_get_type ()) -#define RUGBY_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RUGBY_TYPE_APPLICATION, RugbyApplication)) -#define RUGBY_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RUGBY_TYPE_APPLICATION, RugbyApplicationClass)) -#define RUGBY_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RUGBY_TYPE_APPLICATION)) -#define RUGBY_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RUGBY_TYPE_APPLICATION)) -#define RUGBY_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RUGBY_TYPE_APPLICATION, RugbyApplicationClass)) +#define RUGBY_TYPE_APPLICATION rugby_application_get_type () +G_DECLARE_FINAL_TYPE (RugbyApplication, rugby_application, RUGBY, APPLICATION, GtkApplication) -typedef struct _RugbyApplication RugbyApplication; -typedef struct _RugbyApplicationClass RugbyApplicationClass; -typedef struct _RugbyApplicationPrivate RugbyApplicationPrivate; - -struct _RugbyApplication -{ - GtkApplication parent; - - /*< private >*/ - RugbyApplicationPrivate *priv; -}; - -struct _RugbyApplicationClass -{ - GtkApplicationClass parent_class; -}; - -GType rugby_application_get_type (void) G_GNUC_CONST; -RugbyApplication * rugby_application_new (void); +RugbyApplication * rugby_application_new (void); G_END_DECLS diff --git a/src/rugby-cell-renderer-score.c b/src/rugby-cell-renderer-score.c index 3ee158b..2bf767e 100644 --- a/src/rugby-cell-renderer-score.c +++ b/src/rugby-cell-renderer-score.c @@ -9,8 +9,10 @@ enum PROP_KICKS }; -struct _RugbyCellRendererScorePrivate +struct _RugbyCellRendererScore { + GtkCellRenderer parent_instance; + gint tries; gint utries; gint kicks; @@ -29,18 +31,18 @@ rugby_cell_renderer_score_set_property (GObject *object, const GValue *value, GParamSpec *pspec) { - RugbyCellRendererScorePrivate *priv = RUGBY_CELL_RENDERER_SCORE (object)->priv; + RugbyCellRendererScore *score = RUGBY_CELL_RENDERER_SCORE (object); switch (prop_id) { case PROP_TRIES: - priv->tries = g_value_get_int (value); + score->tries = g_value_get_int (value); break; case PROP_UTRIES: - priv->utries = g_value_get_int (value); + score->utries = g_value_get_int (value); break; case PROP_KICKS: - priv->kicks = g_value_get_int (value); + score->kicks = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -54,18 +56,18 @@ rugby_cell_renderer_score_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - RugbyCellRendererScorePrivate *priv = RUGBY_CELL_RENDERER_SCORE (object)->priv; + RugbyCellRendererScore *score = RUGBY_CELL_RENDERER_SCORE (object); switch (prop_id) { case PROP_TRIES: - g_value_set_int (value, priv->tries); + g_value_set_int (value, score->tries); break; case PROP_UTRIES: - g_value_set_int (value, priv->utries); + g_value_set_int (value, score->utries); break; case PROP_KICKS: - g_value_set_int (value, priv->kicks); + g_value_set_int (value, score->kicks); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -149,7 +151,7 @@ rugby_cell_renderer_score_render (GtkCellRenderer *cell, const GdkRectangle *cell_area, GtkCellRendererState flags) { - RugbyCellRendererScorePrivate *priv = RUGBY_CELL_RENDERER_SCORE (cell)->priv; + RugbyCellRendererScore *score = RUGBY_CELL_RENDERER_SCORE (cell); GtkStyleContext *context; gint xpad, ypad; gdouble x, y, total_w, w, h; @@ -172,9 +174,9 @@ rugby_cell_renderer_score_render (GtkCellRenderer *cell, gtk_render_background (context, cr, x, y, total_w, h); gtk_render_frame (context, cr, x, y, total_w, h); - tries = priv->tries; - utries = priv->utries; - kicks = priv->kicks; + tries = score->tries; + utries = score->utries; + kicks = score->kicks; total = tries * TRY_POINTS + utries * UTRY_POINTS + kicks * KICK_POINTS; gtk_style_context_get_border (context, GTK_STATE_FLAG_NORMAL, &border); @@ -236,22 +238,16 @@ rugby_cell_renderer_score_class_init (RugbyCellRendererScoreClass *klass) g_param_spec_int ("kicks", "Kicks", "Number of kicks", 0, 50, 0, G_PARAM_READWRITE)); - - g_type_class_add_private (klass, sizeof (RugbyCellRendererScorePrivate)); } static void -rugby_cell_renderer_score_init (RugbyCellRendererScore *cellscore) +rugby_cell_renderer_score_init (RugbyCellRendererScore *score) { - RugbyCellRendererScorePrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE ((cellscore), RUGBY_TYPE_CELL_RENDERER_SCORE, RugbyCellRendererScorePrivate); - - priv->tries = 0; - priv->utries = 0; - priv->kicks = 0; - - gtk_cell_renderer_set_padding (GTK_CELL_RENDERER (cellscore), 2, 2); + score->tries = 0; + score->utries = 0; + score->kicks = 0; - cellscore->priv = priv; + gtk_cell_renderer_set_padding (GTK_CELL_RENDERER (score), 2, 2); } GtkCellRenderer * diff --git a/src/rugby-cell-renderer-score.h b/src/rugby-cell-renderer-score.h index 4599f70..71bc638 100644 --- a/src/rugby-cell-renderer-score.h +++ b/src/rugby-cell-renderer-score.h @@ -5,32 +5,10 @@ G_BEGIN_DECLS -#define RUGBY_TYPE_CELL_RENDERER_SCORE (rugby_cell_renderer_score_get_type ()) -#define RUGBY_CELL_RENDERER_SCORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RUGBY_TYPE_CELL_RENDERER_SCORE, RugbyCellRendererScore)) -#define RUGBY_CELL_RENDERER_SCORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RUGBY_TYPE_CELL_RENDERER_SCORE, RugbyCellRendererScoreClass)) -#define RUGBY_IS_CELL_RENDERER_SCORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RUGBY_TYPE_CELL_RENDERER_SCORE)) -#define RUGBY_IS_CELL_RENDERER_SCORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RUGBY_TYPE_CELL_RENDERER_SCORE)) -#define RUGBY_CELL_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RUGBY_TYPE_CELL_RENDERER_SCORE, RugbyCellRendererScoreClass)) +#define RUGBY_TYPE_CELL_RENDERER_SCORE rugby_cell_renderer_score_get_type () +G_DECLARE_FINAL_TYPE (RugbyCellRendererScore, rugby_cell_renderer_score, RUGBY, CELL_RENDERER_SCORE, GtkCellRenderer) -typedef struct _RugbyCellRendererScore RugbyCellRendererScore; -typedef struct _RugbyCellRendererScoreClass RugbyCellRendererScoreClass; -typedef struct _RugbyCellRendererScorePrivate RugbyCellRendererScorePrivate; - -struct _RugbyCellRendererScore -{ - GtkCellRenderer parent; - - /*< private >*/ - RugbyCellRendererScorePrivate *priv; -}; - -struct _RugbyCellRendererScoreClass -{ - GtkCellRendererClass parent_class; -}; - -GType rugby_cell_renderer_score_get_type (void) G_GNUC_CONST; -GtkCellRenderer * rugby_cell_renderer_score_new (void); +GtkCellRenderer * rugby_cell_renderer_score_new (void); G_END_DECLS diff --git a/src/rugby-score-store.c b/src/rugby-score-store.c index 4835cd6..a838c8c 100644 --- a/src/rugby-score-store.c +++ b/src/rugby-score-store.c @@ -16,8 +16,10 @@ enum static GParamSpec *pspecs[PROP_LAST]; -struct _RugbyScoreStorePrivate +struct _RugbyScoreStore { + GtkListStore parent_instance; + gint score; }; @@ -86,19 +88,16 @@ rugby_score_store_class_init (RugbyScoreStoreClass *klass) g_signal_new ("finished", G_TYPE_FROM_CLASS (obj_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (RugbyScoreStoreClass, finished), + 0, NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_INT); - - g_type_class_add_private (klass, sizeof (RugbyScoreStorePrivate)); } static void populate_store (RugbyScoreStore *store) { GtkListStore *lstore = GTK_LIST_STORE (store); - RugbyScoreStorePrivate *priv = RUGBY_SCORE_STORE (store)->priv; GVariant *possibilities; GVariant *possibility; GVariantIter iter; @@ -107,7 +106,7 @@ populate_store (RugbyScoreStore *store) /* Clear the store */ gtk_list_store_clear (lstore); - possibilities = rugby_scoring_get_possibilities (priv->score); + possibilities = rugby_scoring_get_possibilities (store->score); if (possibilities == NULL) return; @@ -153,15 +152,10 @@ populate_store (RugbyScoreStore *store) static void rugby_score_store_init (RugbyScoreStore *store) { - RugbyScoreStorePrivate *priv; GType types[] = { G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING }; - priv = G_TYPE_INSTANCE_GET_PRIVATE (store, RUGBY_TYPE_SCORE_STORE, RugbyScoreStorePrivate); - gtk_list_store_set_column_types (GTK_LIST_STORE (store), RUGBY_SCORE_STORE_COLUMNS, types); - priv->score = 0; - - store->priv = priv; + store->score = 0; } /** @@ -191,7 +185,7 @@ rugby_score_store_get_score (RugbyScoreStore *store) { g_return_val_if_fail (RUGBY_IS_SCORE_STORE (store), 0); - return store->priv->score; + return store->score; } /** @@ -208,7 +202,7 @@ rugby_score_store_set_score (RugbyScoreStore *store, g_return_if_fail (RUGBY_IS_SCORE_STORE (store)); g_return_if_fail (score >= 0 && score <= 150); - store->priv->score = score; + store->score = score; g_object_notify_by_pspec (G_OBJECT (store), pspecs[PROP_SCORE]); populate_store (store); diff --git a/src/rugby-score-store.h b/src/rugby-score-store.h index 4ace543..2528556 100644 --- a/src/rugby-score-store.h +++ b/src/rugby-score-store.h @@ -14,34 +14,9 @@ enum RUGBY_SCORE_STORE_COLUMNS }; -#define RUGBY_TYPE_SCORE_STORE (rugby_score_store_get_type ()) -#define RUGBY_SCORE_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RUGBY_TYPE_SCORE_STORE, RugbyScoreStore)) -#define RUGBY_SCORE_SCORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RUGBY_TYPE_SCORE_STORE, RugbyScoreStoreClass)) -#define RUGBY_IS_SCORE_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RUGBY_TYPE_SCORE_STORE)) -#define RUGBY_IS_SCORE_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RUGBY_TYPE_SCORE_STORE)) -#define RUGBY_SCORE_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RUGBY_TYPE_SCORE_STORE, RugbyScoreStoreClass)) +#define RUGBY_TYPE_SCORE_STORE rugby_score_store_get_type () +G_DECLARE_FINAL_TYPE (RugbyScoreStore, rugby_score_store, RUGBY, SCORE_STORE, GtkListStore) -typedef struct _RugbyScoreStore RugbyScoreStore; -typedef struct _RugbyScoreStoreClass RugbyScoreStoreClass; -typedef struct _RugbyScoreStorePrivate RugbyScoreStorePrivate; - -struct _RugbyScoreStore -{ - GtkListStore parent; - - /*< private >*/ - RugbyScoreStorePrivate *priv; -}; - -struct _RugbyScoreStoreClass -{ - GtkListStoreClass parent_class; - - void (* finished) (RugbyScoreStore *store, - int possibilities); -}; - -GType rugby_score_store_get_type (void) G_GNUC_CONST; RugbyScoreStore * rugby_score_store_new (void); gint rugby_score_store_get_score (RugbyScoreStore *store); void rugby_score_store_set_score (RugbyScoreStore *store, -- GitLab