Mercurial > hg > xemacs-beta
annotate lwlib/xlwscrollbarP.h @ 5574:d4f334808463
Support inlining labels, bytecomp.el.
lisp/ChangeLog addition:
2011-10-02 Aidan Kehoe <kehoea@parhasard.net>
* bytecomp.el (byte-compile-initial-macro-environment):
Add #'declare to this, so it doesn't need to rely on
#'cl-compiling file to determine when we're byte-compiling.
Update #'labels to support declaring labels inline, as Common Lisp
requires.
* bytecomp.el (byte-compile-function-form):
Don't error if FUNCTION is quoting a non-lambda, non-symbol, just
return it.
* cl-extra.el (cl-macroexpand-all):
If a label name has been quoted, expand to the label placeholder
quoted with 'function. This allows the byte compiler to
distinguish between uses of the placeholder as data and uses in
contexts where it should be inlined.
* cl-macs.el:
* cl-macs.el (cl-do-proclaim):
When proclaming something as inline, if it is bound as a label,
don't modify the symbol's plist; instead, treat the first element
of its placeholder constant vector as a place to store compile
information.
* cl-macs.el (declare):
Leave processing declarations while compiling to the
implementation of #'declare in
byte-compile-initial-macro-environment.
tests/ChangeLog addition:
2011-10-02 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el:
* automated/lisp-tests.el (+):
Test #'labels and inlining.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 02 Oct 2011 15:32:16 +0100 |
parents | ade4c7e2c6cb |
children |
rev | line source |
---|---|
5422
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
1 /* Implements a lightweight scrollbar widget. |
428 | 2 Copyright (C) 1992, 1993, 1994 Lucid, Inc. |
3 | |
4 This file is part of the Lucid Widget Library. | |
5 | |
5422
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
6 The Lucid Widget Library is free software: you can redistribute it |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
7 and/or modify it under the terms of the GNU General Public License as |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
8 published by the Free Software Foundation, either version 3 of the |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
9 License, or (at your option) any later version. |
428 | 10 |
5422
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
11 The Lucid Widget Library is distributed in the hope that it will be |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
12 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
14 General Public License for more details. |
428 | 15 |
16 You should have received a copy of the GNU General Public License | |
5422
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
17 along with the Lucid Widget Library. If not, see |
ade4c7e2c6cb
Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents:
428
diff
changeset
|
18 <http://www.gnu.org/licenses/>. */ |
428 | 19 |
20 /* Created by Douglas Keller <dkeller@vnet.ibm.com> */ | |
21 | |
22 #ifndef _XlwScrollBarP_h | |
23 #define _XlwScrollBarP_h | |
24 | |
25 | |
26 /* | |
27 ** Widget class | |
28 */ | |
29 typedef struct | |
30 { | |
31 int dummy_field; /* keep compiler happy */ | |
32 } XlwScrollBarClassPart; | |
33 | |
34 typedef struct _XlwScrollbarClassRec | |
35 { | |
36 CoreClassPart core_class; | |
37 XlwScrollBarClassPart scrollbar_class; | |
38 } XlwScrollBarClassRec; | |
39 | |
40 enum XlwScrollbarArm | |
41 { | |
42 ARM_NONE, | |
43 ARM_SLIDER, | |
44 ARM_UP, | |
45 ARM_DOWN, | |
46 ARM_PAGEUP, | |
47 ARM_PAGEDOWN | |
48 }; | |
49 | |
50 enum XlwScrollbarForcedScroll | |
51 { | |
52 FORCED_SCROLL_NONE, | |
53 FORCED_SCROLL_DOWNRIGHT, | |
54 FORCED_SCROLL_UPLEFT | |
55 }; | |
56 | |
57 /* | |
58 ** Widget instance | |
59 */ | |
60 typedef struct | |
61 { | |
62 /* resources */ | |
63 XtCallbackList valueChangedCBL; | |
64 XtCallbackList incrementCBL; | |
65 XtCallbackList decrementCBL; | |
66 XtCallbackList pageIncrementCBL; | |
67 XtCallbackList pageDecrementCBL; | |
68 XtCallbackList toTopCBL; | |
69 XtCallbackList toBottomCBL; | |
70 XtCallbackList dragCBL; | |
71 | |
72 Pixel foreground; | |
73 | |
74 Pixel topShadowColor; | |
75 Pixel bottomShadowColor; | |
76 | |
77 Pixel troughColor; | |
78 | |
79 Pixel armColor; | |
80 Pixel armTopShadowColor; | |
81 Pixel armBottomShadowColor; | |
82 | |
83 Pixmap topShadowPixmap; | |
84 Pixmap bottomShadowPixmap; | |
85 | |
86 int shadowThickness; | |
87 | |
88 Boolean showArrows; | |
89 | |
90 int minimum; | |
91 int maximum; | |
92 int sliderSize; | |
93 int value; | |
94 int pageIncrement; | |
95 int increment; | |
96 | |
97 int initialDelay; | |
98 int repeatDelay; | |
99 | |
100 unsigned char orientation; | |
101 | |
102 char *sliderStyle; | |
103 char *knobStyle; | |
104 char *arrowPosition; | |
105 | |
106 /* private */ | |
107 Pixmap grayPixmap; | |
108 | |
109 GC backgroundGC; | |
110 GC topShadowGC; | |
111 GC bottomShadowGC; | |
112 | |
113 int above, ss, below; | |
114 int lastY; | |
115 | |
116 enum XlwScrollbarArm armed; | |
117 | |
118 enum XlwScrollbarForcedScroll forced_scroll; | |
119 | |
120 int savedValue; | |
121 | |
122 Boolean fullRedrawNext; | |
123 | |
124 Boolean timerActive; | |
125 XtIntervalId timerId; | |
126 | |
127 } XlwScrollBarPart; | |
128 | |
129 typedef struct _XlwScrollBarRec | |
130 { | |
131 CorePart core; | |
132 XlwScrollBarPart sb; | |
133 } XlwScrollBarRec; | |
134 | |
135 #endif /* _XlwScrollBarP_h */ |