ComboBoxView.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 02 Sep 2022 11:25:39 +0100
branchjv
changeset 6261 9b7eb7159d29
parent 4637 2d3667c6acc0
child 5815 1c36d4e19708
permissions -rw-r--r--
Fix loong standing bug with some menus not being translated / resolved This has happened with browser "View" menu when sometimes it had the slice resolved and sometimes not. It turned out that it was because the code disabled resources (and therefore slices) resolution when processing shortcuts, so the menu was created and cached unresolved. This fixes the issue. eXept apparently run into the same problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
332
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
     1
"
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
     2
 COPYRIGHT (c) 1996 by eXept Software AG / Claus Gittinger
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
     3
              All Rights Reserved
332
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
     4
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
     5
 This software is furnished under a license and may be used
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
     6
 only in accordance with the terms of that license and with the
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
     8
 be provided or otherwise made available to, or used by, any
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
     9
 other person.  No title to or ownership of the software is
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    10
 hereby transferred.
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    11
"
2108
cbba33be6ac0 allow for fields class to be redefined by a subclass
Claus Gittinger <cg@exept.de>
parents: 1312
diff changeset
    12
"{ Package: 'stx:libwidg2' }"
cbba33be6ac0 allow for fields class to be redefined by a subclass
Claus Gittinger <cg@exept.de>
parents: 1312
diff changeset
    13
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
    14
ComboView subclass:#ComboBoxView
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
    15
	instanceVariableNames:'menuSelectAction'
2585
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
    16
	classVariableNames:''
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
    17
	poolDictionaries:''
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
    18
	category:'Views-Interactors'
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
275
da88b7732dff commentary
Claus Gittinger <cg@exept.de>
parents: 230
diff changeset
    21
!ComboBoxView class methodsFor:'documentation'!
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
332
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    23
copyright
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    24
"
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    25
 COPYRIGHT (c) 1996 by eXept Software AG / Claus Gittinger
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
    26
              All Rights Reserved
332
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    27
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    28
 This software is furnished under a license and may be used
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    29
 only in accordance with the terms of that license and with the
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    31
 be provided or otherwise made available to, or used by, any
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    32
 other person.  No title to or ownership of the software is
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    33
 hereby transferred.
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    34
"
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    35
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    36
!
78dcd3cacbfd documentation
Claus Gittinger <cg@exept.de>
parents: 311
diff changeset
    37
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
documentation
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
"
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
    40
    A ComboBoxView combines an inputField with a drop down list of default inputs;
126
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
    41
    choosing any from the pulled list presets the string in the field.
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
    42
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
    43
    In contrast to a PopUpList or ComboListView, the string can still be edited -
126
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
    44
    the list is actually only a set of values for the convenience of the user.
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
    45
275
da88b7732dff commentary
Claus Gittinger <cg@exept.de>
parents: 230
diff changeset
    46
    Not yet finished - it may need more protocol.
da88b7732dff commentary
Claus Gittinger <cg@exept.de>
parents: 230
diff changeset
    47
da88b7732dff commentary
Claus Gittinger <cg@exept.de>
parents: 230
diff changeset
    48
    [author:]
1281
94b22cb9c19f documentation
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
    49
        Claus Gittinger
181
31e8f8ab2fb8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 135
diff changeset
    50
31e8f8ab2fb8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 135
diff changeset
    51
    [see also:]
1281
94b22cb9c19f documentation
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
    52
        ComboView
94b22cb9c19f documentation
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
    53
        PopUpList SelectionInListView
94b22cb9c19f documentation
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
    54
        ComboListView ExtendedComboBox
94b22cb9c19f documentation
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
    55
        PullDownMenu Label EntryField
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
"
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
!
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
examples
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
"
305
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    61
  non MVC operation:
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
    62
                                                                        [exBegin]
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
     |top b|
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
     top := StandardSystemView new.
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
     top extent:(300 @ 200).
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
     b := ComboBoxView in:top.
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
     b origin:(0.0 @ 0.0) corner:(1.0 @ 0.0).
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
     b bottomInset:(b preferredExtent y negated).
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
     b list:#('hello' 'world' 'this' 'is' 'st/x').
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
     top open.
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
    74
                                                                        [exEnd]
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
305
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    78
  with action:
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
    79
                                                                        [exBegin]
