comparison lisp/x-misc.el @ 209:41ff10fd062f r20-4b3

Import from CVS: tag r20-4b3
author cvs
date Mon, 13 Aug 2007 10:04:58 +0200
parents
children c42ec1d1cded
comparison
equal deleted inserted replaced
208:f427b8ec4379 209:41ff10fd062f
1 ;;; x-misc.el --- miscellaneous X functions.
2
3 ;; Copyright (C) 1997 Free Software Foundation, Inc.
4 ;; Copyright (C) 1995 Sun Microsystems.
5 ;; Copyright (C) 1995, 1996 Ben Wing.
6
7 ;; Author: Ben Wing <wing@666.com>
8 ;; Maintainer: XEmacs Development Team
9 ;; Keywords: extensions, dumped
10
11 ;; This file is part of XEmacs.
12
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)
16 ;; any later version.
17
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.
22
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.
27
28 ;;; Commentary:
29
30 ;; This file is dumped with XEmacs (when X support is compiled in).
31
32 ;;; Code:
33
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)
39 type 'global nil t)))
40 (if bogus
41 (display-warning
42 'resource
43 (format "Bad resource specification encountered: something like
44 Emacs*%s: %s
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)))))
47
48 (defun x-init-specifier-from-resources (specifier type locale
49 &rest resource-list)
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)
60 (mapcar #'(lambda (x)
61 (x-bogosity-check-resource (car x) (cdr x) type))
62 resource-list))
63 (if (not (specifier-spec-list specifier locale))
64 (catch 'done
65 (while resource-list
66 (let* ((name (caar resource-list))
67 (class (cdar resource-list))
68 (resource
69 (x-get-resource name class type locale nil t)))
70 (if resource
71 (progn
72 (add-spec-to-specifier specifier resource locale)
73 (throw 'done t))))
74 (setq resource-list (cdr resource-list))))))
75
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 t))
79
80 ;; #### this function is not necessary.
81 (defun x-get-resource-and-maybe-bogosity-check (name class type &optional
82 locale)
83 (if (eq locale 'global)
84 (x-bogosity-check-resource name class type))
85 (x-get-resource name class type locale nil t))
86
87 ;;; x-misc.el ends here