Blame gdk/x11/xsettings-common.h

Packit 98cdb6
/*
Packit 98cdb6
 * Copyright © 2001 Red Hat, Inc.
Packit 98cdb6
 *
Packit 98cdb6
 * Permission to use, copy, modify, distribute, and sell this software and its
Packit 98cdb6
 * documentation for any purpose is hereby granted without fee, provided that
Packit 98cdb6
 * the above copyright notice appear in all copies and that both that
Packit 98cdb6
 * copyright notice and this permission notice appear in supporting
Packit 98cdb6
 * documentation, and that the name of Red Hat not be used in advertising or
Packit 98cdb6
 * publicity pertaining to distribution of the software without specific,
Packit 98cdb6
 * written prior permission.  Red Hat makes no representations about the
Packit 98cdb6
 * suitability of this software for any purpose.  It is provided "as is"
Packit 98cdb6
 * without express or implied warranty.
Packit 98cdb6
 *
Packit 98cdb6
 * RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
Packit 98cdb6
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT
Packit 98cdb6
 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
Packit 98cdb6
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
Packit 98cdb6
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
Packit 98cdb6
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Packit 98cdb6
 *
Packit 98cdb6
 * Author:  Owen Taylor, Red Hat, Inc.
Packit 98cdb6
 */
Packit 98cdb6
#ifndef XSETTINGS_COMMON_H
Packit 98cdb6
#define XSETTINGS_COMMON_H
Packit 98cdb6
Packit 98cdb6
#ifdef __cplusplus
Packit 98cdb6
extern "C" {
Packit 98cdb6
#endif /* __cplusplus */
Packit 98cdb6
Packit 98cdb6
/* Renames for GDK inclusion */
Packit 98cdb6
Packit 98cdb6
#define xsettings_byte_order             _gdk_xsettings_byte_order
Packit 98cdb6
#define xsettings_client_destroy         _gdk_xsettings_client_destroy
Packit 98cdb6
#define xsettings_client_get_setting     _gdk_xsettings_client_get_setting
Packit 98cdb6
#define xsettings_client_new             _gdk_xsettings_client_new
Packit 98cdb6
#define xsettings_client_new_with_grab_funcs _gdk_xsettings_client_new_with_grab_funcs
Packit 98cdb6
#define xsettings_client_set_grab_func   _gdk_xsettings_client_set_grab_func
Packit 98cdb6
#define xsettings_client_set_ungrab_func _gdk_xsettings_client_set_ungrab_func
Packit 98cdb6
#define xsettings_client_process_event   _gdk_xsettings_client_process_event
Packit 98cdb6
#define xsettings_list_copy              _gdk_xsettings_list_copy
Packit 98cdb6
#define xsettings_list_delete            _gdk_xsettings_list_delete
Packit 98cdb6
#define xsettings_list_free              _gdk_xsettings_list_free
Packit 98cdb6
#define xsettings_list_insert            _gdk_xsettings_list_insert
Packit 98cdb6
#define xsettings_list_lookup            _gdk_xsettings_list_lookup
Packit 98cdb6
#define xsettings_setting_copy           _gdk_xsettings_setting_copy
Packit 98cdb6
#define xsettings_setting_equal          _gdk_xsettings_setting_equal
Packit 98cdb6
#define xsettings_setting_free           _gdk_xsettings_setting_free
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
typedef struct _XSettingsBuffer  XSettingsBuffer;
Packit 98cdb6
typedef struct _XSettingsColor   XSettingsColor;
Packit 98cdb6
typedef struct _XSettingsList    XSettingsList;
Packit 98cdb6
typedef struct _XSettingsSetting XSettingsSetting;
Packit 98cdb6
Packit 98cdb6
/* Types of settings possible. Enum values correspond to
Packit 98cdb6
 * protocol values.
Packit 98cdb6
 */
Packit 98cdb6
typedef enum 
Packit 98cdb6
{
Packit 98cdb6
  XSETTINGS_TYPE_INT     = 0,
Packit 98cdb6
  XSETTINGS_TYPE_STRING  = 1,
Packit 98cdb6
  XSETTINGS_TYPE_COLOR   = 2
Packit 98cdb6
} XSettingsType;
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  XSETTINGS_SUCCESS,
Packit 98cdb6
  XSETTINGS_NO_MEM,
Packit 98cdb6
  XSETTINGS_ACCESS,
Packit 98cdb6
  XSETTINGS_FAILED,
Packit 98cdb6
  XSETTINGS_NO_ENTRY,
Packit 98cdb6
  XSETTINGS_DUPLICATE_ENTRY
Packit 98cdb6
} XSettingsResult;
Packit 98cdb6
Packit 98cdb6
struct _XSettingsBuffer
Packit 98cdb6
{
Packit 98cdb6
  char byte_order;
Packit 98cdb6
  size_t len;
Packit 98cdb6
  unsigned char *data;
Packit 98cdb6
  unsigned char *pos;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _XSettingsColor
Packit 98cdb6
{
Packit 98cdb6
  unsigned short red, green, blue, alpha;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _XSettingsList
Packit 98cdb6
{
Packit 98cdb6
  XSettingsSetting *setting;
Packit 98cdb6
  XSettingsList *next;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _XSettingsSetting
Packit 98cdb6
{
Packit 98cdb6
  char *name;
Packit 98cdb6
  XSettingsType type;
Packit 98cdb6
  
Packit 98cdb6
  union {
Packit 98cdb6
    int v_int;
Packit 98cdb6
    char *v_string;
Packit 98cdb6
    XSettingsColor v_color;
Packit 98cdb6
  } data;
Packit 98cdb6
Packit 98cdb6
  unsigned long last_change_serial;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
XSettingsSetting *xsettings_setting_copy  (XSettingsSetting *setting);
Packit 98cdb6
void              xsettings_setting_free  (XSettingsSetting *setting);
Packit 98cdb6
int               xsettings_setting_equal (XSettingsSetting *setting_a,
Packit 98cdb6
					   XSettingsSetting *setting_b);
Packit 98cdb6
Packit 98cdb6
void              xsettings_list_free   (XSettingsList     *list);
Packit 98cdb6
XSettingsList    *xsettings_list_copy   (XSettingsList     *list);
Packit 98cdb6
XSettingsResult   xsettings_list_insert (XSettingsList    **list,
Packit 98cdb6
					 XSettingsSetting  *setting);
Packit 98cdb6
XSettingsSetting *xsettings_list_lookup (XSettingsList     *list,
Packit 98cdb6
					 const char        *name);
Packit 98cdb6
XSettingsResult   xsettings_list_delete (XSettingsList    **list,
Packit 98cdb6
					 const char        *name);
Packit 98cdb6
Packit 98cdb6
char xsettings_byte_order (void);
Packit 98cdb6
Packit 98cdb6
#define XSETTINGS_PAD(n,m) ((n + m - 1) & (~(m-1)))
Packit 98cdb6
Packit 98cdb6
#ifdef __cplusplus
Packit 98cdb6
}
Packit 98cdb6
#endif /* __cplusplus */
Packit 98cdb6
Packit 98cdb6
#endif /* XSETTINGS_COMMON_H */