PopUpLstC.st
changeset 2009 853cece96ee7
parent 2008 1d02c2e994b6
child 2010 ca8dcc8723dc
equal deleted inserted replaced
2008:1d02c2e994b6 2009:853cece96ee7
     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 ! !