mutter/src/core/meta-tablet-action-mapper.h
Peter Hutterer 6c77af1493 core: Add a MetaTabletActionMapper as parent of the MetaPadActionMapper
This is prep work for using the same functionality for tablet tools as
well. The new MetaTabletActionMapper takes care of the event bubbling
via the device-added/removed and input-event signals and provides the
helper functions to cycle outputs and/or emulate keybindings.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3649>
2024-07-16 09:33:29 +00:00

52 lines
1.8 KiB
C

/*
* Copyright (C) 2024 Red Hat
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*
* Written by:
* Carlos Garnacho <carlosg@gnome.org>
*/
#pragma once
#include "clutter/clutter.h"
#include "meta/display.h"
#include "meta/meta-monitor-manager.h"
#define META_TYPE_TABLET_ACTION_MAPPER (meta_tablet_action_mapper_get_type ())
G_DECLARE_DERIVABLE_TYPE (MetaTabletActionMapper, meta_tablet_action_mapper,
META, TABLET_ACTION_MAPPER, GObject)
typedef struct _MetaTabletActionMapperPrivate MetaTabletActionMapperPrivate;
/**
* MetaTabletActionMapperClass:
*/
struct _MetaTabletActionMapperClass
{
/*< private >*/
GObjectClass parent_class;
/*< private >*/
MetaDisplay * (* get_display) (MetaTabletActionMapper *mapper);
void (* emulate_keybinding) (MetaTabletActionMapper *mapper,
const char *accel,
gboolean is_press);
void (*cycle_tablet_output) (MetaTabletActionMapper *mapper,
ClutterInputDevice *device);
};
gboolean meta_tablet_action_mapper_handle_event (MetaTabletActionMapper *mapper,
const ClutterEvent *event);