TextBox.st
author Claus Gittinger <cg@exept.de>
Fri, 17 Aug 2018 17:36:55 +0200
changeset 5890 99d778b7d1a3
parent 5444 90c4fcd20bd4
child 5932 34eebda99f9e
permissions -rw-r--r--
#UI_ENHANCEMENT by cg class: DSVColumnView draw different icons when disabled (grey) class definition comment/format in: #drawCheckToggleAtX:y:w:state: changed: #drawComboButtonAtX:y:w: #drawRadioButtonAtX:y:w:state: #initStyle class: DSVColumnView class comment/format in: #updateStyleCache
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
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
    14
"{ NameSpace: Smalltalk }"
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
    15
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    16
EnterBox subclass:#TextBox
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
    17
	instanceVariableNames:'textViewClass textView'
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    18
	classVariableNames:''
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    19
	poolDictionaries:''
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    20
	category:'Views-DialogBoxes'
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    21
!
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    22
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    23
!TextBox class methodsFor:'documentation'!
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
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    26
"
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    27
 COPYRIGHT (c) 1992 by Claus Gittinger
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    28
	      All Rights Reserved
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    29
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    30
 This software is furnished under a license and may be used
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    31
 only in accordance with the terms of that license and with the
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    33
 be provided or otherwise made available to, or used by, any
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    34
 other person.  No title to or ownership of the software is
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    35
 hereby transferred.
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    36
"
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    37
!
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    38
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    39
documentation
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    40
"
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    41
    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
    42
    one to cancel, another to start some action.
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    43
    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
    44
    of text.
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    45
"
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    46
!
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    47
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    48
examples
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
    49