305
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    80
     |top b|
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    81
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    82
     top := StandardSystemView new.
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    83
     top extent:(300 @ 200).
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    84
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    85
     b := ComboBoxView in:top.
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    86
     b origin:(0.0 @ 0.0) corner:(1.0 @ 0.0).
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    87
     b bottomInset:(b preferredExtent y negated).
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    88
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    89
     b list:#('hello' 'world' 'this' 'is' 'st/x').
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    90
     b action:[:entry | Transcript showCR:entry].
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    91
     top open.
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
    92
                                                                        [exEnd]
305
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    93
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    94
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
    95
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
  model operation:
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
    97
                                                                        [exBegin]
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
     |model top b|
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
     model := 'foo' asValue.
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
     top := StandardSystemView new.
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
     top extent:(300 @ 200).
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
     b := ComboBoxView in:top.
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
     b origin:(0.0 @ 0.0) corner:(1.0 @ 0.0).
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
     b bottomInset:(b preferredExtent y negated).
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
     b list:#('hello' 'world' 'this' 'is' 'st/x').
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
     b model:model.
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
     top openModal.
184
13a2f3677c68 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   113
     Transcript showCR:('comboBox''s value: ' , model value).
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   114
                                                                        [exEnd]
126
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   115
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   116
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   117
  in a dialog:
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   118
                                                                        [exBegin]
126
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   119
     |model1 model2 dialog b|
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   120
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   121
     model1 := 'foo' asValue.
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   122
     model2 := 'bar' asValue.
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   123
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   124
     dialog := Dialog new.
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   125
     (dialog addTextLabel:'ComboBox example:') adjust:#left.
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   126
     dialog addVerticalSpace.
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
126
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   128
     (b := dialog addComboBoxOn:model1 tabable:true).
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   129
     b list:#('fee' 'foe' 'foo').
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   130
     dialog addVerticalSpace.
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   131
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   132
     (b := dialog addComboBoxOn:model2 tabable:true).
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   133
     b list:#('bar' 'baz' 'baloo').
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   134
     dialog addVerticalSpace.
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   135
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   136
     dialog addOkButton.
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   137
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   138
     dialog open.
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   139
184
13a2f3677c68 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   140
     Transcript showCR:('1st comboBox''s value: ' , model1 value).
13a2f3677c68 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 181
diff changeset
   141
     Transcript showCR:('2nd comboBox''s value: ' , model2 value).
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   142
                                                                        [exEnd]
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
"
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
! !
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
4637
2d3667c6acc0 class: ComboBoxView
Claus Gittinger <cg@exept.de>
parents: 4493
diff changeset
   146
!ComboBoxView class methodsFor:'defaults'!
2d3667c6acc0 class: ComboBoxView
Claus Gittinger <cg@exept.de>
parents: 4493
diff changeset
   147
2d3667c6acc0 class: ComboBoxView
Claus Gittinger <cg@exept.de>
parents: 4493
diff changeset
   148
defaultFont
2d3667c6acc0 class: ComboBoxView
Claus Gittinger <cg@exept.de>
parents: 4493
diff changeset
   149
    ^ EditField defaultFont.
2d3667c6acc0 class: ComboBoxView
Claus Gittinger <cg@exept.de>
parents: 4493
diff changeset
   150
    "/ ^ SelectionInListView defaultFont.
2d3667c6acc0 class: ComboBoxView
Claus Gittinger <cg@exept.de>
parents: 4493
diff changeset
   151
! !
2d3667c6acc0 class: ComboBoxView
Claus Gittinger <cg@exept.de>
parents: 4493
diff changeset
   152
126
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   153
!ComboBoxView methodsFor:'accessing-components'!
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   154
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   155
editor
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   156
    "return the inputField component"
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   157
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   158
    ^ field
