1 ;;; dialog-items.el --- Dialog-box content for XEmacs
3 ;; Copyright (C) 2000 Andy Piper.
4 ;; Copyright (C) 2000 Ben Wing.
6 ;; Maintainer: SXEmacs Development Team
7 ;; Keywords: content, gui, internal, dumped
9 ;; This file is part of SXEmacs.
11 ;; SXEmacs is free software: you can redistribute it and/or modify
12 ;; it under the terms of the GNU General Public License as published by
13 ;; the Free Software Foundation, either version 3 of the License, or
14 ;; (at your option) any later version.
16 ;; SXEmacs is distributed in the hope that it will be useful,
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 ;; GNU General Public License for more details.
21 ;; You should have received a copy of the GNU General Public License
22 ;; along with this program. If not, see <http://www.gnu.org/licenses/>.
24 ;;; Synched up with: Not in FSF.
29 ;; Simple search dialog
31 (defvar search-dialog-direction t)
32 (defvar search-dialog-regexp nil)
33 (defvar search-dialog nil)
35 (defun search-dialog-callback (parent image-instance event)
38 (let ((domain (frame-selected-window (event-channel event))))
39 (funcall (if search-dialog-direction
40 (if search-dialog-regexp
43 (if search-dialog-regexp
47 (car (glyph-image-property
48 (nth 1 (glyph-image-property
49 search-dialog :items domain))
50 :items domain)) :text domain))
51 (isearch-highlight (match-beginning 0) (match-end 0)))))
53 (defun make-search-dialog ()
54 "Popup a search dialog box."
56 (let ((parent (selected-frame)))
66 :orientation horizontal
67 :vertically-justify top
68 :horizontally-justify center
69 :border [string :data "Search"]
71 ([layout :orientation vertical
72 :justify top ; implies left also
74 ([string :data "Search for:"]
75 [button :descriptor "Match Case"
77 :selected (not case-fold-search)
78 :callback (setq case-fold-search
79 (not case-fold-search))]
80 [button :descriptor "Regular Expression"
82 :selected search-dialog-regexp
83 :callback (setq search-dialog-regexp
84 (not search-dialog-regexp))]
85 [button :descriptor "Forwards"
87 :selected search-dialog-direction
88 :callback (setq search-dialog-direction t)]
89 [button :descriptor "Backwards"
91 :selected (not search-dialog-direction)
92 :callback (setq search-dialog-direction nil)]
94 [layout :orientation vertical
95 :vertically-justify top
96 :horizontally-justify right
98 ([edit-field :width 15 :descriptor "" :active t
100 [button :width 10 :descriptor "Find Next"
102 (lambda (image-instance event)
103 (search-dialog-callback ,parent
106 [button :width 10 :descriptor "Cancel"
108 (lambda (image-instance event)
109 (isearch-dehighlight)
111 (event-channel event)))])])]))
112 ;; These are no longer strictly necessary, but not setting a size
113 ;; at all yields a much more noticeable resize since the initial
115 :properties `(height ,(widget-logical-to-character-height 6)
116 width ,(widget-logical-to-character-width 39))