"
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    50
  Example (using ok-action callBack):
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    51
                                                                        [exBegin]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    52
    |textBox|
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    53
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    54
    textBox := TextBox new.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    55
    textBox title:'enter some text'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    56
    textBox action:[:text | Transcript showCR:('the entered text was:\' , text) withCRs].
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    57
    textBox showAtPointer.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    58
                                                                        [exEnd]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    59
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    60
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    61
  Example (asking afterwards):
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    62
                                                                        [exBegin]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    63
    |textBox|
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    64
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    65
    textBox := TextBox new.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    66
    textBox title:'enter some text'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    67
    textBox showAtPointer.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    68
    textBox accepted ifTrue:[
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    69
        Transcript showCR:'accepted text is:'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    70
        Transcript showCR:textBox contents
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
                                                                        [exEnd]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    73
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    74
  Example - readonly text (useful for status display):
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    75
                                                                        [exBegin]
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    76
    |textBox|
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    77
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    78
    textBox := TextBox new.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    79
    textBox initialText:('Makefile' asFilename contents).
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    80
    textBox title:'Makefile:'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    81
    textBox readOnly:true.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    82
    textBox noCancel.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    83
    textBox label:'Makefile'.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    84
    textBox extent:(600@250); sizeFixed:true.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    85
    textBox showAtPointer.
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
    86
                                                                        [exEnd]
13
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    87
"
a6185c5180a1 2.10.3 pre-final version
claus
parents: 4
diff changeset
    88
! !
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
    89
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    90
!TextBox class methodsFor:'common dialogs'!
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    91
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    92
openOn:someText
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    93
    "open a textBox on some text, 
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    94
     return (the possibly modified) text if accepted; nil otherwise."
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
    95
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
    96
    ^ self openOn:someText title:'Enter Text:'
2088
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
    97
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
     TextBox openOn:'hello'
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
!
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   102
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   103
openOn:someText title:titleString
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   104
    "open a textBox on some text, the titleString is shown above the text area as information 
2088
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   105
     return (the possibly modified) text if accepted; nil otherwise."
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   106
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   107
    ^ self openOn:someText title:titleString readOnly:false
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   108
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   109
"/    |box returnValue|
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   110
"/
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   111
"/    box := self new.
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   112
"/    box title:titleString.
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   113
"/    box initialText:someText.
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   114
"/    box action:[:text | returnValue := text].
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   115
"/    box showAtPointer.
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   116
"/    ^ returnValue.
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   117
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   118
    "
2088
c8a9d7712cc2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1654
diff changeset
   119
     TextBox openOn:'hello' title:'hi there'
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   120
     TextBox openOn:'hello' title:'hi there
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   121
this is a very long title
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   122
but only the first line is shown in the
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   123
caption.
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   124
'
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   125
    "
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   126
!
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   127
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   128
openOn:someText title:titleString readOnly:readOnly
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   129
    "open a textBox on some text, 
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   130
     return (the possibly modified) text if accepted; nil otherwise."
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   131
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   132
    ^ self 
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   133
        openOn:someText 
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   134
        title:titleString 
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   135
        windowTitle:nil 
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   136
        readOnly:readOnly
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   137
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   138
    "
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   139
     TextBox openOn:'hello' title:'hi there' readOnly:true
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   140
     TextBox openOn:'hello' title:'hi there' readOnly:false
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   141
    "
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   142
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   143
    "Created: / 29-10-2010 / 17:10:04 / cg"
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   144
!
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   145
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   146
openOn:someText title:titleString windowTitle:windowTitle readOnly:readOnly
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   147
    "open a textBox on some text, the optional titleString is shown as label
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   148
     above the text areay. The optional windowTitle is used as title in the caption.        
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   149
     return (the possibly modified) text if accepted; nil otherwise."
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   150
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   151
    |box returnValue usedWindowTitle|
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   152
4582
7192cf4f92ae class: TextBox
Stefan Vogel <sv@exept.de>
parents: 4577
diff changeset
   153
    box := self new.
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   154
    readOnly ifTrue:[ box textViewClass:TextView ].
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   155
    box initialize.
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   156
    titleString notNil ifTrue:[ box title:titleString ].
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   157
    box initialText:someText.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   158
    box action:[:text | returnValue := text].
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   159
    box readOnly:readOnly.
4577
29d5e55a2f07 class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4466
diff changeset
   160
    readOnly ifTrue:[ box abortButton destroy ].
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   161
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   162
    usedWindowTitle := windowTitle.
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   163
    usedWindowTitle isNil ifTrue:[
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   164
        titleString notNil ifTrue:[
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   165
            usedWindowTitle := titleString asString asStringCollection first
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   166
        ] ifFalse:[
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   167
            usedWindowTitle := readOnly ifTrue:'Value' ifFalse:'Input'
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   168
        ].
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   169
    ].
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   170
    box window label:usedWindowTitle.
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   171
    box showAtPointer.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   172
    ^ returnValue.
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   173
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   174
    "
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   175
     TextBox openOn:'hello' title:'hi there' windowTitle:'some Box' readOnly:true
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   176
     TextBox openOn:'hello' title:'hi there' windowTitle:'some Box' readOnly:false
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   177
     TextBox openOn:'hello' title:'hi there' windowTitle:nil readOnly:false
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   178
     TextBox openOn:'hello' title:nil windowTitle:'some Box' readOnly:false
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   179
     TextBox openOn:'hello' title:nil windowTitle:nil readOnly:false
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   180
     TextBox openOn:'hello' title:nil windowTitle:'foo' readOnly:false
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   181
    "
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   182
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   183
    "Created: / 29-10-2010 / 17:10:04 / cg"
1654
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   184
! !
790df576b51b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
   185
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   186
!TextBox class methodsFor:'defaults'!
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   187
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   188
defaultExtent
4466
7b936f52873d Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 3956
diff changeset
   189
    ^ (Screen current pixelPerMillimeter * (120 @ 90)) rounded
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   190
! !
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   191
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   192
!TextBox methodsFor:'accessing'!
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   193
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   194
contents
5444
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   195
    "return my contents (i.e. possibly modified text after accept)"
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   196
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   197
    ^ textView contents
5444
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   198
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   199
    "Modified (comment): / 04-02-2017 / 18:01:03 / cg"
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   200
!
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   201
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   202
initialText:aString
5444
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   203
    "define the initial text in the texteditor"
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   204
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   205
    textView contents:aString
5444
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   206
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   207
    "Modified (comment): / 04-02-2017 / 18:01:16 / cg"
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   208
!
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   209
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   210
readOnly:aBoolean
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   211
    "make my text readOnly or readWrite"
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   212
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   213
    textView readOnly:aBoolean
5444
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   214
! !
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   215
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   216
!TextBox methodsFor:'accessing-contents'!
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   217
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   218
textView
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   219
    ^ textView
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   220
!
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   221
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   222
textViewClass:something
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   223
    textViewClass := something.
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   224
! !
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   225
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   226
!TextBox methodsFor:'initialization'!
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   227
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   228
initialize
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   229
    |space2 space3 innerWidth|
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   230
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   231
    super initialize.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   232
2437
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   233
    enterField destroy.
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   234
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   235
    space2 := 2 * ViewSpacing.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   236
    space3 := 3 * ViewSpacing.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   237
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   238
    "kludge: preset extent to something useful since other subviews
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   239
     depend on it (extent blocks are not evaluated until view is realized)
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   240
     - avoid visible resizing when realized the first time"
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   241
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   242
    innerWidth := width - space2.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   243
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   244
    textView := HVScrollableView for:(textViewClass ? EditTextView) miniScrollerH:true in:self.
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   245
    textView origin:(ViewSpacing @ (space2 + labelField height))
2437
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   246
             extent:(innerWidth @ (height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   247
                                   labelField height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   248
                                   buttonPanel height - space3) ).
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   249
    textView origin:[ViewSpacing @ (space2 + labelField height)]
2437
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   250
             extent:[(width - space2) @ (height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   251
                                   labelField height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   252
                                   buttonPanel height - space3) ].
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   253
54
claus
parents: 47
diff changeset
   254
    self delegate:(KeyboardForwarder toView:textView scrolledView)
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   255
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   256
    "TextBox new showAtPointer"
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   257
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   258
    "Modified: / 29-10-2010 / 17:14:49 / cg"
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   259
! !
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   260
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
   261
!TextBox methodsFor:'queries'!
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   262
62
claus
parents: 54
diff changeset
   263
preferredExtent
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
   264
    "return the extent needed to make everything visible"
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   265
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   266
    |wWanted hWanted wPanel|
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   267
3571
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   268
    "/ If I have an explicit preferredExtent..
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   269
    explicitExtent notNil ifTrue:[
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   270
        ^ explicitExtent
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   271
    ].
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   272
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   273
    "/ If I have a cached preferredExtent value..
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   274
    preferredExtent notNil ifTrue:[
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   275
        ^ preferredExtent
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   276
    ].
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   277
    wWanted := labelField width + ViewSpacing + ViewSpacing.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   278
    (wWanted > width) ifFalse:[
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   279
        wWanted := width
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   280
    ].
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   281
    wPanel := ViewSpacing * 3.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   282
    buttonPanel subViews do:[:aView |
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   283
        wPanel := wPanel + aView width + ViewSpacing
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   284
    ].
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   285
    wPanel > wWanted ifTrue:[
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   286
        wWanted := wPanel
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   287
    ].
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   288
    hWanted := ViewSpacing + labelField height +
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   289
               ViewSpacing + textView height +
3418
8243c6e537e0 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2618
diff changeset
   290
               (ViewSpacing * 6) + buttonPanel preferredHeight +
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   291
               ViewSpacing.
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
   292
    ^ (wWanted @ hWanted)
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   293
! !
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   294
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   295
!TextBox class methodsFor:'documentation'!
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   296
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   297
version
5444
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   298
    ^ '$Header$'
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   299
!
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   300
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   301
version_CVS
5444
90c4fcd20bd4 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4753
diff changeset
   302
    ^ '$Header$'
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   303
! !
4466
7b936f52873d Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 3956
diff changeset
   304