| #include "meson-subsample.h" |
| |
| struct _MesonSubSample |
| { |
| MesonSample parent_instance; |
| |
| gchar *msg; |
| }; |
| |
| G_DEFINE_TYPE (MesonSubSample, meson_sub_sample, MESON_TYPE_SAMPLE) |
| |
| enum { |
| PROP_0, |
| PROP_MSG, |
| LAST_PROP |
| }; |
| |
| static GParamSpec *gParamSpecs [LAST_PROP]; |
| |
| /** |
| * meson_sub_sample_new: |
| * @msg: The message to set. |
| * |
| * Allocates a new #MesonSubSample. |
| * |
| * Returns: (transfer full): a #MesonSubSample. |
| */ |
| MesonSubSample * |
| meson_sub_sample_new (const gchar *msg) |
| { |
| g_return_val_if_fail (msg != NULL, NULL); |
| |
| return g_object_new (MESON_TYPE_SUB_SAMPLE, |
| "message", msg, |
| NULL); |
| } |
| |
| static void |
| meson_sub_sample_finalize (GObject *object) |
| { |
| MesonSubSample *self = (MesonSubSample *)object; |
| |
| g_clear_pointer (&self->msg, g_free); |
| |
| G_OBJECT_CLASS (meson_sub_sample_parent_class)->finalize (object); |
| } |
| |
| static void |
| meson_sub_sample_get_property (GObject *object, |
| guint prop_id, |
| GValue *value, |
| GParamSpec *pspec) |
| { |
| MesonSubSample *self = MESON_SUB_SAMPLE (object); |
| |
| switch (prop_id) |
| { |
| case PROP_MSG: |
| g_value_set_string (value, self->msg); |
| break; |
| default: |
| G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); |
| } |
| } |
| |
| static void |
| meson_sub_sample_set_property (GObject *object, |
| guint prop_id, |
| const GValue *value, |
| GParamSpec *pspec) |
| { |
| MesonSubSample *self = MESON_SUB_SAMPLE (object); |
| |
| switch (prop_id) |
| { |
| case PROP_MSG: |
| self->msg = g_value_dup_string (value); |
| break; |
| default: |
| G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); |
| } |
| } |
| |
| static void |
| meson_sub_sample_class_init (MesonSubSampleClass *klass) |
| { |
| GObjectClass *object_class = G_OBJECT_CLASS (klass); |
| |
| object_class->finalize = meson_sub_sample_finalize; |
| object_class->get_property = meson_sub_sample_get_property; |
| object_class->set_property = meson_sub_sample_set_property; |
| |
| gParamSpecs [PROP_MSG] = |
| g_param_spec_string ("message", |
| "Message", |
| "The message to print.", |
| NULL, |
| (G_PARAM_READWRITE | |
| G_PARAM_CONSTRUCT_ONLY | |
| G_PARAM_STATIC_STRINGS)); |
| |
| g_object_class_install_properties (object_class, LAST_PROP, gParamSpecs); |
| } |
| |
| static void |
| meson_sub_sample_init (MesonSubSample *self) |
| { |
| } |
| |
| /** |
| * meson_sub_sample_print_message: |
| * @self: a #MesonSubSample. |
| * |
| * Prints the message. |
| * |
| * Returns: Nothing. |
| */ |
| void |
| meson_sub_sample_print_message (MesonSubSample *self) |
| { |
| g_return_if_fail (MESON_IS_SUB_SAMPLE (self)); |
| |
| g_print ("Message: %s\n", self->msg); |
| } |