comparison lisp/hyperbole/hui-ep-but.el @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 ;;!emacs
2 ;;
3 ;; FILE: hui-ep-but.el
4 ;; SUMMARY: Support for highlighting/flashing buttons under Epoch.
5 ;; USAGE: Epoch V4 Lisp Library
6 ;; KEYWORDS: faces, hypermedia
7 ;;
8 ;; AUTHOR: Bob Weiner
9 ;; ORG: Brown U.
10 ;;
11 ;; ORIG-DATE: 27-Apr-91 at 05:37:10
12 ;; LAST-MOD: 14-Apr-95 at 16:10:47 by Bob Weiner
13 ;;
14 ;; This file is part of Hyperbole.
15 ;; It is for use with Epoch, a modified version of GNU Emacs.
16 ;; Available for use and distribution under the same terms as GNU Emacs.
17 ;;
18 ;; Copyright (C) 1990-1995, Free Software Foundation, Inc.
19 ;; Developed with support from Motorola Inc.
20 ;;
21 ;; DESCRIPTION:
22 ;;
23 ;; This is truly prototype code.
24 ;;
25 ;; Can't use epoch read-only buttons here because then outline-mode
26 ;; becomes unusable; when it tries to do a 'subst-char-in-region'
27 ;; epoch triggers a read-only error.
28 ;;
29 ;; DESCRIP-END.
30
31 (if (and (boundp 'epoch::version) (stringp epoch::version)
32 (or noninteractive (string-lessp epoch::version "Epoch 4")))
33 nil
34 (error "(hui-ep-but.el): Load only under Epoch version 3 or lower."))
35
36 ;;; ************************************************************************
37 ;;; Other required Elisp libraries
38 ;;; ************************************************************************
39
40 (require 'hbut)
41
42 ;;; ************************************************************************
43 ;;; Public variables
44 ;;; ************************************************************************
45
46 ;;; ************************************************************************
47 ;;; Public functions
48 ;;; ************************************************************************
49
50 (fset 'hproperty:but-add 'epoch::add-button)
51
52 (defun hproperty:but-color ()
53 "Return current color of buffer's buttons."
54 (if hproperty:color-ptr
55 (car hproperty:color-ptr)
56 (epoch::foreground)))
57
58 (defun hproperty:but-create-all (&optional start-delim end-delim regexp-match)
59 "Mark all hyper-buttons in buffer as Epoch buttons, for later highlighting.
60 Will use optional strings START-DELIM and END-DELIM instead of default values.
61 If END-DELIM is a symbol, e.g. t, then START-DELIM is taken as a regular
62 expression which matches an entire button string.
63 If REGEXP-MATCH is non-nil, only buttons matching this argument are
64 highlighted."
65 (ebut:map (function (lambda (lbl start end)
66 (hproperty:but-add start end hproperty:but)))
67 start-delim end-delim regexp-match 'include-delims))
68
69 (defun hproperty:but-delete (&optional pos)
70 (epoch::delete-button-at (or pos (point))))
71
72 ;;; ************************************************************************
73 ;;; Private functions
74 ;;; ************************************************************************
75
76 (defmacro hproperty:list-cycle (list-ptr list)
77 "Move LIST-PTR to next element in LIST or when at end to first element."
78 (` (or (and (, list-ptr)
79 (setq (, list-ptr) (cdr (, list-ptr))))
80 (setq (, list-ptr) (, list)))))
81
82 ;;; ************************************************************************
83 ;;; Private variables
84 ;;; ************************************************************************
85
86 (defconst hproperty:color-list '( "red" "blue" "paleturquoise4" "mediumpurple2"
87 "lightskyblue3" "springgreen2" "salmon" "yellowgreen" "darkorchid2"
88 "aquamarine4" "slateblue4" "slateblue1" "olivedrab1" "goldenrod4"
89 "goldenrod3" "cadetblue2" "burlywood1" "slategrey" "mistyrose"
90 "limegreen" "lightcyan" "goldenrod" "gainsboro" "skyblue1" "honeydew"
91 "yellow2" "tomato3" "skyblue" "purple4" "orange3" "bisque3" "bisque2"
92 "grey34" "gray99" "gray63" "gray44" "gray37" "gray33" "gray26" "azure1"
93 "snow4" "peru" "red" "lightgoldenrod4" "mediumseagreen" "blush"
94 "mediumorchid2" "lightskyblue1" "darkslateblue" "midnightblue"
95 "lightsalmon1" "lemonchiffon" "yellow" "lightsalmon" "coral"
96 "dodgerblue3" "darkorange4" "blue" "royalblue4" "red" "green" "cyan"
97 "darkviolet" "darksalmon" "darkorange" "blue" "pink" "magenta2"
98 "sienna4" "khaki2" "grey75" "grey74" "grey73" "grey69" "grey68" "grey35"
99 "grey13" "gray90" "gray81" "gray55" "gray51" "gray31" "snow2" "pink3"
100 "grey7" "gray1" "red4" "red3" "tan" "red" "yellow" "mediumvioletred"
101 "lightslategrey" "lavenderblush4" "turquoise" "darkturquoise"
102 "darkslategrey" "lightskyblue" "lightsalmon4" "lightsalmon3"
103 "forestgreen" "dodgerblue4" "orchid" "rosybrown4" "brown" "peachpuff3"
104 "palegreen3" "orangered2" "rose" "lightcyan4" "indianred4" "indianred3"
105 "seagreen2" "indianred" "deeppink1" "navyblue" "lavender" "grey"
106 "deeppink" "salmon4" "salmon3" "oldlace" "grey78" "grey77" "grey54"
107 "grey45" "grey21" "gray97" "gray96" "gray95" "gray88" "gray87" "gray86"
108 "gray70" "gray57" "gray38" "gray12" "gray11" "plum3" "linen" "gray9"
109 "gray8" "blue4" "beige" "turquoise" "blue" "lemonchiffon4"
110 "darkseagreen1" "antiquewhite3" "mediumorchid" "springgreen"
111 "turquoise4" "steelblue3" "mistyrose2" "lightcyan2" "red" "firebrick2"
112 "royalblue" "cadetblue" "skyblue3" "yellow3" "salmon1" "orange4"
113 "hotpink" "grey90" "gray56" "gray39" "gray18" "gray14" "plum4" "grey6"
114 "gray6" "gold3" "gold1" "blue2" "tan2" "cyan" "mediumspringgreen"
115 "darkolivegreen2" "goldenrod" "lightsteelblue" "brown" "whip"
116 "chartreuse3" "violetred4" "royalblue2" "royalblue1" "papayawhip"
117 "mistyrose3" "lightcyan1" "aquamarine" "skyblue4" "hotpink4" "hotpink3"
118 "hotpink2" "dimgray" "tomato" "grey66" "grey65" "grey64" "grey33"
119 "grey27" "gray76" "gray69" "gray68" "grey0" "azure" "green"
120 "darkgoldenrod4" "darkgoldenrod3" "darkgoldenrod2" "darkgoldenrod"
121 "brown" "lightsalmon2" "deepskyblue4" "deepskyblue3" "deepskyblue2"
122 "deepskyblue" "darkorange1" "violetred3" "violetred2" "violetred1"
123 "slateblue3" "slateblue2" "drab" "indianred1" "firebrick1" "cadetblue4"
124 "violetred" "rosybrown" "blue" "firebrick" "grey100" "wheat4" "grey79"
125 "grey76" "grey61" "gray93" "gray84" "gray65" "gray36" "gray32" "gray13"
126 "gray10" "azure3" "snow1" "tan1" "gray" "darkolivegreen1" "blue"
127 "almond" "lavenderblush3" "lavenderblush2" "lavenderblush1"
128 "darkolivegreen" "lavenderblush" "aquamarine2" "red" "olivedrab2"
129 "mistyrose4" "mistyrose1" "lightcyan3" "lightcoral" "chartreuse"
130 "peachpuff" "palegreen" "mintcream" "skyblue2" "moccasin" "tomato1"
131 "orchid3" "maroon3" "salmon" "grey81" "grey62" "grey39" "grey38"
132 "grey37" "gray92" "gray83" "gray66" "gray54" "gray50" "gray30" "gray19"
133 "gray15" "azure4" "grey3" "tan3" "pink" "gray" "blue" "lightsteelblue2"
134 "lightsteelblue1" "green" "lightslategray" "lemonchiffon2"
135 "springgreen1" "greenyellow" "chartreuse2" "grey" "royalblue3"
136 "powderblue" "peachpuff2" "palegreen2" "cream" "slateblue" "seashell2"
137 "deeppink2" "darkkhaki" "maroon4" "sienna" "grey71" "grey67" "grey18"
138 "gray59" "gray43" "gray25" "bisque" "red1" "mediumslateblue"
139 "lightgoldenrod1" "goldenrod" "paleturquoise3" "lightskyblue4" "green"
140 "yellow" "smoke" "blue" "white" "steelblue4" "rosybrown3" "peachpuff1"
141 "palegreen1" "blueviolet" "seashell4" "sienna3" "grey40" "gray91"
142 "gray82" "gray5" "cyan2" "cyan1" "blue1" "snow" "lightgoldenrod2"
143 "lightslateblue" "mediumorchid3" "darkseagreen4" "springgreen3" "green"
144 "slategray4" "slategray3" "slategray2" "blue" "peachpuff4" "palegreen4"
145 "green" "orangered3" "goldenrod1" "ghostwhite" "firebrick4" "firebrick3"
146 "cadetblue3" "slategray" "seashell3" "honeydew3" "cornsilk4" "cornsilk2"
147 "purple1" "dimgrey" "khaki1" "ivory3" "grey70" "grey60" "grey32"
148 "grey22" "grey12" "gray98" "gray89" "gray71" "gray64" "gray60" "gray49"
149 "azure2" "gray3" "paleturquoise1" "mediumpurple1" "purple"
150 "lemonchiffon1" "blue" "navajowhite3" "darkorchid1" "orange"
151 "goldenrod2" "khaki" "chocolate2" "burlywood2" "honeydew1" "darkgreen"
152 "thistle3" "thistle2" "thistle1" "thistle" "maroon2" "maroon1" "grey53"
153 "grey44" "grey25" "gray74" "gray45" "gray41" "gray35" "gray27" "gray23"
154 "gray16" "brown4" "wheat" "coral" "tan4" "lightgoldenrodyellow" "blue"
155 "green" "gray" "palevioletred3" "mediumpurple4" "mediumpurple3"
156 "saddlebrown" "blue" "darkorchid4" "darkorchid3" "puff" "olivedrab4"
157 "lightblue4" "lightpink" "lightgray" "honeydew2" "cornsilk1" "lace"
158 "sienna1" "bisque4" "orchid" "khaki3" "grey84" "grey83" "grey82"
159 "grey72" "grey52" "grey43" "grey26" "grey14" "grey10" "gray75" "gray53"
160 "gray21" "gray20" "brown3" "grey8" "red2" "navy" "grey" "gold"
161 "mediumaquamarine" "lightgoldenrod" "darkslategray4" "darkseagreen3"
162 "darkseagreen2" "antiquewhite4" "white" "springgreen4" "lightyellow4"
163 "white" "aquamarine1" "turquoise3" "steelblue2" "rosybrown2" "pink"
164 "gray" "indianred2" "dodgerblue" "green" "seagreen1" "deeppink4"
165 "aliceblue" "magenta1" "pink" "sienna2" "orchid1" "gray100" "grey97"
166 "grey94" "grey87" "grey86" "grey51" "grey42" "grey19" "gray94" "gray85"
167 "gray61" "brown2" "khaki" "grey1" "gold4" "blue" "green" "grey"
168 "turquoise" "paleturquoise" "mediumorchid4" "antiquewhite2"
169 "lightyellow2" "violet" "salmon" "chartreuse1" "turquoise1" "sandybrown"
170 "orangered1" "lightpink1" "lightblue2" "lightblue1" "grey" "seagreen4"
171 "seagreen3" "lightblue" "deeppink3" "burlywood" "seashell" "hotpink1"
172 "gray" "yellow4" "yellow" "purple" "orange" "ivory4" "grey99" "grey89"
173 "grey63" "grey58" "grey49" "grey31" "grey24" "grey20" "green4" "green1"
174 "gray73" "gray67" "coral3" "coral2" "plum2" "pink4" "ivory" "gray4"
175 "gray2" "gold2" "aquamarine" "grey" "lightgoldenrod3" "darkolivegreen3"
176 "darkgoldenrod1" "goldenrod" "orchid" "chiffon" "navajowhite4"
177 "deepskyblue1" "lightyellow" "floralwhite" "blue" "mediumblue"
178 "chocolate4" "chocolate3" "burlywood4" "turquoise" "steelblue" "green"
179 "lawngreen" "honeydew4" "seagreen" "orchid4" "wheat1" "violet" "ivory1"
180 "grey88" "grey85" "grey57" "grey56" "grey55" "grey48" "grey47" "grey46"
181 "grey30" "grey17" "gray47" "gray29" "pink2" "grey5" "grey4" "green"
182 "gray0" "brown" "lightsteelblue4" "darkolivegreen4" "palevioletred4"
183 "blue" "darkslategray3" "darkslategray2" "darkslategray1"
184 "blanchedalmond" "palegoldenrod" "blue" "lightseagreen" "lemonchiffon3"
185 "darkslategray" "green" "darkseagreen" "antiquewhite" "darkorange2"
186 "chartreuse4" "blue" "rosybrown1" "olivedrab3" "lightpink2" "orangered"
187 "thistle4" "blue" "cornsilk" "salmon2" "orchid2" "ivory2" "grey93"
188 "grey92" "grey91" "grey36" "grey29" "grey28" "grey16" "gray79" "gray78"
189 "gray77" "gray48" "gray17" "coral4" "coral1" "plum1" "pink1" "grey9"
190 "grey2" "gray7" "cyan4" "blue3" "plum" "cornflowerblue" "lightskyblue2"
191 "antiquewhite1" "navajowhite2" "navajowhite1" "lightyellow3"
192 "navajowhite" "darkorange3" "whitesmoke" "turquoise2" "steelblue1"
193 "lightpink4" "lightblue3" "green" "chocolate1" "blue" "olivedrab"
194 "lightgrey" "chocolate" "magenta4" "magenta3" "yellow1" "purple3"
195 "purple2" "orange2" "orange1" "magenta" "bisque1" "wheat2" "maroon"
196 "khaki4" "grey96" "grey95" "grey80" "grey50" "grey41" "grey15" "grey11"
197 "gray80" "gray58" "gray40" "gray34" "gray22" "brown1" "snow3"
198 "mediumturquoise" "lightsteelblue3" "palevioletred2" "palevioletred1"
199 "paleturquoise2" "green" "palevioletred" "mediumorchid1" "white"
200 "mediumpurple" "lightyellow1" "dodgerblue2" "dodgerblue1" "violet"
201 "aquamarine3" "slategray1" "gray" "orangered4" "lightpink3" "blue"
202 "darkorchid" "cadetblue1" "burlywood3" "seashell1" "cornsilk3" "tomato4"
203 "tomato2" "wheat3" "grey98" "grey59" "grey23" "green3" "green2" "gray72"
204 "gray62" "gray52" "gray46" "gray42" "gray28" "gray24" "white" "cyan3"
205 "black" ))
206
207 (defvar hproperty:color-ptr nil
208 "Pointer to current color name table to use for Hyperbole buttons in Epoch.")
209
210 (defconst hproperty:good-colors
211 '(
212 "medium violet red" "indianred4" "firebrick1" "DarkGoldenrod" "NavyBlue"
213 "darkorchid" "tomato3" "mediumseagreen" "deeppink" "forestgreen"
214 "mistyrose4" "slategrey" "purple4" "dodgerblue3" "mediumvioletred"
215 "lightsalmon3" "orangered2" "turquoise4" "Gray55"
216 )
217 "Good colors for contrast against wheat background and black foreground.")
218
219 (provide 'hui-ep-but)
220