/* * SPDX-FileCopyrightText: 2018 Bruce Cowan <bruce@bcowan.me.uk> * SPDX-License-Identifier: GPL-3.0-or-later */ #include "config.h" #include "rugby-possibility.h" struct _RugbyPossibility { GObject parent_instance; gint tries; gint utries; gint kicks; }; G_DEFINE_TYPE (RugbyPossibility, rugby_possibility, G_TYPE_OBJECT) enum { PROP_0, PROP_TRIES, PROP_UTRIES, PROP_KICKS, N_PROPS }; static GParamSpec *properties[N_PROPS]; static void rugby_possibility_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { RugbyPossibility *self = RUGBY_POSSIBILITY (object); switch (prop_id) { case PROP_TRIES: g_value_set_int (value, self->tries); break; case PROP_UTRIES: g_value_set_int (value, self->utries); break; case PROP_KICKS: g_value_set_int (value, self->kicks); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void rugby_possibility_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { RugbyPossibility *self = RUGBY_POSSIBILITY (object); switch (prop_id) { case PROP_TRIES: self->tries = g_value_get_int (value); break; case PROP_UTRIES: self->utries = g_value_get_int (value); break; case PROP_KICKS: self->kicks = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void rugby_possibility_class_init (RugbyPossibilityClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->get_property = rugby_possibility_get_property; object_class->set_property = rugby_possibility_set_property; properties[PROP_TRIES] = g_param_spec_int ("tries", "Tries", "Converted tries", 0, 28, 0, G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE); properties[PROP_UTRIES] = g_param_spec_int ("utries", "Utries", "Unconverted tries", 0, 40, 0, G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE); properties[PROP_KICKS] = g_param_spec_int ("kicks", "Kicks", "Penalties and drop goals", 0, 66, 0, G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE); g_object_class_install_properties (object_class, N_PROPS, properties); } static void rugby_possibility_init (RugbyPossibility *self) { } RugbyPossibility * rugby_possibility_new (gint tries, gint utries, gint kicks) { return g_object_new (RUGBY_TYPE_POSSIBILITY, "tries", tries, "utries", utries, "kicks", kicks, NULL); }