Blame libxklavier/xkl_config_rec.h

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