1 " |
|
2 COPYRIGHT (c) 1995 by Claus Gittinger |
|
3 All Rights Reserved |
|
4 |
|
5 This software is furnished under a license and may be used |
|
6 only in accordance with the terms of that license and with the |
|
7 inclusion of the above copyright notice. This software may not |
|
8 be provided or otherwise made available to, or used by, any |
|
9 other person. No title to or ownership of the software is |
|
10 hereby transferred. |
|
11 " |
|
12 |
|
13 ButtonController subclass:#PopUpListController |
|
14 instanceVariableNames:'' |
|
15 classVariableNames:'' |
|
16 poolDictionaries:'' |
|
17 category:'Interface-Support-Controllers' |
|
18 ! |
|
19 |
|
20 !PopUpListController class methodsFor:'documentation'! |
|
21 |
|
22 copyright |
|
23 " |
|
24 COPYRIGHT (c) 1995 by Claus Gittinger |
|
25 All Rights Reserved |
|
26 |
|
27 This software is furnished under a license and may be used |
|
28 only in accordance with the terms of that license and with the |
|
29 inclusion of the above copyright notice. This software may not |
|
30 be provided or otherwise made available to, or used by, any |
|
31 other person. No title to or ownership of the software is |
|
32 hereby transferred. |
|
33 " |
|
34 ! |
|
35 |
|
36 documentation |
|
37 " |
|
38 redefined the behavior on various keys if my view has the focus. |
|
39 |
|
40 [author:] |
|
41 Claus Gittinger |
|
42 " |
|
43 ! ! |
|
44 |
|
45 !PopUpListController methodsFor:'event handling'! |
|
46 |
|
47 buttonPress:button x:x y:y |
|
48 "redefined to not send any change message to the model when |
|
49 pressed (this is done by the popped menu)" |
|
50 |
|
51 (button == 1 or:[button == #select]) ifFalse:[ |
|
52 ^ super buttonPress:button x:x y:y |
|
53 ]. |
|
54 |
|
55 enableChannel value ifTrue:[ |
|
56 pressed ifFalse:[ |
|
57 pressed := true. |
|
58 view showActive. |
|
59 |
|
60 (pressActionBlock notNil or:[model notNil]) ifTrue:[ |
|
61 " |
|
62 force output - so that button is drawn correctly in case |
|
63 of any long-computation (at high priority) |
|
64 " |
|
65 view flush. |
|
66 ]. |
|
67 |
|
68 pressActionBlock value. |
|
69 |
|
70 ] |
|
71 ] |
|
72 |
|
73 "Created: 27.1.1997 / 17:22:16 / cg" |
|
74 "Modified: 27.1.1997 / 17:23:17 / cg" |
|
75 ! |
|
76 |
|
77 keyPress:key x:x y:y |
|
78 "pull menu on Return and space, if I am the focusView of my group |
|
79 (i.e. if I got an explicit focus)" |
|
80 |
|
81 <resource: #keyboard (#Return #CursorUp #CursorDown)> |
|
82 |
|
83 view hasFocus ifTrue:[ |
|
84 "/ (key == #Return) ifTrue:[ |
|
85 "/ view menu shown ifTrue:[ |
|
86 "/ self halt:'not yet implemented'. |
|
87 "/ ^ self. |
|
88 "/ ]. |
|
89 "/ ]. |
|
90 (key == #CursorUp or:[key == #CursorDown]) ifTrue:[ |
|
91 view menu shown ifTrue:[ |
|
92 key == #CursorUp ifTrue:[view menu selectNext] |
|
93 ifFalse:[view menu selectPrevious]. |
|
94 ^ self. |
|
95 ]. |
|
96 ]. |
|
97 (key == Character space) ifTrue:[ |
|
98 view menu exclusivePointer:false. |
|
99 view menu hideOnRelease:true. |
|
100 view popMenu. |
|
101 view menu exclusivePointer:true. |
|
102 ^ self. |
|
103 ] |
|
104 ]. |
|
105 view keyPress:key x:x y:y |
|
106 |
|
107 "Created: 9.12.1995 / 23:06:09 / cg" |
|
108 "Modified: 7.3.1996 / 13:17:46 / cg" |
|
109 ! ! |
|
110 |
|
111 !PopUpListController class methodsFor:'documentation'! |
|
112 |
|
113 version |
|
114 ^ '$Header: /cvs/stx/stx/libwidg/Attic/PopUpLstC.st,v 1.11 1997-01-27 16:47:40 cg Exp $' |
|
115 ! ! |
|