CheckBox.st
author claus
Tue, 09 May 1995 03:58:26 +0200
changeset 55 75c4a8031e66
parent 49 4dd0f5c3353e
child 56 aa651da467e2
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
     1
"
97c1c943bef6 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1995 by Claus Gittinger
49
claus
parents: 44
diff changeset
     3
	      All Rights Reserved
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
     4
97c1c943bef6 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
97c1c943bef6 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
97c1c943bef6 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
97c1c943bef6 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
97c1c943bef6 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    11
"
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    12
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    13
55
claus
parents: 49
diff changeset
    14
'From Smalltalk/X, Version:2.10.5 on 8-may-1995 at 3:48:28 am'!
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    15
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    16
HorizontalPanelView subclass:#CheckBox
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    17
	 instanceVariableNames:'toggleView labelView'
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    18
	 classVariableNames:''
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    19
	 poolDictionaries:''
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    20
	 category:'Views-Interactors'
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    21
!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    22
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    23
!CheckBox class methodsFor:'documentation'!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    24
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    25
version
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    26
"
55
claus
parents: 49
diff changeset
    27
$Header: /cvs/stx/stx/libwidg2/CheckBox.st,v 1.3 1995-05-09 01:57:57 claus Exp $
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    28
"
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    29
!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    30
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    31
documentation
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    32
"
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    33
    CheckBox has been added somwehat in a hurry 
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    34
    - obviously, much more protocol is needed.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    35
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    36
    For now, set actions etc. via sends to the components,
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    37
    labelView and toggleView.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    38
"
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    39
!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    40
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    41
examples
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    42
"
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    43
  no-op checkBox:
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    45
     |b|
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    46
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    47
     b := CheckBox new.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    48
     b label:'foo'.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    49
     b open
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    50
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    51
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    52
  changing colors (a demo only: it is no good style to fight the styleSheet):
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    53
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    54
     |panel b|
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    55
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    56
     panel := VerticalPanelView new.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    57
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    58
     b := CheckBox in:panel.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    59
     b label:'foo'.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    60
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    61
     b := CheckBox in:panel.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    62
     b label:'bar'.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    63
     b labelView foregroundColor:Color red.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    64
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    65
     b := CheckBox in:panel.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    66
     b label:'baz'.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    67
     b toggleView activeForegroundColor:Color blue.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    68
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    69
     panel open
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    70
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    71
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    72
  using action-blocks:
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    73
49
claus
parents: 44
diff changeset
    74
     |b|
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    75
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    76
     b := CheckBox new.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    77
     b label:'check'.