126
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   159
888d8ccd35af better sizing; forward unknown messages to my inputField
Claus Gittinger <cg@exept.de>
parents: 125
diff changeset
   160
    "Created: 9.2.1996 / 20:18:03 / cg"
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   161
    "Modified: 28.2.1996 / 15:10:50 / cg"
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   162
!
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   163
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   164
menuSelectAction:aBlock
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   165
    menuSelectAction := aBlock
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   166
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   167
    "Created: / 15-10-2006 / 15:10:25 / cg"
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
! !
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
!ComboBoxView methodsFor:'accessing-mvc'!
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
model
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   173
    ^ field model
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    "Created: 9.2.1996 / 00:50:18 / cg"
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   176
    "Modified: 28.2.1996 / 15:10:59 / cg"
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
!
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
model:aModel
679
bd0e422aab67 fixed model setting & useIndex: handling (aspect)
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
   180
    super model:aModel.
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   181
    field model:aModel.
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    "Created: 9.2.1996 / 00:50:12 / cg"
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   184
    "Modified: 28.2.1996 / 15:11:03 / cg"
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
! !
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
2585
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   187
!ComboBoxView methodsFor:'change & update'!
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   188
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   189
update:something with:aParameter from:changedObject
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   190
    changedObject == field model ifTrue:[
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   191
        action notNil ifTrue:[
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   192
           action value:(changedObject value)
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   193
        ].
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   194
        ^ self.
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   195
    ].
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   196
    super update:something with:aParameter from:changedObject
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   197
! !
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   198
1312
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   199
!ComboBoxView methodsFor:'event handling'!
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   200
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   201
hasKeyboardFocus:aBoolean
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   202
    super hasKeyboardFocus:aBoolean.
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   203
    field hasKeyboardFocus:aBoolean
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   204
!
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   205
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   206
showFocus:explicit
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   207
    super showFocus:explicit.
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   208
    field showCursor.
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   209
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   210
!
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   211
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   212
showNoFocus:explicit
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   213
    super showNoFocus:explicit.
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   214
    field hideCursor.
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   215
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   216
! !
4c706bd30a5c tabbing (cursor display)
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
   217
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
!ComboBoxView methodsFor:'initialization'!
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
2108
cbba33be6ac0 allow for fields class to be redefined by a subclass
Claus Gittinger <cg@exept.de>
parents: 1312
diff changeset
   220
editFieldClass
cbba33be6ac0 allow for fields class to be redefined by a subclass
Claus Gittinger <cg@exept.de>
parents: 1312
diff changeset
   221
    ^ EditField
cbba33be6ac0 allow for fields class to be redefined by a subclass
Claus Gittinger <cg@exept.de>
parents: 1312
diff changeset
   222
!
cbba33be6ac0 allow for fields class to be redefined by a subclass
Claus Gittinger <cg@exept.de>
parents: 1312
diff changeset
   223
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   224
initializeField
2585
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   225
    |m|
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   226
2108
cbba33be6ac0 allow for fields class to be redefined by a subclass
Claus Gittinger <cg@exept.de>
parents: 1312
diff changeset
   227
    field := self editFieldClass in:self.
519
9ab4fc771a7f better look with 2D styles
Claus Gittinger <cg@exept.de>
parents: 332
diff changeset
   228
    field borderWidth:0.
2585
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   229
    field model:(m := ValueHolder newString).
eb641403010a action was not evaluated when the models
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
   230
    m addDependent:self.
305
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   231
    field acceptOnLostFocus:true.
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   232
    field acceptOnLeave:true.
3196
195bfa3ddf8e tab handling
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
   233
    field 
195bfa3ddf8e tab handling
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
   234
        leaveAction:[:key | 
195bfa3ddf8e tab handling
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
   235
            self fieldLeft.
195bfa3ddf8e tab handling
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
   236
            field handleFocusKey:key.
195bfa3ddf8e tab handling
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
   237
        ].
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
    "
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
     all of my input goes to the enterfield
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    "
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   242
    self delegate:(KeyboardForwarder toView:field).
3311
0899e8423c9a Allow ComboList/Box selection with the mouse wheel
Stefan Vogel <sv@exept.de>
parents: 3196
diff changeset
   243
    field delegate:self.    "delegate mouseWheel events to myself"
4493
c149fd42e738 class: ComboBoxView
Stefan Vogel <sv@exept.de>
parents: 3535
diff changeset
   244
    field font:self font.
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   246
    menuSelectAction := [:menuValue | field contents:menuValue].
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   247
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
    "
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
     |b|
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
     b := ComboBoxView new.
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
     b list:#('hello' 'world' 'this' 'is' 'st/x').
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
     b open
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
    "
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   256
    "Created: / 28-02-1996 / 15:07:51 / cg"
3196
195bfa3ddf8e tab handling
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
   257
    "Modified: / 06-03-2007 / 20:19:32 / cg"
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
! !
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
1183
667132091c2f ComboBox's inputField ought to use its default font.
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   260
!ComboBoxView methodsFor:'private'!
667132091c2f ComboBox's inputField ought to use its default font.
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   261
667132091c2f ComboBox's inputField ought to use its default font.
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   262
setFieldsFont:aFont
667132091c2f ComboBox's inputField ought to use its default font.
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   263
    "ignored - the inputFields font remains unchanged"
