This commit includes all the changes that seem to be necessary for CcKeyboardItem to be used for dealing with multiple keybindings, without (yet) changing the user interface to expose this. The `primary_combo` and `binding` fields of `CcKeyboardItem` are removed, in favor of the existing `key_combos`. No combination is "primary", since all of them can now be seen and changed equally. We treat `CcKeyboardItem.key_combos` as a set, that a combo can be added to or removed from. Though it continues to be represented as a `GList`, instead of a `GHashTable`, to preserve ordering. A lot of the keyboard panel code relied on the assumption that only one combo can be set for each setting, so this required a variety of miscellaneous changes.
54 lines
2.2 KiB
C
54 lines
2.2 KiB
C
/*
|
|
* Copyright (C) 2010 Intel, Inc
|
|
* Copyright (C) 2016 Endless, Inc
|
|
*
|
|
* 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/>.
|
|
*
|
|
* Author: Thomas Wood <thomas.wood@intel.com>
|
|
* Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <glib-object.h>
|
|
|
|
#include "cc-keyboard-item.h"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define CC_TYPE_KEYBOARD_MANAGER (cc_keyboard_manager_get_type ())
|
|
G_DECLARE_FINAL_TYPE (CcKeyboardManager, cc_keyboard_manager, CC, KEYBOARD_MANAGER, GObject)
|
|
|
|
CcKeyboardManager* cc_keyboard_manager_new (void);
|
|
|
|
void cc_keyboard_manager_load_shortcuts (CcKeyboardManager *self);
|
|
|
|
CcKeyboardItem* cc_keyboard_manager_create_custom_shortcut (CcKeyboardManager *self);
|
|
|
|
void cc_keyboard_manager_add_custom_shortcut (CcKeyboardManager *self,
|
|
CcKeyboardItem *item);
|
|
|
|
void cc_keyboard_manager_remove_custom_shortcut (CcKeyboardManager *self,
|
|
CcKeyboardItem *item);
|
|
|
|
CcKeyboardItem* cc_keyboard_manager_get_collision (CcKeyboardManager *self,
|
|
CcKeyboardItem *item,
|
|
CcKeyCombo *combo);
|
|
|
|
void cc_keyboard_manager_reset_shortcut (CcKeyboardManager *self,
|
|
CcKeyboardItem *item);
|
|
|
|
G_END_DECLS
|
|
|