annotate lisp/dialog-items.el @ 5553:62edcc6a11ec

Add an assertion about argument order to #'apply-partially compiler macro lisp/ChangeLog addition: 2011-08-24 Aidan Kehoe <kehoea@parhasard.net> * cl-macs.el (apply-partially): Add an assertion to this compiler macro, requiring that the order of the placeholders corresponding to the arguments in the constants vector of the constructed compiled function be the same as the order of the arguments to #'apply-partially. tests/ChangeLog addition: 2011-08-24 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Add a test of apply partially that depends on the relative order of its arguments.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 24 Aug 2011 11:06:41 +0100
parents 308d34e9f07d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
1 ;;; dialog-items.el --- Dialog-box content for XEmacs
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
2
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
3 ;; Copyright (C) 2000 Andy Piper.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
4 ;; Copyright (C) 2000 Ben Wing.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
5
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
6 ;; Maintainer: XEmacs Development Team
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
7 ;; Keywords: content, gui, internal, dumped
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
8
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
9 ;; This file is part of XEmacs.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
10
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 863
diff changeset
11 ;; XEmacs is free software: you can redistribute it and/or modify it
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 863
diff changeset
12 ;; under the terms of the GNU General Public License as published by the
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 863
diff changeset
13 ;; Free Software Foundation, either version 3 of the License, or (at your
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 863
diff changeset
14 ;; option) any later version.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
15
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 863
diff changeset
16 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 863
diff changeset
17 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 863
diff changeset
18 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 863
diff changeset
19 ;; for more details.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
20
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 863
diff changeset
22 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
23
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
24 ;;; Synched up with: Not in FSF.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
25
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
26 ;;; Commentary:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
27
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
28 ;;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
29 ;; Simple search dialog
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
30 ;;
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
31 (defvar search-dialog-direction t)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
32 (defvar search-dialog-regexp nil)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
33 (defvar search-dialog nil)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
34
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
35 (defun search-dialog-callback (parent image-instance event)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
36 (save-selected-frame
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
37 (select-frame parent)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
38 (let ((domain (frame-selected-window (event-channel event))))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
39 (funcall (if search-dialog-direction
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
40 (if search-dialog-regexp
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
41 're-search-forward
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
42 'search-forward)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
43 (if search-dialog-regexp
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
44 're-search-backward
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
45 'search-backward))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
46 (glyph-image-property
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
47 (car (glyph-image-property
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
48 (nth 1 (glyph-image-property
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
49 search-dialog :items domain))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
50 :items domain)) :text domain))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
51 (isearch-highlight (match-beginning 0) (match-end 0)))))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
52
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
53 (defun make-search-dialog ()
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
54 "Popup a search dialog box."
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
55 (interactive)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
56 (let ((parent (selected-frame)))
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
57 (make-dialog-box
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
58 'general
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
59 :parent parent
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
60 :title "Search"
863
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
61 :autosize t
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
62 :spec
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
63 (setq search-dialog
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
64 (make-glyph
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
65 `[layout
863
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
66 :orientation horizontal
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
67 :vertically-justify top
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
68 :horizontally-justify center
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
69 :border [string :data "Search"]
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
70 :items
863
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
71 ([layout :orientation vertical
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
72 :justify top ; implies left also
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
73 :items
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
74 ([string :data "Search for:"]
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
75 [button :descriptor "Match Case"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
76 :style toggle
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
77 :selected (not case-fold-search)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
78 :callback (setq case-fold-search
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
79 (not case-fold-search))]
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
80 [button :descriptor "Regular Expression"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
81 :style toggle
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
82 :selected search-dialog-regexp
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
83 :callback (setq search-dialog-regexp
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
84 (not search-dialog-regexp))]
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
85 [button :descriptor "Forwards"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
86 :style radio
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
87 :selected search-dialog-direction
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
88 :callback (setq search-dialog-direction t)]
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
89 [button :descriptor "Backwards"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
90 :style radio
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
91 :selected (not search-dialog-direction)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
92 :callback (setq search-dialog-direction nil)]
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
93 )]
863
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
94 [layout :orientation vertical
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
95 :vertically-justify top
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
96 :horizontally-justify right
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
97 :items
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
98 ([edit-field :width 15 :descriptor "" :active t
863
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
99 :initial-focus t]
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
100 [button :width 10 :descriptor "Find Next"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
101 :callback-ex
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
102 (lambda (image-instance event)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
103 (search-dialog-callback ,parent
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
104 image-instance
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
105 event))]
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
106 [button :width 10 :descriptor "Cancel"
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
107 :callback-ex
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
108 (lambda (image-instance event)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
109 (isearch-dehighlight)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
110 (delete-frame
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents:
diff changeset
111 (event-channel event)))])])]))
863
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
112 ;; These are no longer strictly necessary, but not setting a size
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
113 ;; at all yields a much more noticeable resize since the initial
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
114 ;; frame is so big.
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
115 :properties `(height ,(widget-logical-to-character-height 6)
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
116 width ,(widget-logical-to-character-width 39))
42375619fa45 [xemacs-hg @ 2002-06-04 06:03:59 by andyp]
andyp
parents: 442
diff changeset
117 )))