Class
GtkPadController
Description [src]
final class Gtk.PadController : Gtk.EventController
{
/* No available fields */
}
GtkPadController
is an event controller for the pads found in drawing
tablets (The collection of buttons and tactile sensors often found around
the stylus-sensitive area).
These buttons and sensors have no implicit meaning, and by default they
perform no action, this event controller is provided to map those to
GAction
objects, thus letting the application give those a more semantic meaning.
Buttons and sensors are not constrained to triggering a single action, some
GDK_SOURCE_TABLET_PAD
devices feature multiple “modes”, all these input
elements have one current mode, which may determine the final action
being triggered. Pad devices often divide buttons and sensors into groups,
all elements in a group share the same current mode, but different groups
may have different modes. See gdk_device_pad_get_n_groups()
and gdk_device_pad_get_group_n_modes().
Each of the actions that a given button/strip/ring performs for a given
mode is defined by GtkPadActionEntry
, it contains an action name that
will be looked up in the given GActionGroup
and activated whenever the
specified input element and mode are triggered.
A simple example of GtkPadController
usage, assigning button 1 in all
modes and pad devices to an “invert-selection” action:
GtkPadActionEntry *pad_actions[] = {
{ GTK_PAD_ACTION_BUTTON, 1, -1, "Invert selection", "pad-actions.invert-selection" },
…
};
…
action_group = g_simple_action_group_new ();
action = g_simple_action_new ("pad-actions.invert-selection", NULL);
g_signal_connect (action, "activate", on_invert_selection_activated, NULL);
g_action_map_add_action (G_ACTION_MAP (action_group), action);
…
pad_controller = gtk_pad_controller_new (window, action_group, NULL);
The actions belonging to rings/strips will be activated with a parameter
of type G_VARIANT_TYPE_DOUBLE
bearing the value of the given axis, it
is required that those are made stateful and accepting this GVariantType
.
Constructors
gtk_pad_controller_new
Creates a new GtkPadController
that will associate events from pad
to
actions. A NULL
pad may be provided so the controller manages all pad devices
generically, it is discouraged to mix GtkPadController
objects with NULL
and non-NULL
pad
argument on the same window
, as execution order is not guaranteed.
since: 3.22
Instance methods
gtk_pad_controller_set_action
Adds an individual action to controller
. This action will only be activated
if the given button/ring/strip number in index
is interacted while
the current mode is mode
. -1 may be used for simple cases, so the action
is triggered on all modes.
since: 3.22
gtk_pad_controller_set_action_entries
This is a convenience function to add a group of action entries on
controller
. See GtkPadActionEntry
and gtk_pad_controller_set_action().
since: 3.22
Methods inherited from GtkEventController (5)
gtk_event_controller_get_propagation_phase
Gets the propagation phase at which controller
handles events.
since: 3.14
gtk_event_controller_get_widget
Returns the GtkWidget
this controller relates to.
since: 3.14
gtk_event_controller_handle_event
Feeds an events into controller
, so it can be interpreted
and the controller actions triggered.
since: 3.14
gtk_event_controller_reset
Resets the controller
to a clean state. Every interaction
the controller did through GtkEventController::handle-event
will be dropped at this point.
since: 3.14
gtk_event_controller_set_propagation_phase
Sets the propagation phase at which a controller handles events.
since: 3.14
Properties
Properties inherited from GtkEventController (2)
Gtk.EventController:propagation-phase
The propagation phase at which this controller will handle events.
since: 3.14
Gtk.EventController:widget
The widget receiving the GdkEvents
that the controller will handle.
since: 3.14
Signals
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.