49
claus
parents: 44
diff changeset
    78
     b action:[:value | Transcript show:'set to: '; showCr:value].
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    79
     b open.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    80
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    81
49
claus
parents: 44
diff changeset
    82
  with a model (default ST-80 behavior, sending #value: to the model):
claus
parents: 44
diff changeset
    83
  (see changing value in the inspector)
claus
parents: 44
diff changeset
    84
claus
parents: 44
diff changeset
    85
     |b model|
claus
parents: 44
diff changeset
    86
claus
parents: 44
diff changeset
    87
     model := ValueHolder newBoolean.
claus
parents: 44
diff changeset
    88
claus
parents: 44
diff changeset
    89
     b := CheckBox new.
claus
parents: 44
diff changeset
    90
     b label:'check'.
claus
parents: 44
diff changeset
    91
     b model:model.
claus
parents: 44
diff changeset
    92
     b open.
claus
parents: 44
diff changeset
    93
     model inspect.
claus
parents: 44
diff changeset
    94
claus
parents: 44
diff changeset
    95
  with a model and different changeSelector
claus
parents: 44
diff changeset
    96
  (using a plug here, for demonstration only):
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    97
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    98
     |b model|
97c1c943bef6 Initial revision
claus
parents:
diff changeset
    99
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   100
     model := Plug new.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   101
     model respondTo:#changeCheck: with:[:arg | Transcript showCr:'change to ' , arg printString].
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   102
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   103
     b := CheckBox new.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   104
     b label:'check'.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   105
     b model:model; change:#changeCheck:.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   106
     b open.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   107
49
claus
parents: 44
diff changeset
   108
  multiple checkBoxes on a single model (using different aspects)
claus
parents: 44
diff changeset
   109
claus
parents: 44
diff changeset
   110
     |top panel b model value1 value2 ok|
claus
parents: 44
diff changeset
   111
claus
parents: 44
diff changeset
   112
     value1 := true.
claus
parents: 44
diff changeset
   113
     value2 := false.
claus
parents: 44
diff changeset
   114
     model := Plug new.
claus
parents: 44
diff changeset
   115
     model respondTo:#value1 with:[value1].
claus
parents: 44
diff changeset
   116
     model respondTo:#value1: with:[:val | value1 := val].
claus
parents: 44
diff changeset
   117
     model respondTo:#value2 with:[value2].
claus
parents: 44
diff changeset
   118
     model respondTo:#value2: with:[:val | value2 := val].
claus
parents: 44
diff changeset
   119
claus
parents: 44
diff changeset
   120
     top := DialogBox new.
claus
parents: 44
diff changeset
   121
     top extent:200@300.
claus
parents: 44
diff changeset
   122
claus
parents: 44
diff changeset
   123
     panel := VerticalPanelView new.
claus
parents: 44
diff changeset
   124
claus
parents: 44
diff changeset
   125
     b := CheckBox in:panel.
claus
parents: 44
diff changeset
   126
     b label:'check1'.
claus
parents: 44
diff changeset
   127
     b model:model; aspect:#value1; change:#value1:.
claus
parents: 44
diff changeset
   128
claus
parents: 44
diff changeset
   129
     b := CheckBox in:panel.
claus
parents: 44
diff changeset
   130
     b label:'check2'.
claus
parents: 44
diff changeset
   131
     b model:model; aspect:#value2; change:#value2:.
claus
parents: 44
diff changeset
   132
claus
parents: 44
diff changeset
   133
     top addComponent:panel.
claus
parents: 44
diff changeset
   134
     top addAbortButton; addOkButton.
claus
parents: 44
diff changeset
   135
     top okAction:[ok := true].
claus
parents: 44
diff changeset
   136
     ok := false.
claus
parents: 44
diff changeset
   137
     top openModal.
claus
parents: 44
diff changeset
   138
claus
parents: 44
diff changeset
   139
     ok ifTrue:[
claus
parents: 44
diff changeset
   140
	 Transcript show:'value1: '; showCr:model value1.
claus
parents: 44
diff changeset
   141
	 Transcript show:'value2: '; showCr:model value2.
claus
parents: 44
diff changeset
   142
     ]
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   143
"
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   144
!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   145
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   146
copyright
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   147
"
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   148
 COPYRIGHT (c) 1995 by Claus Gittinger
49
claus
parents: 44
diff changeset
   149
	      All Rights Reserved
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   150
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   151
 This software is furnished under a license and may be used
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   152
 only in accordance with the terms of that license and with the
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   153
 inclusion of the above copyright notice.   This software may not
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   154
 be provided or otherwise made available to, or used by, any
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   155
 other person.  No title to or ownership of the software is
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   156
 hereby transferred.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   157
"
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   158
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   159
! !
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   160
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   161
!CheckBox methodsFor:'accessing'!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   162
55
claus
parents: 49
diff changeset
   163
label:aString
claus
parents: 49
diff changeset
   164
    labelView label:aString.
claus
parents: 49
diff changeset
   165
    labelView forceResize.
claus
parents: 49
diff changeset
   166
    mustRearrange := true.
claus
parents: 49
diff changeset
   167
!
claus
parents: 49
diff changeset
   168
49
claus
parents: 44
diff changeset
   169
font:aFont
claus
parents: 44
diff changeset
   170
    labelView font:aFont.
claus
parents: 44
diff changeset
   171
    labelView forceResize.
claus
parents: 44
diff changeset
   172
    mustRearrange := true.
claus
parents: 44
diff changeset
   173
!
claus
parents: 44
diff changeset
   174
claus
parents: 44
diff changeset
   175
font
claus
parents: 44
diff changeset
   176
    ^ labelView font
claus
parents: 44
diff changeset
   177
!
claus
parents: 44
diff changeset
   178
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   179
change:aChangeSelector
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   180
    toggleView change:aChangeSelector
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   181
!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   182
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   183
label
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   184
    ^ labelView label
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   185
!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   186
55
claus
parents: 49
diff changeset
   187
model:aModel
claus
parents: 49
diff changeset
   188
    labelView model:aModel.
claus
parents: 49
diff changeset
   189
    toggleView model:aModel
claus
parents: 49
diff changeset
   190
!
claus
parents: 49
diff changeset
   191
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   192
labelView
49
claus
parents: 44
diff changeset
   193
    "return the labelView; allows manipulation of the
claus
parents: 44
diff changeset
   194
     labels attributes (colors etc.)"
claus
parents: 44
diff changeset
   195
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   196
    ^ labelView
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   197
!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   198
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   199
toggleView
49
claus
parents: 44
diff changeset
   200
    "return the toggleView; allows manipulation of the
claus
parents: 44
diff changeset
   201
     toggles attributes (colors etc.)"
claus
parents: 44
diff changeset
   202
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   203
    ^ toggleView
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   204
!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   205
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   206
aspect:aspectSymbol
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   207
    labelView aspect:aspectSymbol.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   208
    toggleView aspect:aspectSymbol
49
claus
parents: 44
diff changeset
   209
!
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   210
55
claus
parents: 49
diff changeset
   211
turnOn
claus
parents: 49
diff changeset
   212
    toggleView turnOn
claus
parents: 49
diff changeset
   213
!
claus
parents: 49
diff changeset
   214
49
claus
parents: 44
diff changeset
   215
action:aBlock
claus
parents: 44
diff changeset
   216
    toggleView action:aBlock
claus
parents: 44
diff changeset
   217
!
claus
parents: 44
diff changeset
   218
claus
parents: 44
diff changeset
   219
enable
claus
parents: 44
diff changeset
   220
    toggleView enable
claus
parents: 44
diff changeset
   221
!
claus
parents: 44
diff changeset
   222
55
claus
parents: 49
diff changeset
   223
turnOff
claus
parents: 49
diff changeset
   224
    toggleView turnOff
claus
parents: 49
diff changeset
   225
!
claus
parents: 49
diff changeset
   226
claus
parents: 49
diff changeset
   227
sendChangeMessageWith:aValue
claus
parents: 49
diff changeset
   228
    toggleView sendChangeMessageWith:aValue
claus
parents: 49
diff changeset
   229
!
claus
parents: 49
diff changeset
   230
49
claus
parents: 44
diff changeset
   231
disable
claus
parents: 44
diff changeset
   232
    toggleView disable
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   233
! !
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   234
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   235
!CheckBox methodsFor:'initialization'!
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   236
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   237
initialize
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   238
    |panel|
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   239
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   240
    super initialize.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   241
49
claus
parents: 44
diff changeset
   242
    hLayout := #fixLeftSpace.
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   243
    vLayout := #center.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   244
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   245
    toggleView := CheckToggle in:self.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   246
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   247
    labelView := Label in:self.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   248
    labelView label:'check'.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   249
    labelView forceResize.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   250
    labelView adjust:#left.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   251
    self height:labelView preferedExtent y + ViewSpacing.
55
claus
parents: 49
diff changeset
   252
"/    self delegate:(KeyboardForwarder toView:toggleView).
claus
parents: 49
diff changeset
   253
claus
parents: 49
diff changeset
   254
    self controller:(toggleView controller view:toggleView).
44
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   255
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   256
    "
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   257
     |b|
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   258
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   259
     b := CheckBox new.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   260
     b label:'foo'.
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   261
     b open
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   262
    "
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   263
! !
97c1c943bef6 Initial revision
claus
parents:
diff changeset
   264