|
Packit Service |
93d855 |
/*
|
|
Packit Service |
93d855 |
* Copyright (C) 2002-2006 Sergey V. Udaltsov <svu@gnome.org>
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* This library is free software; you can redistribute it and/or
|
|
Packit Service |
93d855 |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit Service |
93d855 |
* License as published by the Free Software Foundation; either
|
|
Packit Service |
93d855 |
* version 2 of the License, or (at your option) any later version.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* This library is distributed in the hope that it will be useful,
|
|
Packit Service |
93d855 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
93d855 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit Service |
93d855 |
* Lesser General Public License for more details.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit Service |
93d855 |
* License along with this library; if not, write to the
|
|
Packit Service |
93d855 |
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
Packit Service |
93d855 |
* Boston, MA 02111-1307, USA.
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
#ifndef __XKL_CONFIG_REC_H__
|
|
Packit Service |
93d855 |
#define __XKL_CONFIG_REC_H__
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
#include <glib-object.h>
|
|
Packit Service |
93d855 |
#include <libxklavier/xkl_engine.h>
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
#ifdef __cplusplus
|
|
Packit Service |
93d855 |
extern "C" {
|
|
Packit Service |
93d855 |
#endif /* __cplusplus */
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* XklConfigRec:
|
|
Packit Service |
93d855 |
* @layouts: (array zero-terminated=1):
|
|
Packit Service |
93d855 |
* @variants: (array zero-terminated=1):
|
|
Packit Service |
93d855 |
* @options: (array zero-terminated=1):
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
typedef struct _XklConfigRec XklConfigRec;
|
|
Packit Service |
93d855 |
typedef struct _XklConfigRecClass XklConfigRecClass;
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
#define XKL_TYPE_CONFIG_REC (xkl_config_rec_get_type ())
|
|
Packit Service |
93d855 |
#define XKL_CONFIG_REC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XKL_TYPE_CONFIG_REC, XklConfigRec))
|
|
Packit Service |
93d855 |
#define XKL_CONFIG_REC_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), XKL_CONFIG_REC, XklConfigRecClass))
|
|
Packit Service |
93d855 |
#define XKL_IS_CONFIG_REC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XKL_TYPE_CONFIG_REC))
|
|
Packit Service |
93d855 |
#define XKL_IS_CONFIG_REC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), XKL_TYPE_CONFIG_REC))
|
|
Packit Service |
93d855 |
#define XKL_CONFIG_REC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XKL_TYPE_CONFIG_REC, XklConfigRecClass))
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/*
|
|
Packit Service |
93d855 |
* Basic configuration params
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
struct _XklConfigRec {
|
|
Packit Service |
93d855 |
/*
|
|
Packit Service |
93d855 |
* The superclass object
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
GObject parent;
|
|
Packit Service |
93d855 |
/*
|
|
Packit Service |
93d855 |
* The keyboard model
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
gchar *model;
|
|
Packit Service |
93d855 |
/*
|
|
Packit Service |
93d855 |
* The array of keyboard layouts
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
gchar **layouts;
|
|
Packit Service |
93d855 |
/*
|
|
Packit Service |
93d855 |
* The array of keyboard layout variants (if any)
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
gchar **variants;
|
|
Packit Service |
93d855 |
/*
|
|
Packit Service |
93d855 |
* The array of keyboard layout options
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
gchar **options;
|
|
Packit Service |
93d855 |
};
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/*
|
|
Packit Service |
93d855 |
* The XklConfigRec class, derived from GObject
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
struct _XklConfigRecClass {
|
|
Packit Service |
93d855 |
/*
|
|
Packit Service |
93d855 |
* The superclass
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
GObjectClass parent_class;
|
|
Packit Service |
93d855 |
};
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_get_type:
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Get type info for XConfigRec
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: GType for XConfigRec
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern GType xkl_config_rec_get_type(void);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_new:
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Create new XklConfigRec
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: new instance
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern XklConfigRec *xkl_config_rec_new(void);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_activate:
|
|
Packit Service |
93d855 |
* @data: valid XKB configuration
|
|
Packit Service |
93d855 |
* @engine: the engine
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Activates some XKB configuration
|
|
Packit Service |
93d855 |
* description. Can be NULL
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: TRUE on success
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern gboolean xkl_config_rec_activate(const XklConfigRec * data,
|
|
Packit Service |
93d855 |
XklEngine * engine);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_get_from_server:
|
|
Packit Service |
93d855 |
* @data: buffer for XKB configuration
|
|
Packit Service |
93d855 |
* @engine: the engine
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Loads the current XKB configuration (from X server)
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: TRUE on success
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern gboolean xkl_config_rec_get_from_server(XklConfigRec * data,
|
|
Packit Service |
93d855 |
XklEngine * engine);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_get_from_backup:
|
|
Packit Service |
93d855 |
* @data: buffer for XKB configuration
|
|
Packit Service |
93d855 |
* @engine: the engine
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Loads the current XKB configuration (from backup)
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: TRUE on success
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern gboolean xkl_config_rec_get_from_backup(XklConfigRec * data,
|
|
Packit Service |
93d855 |
XklEngine * engine);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_write_to_file:
|
|
Packit Service |
93d855 |
* @file_name: name of the file to create
|
|
Packit Service |
93d855 |
* @data: valid XKB configuration
|
|
Packit Service |
93d855 |
* description. Can be NULL
|
|
Packit Service |
93d855 |
* @binary: flag indicating whether the output file should be binary
|
|
Packit Service |
93d855 |
* @engine: the engine
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Writes some XKB configuration into XKM/XKB/... file
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: TRUE on success
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern gboolean xkl_config_rec_write_to_file(XklEngine * engine,
|
|
Packit Service |
93d855 |
const gchar *
|
|
Packit Service |
93d855 |
file_name,
|
|
Packit Service |
93d855 |
const XklConfigRec *
|
|
Packit Service |
93d855 |
data,
|
|
Packit Service |
93d855 |
const gboolean
|
|
Packit Service |
93d855 |
binary);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_get_from_root_window_property:
|
|
Packit Service |
93d855 |
* @rules_atom_name: atom name of the root window property to read
|
|
Packit Service |
93d855 |
* @rules_file_out: pointer to hold the file name
|
|
Packit Service |
93d855 |
* @config_out: buffer to hold the result
|
|
Packit Service |
93d855 |
* @engine: the engine
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Gets the XKB configuration from any root window property
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: TRUE on success
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern gboolean
|
|
Packit Service |
93d855 |
xkl_config_rec_get_from_root_window_property(XklConfigRec *
|
|
Packit Service |
93d855 |
config_out,
|
|
Packit Service |
93d855 |
Atom
|
|
Packit Service |
93d855 |
rules_atom_name,
|
|
Packit Service |
93d855 |
gchar **
|
|
Packit Service |
93d855 |
rules_file_out,
|
|
Packit Service |
93d855 |
XklEngine *
|
|
Packit Service |
93d855 |
engine);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_set_to_root_window_property:
|
|
Packit Service |
93d855 |
* @rules_atom_name: atom name of the root window property to write
|
|
Packit Service |
93d855 |
* @rules_file: rules file name
|
|
Packit Service |
93d855 |
* @config: configuration to save
|
|
Packit Service |
93d855 |
* @engine: the engine
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Saves the XKB configuration into any root window property
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: TRUE on success
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern gboolean xkl_config_rec_set_to_root_window_property(const
|
|
Packit Service |
93d855 |
XklConfigRec
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
config,
|
|
Packit Service |
93d855 |
Atom
|
|
Packit Service |
93d855 |
rules_atom_name,
|
|
Packit Service |
93d855 |
gchar *
|
|
Packit Service |
93d855 |
rules_file,
|
|
Packit Service |
93d855 |
XklEngine
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
engine);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_engine_backup_names_prop:
|
|
Packit Service |
93d855 |
* @engine: the engine
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Backups current XKB configuration into some property -
|
|
Packit Service |
93d855 |
* if this property is not defined yet.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: TRUE on success
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern gboolean xkl_engine_backup_names_prop(XklEngine * engine);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_restore_names_prop:
|
|
Packit Service |
93d855 |
* @engine: the engine
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Restores XKB from the property saved by xkl_backup_names_prop
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: TRUE on success
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern gboolean xkl_restore_names_prop(XklEngine * engine);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_reset:
|
|
Packit Service |
93d855 |
* @data: record to reset
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Resets the record (equal to Destroy and Init)
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern void xkl_config_rec_reset(XklConfigRec * data);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_equals:
|
|
Packit Service |
93d855 |
* @data1: record to compare
|
|
Packit Service |
93d855 |
* @data2: another record
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Compares two records
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Returns: TRUE if records are same
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern gboolean xkl_config_rec_equals(XklConfigRec * data1,
|
|
Packit Service |
93d855 |
XklConfigRec * data2);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_set_layouts:
|
|
Packit Service |
93d855 |
* @data: record to change
|
|
Packit Service |
93d855 |
* @new_layouts: (array zero-terminated=1) (transfer none): zero terminated
|
|
Packit Service |
93d855 |
* list of new layout names.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Sets a new layout list.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Frees the previous layout list. This is primarily useful for bindings, in C
|
|
Packit Service |
93d855 |
* you can manipulate the @layouts record member directly.
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern void xkl_config_rec_set_layouts(XklConfigRec * data,
|
|
Packit Service |
93d855 |
const gchar ** new_layouts);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_set_variants:
|
|
Packit Service |
93d855 |
* @data: record to change
|
|
Packit Service |
93d855 |
* @new_variants: (transfer none) (array zero-terminated=1): zero terminated
|
|
Packit Service |
93d855 |
* list of new variant names.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Sets a new variant list.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Frees the previous variant list. This is primarily useful for bindings, in C
|
|
Packit Service |
93d855 |
* you can manipulate the @variants record member directly.
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern void xkl_config_rec_set_variants(XklConfigRec * data,
|
|
Packit Service |
93d855 |
const gchar ** new_variants);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_set_options:
|
|
Packit Service |
93d855 |
* @data: record to change
|
|
Packit Service |
93d855 |
* @new_options: (transfer none) (array zero-terminated=1): zero terminated
|
|
Packit Service |
93d855 |
* list of new option names.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Sets a new option list.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Frees the previous option list. This is primarily useful for bindings, in C
|
|
Packit Service |
93d855 |
* you can manipulate the @options record member directly.
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern void xkl_config_rec_set_options(XklConfigRec * data,
|
|
Packit Service |
93d855 |
const gchar ** new_options);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
/**
|
|
Packit Service |
93d855 |
* xkl_config_rec_set_model:
|
|
Packit Service |
93d855 |
* @data: record to change
|
|
Packit Service |
93d855 |
* @new_model: (transfer none): new keyboard name.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Sets a new model.
|
|
Packit Service |
93d855 |
*
|
|
Packit Service |
93d855 |
* Frees the previous model. This is primarily useful for bindings, in C
|
|
Packit Service |
93d855 |
* you can manipulate the @model record member directly.
|
|
Packit Service |
93d855 |
*/
|
|
Packit Service |
93d855 |
extern void xkl_config_rec_set_model(XklConfigRec * data,
|
|
Packit Service |
93d855 |
const gchar * new_model);
|
|
Packit Service |
93d855 |
|
|
Packit Service |
93d855 |
#ifdef __cplusplus
|
|
Packit Service |
93d855 |
}
|
|
Packit Service |
93d855 |
#endif /* __cplusplus */
|
|
Packit Service |
93d855 |
#endif
|