Newer
Older
* SPDX-FileCopyrightText: 2018-2021 Bruce Cowan <bruce@bcowan.me.uk>
*
* SPDX-License-Identifier: GPL-3.0-or-later
#include "rugby-possibility.h"
struct _RugbyPossibility
{
GObject parent_instance;
int tries;
int utries;
int kicks;
};
G_DEFINE_TYPE (RugbyPossibility, rugby_possibility, G_TYPE_OBJECT)
enum
{
PROP_0,
PROP_TRIES,
PROP_UTRIES,
PROP_KICKS,
N_PROPS
};
static void
rugby_possibility_get_property (GObject *object,
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,
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",
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
properties[PROP_UTRIES] =
g_param_spec_int ("utries", "Utries", "Unconverted tries",
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
properties[PROP_KICKS] =
g_param_spec_int ("kicks", "Kicks", "Penalties and drop goals",
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
g_object_class_install_properties (object_class,
N_PROPS,
properties);
}
static void
rugby_possibility_init (G_GNUC_UNUSED RugbyPossibility *self)
rugby_possibility_new (int tries,
int utries,
int kicks)
{
return g_object_new (RUGBY_TYPE_POSSIBILITY,
"tries", tries,
"utries", utries,
"kicks", kicks,
NULL);
}