1 ;;; x-misc.el --- miscellaneous X functions.
3 ;; Copyright (C) 1997 Free Software Foundation, Inc.
4 ;; Copyright (C) 1995 Sun Microsystems.
5 ;; Copyright (C) 1995, 1996 Ben Wing.
7 ;; Author: Ben Wing <ben@xemacs.org>
8 ;; Maintainer: XEmacs Development Team
9 ;; Keywords: extensions, dumped
11 ;; This file is part of XEmacs.
13 ;; XEmacs is free software; you can redistribute it and/or modify it
14 ;; under the terms of the GNU General Public License as published by
15 ;; the Free Software Foundation; either version 2, or (at your option)
18 ;; XEmacs is distributed in the hope that it will be useful, but
19 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 ;; General Public License for more details.
23 ;; You should have received a copy of the GNU General Public License
24 ;; along with XEmacs; see the file COPYING. If not, write to the
25 ;; Free Software Foundation, 59 Temple Place - Suite 330,
26 ;; Boston, MA 02111-1307, USA.
30 ;; This file is dumped with XEmacs (when X support is compiled in).
34 (defun x-bogosity-check-resource (name class type)
35 "Check for a bogus resource specification."
36 (let ((bogus (x-get-resource
37 (concat "__no-such-friggin-locale__." name)
38 (concat "__No-such-friggin-widget__." class)
43 (format "Bad resource specification encountered: something like
45 You should replace the * with a . in order to get proper behavior when
46 you use the specifier and/or `set-face-*' functions." name bogus)))))
48 (defun x-init-specifier-from-resources (specifier type locale
50 "Initialize a specifier from the resource database.
51 LOCALE specifies the locale that is to be initialized and should be
52 a frame, a device, or 'global. TYPE is the type of the resource and
53 should be one of 'string, 'boolean, 'integer, or 'natnum. The
54 remaining args should be conses of names and classes of resources
55 to be examined. The first resource with a value specified becomes
56 the spec for SPECIFIER in LOCALE. (However, if SPECIFIER already
57 has a spec in LOCALE, nothing is done.) Finally, if LOCALE is 'global,
58 a check is done for bogus resource specifications."
59 (if (eq locale 'global)
61 (x-bogosity-check-resource (car x) (cdr x) type))
63 (if (not (specifier-spec-list specifier locale))
66 (let* ((name (caar resource-list))
67 (class (cdar resource-list))
69 (x-get-resource name class type locale nil 'warn)))
72 (add-spec-to-specifier specifier resource locale)
74 (setq resource-list (cdr resource-list))))))
76 (defun x-get-resource-and-bogosity-check (name class type &optional locale)
77 (x-bogosity-check-resource name class type)
78 (x-get-resource name class type locale nil 'warn))
80 (defun x-get-resource-and-maybe-bogosity-check (name class type &optional
82 (if (eq locale 'global)
83 (x-bogosity-check-resource name class type))
84 (x-get-resource name class type locale nil 'warn))
86 ;;; x-misc.el ends here