667132091c2f ComboBox's inputField ought to use its default font.
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   264
! !
667132091c2f ComboBox's inputField ought to use its default font.
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   265
291
65229309ad5e specClass
ca
parents: 279
diff changeset
   266
!ComboBoxView methodsFor:'queries'!
65229309ad5e specClass
ca
parents: 279
diff changeset
   267
65229309ad5e specClass
ca
parents: 279
diff changeset
   268
specClass
597
ebb7dc78e670 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 519
diff changeset
   269
    "XXX no longer needed (inherited default works here)"
ebb7dc78e670 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 519
diff changeset
   270
291
65229309ad5e specClass
ca
parents: 279
diff changeset
   271
    self class == ComboBoxView ifTrue:[
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   272
        ^ ComboBoxSpec
291
65229309ad5e specClass
ca
parents: 279
diff changeset
   273
    ].
301
edddd206a2e5 specClass query
ca
parents: 291
diff changeset
   274
    ^ super specClass
edddd206a2e5 specClass query
ca
parents: 291
diff changeset
   275
597
ebb7dc78e670 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 519
diff changeset
   276
    "Modified: / 31.10.1997 / 19:49:39 / cg"
291
65229309ad5e specClass
ca
parents: 279
diff changeset
   277
! !
65229309ad5e specClass
ca
parents: 279
diff changeset
   278
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
!ComboBoxView methodsFor:'user interaction'!
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
311
Claus Gittinger <cg@exept.de>
parents: 305
diff changeset
   281
fieldLeft
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   282
    "the edit field was left (via cursor keys or focus change)"
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   283
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   284
    field acceptOnLeave ifTrue:[
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   285
        field accept.
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   286
        action notNil ifTrue:[
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   287
            action value:(field contents)
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   288
        ].
311
Claus Gittinger <cg@exept.de>
parents: 305
diff changeset
   289
Claus Gittinger <cg@exept.de>
parents: 305
diff changeset
   290
    ].
Claus Gittinger <cg@exept.de>
parents: 305
diff changeset
   291
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   292
    "Created: / 26-02-1997 / 19:42:30 / cg"
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   293
    "Modified: / 15-10-2006 / 15:20:14 / cg"
311
Claus Gittinger <cg@exept.de>
parents: 305
diff changeset
   294
!
Claus Gittinger <cg@exept.de>
parents: 305
diff changeset
   295
Claus Gittinger <cg@exept.de>
parents: 305
diff changeset
   296
select:index
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   297
    "a menu item (index) was selected"
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   298
230
0c32e90e689b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   299
    |what|
0c32e90e689b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   300
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   301
    pullDownButton turnOff.
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   302
230
0c32e90e689b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   303
    what := list at:index.
3311
0899e8423c9a Allow ComboList/Box selection with the mouse wheel
Stefan Vogel <sv@exept.de>
parents: 3196
diff changeset
   304
    currentIndex := index.
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   305
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   306
    menuSelectAction value:what.
130
5cad43b11fb5 inserted abstract ComboView class
Claus Gittinger <cg@exept.de>
parents: 127
diff changeset
   307
    field accept.
3534
9b243b355789 Update through pulldown now Works with EditField V1.196
Stefan Vogel <sv@exept.de>
parents: 3491
diff changeset
   308
305
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   309
    action notNil ifTrue:[
2114
40cfff7c7efc acceptIfUnchanged fixed (implemented)
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   310
        action value:what
305
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   311
    ].
7dd100869f7b cleaned up model interface
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
   312
3124
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   313
    "Created: / 28-02-1997 / 14:01:53 / cg"
3060c3f4246d added a hook for the menu-select-action
Claus Gittinger <cg@exept.de>
parents: 2585
diff changeset
   314
    "Modified: / 15-10-2006 / 15:19:53 / cg"
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
! !
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
275
da88b7732dff commentary
Claus Gittinger <cg@exept.de>
parents: 230
diff changeset
   317
!ComboBoxView class methodsFor:'documentation'!
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
version
4637
2d3667c6acc0 class: ComboBoxView
Claus Gittinger <cg@exept.de>
parents: 4493
diff changeset
   320
    ^ '$Header: /cvs/stx/stx/libwidg2/ComboBoxView.st,v 1.35 2014-07-03 11:46:02 cg Exp $'
124
4244606d3a06 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
! !
4493
c149fd42e738 class: ComboBoxView
Stefan Vogel <sv@exept.de>
parents: 3535
diff changeset
   322