MCLEntry.st
author claus
Wed, 24 Aug 1994 01:44:22 +0200
changeset 19 79ab6bc98651
child 25 e07adf47d209
permissions -rw-r--r--
Initial revision
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
79ab6bc98651 Initial revision
claus
parents:
diff changeset
     1
'From Smalltalk/X, Version:2.10.3 on 12-aug-1994 at 10:44:03 pm'!
79ab6bc98651 Initial revision
claus
parents:
diff changeset
     2
79ab6bc98651 Initial revision
claus
parents:
diff changeset
     3
Object subclass:#MultiColListEntry
79ab6bc98651 Initial revision
claus
parents:
diff changeset
     4
         instanceVariableNames:'strings tabSpec'
79ab6bc98651 Initial revision
claus
parents:
diff changeset
     5
         classVariableNames:''
79ab6bc98651 Initial revision
claus
parents:
diff changeset
     6
         poolDictionaries:''
79ab6bc98651 Initial revision
claus
parents:
diff changeset
     7
         category:'Views-Support'
79ab6bc98651 Initial revision
claus
parents:
diff changeset
     8
!
79ab6bc98651 Initial revision
claus
parents:
diff changeset
     9
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    10
!MultiColListEntry methodsFor:'accessing'!
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    11
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    12
colAt:index put:aString
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    13
    strings isNil ifTrue:[
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    14
        strings := OrderedCollection new:index
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    15
    ].
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    16
    strings grow:index.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    17
    strings at:index put:aString
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    18
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    19
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    20
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    21
!
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    22
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    23
tabulatorSpecification:aTabSpec
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    24
    tabSpec := aTabSpec
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    25
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    26
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    27
! !
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    28
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    29
!MultiColListEntry methodsFor:'converting'!
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    30
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    31
asString
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    32
    |s tab|
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    33
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    34
    s := ''.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    35
    tab := Character tab asString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    36
    1 to:strings size do:[:subStringIndex |
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    37
        s := s , (strings at:subStringIndex).
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    38
        subStringIndex == strings size ifFalse:[
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    39
            s := s , tab
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    40
        ]
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    41
    ].
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    42
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    43
    ^ s
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    44
! !
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    45
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    46
!MultiColListEntry methodsFor:'drawing'!
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    47
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    48
displayOn:aGC x:x y:y
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    49
    |xPos subString tabPos w prevString|
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    50
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    51
    xPos := x.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    52
    prevString := ''.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    53
    1 to:strings size do:[:index |
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    54
        subString := strings at:index.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    55
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    56
        "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    57
         find next tab
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    58
        "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    59
        tabPos := tabSpec positionOfTab:index forString:subString on:aGC.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    60
        tabPos isNil ifTrue:[
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    61
            "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    62
             no tab - just continue where we are ...
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    63
            "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    64
            xPos := xPos + (aGC font widthOf:prevString).
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    65
        ] ifFalse:[
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    66
            xPos := tabPos + x.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    67
        ].
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    68
        aGC displayString:subString x:xPos y:y.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    69
        prevString := subString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    70
    ].
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    71
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    72
    "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    73
     |v e myList tabs|
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    74
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    75
     myList := OrderedCollection new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    76
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    77
     tabs := TabulatorSpecification new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    78
     tabs unit:#inch.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    79
     tabs positions:#(0 3 6).
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    80
     tabs align:#(left #left #left).
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    81
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    82
     e := MultiColListEntry new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    83
     e colAt:1 put:'hello'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    84
     e colAt:2 put:'hallo'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    85
     e colAt:3 put:'salut'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    86
     e tabulatorSpecification:tabs.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    87
     myList add:e.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    88
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    89
     e := MultiColListEntry new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    90
     e colAt:1 put:'good morning'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    91
     e colAt:2 put:'guten Morgen'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    92
     e colAt:3 put:'bon jour'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    93
     e tabulatorSpecification:tabs.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    94
     myList add:e.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    95
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    96
     e := MultiColListEntry new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    97
     e colAt:1 put:'good bye'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    98
     e colAt:2 put:'auf Wiedersehen'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
    99
     e colAt:3 put:'au revoir '.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   100
     e tabulatorSpecification:tabs.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   101
     myList add:e.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   102
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   103
     v := ListView new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   104
     v setList:myList expandTabs:false.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   105
     v open
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   106
    "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   107
    "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   108
     |v e myList tabs|
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   109
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   110
     myList := OrderedCollection new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   111
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   112
     tabs := TabulatorSpecification new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   113
     tabs unit:#cm.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   114
     tabs positions:#(1 3 5).
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   115
     tabs align:#(#right #center #left).
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   116
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   117
     1 to:100 do:[:i|
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   118
         e := MultiColListEntry new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   119
         e colAt:1 put:i printString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   120
         e colAt:2 put:i squared printString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   121
         e colAt:3 put:i sqrt  printString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   122
         e tabulatorSpecification:tabs.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   123
         myList add:e.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   124
     ].
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   125
     v := ScrollableView for:ListView.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   126
     v setList:myList expandTabs:false.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   127
     v open
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   128
    "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   129
    "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   130
     |v e myList tabs|
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   131
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   132
     myList := OrderedCollection new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   133
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   134
     tabs := TabulatorSpecification new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   135
     tabs unit:#cm.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   136
     tabs positions:#(1 3 6 9 12).
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   137
     tabs align:#(#right #decimal #decimal #decimal #decimal).
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   138
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   139
     1 to:100 do:[:i|
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   140
         e := MultiColListEntry new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   141
         e colAt:1 put:i printString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   142
         e colAt:2 put:i log printString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   143
         e colAt:3 put:i sqrt  printString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   144
         e colAt:4 put:i sin  printString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   145
         e colAt:5 put:i cos  printString.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   146
         e tabulatorSpecification:tabs.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   147
         myList add:e.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   148
     ].
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   149
     v := ScrollableView for:ListView.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   150
     v setList:myList expandTabs:false.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   151
     v open
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   152
    "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   153
    "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   154
     |v e myList tabs|
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   155
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   156
     myList := OrderedCollection new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   157
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   158
     e := MultiColListEntry new.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   159
     e colAt:1 put:'2'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   160
     e colAt:2 put:'3.5'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   161
     e colAt:3 put:'4'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   162
     e colAt:4 put:'6'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   163
     e colAt:5 put:'8'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   164
     e colAt:6 put:'10'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   165
     e colAt:7 put:'12'.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   166
     e tabPositions:#(0 2 3.5 4 6 8 10 12); tabUnit:#inch.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   167
     myList add:e.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   168
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   169
     v := ScrollableView for:ListView.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   170
     v setList:myList expandTabs:false.
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   171
     v open
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   172
    "
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   173
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   174
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   175
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   176
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   177
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   178
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   179
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   180
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   181
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   182
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   183
! !
79ab6bc98651 Initial revision
claus
parents:
diff changeset
   184