home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / evbl0627.zip / everblue_20010627.zip / x11 / Xom_Wrap.c < prev    next >
C/C++ Source or Header  |  1999-11-02  |  4KB  |  171 lines

  1. /* $XConsortium: OMWrap.c /main/3 1996/01/05 11:22:34 kaleb $ */
  2. /*
  3.  * Copyright 1992, 1993 by TOSHIBA Corp.
  4.  *
  5.  * Permission to use, copy, modify, and distribute this software and its
  6.  * documentation for any purpose and without fee is hereby granted, provided
  7.  * that the above copyright notice appear in all copies and that both that
  8.  * copyright notice and this permission notice appear in supporting
  9.  * documentation, and that the name of TOSHIBA not be used in advertising
  10.  * or publicity pertaining to distribution of the software without specific,
  11.  * written prior permission. TOSHIBA make no representations about the
  12.  * suitability of this software for any purpose.  It is provided "as is"
  13.  * without express or implied warranty.
  14.  *
  15.  * TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  16.  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  17.  * TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  18.  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  19.  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  20.  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  21.  * SOFTWARE.
  22.  *
  23.  * Author: Katsuhisa Yano    TOSHIBA Corp.
  24.  *                   mopi@osa.ilab.toshiba.co.jp
  25.  */
  26.  
  27. #include "Xlib_private.h"
  28. #include "Xlcint.h"
  29.  
  30. XOM
  31. #if NeedFunctionPrototypes
  32. XOpenOM(Display *dpy, XrmDatabase rdb, _Xconst char *res_name,
  33.     _Xconst char *res_class)
  34. #else
  35. XOpenOM(dpy, rdb, res_name, res_class)
  36.     Display *dpy;
  37.     XrmDatabase rdb;
  38.     char *res_name;
  39.     char *res_class;
  40. #endif
  41. {
  42.     DBUG_ENTER("XOpenOM")
  43.     XLCd lcd = _XOpenLC((char *) NULL);
  44.  
  45.     if (lcd == NULL) {
  46. #ifdef DEBUG
  47.     fprintf(stderr,"XOpenOM: _XOpenLC failed!\n");
  48. #endif
  49.     DBUG_RETURN((XOM) NULL);
  50.     }
  51.     if (lcd->methods->open_om) {
  52.     XOM result = (*lcd->methods->open_om)(lcd, dpy, rdb, res_name, res_class);
  53.     DBUG_RETURN(result);
  54.     }
  55.  
  56. #ifdef DEBUG
  57.     fprintf(stderr,"XOpenOM: missing open_om method!\n");
  58. #endif
  59.     DBUG_RETURN((XOM) NULL);
  60. }
  61.  
  62. Status
  63. XCloseOM(om)
  64.     XOM om;
  65. {
  66.     DBUG_ENTER("XCloseOM")
  67.     XOC oc, next;
  68.     XLCd lcd = om->core.lcd;
  69.     Status result;
  70.  
  71.     next = om->core.oc_list;
  72.  
  73.     while (oc = next) {
  74.     next = oc->core.next;
  75.     (*oc->methods->destroy)(oc);
  76.     }
  77.  
  78.     om->core.oc_list = NULL;
  79.  
  80.     _XCloseLC(lcd);
  81.  
  82.     result = (*om->methods->close)(om);
  83.     DBUG_RETURN(result);
  84. }
  85.  
  86. #if NeedVarargsPrototypes
  87. char *
  88. XSetOMValues(XOM om, ...)
  89. #else
  90. char *
  91. XSetOMValues(om, va_alist)
  92.     XOM om;
  93.     va_dcl
  94. #endif
  95. {
  96.     DBUG_ENTER("XSetOMValues")
  97.     va_list var;
  98.     XlcArgList args;
  99.     char *ret;
  100.     int num_args;
  101.  
  102.     Va_start(var, om);
  103.     _XlcCountVaList(var, &num_args);
  104.     va_end(var);
  105.  
  106.     Va_start(var, om);
  107.     _XlcVaToArgList(var, num_args, &args);
  108.     va_end(var);
  109.  
  110.     if (args == (XlcArgList) NULL)
  111.     DBUG_RETURN((char *) NULL);
  112.  
  113.     ret = (*om->methods->set_values)(om, args, num_args);
  114.  
  115.     Xfree(args);
  116.  
  117.     DBUG_RETURN(ret);
  118. }
  119.  
  120. #if NeedVarargsPrototypes
  121. char *
  122. XGetOMValues(XOM om, ...)
  123. #else
  124. char *
  125. XGetOMValues(om, va_alist)
  126.     XOM om;
  127.     va_dcl
  128. #endif
  129. {
  130.     DBUG_ENTER("XGetOMValues")
  131.     va_list var;
  132.     XlcArgList args;
  133.     char *ret;
  134.     int num_args;
  135.  
  136.     Va_start(var, om);
  137.     _XlcCountVaList(var, &num_args);
  138.     va_end(var);
  139.  
  140.     Va_start(var, om);
  141.     _XlcVaToArgList(var, num_args, &args);
  142.     va_end(var);
  143.  
  144.     if (args == (XlcArgList) NULL)
  145.     DBUG_RETURN((char *) NULL);
  146.     
  147.     ret = (*om->methods->get_values)(om, args, num_args);
  148.  
  149.     Xfree(args);
  150.  
  151.     DBUG_RETURN(ret);
  152. }
  153.  
  154. Display *
  155. XDisplayOfOM(om)
  156.     XOM om;
  157. {
  158.     DBUG_ENTER("XDisplayOfOM")
  159.     Display *result = om->core.display;
  160.     DBUG_RETURN(result);
  161. }
  162.  
  163. char *
  164. XLocaleOfOM(om)
  165.     XOM om;
  166. {
  167.     DBUG_ENTER("XLocaleOfOM")
  168.     char *result = om->core.lcd->core->name;
  169.     DBUG_RETURN(result);
  170. }
  171.