Home | History | Annotate | Download | only in xkbcomp
      1 /************************************************************
      2  * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
      3  *
      4  * Permission to use, copy, modify, and distribute this
      5  * software and its documentation for any purpose and without
      6  * fee is hereby granted, provided that the above copyright
      7  * notice appear in all copies and that both that copyright
      8  * notice and this permission notice appear in supporting
      9  * documentation, and that the name of Silicon Graphics not be
     10  * used in advertising or publicity pertaining to distribution
     11  * of the software without specific prior written permission.
     12  * Silicon Graphics makes no representation about the suitability
     13  * of this software for any purpose. It is provided "as is"
     14  * without any express or implied warranty.
     15  *
     16  * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
     17  * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
     18  * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
     19  * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
     20  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
     21  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
     22  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
     23  * THE USE OR PERFORMANCE OF THIS SOFTWARE.
     24  *
     25  ********************************************************/
     26 
     27 #ifndef XKBCOMP_EXPR_H
     28 #define XKBCOMP_EXPR_H
     29 
     30 bool
     31 ExprResolveLhs(struct xkb_context *ctx, const ExprDef *expr,
     32                const char **elem_rtrn, const char **field_rtrn,
     33                ExprDef **index_rtrn);
     34 
     35 bool
     36 ExprResolveModMask(struct xkb_context *ctx, const ExprDef *expr,
     37                    enum mod_type mod_type, const struct xkb_mod_set *mods,
     38                    xkb_mod_mask_t *mask_rtrn);
     39 
     40 bool
     41 ExprResolveMod(struct xkb_context *ctx, const ExprDef *def,
     42                enum mod_type mod_type, const struct xkb_mod_set *mods,
     43                xkb_mod_index_t *ndx_rtrn);
     44 
     45 bool
     46 ExprResolveBoolean(struct xkb_context *ctx, const ExprDef *expr,
     47                    bool *set_rtrn);
     48 
     49 bool
     50 ExprResolveKeyCode(struct xkb_context *ctx, const ExprDef *expr,
     51                    xkb_keycode_t *kc);
     52 
     53 bool
     54 ExprResolveInteger(struct xkb_context *ctx, const ExprDef *expr,
     55                    int *val_rtrn);
     56 
     57 bool
     58 ExprResolveLevel(struct xkb_context *ctx, const ExprDef *expr,
     59                  xkb_level_index_t *level_rtrn);
     60 
     61 bool
     62 ExprResolveGroup(struct xkb_context *ctx, const ExprDef *expr,
     63                  xkb_layout_index_t *group_rtrn);
     64 
     65 bool
     66 ExprResolveButton(struct xkb_context *ctx, const ExprDef *expr,
     67                   int *btn_rtrn);
     68 
     69 bool
     70 ExprResolveString(struct xkb_context *ctx, const ExprDef *expr,
     71                   xkb_atom_t *val_rtrn);
     72 
     73 bool
     74 ExprResolveEnum(struct xkb_context *ctx, const ExprDef *expr,
     75                 unsigned int *val_rtrn, const LookupEntry *values);
     76 
     77 bool
     78 ExprResolveMask(struct xkb_context *ctx, const ExprDef *expr,
     79                 unsigned int *mask_rtrn, const LookupEntry *values);
     80 
     81 bool
     82 ExprResolveKeySym(struct xkb_context *ctx, const ExprDef *expr,
     83                   xkb_keysym_t *sym_rtrn);
     84 
     85 #endif
     86