Class
Gtk.PadController
Description [src]
final class Gtk.PadController : Gtk.EventController {
/* No available fields */
}
GtkPadController
is an event controller for the pads found in drawing tablets.
Pads are 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. GtkPadController
is provided to map those to
GAction
objects, thus letting the application give them 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.DevicePad.get_n_groups and Gdk.DevicePad.get_group_n_modes.
Each of the actions that a given button/strip/ring performs for a given
mode is defined by a 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 (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.
Instance methods
gtk_pad_controller_set_action
Adds an individual action to controller
.
gtk_pad_controller_set_action_entries
A convenience function to add a group of action entries on
controller
.
Methods inherited from GtkEventController (12)
gtk_event_controller_get_current_event
Returns the event that is currently being handled by the
controller, and NULL
at other times.
gtk_event_controller_get_current_event_device
Returns the device of the event that is currently being
handled by the controller, and NULL
otherwise.
gtk_event_controller_get_current_event_state
Returns the modifier state of the event that is currently being handled by the controller, and 0 otherwise.
gtk_event_controller_get_current_event_time
Returns the timestamp of the event that is currently being handled by the controller, and 0 otherwise.
gtk_event_controller_get_name
Gets the name of controller
.
gtk_event_controller_get_propagation_limit
Gets the propagation limit of the event controller.
gtk_event_controller_get_propagation_phase
Gets the propagation phase at which controller
handles events.
gtk_event_controller_get_widget
Returns the GtkWidget
this controller relates to.
gtk_event_controller_reset
Resets the controller
to a clean state.
gtk_event_controller_set_name
Sets a name on the controller that can be used for debugging.
gtk_event_controller_set_propagation_limit
Sets the event propagation limit on the event controller.
gtk_event_controller_set_propagation_phase
Sets the propagation phase at which a controller handles events.
Properties
Gtk.PadController:action-group
Gtk.PadController:pad
Properties inherited from GtkEventController (4)
Gtk.EventController:name
The name for this controller, typically used for debugging purposes.
Gtk.EventController:propagation-limit
The limit for which events this controller will handle.
Gtk.EventController:propagation-phase
The propagation phase at which this controller will handle events.
Gtk.EventController:widget
The widget receiving the GdkEvents
that the controller will handle.