Learning_GTK4_tree/gtk/gtkaccessiblerange.c

79 lines
2.3 KiB
C
Raw Normal View History

2023-12-12 11:36:42 +01:00
/* gtkaccessiblerange.c: Accessible range interface
*
* SPDX-FileCopyrightText: 2022 Red Hat Inc.
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
/**
* GtkAccessibleRange:
*
* This interface describes ranged controls, e.g. controls which have a single
* value within an allowed range and that can optionally be changed by the user.
*
* This interface is expected to be implemented by controls using the following
* roles:
*
* - `GTK_ACCESSIBLE_ROLE_METER`
* - `GTK_ACCESSIBLE_ROLE_PROGRESS_BAR`
* - `GTK_ACCESSIBLE_ROLE_SCROLLBAR`
* - `GTK_ACCESSIBLE_ROLE_SLIDER`
* - `GTK_ACCESSIBLE_ROLE_SPIN_BUTTON`
*
* If that is not the case, a warning will be issued at run time.
*
* In addition to this interface, its implementors are expected to provide the
* correct values for the following properties:
*
* - `GTK_ACCESSIBLE_PROPERTY_VALUE_MAX`
* - `GTK_ACCESSIBLE_PROPERTY_VALUE_MIN`
* - `GTK_ACCESSIBLE_PROPERTY_VALUE_NOW`
* - `GTK_ACCESSIBLE_PROPERTY_VALUE_TEXT`
*
* Since: 4.10
*/
#include "config.h"
#include "gtkaccessiblerangeprivate.h"
#include "gtkaccessibleprivate.h"
#include "gtkatcontextprivate.h"
#include "gtkaccessiblevalueprivate.h"
G_DEFINE_INTERFACE (GtkAccessibleRange, gtk_accessible_range, GTK_TYPE_ACCESSIBLE)
static gboolean
gtk_accessible_range_default_set_current_value (GtkAccessibleRange *accessible_range,
double value)
{
return TRUE;
}
static void
gtk_accessible_range_default_init (GtkAccessibleRangeInterface *iface)
{
iface->set_current_value = gtk_accessible_range_default_set_current_value;
}
/*< private >
* gtk_accessible_range_set_current_value:
* @self: a `GtkAccessibleRange`
*
* Sets the current value of this `GtkAccessibleRange` to the given value
*
* Note that for some widgets implementing this interface, setting a value
* through the accessibility API makes no sense, so calling this function
* may in some cases do nothing
*
* Returns: true if the call changed the value, and false otherwise
*/
gboolean
gtk_accessible_range_set_current_value (GtkAccessibleRange *self, double value)
{
g_return_val_if_fail (GTK_IS_ACCESSIBLE_RANGE (self), FALSE);
GtkAccessibleRangeInterface *iface = GTK_ACCESSIBLE_RANGE_GET_IFACE (self);
return iface->set_current_value (self, value);
}