multi-choice: Add prop for category name
This will be binded to both the accessibility label for each multi choice, as opposed to defining it in GcalDateChooser popover. Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/681>
This commit is contained in:
@@ -40,6 +40,7 @@ struct _GcalMultiChoice
|
|||||||
gint max_value;
|
gint max_value;
|
||||||
gboolean wrap;
|
gboolean wrap;
|
||||||
gboolean animate;
|
gboolean animate;
|
||||||
|
gchar *category;
|
||||||
|
|
||||||
GtkWidget **choices;
|
GtkWidget **choices;
|
||||||
gint n_choices;
|
gint n_choices;
|
||||||
@@ -60,6 +61,7 @@ enum
|
|||||||
PROP_ANIMATE,
|
PROP_ANIMATE,
|
||||||
PROP_CHOICES,
|
PROP_CHOICES,
|
||||||
PROP_POPOVER,
|
PROP_POPOVER,
|
||||||
|
PROP_CATEGORY,
|
||||||
NUM_PROPERTIES
|
NUM_PROPERTIES
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -405,6 +407,10 @@ gcal_multi_choice_get_property (GObject *object,
|
|||||||
g_value_set_object (value, self->popover);
|
g_value_set_object (value, self->popover);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_CATEGORY:
|
||||||
|
g_value_set_string (value, gcal_multi_choice_get_category (self));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
break;
|
break;
|
||||||
@@ -455,6 +461,10 @@ gcal_multi_choice_set_property (GObject *object,
|
|||||||
gcal_multi_choice_set_popover (self, g_value_get_object (value));
|
gcal_multi_choice_set_popover (self, g_value_get_object (value));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_CATEGORY:
|
||||||
|
gcal_multi_choice_set_category (self, g_value_get_string (value));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||||
break;
|
break;
|
||||||
@@ -627,6 +637,10 @@ gcal_multi_choice_class_init (GcalMultiChoiceClass *class)
|
|||||||
g_param_spec_object ("popover", "Popover", "Popover",
|
g_param_spec_object ("popover", "Popover", "Popover",
|
||||||
GTK_TYPE_POPOVER,
|
GTK_TYPE_POPOVER,
|
||||||
G_PARAM_READWRITE);
|
G_PARAM_READWRITE);
|
||||||
|
properties[PROP_CATEGORY] =
|
||||||
|
g_param_spec_string ("category", "Category", "Category",
|
||||||
|
"",
|
||||||
|
G_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
|
||||||
|
|
||||||
g_object_class_install_properties (object_class, NUM_PROPERTIES, properties);
|
g_object_class_install_properties (object_class, NUM_PROPERTIES, properties);
|
||||||
|
|
||||||
@@ -860,3 +874,39 @@ gcal_multi_choice_get_popover (GcalMultiChoice *self)
|
|||||||
return GTK_POPOVER (self->popover);
|
return GTK_POPOVER (self->popover);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gcal_multi_choice_set_category:
|
||||||
|
* @self: a #GcalMultiChoice
|
||||||
|
* @category: The category name
|
||||||
|
*
|
||||||
|
* Set the value of the category name
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
gcal_multi_choice_set_category (GcalMultiChoice *self,
|
||||||
|
const gchar *category)
|
||||||
|
{
|
||||||
|
g_assert (GCAL_IS_MULTI_CHOICE (self));
|
||||||
|
|
||||||
|
if (g_strcmp0 (self->category, category) != 0)
|
||||||
|
{
|
||||||
|
self->category = g_strdup (category ? category : "");
|
||||||
|
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CATEGORY]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gcal_multi_choice_get_category:
|
||||||
|
* @self: a #GcalMultiChoice
|
||||||
|
*
|
||||||
|
* Get the name of the category
|
||||||
|
*
|
||||||
|
* Returns: (transfer none): the category for the multi-choice.
|
||||||
|
*/
|
||||||
|
const gchar*
|
||||||
|
gcal_multi_choice_get_category (GcalMultiChoice *self)
|
||||||
|
{
|
||||||
|
g_assert (GCAL_IS_MULTI_CHOICE (self));
|
||||||
|
|
||||||
|
return self->category ? self->category : "";
|
||||||
|
}
|
||||||
|
|||||||
@@ -39,6 +39,11 @@ GtkPopover* gcal_multi_choice_get_popover (GcalMultiChoic
|
|||||||
void gcal_multi_choice_set_popover (GcalMultiChoice *self,
|
void gcal_multi_choice_set_popover (GcalMultiChoice *self,
|
||||||
GtkWidget *popover);
|
GtkWidget *popover);
|
||||||
|
|
||||||
|
const gchar* gcal_multi_choice_get_category (GcalMultiChoice *self);
|
||||||
|
|
||||||
|
void gcal_multi_choice_set_category (GcalMultiChoice *self,
|
||||||
|
const gchar *category);
|
||||||
|
|
||||||
void gcal_multi_choice_set_choices (GcalMultiChoice *self,
|
void gcal_multi_choice_set_choices (GcalMultiChoice *self,
|
||||||
const gchar **selfs);
|
const gchar **selfs);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user