indicators.h revision c82dfdfb
1f46a6179Smrg/************************************************************
2f46a6179Smrg Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
3f46a6179Smrg
4f46a6179Smrg Permission to use, copy, modify, and distribute this
5f46a6179Smrg software and its documentation for any purpose and without
6f46a6179Smrg fee is hereby granted, provided that the above copyright
7f46a6179Smrg notice appear in all copies and that both that copyright
8f46a6179Smrg notice and this permission notice appear in supporting
9f46a6179Smrg documentation, and that the name of Silicon Graphics not be
10f46a6179Smrg used in advertising or publicity pertaining to distribution
11f46a6179Smrg of the software without specific prior written permission.
12f46a6179Smrg Silicon Graphics makes no representation about the suitability
13f46a6179Smrg of this software for any purpose. It is provided "as is"
14f46a6179Smrg without any express or implied warranty.
15f46a6179Smrg
16f46a6179Smrg SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
17f46a6179Smrg SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
18f46a6179Smrg AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
19f46a6179Smrg GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
20f46a6179Smrg DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
21f46a6179Smrg DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
22f46a6179Smrg OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
23f46a6179Smrg THE USE OR PERFORMANCE OF THIS SOFTWARE.
24f46a6179Smrg
25f46a6179Smrg ********************************************************/
26f46a6179Smrg
27f46a6179Smrg#ifndef INDICATORS_H
28f46a6179Smrg#define INDICATORS_H 1
29f46a6179Smrg
30f46a6179Smrg#define	_LED_Index	(1<<0)
31f46a6179Smrg#define	_LED_Mods	(1<<1)
32f46a6179Smrg#define	_LED_Groups	(1<<2)
33f46a6179Smrg#define	_LED_Ctrls	(1<<3)
34f46a6179Smrg#define	_LED_Explicit	(1<<4)
35f46a6179Smrg#define	_LED_Automatic	(1<<5)
36f46a6179Smrg#define	_LED_DrivesKbd	(1<<6)
37f46a6179Smrg
38f46a6179Smrg#define	_LED_NotBound	255
39f46a6179Smrg
4034345a63Smrgtypedef struct _LEDInfo
4134345a63Smrg{
4234345a63Smrg    CommonInfo defs;
4334345a63Smrg    Atom name;
4434345a63Smrg    unsigned char indicator;
4534345a63Smrg    unsigned char flags;
4634345a63Smrg    unsigned char which_mods;
4734345a63Smrg    unsigned char real_mods;
4834345a63Smrg    unsigned short vmods;
4934345a63Smrg    unsigned char which_groups;
5034345a63Smrg    unsigned char groups;
5134345a63Smrg    unsigned int ctrls;
52f46a6179Smrg} LEDInfo;
53f46a6179Smrg
5434345a63Smrgextern void ClearIndicatorMapInfo(Display * /* dpy */ ,
5534345a63Smrg                                  LEDInfo *     /* info */
5634345a63Smrg    );
57f46a6179Smrg
58f46a6179Smrg
5934345a63Smrgextern LEDInfo *AddIndicatorMap(LEDInfo * /* oldLEDs */ ,
6034345a63Smrg                                LEDInfo *       /* newLED */
6134345a63Smrg    );
62f46a6179Smrg
6334345a63Smrgextern int SetIndicatorMapField(LEDInfo * /* led */ ,
6434345a63Smrg                                XkbDescPtr /* xkb */ ,
65c82dfdfbSmrg                                const char * /* field */ ,
6634345a63Smrg                                ExprDef * /* arrayNdx */ ,
6734345a63Smrg                                ExprDef *       /* value */
6834345a63Smrg    );
69f46a6179Smrg
7034345a63Smrgextern LEDInfo *HandleIndicatorMapDef(IndicatorMapDef * /* stmt */ ,
7134345a63Smrg                                      XkbDescPtr /* xkb */ ,
7234345a63Smrg                                      LEDInfo * /* dflt */ ,
7334345a63Smrg                                      LEDInfo * /* oldLEDs */ ,
7434345a63Smrg                                      unsigned  /* mergeMode */
7534345a63Smrg    );
76f46a6179Smrg
7734345a63Smrgextern Bool CopyIndicatorMapDefs(XkbFileInfo * /* result */ ,
7834345a63Smrg                                 LEDInfo * /* leds */ ,
7934345a63Smrg                                 LEDInfo **     /* unboundRtrn */
8034345a63Smrg    );
81f46a6179Smrg
8234345a63Smrgextern Bool BindIndicators(XkbFileInfo * /* result */ ,
8334345a63Smrg                           Bool /* force */ ,
8434345a63Smrg                           LEDInfo * /* unbound */ ,
8534345a63Smrg                           LEDInfo **   /* unboundRtrn */
8634345a63Smrg    );
87f46a6179Smrg
88f46a6179Smrg#endif /* INDICATORS_H */
89