|
Packit Service |
1d8f1c |
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
|
|
Packit Service |
1d8f1c |
/* vim:set et sts=4: */
|
|
Packit Service |
1d8f1c |
/* IBus - The Input Bus
|
|
Packit Service |
1d8f1c |
* Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
|
|
Packit Service |
1d8f1c |
* Copyright (C) 2008-2010 Red Hat, Inc.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* This library is free software; you can redistribute it and/or
|
|
Packit Service |
1d8f1c |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit Service |
1d8f1c |
* License as published by the Free Software Foundation; either
|
|
Packit Service |
1d8f1c |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* This library is distributed in the hope that it will be useful,
|
|
Packit Service |
1d8f1c |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
1d8f1c |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit Service |
1d8f1c |
* Lesser General Public License for more details.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit Service |
1d8f1c |
* License along with this library; if not, write to the Free Software
|
|
Packit Service |
1d8f1c |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
|
|
Packit Service |
1d8f1c |
* USA
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
#if !defined (__IBUS_H_INSIDE__) && !defined (IBUS_COMPILATION)
|
|
Packit Service |
1d8f1c |
#error "Only <ibus.h> can be included directly"
|
|
Packit Service |
1d8f1c |
#endif
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
#ifndef __IBUS_KEYMAP_H_
|
|
Packit Service |
1d8f1c |
#define __IBUS_KEYMAP_H_
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* SECTION: ibuskeymap
|
|
Packit Service |
1d8f1c |
* @short_description: Keyboard mapping handling.
|
|
Packit Service |
1d8f1c |
* @title: IBusKeymap
|
|
Packit Service |
1d8f1c |
* @stability: Stable
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* An IBusKeymap defines the mapping between keyboard scancodes and
|
|
Packit Service |
1d8f1c |
* keyboard symbols such as numbers, alphabets, and punctuation marks.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* Some input methods assume certain keyboard layout
|
|
Packit Service |
1d8f1c |
* (such as Chewing and Wubi requires an US-QWERTY layout),
|
|
Packit Service |
1d8f1c |
* and expect key symbols to be arranged in that order.
|
|
Packit Service |
1d8f1c |
* These input methods should new an IBusKeymap
|
|
Packit Service |
1d8f1c |
* instance and define the keyboard layout.
|
|
Packit Service |
1d8f1c |
* Then ibus_keymap_lookup_keysym() can
|
|
Packit Service |
1d8f1c |
* convert scancodes back to the key symbols.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* see_also: #IBusComponent, #IBusEngineDesc
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
#include "ibusobject.h"
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/*
|
|
Packit Service |
1d8f1c |
* Type macros.
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
/* define IBusKeymap macros */
|
|
Packit Service |
1d8f1c |
#define IBUS_TYPE_KEYMAP \
|
|
Packit Service |
1d8f1c |
(ibus_keymap_get_type ())
|
|
Packit Service |
1d8f1c |
#define IBUS_KEYMAP(obj) \
|
|
Packit Service |
1d8f1c |
(G_TYPE_CHECK_INSTANCE_CAST ((obj), IBUS_TYPE_KEYMAP, IBusKeymap))
|
|
Packit Service |
1d8f1c |
#define IBUS_KEYMAP_CLASS(klass) \
|
|
Packit Service |
1d8f1c |
(G_TYPE_CHECK_CLASS_CAST ((klass), IBUS_TYPE_KEYMAP, IBusKeymapClass))
|
|
Packit Service |
1d8f1c |
#define IBUS_IS_KEYMAP(obj) \
|
|
Packit Service |
1d8f1c |
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), IBUS_TYPE_KEYMAP))
|
|
Packit Service |
1d8f1c |
#define IBUS_IS_KEYMAP_CLASS(klass) \
|
|
Packit Service |
1d8f1c |
(G_TYPE_CHECK_CLASS_TYPE ((klass), IBUS_TYPE_KEYMAP))
|
|
Packit Service |
1d8f1c |
#define IBUS_KEYMAP_GET_CLASS(obj) \
|
|
Packit Service |
1d8f1c |
(G_TYPE_INSTANCE_GET_CLASS ((obj), IBUS_TYPE_KEYMAP, IBusKeymapClass))
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
G_BEGIN_DECLS
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
typedef struct _IBusKeymap IBusKeymap;
|
|
Packit Service |
1d8f1c |
typedef struct _IBusKeymapClass IBusKeymapClass;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* KEYMAP:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* Data structure for storing keymap.
|
|
Packit Service |
1d8f1c |
* keymap[.][i]
|
|
Packit Service |
1d8f1c |
* i:
|
|
Packit Service |
1d8f1c |
* 0 - without modifer
|
|
Packit Service |
1d8f1c |
* 1 - shift
|
|
Packit Service |
1d8f1c |
* 2 - caplock
|
|
Packit Service |
1d8f1c |
* 3 - shift caplock
|
|
Packit Service |
1d8f1c |
* 4 - altgr
|
|
Packit Service |
1d8f1c |
* 5 - shift altgr
|
|
Packit Service |
1d8f1c |
* 6 - numlock
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
/* typedef guint KEYMAP[256][7]; */
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusKeymap:
|
|
Packit Service |
1d8f1c |
* @name: The name of the keymap, such as 'us', 'jp'.
|
|
Packit Service |
1d8f1c |
* @keymap: Keymap table. IME developers normally don have to touch this.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* A keymap object in IBus.
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
struct _IBusKeymap {
|
|
Packit Service |
1d8f1c |
/*< private >*/
|
|
Packit Service |
1d8f1c |
IBusObject parent;
|
|
Packit Service |
1d8f1c |
/* members */
|
|
Packit Service |
1d8f1c |
/*< public >*/
|
|
Packit Service |
1d8f1c |
gchar *name;
|
|
Packit Service |
1d8f1c |
guint keymap[256][7];
|
|
Packit Service |
1d8f1c |
};
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
struct _IBusKeymapClass {
|
|
Packit Service |
1d8f1c |
IBusObjectClass parent;
|
|
Packit Service |
1d8f1c |
};
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
GType ibus_keymap_get_type (void);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* ibus_keymap_new:
|
|
Packit Service |
1d8f1c |
* @name: The keymap file to be loaded, such as 'us', 'jp'.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* Get an #IBusKeymap associated with the giving name.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* This function loads the keymap file specified in @name
|
|
Packit Service |
1d8f1c |
* in the IBUS_DATA_DIR/keymaps directory.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* Returns: An #IBusKeymap associated with the giving name; or %NULL if failed.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* Deprecated: This function has been deprecated and should
|
|
Packit Service |
1d8f1c |
* not be used in newly written code. Please use ibus_keymap_get().
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
IBusKeymap *ibus_keymap_new (const gchar *name)
|
|
Packit Service |
1d8f1c |
G_GNUC_DEPRECATED;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* ibus_keymap_get:
|
|
Packit Service |
1d8f1c |
* @name: The keymap file to be loaded, such as 'us', 'jp'.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* Get an IBusKeymap associated with the giving name.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* This function loads the keymap file specified in @name
|
|
Packit Service |
1d8f1c |
* in the IBUS_DATA_DIR/keymaps directory.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* Returns: (transfer full): An #IBusKeymap associated with the giving name;
|
|
Packit Service |
1d8f1c |
* or %NULL if failed.
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
IBusKeymap *ibus_keymap_get (const gchar *name);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* ibus_keymap_lookup_keysym:
|
|
Packit Service |
1d8f1c |
* @keymap: An IBusKeymap.
|
|
Packit Service |
1d8f1c |
* @keycode: A scancode to be converted.
|
|
Packit Service |
1d8f1c |
* @state: Modifier flags(such as Ctrl, Shift).
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* Converts the scancode to keysym, given the keymap.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* Returns: Corresponding keysym.
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
guint ibus_keymap_lookup_keysym (IBusKeymap *keymap,
|
|
Packit Service |
1d8f1c |
guint16 keycode,
|
|
Packit Service |
1d8f1c |
guint32 state);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
G_END_DECLS
|
|
Packit Service |
1d8f1c |
#endif
|
|
Packit Service |
1d8f1c |
|