TextBox.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 02 Sep 2022 11:25:39 +0100
branchjv
changeset 6261 9b7eb7159d29
parent 5970 53fd42d2c814
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:
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
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   195
    "return my contents"
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
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   198
!
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   199
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   200
initialText:aString
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   201
    "define the initial text in the enterfield"
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   202
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   203
    textView contents:aString
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
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   206
readOnly:aBoolean
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   207
    "make my text readOnly or readWrite"
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
    textView readOnly:aBoolean
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   210
!
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   211
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   212
textView
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   213
    ^ textView
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   214
!
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   215
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   216
textViewClass:something
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   217
    textViewClass := something.
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   218
! !
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   219
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   220
!TextBox methodsFor:'initialization'!
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   221
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   222
initialize
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   223
    |space2 space3 innerWidth|
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   224
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   225
    super initialize.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   226
2437
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   227
    enterField destroy.
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   228
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   229
    space2 := 2 * ViewSpacing.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   230
    space3 := 3 * ViewSpacing.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   231
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   232
    "kludge: preset extent to something useful since other subviews
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   233
     depend on it (extent blocks are not evaluated until view is realized)
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   234
     - avoid visible resizing when realized the first time"
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   235
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   236
    innerWidth := width - space2.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   237
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   238
    textView := HVScrollableView for:(textViewClass ? EditTextView) miniScrollerH:true in:self.
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   239
    textView origin:(ViewSpacing @ (space2 + labelField height))
2437
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   240
             extent:(innerWidth @ (height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   241
                                   labelField height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   242
                                   buttonPanel height - space3) ).
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   243
    textView origin:[ViewSpacing @ (space2 + labelField height)]
2437
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   244
             extent:[(width - space2) @ (height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   245
                                   labelField height - ViewSpacing -
c9ba20e3367a destroy the unused enterField
Claus Gittinger <cg@exept.de>
parents: 2088
diff changeset
   246
                                   buttonPanel height - space3) ].
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   247
54
claus
parents: 47
diff changeset
   248
    self delegate:(KeyboardForwarder toView:textView scrolledView)
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   249
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   250
    "TextBox new showAtPointer"
3956
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
    "Modified: / 29-10-2010 / 17:14:49 / cg"
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   253
! !
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   254
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
   255
!TextBox methodsFor:'queries'!
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   256
62
claus
parents: 54
diff changeset
   257
preferredExtent
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
   258
    "return the extent needed to make everything visible"
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   259
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   260
    |wWanted hWanted wPanel|
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   261
3571
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   262
    "/ If I have an explicit preferredExtent..
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   263
    explicitExtent notNil ifTrue:[
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   264
        ^ explicitExtent
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   265
    ].
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   266
15340c832dd7 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3418
diff changeset
   267
    "/ If I have a cached preferredExtent value..
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   268
    preferredExtent notNil ifTrue:[
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   269
        ^ preferredExtent
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   270
    ].
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   271
    wWanted := labelField width + ViewSpacing + ViewSpacing.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   272
    (wWanted > width) ifFalse:[
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   273
        wWanted := width
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   274
    ].
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   275
    wPanel := ViewSpacing * 3.
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   276
    buttonPanel subViews do:[:aView |
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   277
        wPanel := wPanel + aView width + ViewSpacing
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   278
    ].
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   279
    wPanel > wWanted ifTrue:[
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   280
        wWanted := wPanel
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   281
    ].
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   282
    hWanted := ViewSpacing + labelField height +
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   283
               ViewSpacing + textView height +
3418
8243c6e537e0 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2618
diff changeset
   284
               (ViewSpacing * 6) + buttonPanel preferredHeight +
2618
855495c01b1c care for preferredExtent
Claus Gittinger <cg@exept.de>
parents: 2437
diff changeset
   285
               ViewSpacing.
26
ff148983c183 *** empty log message ***
claus
parents: 13
diff changeset
   286
    ^ (wWanted @ hWanted)
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   287
! !
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   288
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   289
!TextBox class methodsFor:'documentation'!
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   290
1555
333b639caa8a added #readOnly:
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   291
version
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   292
    ^ '$Header: /cvs/stx/stx/libwidg2/TextBox.st,v 1.25 2015-05-04 13:47:26 cg Exp $'
3956
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   293
!
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   294
32c277e2d606 readonly attribute
Claus Gittinger <cg@exept.de>
parents: 3571
diff changeset
   295
version_CVS
4753
e579fa76300e class: TextBox
Claus Gittinger <cg@exept.de>
parents: 4582
diff changeset
   296
    ^ '$Header: /cvs/stx/stx/libwidg2/TextBox.st,v 1.25 2015-05-04 13:47:26 cg Exp $'
0
0fd7841626f6 Initial revision
claus
parents:
diff changeset
   297
! !
4466
7b936f52873d Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 3956
diff changeset
   298