TextBox.st
author Stefan Vogel <sv@exept.de>
Thu, 16 Jan 2014 15:32:28 +0100
changeset 4466 7b936f52873d
parent 3956 32c277e2d606
child 4577 29d5e55a2f07
permissions -rw-r--r--
Replace references to Diplay with "Screen current" - where appropriate
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
     1
"
4
claus
parents: 2
diff changeset
     2
 COPYRIGHT (c) 1992 by Claus Gittinger
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
     3
	      All Rights Reserved
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
     4
0fd7841626f6 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
0fd7841626f6 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
0fd7841626f6 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
0fd7841626f6 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
0fd7841626f6 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    11
"
2088
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
    12
"{ Package: 'stx:libwidg2' }"
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
    13
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    14
EnterBox subclass:#TextBox
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
    15
	instanceVariableNames:'textViewClass textView'
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    16
	classVariableNames:''
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    17
	poolDictionaries:''
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    18
	category:'Views-DialogBoxes'
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    19
!
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    20
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    21
!TextBox class methodsFor:'documentation'!
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    22
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    23
copyright
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    24
"
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    25
 COPYRIGHT (c) 1992 by Claus Gittinger
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    26
	      All Rights Reserved
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    27
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    28
 This software is furnished under a license and may be used
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    29
 only in accordance with the terms of that license and with the
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    31
 be provided or otherwise made available to, or used by, any
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    32
 other person.  No title to or ownership of the software is
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    33
 hereby transferred.
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    34
"
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    35
!
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    36
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    37
documentation
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    38
"
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    39
    this class implements a pop-up box to enter some text with 2 buttons,
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    40
    one to cancel, another to start some action.
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    41
    It is basically an enterBox, but allows entering of more than one line
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    42
    of text.
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    43
"
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    44
!
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    45
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    46
examples
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    47
"
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    48
  Example (using ok-action callBack):
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    49
                                                                        [exBegin]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    50
    |textBox|
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    51
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    52
    textBox := TextBox new.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    53
    textBox title:'enter some text'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    54
    textBox action:[:text | Transcript showCR:('the entered text was:\' , text) withCRs].
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    55
    textBox showAtPointer.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    56
                                                                        [exEnd]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    57
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    58
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    59
  Example (asking afterwards):
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    60
                                                                        [exBegin]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    61
    |textBox|
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    62
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    63
    textBox := TextBox new.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    64
    textBox title:'enter some text'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    65
    textBox showAtPointer.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    66
    textBox accepted ifTrue:[
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    67
        Transcript showCR:'accepted text is:'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    68
        Transcript showCR:textBox contents
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    69
    ].
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    70
                                                                        [exEnd]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    71
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    72
  Example - readonly text (useful for status display):
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    73
                                                                        [exBegin]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    74
    |textBox|
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    75
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    76
    textBox := TextBox new.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    77
    textBox initialText:('Makefile' asFilename contents).
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    78
    textBox title:'Makefile:'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    79
    textBox readOnly:true.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    80
    textBox noCancel.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    81
    textBox label:'Makefile'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    82
    textBox extent:(600@250); sizeFixed:true.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    83
    textBox showAtPointer.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    84
                                                                        [exEnd]
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    85
"
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    86
! !
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    87
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    88
!TextBox class methodsFor:'common dialogs'!
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    89
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    90
openOn:someText
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    91
    "open a textBox on some text, 
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    92
     return (the possibly modified) text if accepted; nil otherwise."
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    93
2088
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
    94
    ^ self openOn:someText title:'Enter text'
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
    95
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
    96
    "
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
    97
     TextBox openOn:'hello'
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
    98
    "
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
    99
!
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   100
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   101
openOn:someText title:titleString
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   102
    "open a textBox on some text, 
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   103
     return (the possibly modified) text if accepted; nil otherwise."
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   104
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   105
    |box returnValue|
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   106
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   107
    box := self new.
2088
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   108
    box title:titleString.
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   109
    box initialText:someText.
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   110
    box action:[:text | returnValue := text].
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   111
    box showAtPointer.
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   112
    ^ returnValue.
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   113
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   114
    "
2088
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   115
     TextBox openOn:'hello' title:'hi there'
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   116
    "
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   117
!
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   118
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   119
openOn:someText title:titleString readOnly:readOnly
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   120
    "open a textBox on some text, 
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   121
     return (the possibly modified) text if accepted; nil otherwise."
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   122
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   123
    |box returnValue|
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   124
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   125
    box := self basicNew.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   126
    readOnly ifTrue:[ box textViewClass:TextView ].
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   127
    box initialize.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   128
    box title:titleString.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   129
    box initialText:someText.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   130
    box action:[:text | returnValue := text].
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   131
    box readOnly:readOnly.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   132
    box showAtPointer.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   133
    ^ returnValue.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   134
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   135
    "
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   136
     TextBox openOn:'hello' title:'hi there' readOnly:true
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   137
     TextBox openOn:'hello' title:'hi there' readOnly:false
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   138
    "
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   139
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   140
    "Created: / 29-10-2010 / 17:10:04 / cg"
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   141
! !
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   142
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   143
!TextBox class methodsFor:'defaults'!
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   144
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   145
defaultExtent
4466
7b936f52873d Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 3956
diff changeset
   146
    ^ (Screen current pixelPerMillimeter * (120 @ 90)) rounded
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   147
! !
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   148
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   149
!TextBox methodsFor:'accessing'!
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   150
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   151
contents
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   152
    "return my contents"
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   153
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   154
    ^ textView contents
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   155
!
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   156
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   157
initialText:aString
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   158
    "define the initial text in the enterfield"
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   159
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   160
    textView contents:aString
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   161
!
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   162
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   163
readOnly:aBoolean
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   164
    "make my text readOnly or readWrite"
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   165
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   166
    textView readOnly:aBoolean
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   167
!
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   168
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   169
textView
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   170
    ^ textView
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   171
!
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   172
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   173
textViewClass:something
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   174
    textViewClass := something.
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   175
! !
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   176
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   177
!TextBox methodsFor:'initialization'!
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   178
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   179
initialize
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   180
    |space2 space3 innerWidth|
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   181
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   182
    super initialize.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   183
2437
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   184
    enterField destroy.
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   185
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   186
    space2 := 2 * ViewSpacing.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   187
    space3 := 3 * ViewSpacing.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   188
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   189
    "kludge: preset extent to something useful since other subviews
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   190
     depend on it (extent blocks are not evaluated until view is realized)
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   191
     - avoid visible resizing when realized the first time"
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   192
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   193
    innerWidth := width - space2.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   194
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   195
    textView := HVScrollableView for:(textViewClass ? EditTextView) miniScrollerH:true in:self.
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   196
    textView origin:(ViewSpacing @ (space2 + labelField height))
2437
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   197
             extent:(innerWidth @ (height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   198
                                   labelField height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   199
                                   buttonPanel height - space3) ).
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   200
    textView origin:[ViewSpacing @ (space2 + labelField height)]
2437
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   201
             extent:[(width - space2) @ (height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   202
                                   labelField height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   203
                                   buttonPanel height - space3) ].
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   204
54
claus
parents: 47
diff changeset
   205
    self delegate:(KeyboardForwarder toView:textView scrolledView)
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   206
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   207
    "TextBox new showAtPointer"
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   208
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   209
    "Modified: / 29-10-2010 / 17:14:49 / cg"
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   210
! !
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   211
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
   212
!TextBox methodsFor:'queries'!
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   213
62
claus
parents: 54
diff changeset
   214
preferredExtent
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
   215
    "return the extent needed to make everything visible"
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   216
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   217
    |wWanted hWanted wPanel|
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   218
3571
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   219
    "/ If I have an explicit preferredExtent..
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   220
    explicitExtent notNil ifTrue:[
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   221
        ^ explicitExtent
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   222
    ].
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   223
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   224
    "/ If I have a cached preferredExtent value..
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   225
    preferredExtent notNil ifTrue:[
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   226
        ^ preferredExtent
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   227
    ].
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   228
    wWanted := labelField width + ViewSpacing + ViewSpacing.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   229
    (wWanted > width) ifFalse:[
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   230
        wWanted := width
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   231
    ].
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   232
    wPanel := ViewSpacing * 3.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   233
    buttonPanel subViews do:[:aView |
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   234
        wPanel := wPanel + aView width + ViewSpacing
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   235
    ].
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   236
    wPanel > wWanted ifTrue:[
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   237
        wWanted := wPanel
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   238
    ].
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   239
    hWanted := ViewSpacing + labelField height +
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   240
               ViewSpacing + textView height +
3418
8243c6e537e0 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2618
diff changeset
   241
               (ViewSpacing * 6) + buttonPanel preferredHeight +
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   242
               ViewSpacing.
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
   243
    ^ (wWanted @ hWanted)
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   244
! !
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   245
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   246
!TextBox class methodsFor:'documentation'!
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   247
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   248
version
4466
7b936f52873d Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 3956
diff changeset
   249
    ^ '$Header: /cvs/stx/stx/libwidg2/TextBox.st,v 1.22 2014-01-16 14:32:28 stefan Exp $'
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   250
!
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   251
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   252
version_CVS
4466
7b936f52873d Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 3956
diff changeset
   253
    ^ '$Header: /cvs/stx/stx/libwidg2/TextBox.st,v 1.22 2014-01-16 14:32:28 stefan Exp $'
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   254
! !
4466
7b936f52873d Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 3956
diff changeset
   255