TabWidget.st
author ca
Tue, 08 Apr 1997 17:23:20 +0200
changeset 351 6c46f186d84f
parent 350 cb420d4899ab
child 367 cff1a140978f
permissions -rw-r--r--
make selected line to bottom line if #selectionAtBottom is set ro true ( tab-style )
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
     1
"
dd49faa984ce intitial checkin
ca
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
dd49faa984ce intitial checkin
ca
parents:
diff changeset
     3
              All Rights Reserved
dd49faa984ce intitial checkin
ca
parents:
diff changeset
     4
dd49faa984ce intitial checkin
ca
parents:
diff changeset
     5
 This software is furnished under a license and may be used
dd49faa984ce intitial checkin
ca
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
dd49faa984ce intitial checkin
ca
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
dd49faa984ce intitial checkin
ca
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
dd49faa984ce intitial checkin
ca
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    10
 hereby transferred.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    11
"
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    12
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    13
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    14
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    15
Object subclass:#TabWidget
350
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
    16
	instanceVariableNames:'tabView label origin extent inset lineNr'
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    17
	classVariableNames:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    18
	poolDictionaries:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    19
	category:'Views-Interactors'
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    20
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    21
350
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
    22
TabWidget subclass:#Window
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    23
	instanceVariableNames:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    24
	classVariableNames:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    25
	poolDictionaries:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    26
	privateIn:TabWidget
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    27
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    28
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
    29
TabWidget subclass:#Mac
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    30
	instanceVariableNames:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    31
	classVariableNames:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    32
	poolDictionaries:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    33
	privateIn:TabWidget
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    34
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    35
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
    36
TabWidget subclass:#Folder
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    37
	instanceVariableNames:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    38
	classVariableNames:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    39
	poolDictionaries:''
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    40
	privateIn:TabWidget
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    41
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    42
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    43
!TabWidget class methodsFor:'documentation'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    44
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    45
copyright
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    46
"
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    47
 COPYRIGHT (c) 1997 by eXept Software AG
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    48
              All Rights Reserved
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    49
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    50
 This software is furnished under a license and may be used
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    51
 only in accordance with the terms of that license and with the
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    52
 inclusion of the above copyright notice.   This software may not
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    53
 be provided or otherwise made available to, or used by, any
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    54
 other person.  No title to or ownership of the software is
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    55
 hereby transferred.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    56
"
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    57
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    58
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    59
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    60
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    61
documentation
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    62
"
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    63
    instances represent (& draw) the tabs of a tabWidget.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    64
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    65
    [author:]
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    66
        Claus Atzkern
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    67
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    68
    [see also:]
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    69
        TabView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    70
"
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    71
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    72
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    73
!TabWidget class methodsFor:'instance creation'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    74
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    75
label:aLabel for:aTabView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    76
    "create tab
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    77
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    78
    ^ self new label:aLabel for:aTabView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    79
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    80
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    81
!TabWidget class methodsFor:'accessing'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    82
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    83
tabStyleOn:aView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    84
    "returns default tab style
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    85
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    86
    |style selectedColor unselectedColor|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    87
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    88
    style    := IdentityDictionary new.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    89
    selectedColor   := Color gray:90.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    90
    unselectedColor := Color gray:75.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    91
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    92
    style at:#widget put:self.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    93
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    94
    style at:#shadowColorSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    95
         put:((selectedColor averageColorIn:(0@0 corner:7@7)) darkened  on:aView device).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    96
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    97
    style at:#lightColorSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    98
         put:((selectedColor averageColorIn:(0@0 corner:7@7)) lightened on:aView device).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    99
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   100
    style at:#shadowColorUnselected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   101
         put:((unselectedColor averageColorIn:(0@0 corner:7@7)) darkened  on:aView device).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   102
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   103
    style at:#lightColorUnselected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   104
         put:((unselectedColor averageColorIn:(0@0 corner:7@7)) lightened on:aView device).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   105
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   106
    style at:#unselectedColor    put:unselectedColor.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   107
    style at:#selectedColor      put:selectedColor.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   108
    style at:#labelColor         put:(Color black).
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   109
    style at:#selectionAtBottom  put:false.  "/ true: selected tab always moved to bottom
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   110
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   111
    style at:#vspace             put:0.      "/ vertical   tab space
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   112
    style at:#hspace             put:0.      "/ horizontal tab space
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   113
    style at:#leftOverLap        put:0.      "/ right tab overlaps left tab n pixels
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   114
    style at:#lableTopInset      put:4.      "/ additional top label inset
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   115
    style at:#labelBottomInset   put:4.      "/ additional bottom inset
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   116
    style at:#expandSelection    put:0@0.    "/ expand selection extent x y when raised
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   117
    style at:#fixedLabelSize     put:false.  "/ true: label size derives from preferred extent
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   118
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   119
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   120
  ^ style
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   121
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   122
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   123
widgetClass:aWidget
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   124
    |wdg nm|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   125
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   126
    nm := aWidget asString.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   127
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   128
    (wdg := Smalltalk classNamed:(self name asString, '::', nm)) notNil ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   129
        ^ wdg
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   130
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   131
    ^ Smalltalk classNamed:nm
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   132
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   133
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   134
!TabWidget class methodsFor:'constants'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   135
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   136
defaultExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   137
    ^ 80 @ 25
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   138
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   139
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   140
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   141
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   142
labelLeftInset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   143
    ^ 4
350
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   144
!
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   145
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   146
labelRightInset
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   147
    ^ 4
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   148
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   149
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   150
!TabWidget methodsFor:'accessing'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   151
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   152
extent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   153
    "return the tab extent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   154
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   155
    ^ extent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   156
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   157
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   158
extent:anExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   159
    "change the tab extent; no redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   160
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   161
    extent := anExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   162
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   163
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   164
inset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   165
    "returns the bottom inset starting from 1.0
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   166
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   167
    ^ inset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   168
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   169
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   170
inset:anInset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   171
    "change the bottom inset starting from 1.0; no redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   172
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   173
    inset := anInset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   174
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   175
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   176
label
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   177
    ^ label
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   178
!
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   179
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   180
labelOrigin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   181
    "returns origin of label
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   182
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   183
  ^ (self labelOriginWithinFrame)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   184
     + ((tabView styleAt:#leftOverLap) @ (tabView styleAt:#lableTopInset))
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   185
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   186
350
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   187
lineNr
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   188
    "returns line number
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   189
    "
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   190
    ^ lineNr
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   191
!
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   192
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   193
lineNr:aLineNr
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   194
    "change line number
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   195
    "
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   196
    lineNr := aLineNr
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   197
!
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   198
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   199
origin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   200
    "returns the tab origin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   201
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   202
    ^ origin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   203
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   204
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   205
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   206
origin:anOrigin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   207
    "change the tab origin; no redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   208
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   209
    origin := anOrigin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   210
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   211
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   212
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   213
origin:anOrigin extent:anExtent inset:anInset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   214
    "change origin, extent and bottom inset starting from 1.0; no redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   215
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   216
    origin := anOrigin.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   217
    extent := anExtent.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   218
    inset  := anInset.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   219
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   220
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   221
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   222
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   223
preferredExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   224
    "returns my preferred extent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   225
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   226
    |x y|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   227
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   228
    label isNil ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   229
        ^ self class defaultExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   230
    ].
350
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   231
    x := (label widthOn:tabView)
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   232
        + (self class labelRightInset)
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   233
        + (self class labelLeftInset).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   234
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   235
    y :=   (label heightOn:tabView)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   236
         + (tabView styleAt:#labelBottomInset)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   237
         + (tabView styleAt:#lableTopInset).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   238
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   239
  ^ ((self labelOrigin) + (x@y))
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   240
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   241
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   242
!TabWidget methodsFor:'drawing'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   243
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   244
redraw:isSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   245
    "full redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   246
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   247
    |p y|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   248
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   249
    self redrawSelected:isSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   250
    tabView paintColor:#labelColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   251
    p := origin  + self labelOrigin.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   252
    y := p y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   253
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   254
    label isString ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   255
        y := y + tabView font ascent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   256
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   257
    label displayOn:tabView x:(p x) y:y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   258
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   259
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   260
!TabWidget methodsFor:'initialization'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   261
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   262
label:aLabel for:aTabView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   263
    "initialize attributes
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   264
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   265
    tabView     := aTabView.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   266
    label       := aLabel.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   267
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   268
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   269
!TabWidget methodsFor:'queries'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   270
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   271
containsPoint:aPoint
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   272
    "return true, if the aPoint is contained in the tab
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   273
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   274
    |x|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   275
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   276
    x := aPoint x.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   277
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   278
    (x >= origin x and:[aPoint y >= origin y]) ifTrue:[
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   279
        ^ x < (origin x + extent x)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   280
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   281
    ^ false.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   282
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   283
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   284
!TabWidget methodsFor:'redefine'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   285
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   286
labelOriginWithinFrame
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   287
    "returns the offset from origin to the origin of the label
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   288
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   289
    ^ (self class labelLeftInset) @ 0
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   290
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   291
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   292
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   293
redrawSelected:isSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   294
    "full redraw excluding the label
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   295
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   296
    ^ self subclassResponsibility
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   297
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   298
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   299
styleChanged:anIdentifier to:someThing
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   300
    "any style changed; could be redifined in subclass
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   301
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   302
    |dark light|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   303
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   304
    anIdentifier == #selectedColor ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   305
        dark  := #shadowColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   306
        light := #lightColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   307
    ] ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   308
        anIdentifier == #unselectedColor ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   309
            ^ self
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   310
        ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   311
        dark  := #shadowColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   312
        light := #lightColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   313
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   314
    tabView styleAt:dark  put:((someThing averageColorIn:(0@0 corner:7@7)) darkened  on:tabView device).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   315
    tabView styleAt:light put:((someThing averageColorIn:(0@0 corner:7@7)) lightened on:tabView device).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   316
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   317
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   318
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   319
!TabWidget::Window class methodsFor:'accessing'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   320
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   321
tabStyleOn:aView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   322
    |style col|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   323
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   324
    style := super tabStyleOn:aView.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   325
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   326
    style at:#fixedLabelSize     put:true.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   327
    style at:#tabLevel           put:2.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   328
    style at:#roundedEdges       put:true.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   329
    style at:#expandSelection    put:4@4.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   330
    style at:#selectionAtBottom  put:true.
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   331
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   332
  ^ style
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   333
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   334
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   335
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   336
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   337
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   338
!TabWidget::Window methodsFor:'redifined'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   339
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   340
labelOriginWithinFrame
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   341
    |org|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   342
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   343
    org := super labelOriginWithinFrame.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   344
  ^ org + (tabView styleAt:#tabLevel)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   345
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   346
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   347
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   348
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   349
redrawSelected:isSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   350
    "redraw; set fill-color to aColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   351
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   352
    |polygon color y x ext xR yB tabLevel light roundedEdges shadowColor lightColor|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   353
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   354
    ext := (extent x) @ (tabView extent y - inset).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   355
    x   := origin x.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   356
    y   := origin y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   357
    xR  := x + ext x - 1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   358
    yB  := ext y - 1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   359
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   360
    roundedEdges := tabView styleAt:#roundedEdges.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   361
    tabLevel     := tabView styleAt:#tabLevel.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   362
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   363
    isSelected ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   364
        color       := tabView styleAt:#unselectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   365
        shadowColor := tabView styleAt:#shadowColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   366
        lightColor  := tabView styleAt:#lightColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   367
    ] ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   368
        color       := tabView styleAt:#selectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   369
        shadowColor := tabView styleAt:#shadowColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   370
        lightColor  := tabView styleAt:#lightColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   371
        yB := yB + 1
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   372
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   373
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   374
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   375
    tabView paint:color.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   376
    tabView fillRectangle:(Rectangle left:x top:y extent:ext).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   377
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   378
    roundedEdges ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   379
        tabView displayLineFromX:x y:y-1 toX:xR y:y-1.          
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   380
        tabView displayLineFromX:x+1 y:y-2 toX:xR-1 y:y-2.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   381
        tabView displayLineFromX:x+2 y:y-3 toX:xR-2 y:y-3.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   382
        
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   383
        tabView paint:lightColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   384
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   385
        0 to:tabLevel-1 do:[:i |
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   386
            tabView displayPointX:x+i y:y-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   387
            tabView displayPointX:x+1+i y:y-1-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   388
            tabView displayLineFromX:x+2+i y:y-3-i toX:xR-1-i y:y-3-i.  "/ top
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   389
        ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   390
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   391
        tabView paint:shadowColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   392
        0 to:tabLevel-1 do:[:i |
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   393
            tabView displayPointX:xR-i y:y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   394
            tabView displayPointX:xR-i y:y-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   395
            tabView displayPointX:xR-1-i y:y-1-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   396
        ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   397
        tabView displayPointX:xR-2 y:y-1-1-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   398
        tabView displayPointX:xR-3 y:y-1-1-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   399
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   400
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   401
    tabView paint:lightColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   402
    0 to:tabLevel-1 do:[:i |
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   403
        roundedEdges ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   404
            tabView displayLineFromX:x y:y+i toX:xR y:y+i.    "/ upper edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   405
        ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   406
        tabView displayLineFromX:x+i y:y toX:x+i y:yB.    "/ left edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   407
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   408
    tabView paint:shadowColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   409
    0 to:tabLevel-1 do:[:i |
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   410
        tabView displayLineFromX:xR-i y:y+i toX:xR-i y:yB.  "/ right edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   411
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   412
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   413
    isSelected ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   414
        "/ bottom edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   415
        tabView paint:lightColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   416
        tabView displayLineFromX:x-tabLevel-1 y:yB toX:xR+tabLevel+1 y:yB.    "/ bottom edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   417
    ] ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   418
"/        tabView paintColor:#labelColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   419
"/        tabView lineStyle:#dashed.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   420
"/        tabView displayRectangle:((origin extent:extent) insetBy:(3@4)).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   421
"/        tabView lineStyle:#solid
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   422
    ]
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   423
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   424
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   425
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   426
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   427
!TabWidget::Mac class methodsFor:'accessing'!
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   428
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   429
tabStyleOn:aView
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   430
    |style col|
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   431
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   432
    style := super tabStyleOn:aView.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   433
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   434
    style at:#fixedLabelSize     put:true.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   435
    style at:#leftOverLap        put:10.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   436
    style at:#selectionAtBottom  put:true.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   437
  ^ style
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   438
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   439
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   440
! !
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   441
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   442
!TabWidget::Mac class methodsFor:'constants'!
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   443
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   444
rightInset
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   445
    ^ 25 "/ 23
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   446
! !
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   447
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   448
!TabWidget::Mac methodsFor:'redefine'!
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   449
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   450
preferredExtent
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   451
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   452
  ^ (super preferredExtent) + ((self class rightInset) @ 0).
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   453
!
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   454
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   455
redrawSelected:isSelected
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   456
    "full redraw; excluding the label
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   457
    "
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   458
    |polygon x y x1 eX eY color shadowColor lightColor|
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   459
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   460
    isSelected ifFalse:[
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   461
        color       := tabView styleAt:#unselectedColor.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   462
        shadowColor := tabView styleAt:#shadowColorUnselected.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   463
        lightColor  := tabView styleAt:#lightColorUnselected.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   464
    ] ifTrue:[
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   465
        color       := tabView styleAt:#selectedColor.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   466
        shadowColor := tabView styleAt:#shadowColorSelected.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   467
        lightColor  := tabView styleAt:#lightColorSelected.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   468
    ].
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   469
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   470
    polygon := Array new:5.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   471
    x  := origin x.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   472
    y  := origin y.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   473
    eX := x + extent x - 1.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   474
    eY := tabView extent y - inset.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   475
    x1 := eX - self class rightInset.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   476
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   477
    polygon at:1 put:(Point x:x      y:eY).
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   478
    polygon at:2 put:(Point x:x      y:y).
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   479
    polygon at:3 put:(Point x:x1     y:y).
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   480
    polygon at:4 put:(Point x:eX     y:(y+extent y)).
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   481
    polygon at:5 put:(Point x:eX     y:eY).
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   482
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   483
    tabView paint:color.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   484
    tabView fillPolygon:polygon.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   485
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   486
    tabView paint:lightColor.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   487
    tabView displayLineFromX:x+1 y:eY toX:x+1 y:y+1.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   488
    tabView displayLineFromX:x+1 y:y+1 toX:x1-1 y:y+1.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   489
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   490
    tabView paintColor:#labelColor.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   491
    tabView displayPolygon:polygon.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   492
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   493
    isSelected ifFalse:[
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   494
        tabView paint:shadowColor.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   495
        tabView displayLineFromX:x y:eY-1 toX:eX y:eY-1.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   496
    ]
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   497
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   498
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   499
! !
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   500
350
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   501
!TabWidget::Folder class methodsFor:'accessing'!
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   502
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   503
tabStyleOn:aView
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   504
    |style|
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   505
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   506
    style := super tabStyleOn:aView.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   507
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   508
    style at:#hspace             put:2.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   509
    style at:#vspace             put:2.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   510
    style at:#labelBottomInset   put:10.
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   511
    style at:#expandSelection    put:4@8.
350
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   512
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   513
  ^ style
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   514
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   515
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   516
! !
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   517
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   518
!TabWidget::Folder class methodsFor:'constants'!
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   519
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   520
folderTabSize
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   521
    ^ 4@4
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   522
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   523
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   524
! !
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   525
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   526
!TabWidget::Folder methodsFor:'redefined'!
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   527
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   528
labelOriginWithinFrame
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   529
    |org|
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   530
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   531
    org := super labelOriginWithinFrame.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   532
    org  y:(org y + self class folderTabSize y).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   533
  ^ org
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   534
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   535
!
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   536
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   537
redrawSelected:isSelected
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   538
    "full redraw; excluding the label
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   539
    "
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   540
    |lightColor shadowColor polygon fs x y y1 y2 x1 x2 x3 eX eY level|
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   541
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   542
    polygon := Array new:8.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   543
    x  := origin x.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   544
    y  := origin y.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   545
    eX := x + extent x - 1.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   546
    eY := tabView extent y - inset.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   547
    fs := self class folderTabSize.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   548
    x1 := fs x.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   549
    y1 := fs y.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   550
    y2 := y + y1.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   551
    x3 := x + x1.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   552
    x2 := 10.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   553
    level := 2.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   554
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   555
    polygon at:1 put:(Point x:x            y:eY).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   556
    polygon at:2 put:(Point x:x            y:y2).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   557
    polygon at:3 put:(Point x:x3           y:y).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   558
    polygon at:4 put:(Point x:(x3+x2)      y:y).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   559
    polygon at:5 put:(Point x:(x3+x2+x1)   y:y2).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   560
    polygon at:6 put:(Point x:(eX-x1)      y:y2).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   561
    polygon at:7 put:(Point x:(eX)         y:(y2+y1)).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   562
    polygon at:8 put:(Point x:(eX)         y:eY).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   563
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   564
    isSelected ifFalse:[
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   565
        tabView paintColor:#unselectedColor.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   566
        lightColor := tabView styleAt:#lightColorUnselected.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   567
        shadowColor := tabView styleAt:#shadowColorUnselected.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   568
    ] ifTrue:[
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   569
        tabView paintColor:#selectedColor.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   570
        lightColor := tabView styleAt:#lightColorSelected.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   571
        shadowColor := tabView styleAt:#shadowColorSelected.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   572
    ].
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   573
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   574
    tabView fillPolygon:polygon.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   575
    tabView paint:lightColor.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   576
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   577
    0 to:level do:[:i|
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   578
        tabView displayLineFromX:(x+i)      y:(eY)     toX:(x+i)        y:(y2).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   579
        tabView displayLineFromX:(x+1)      y:(y2+i-1) toX:(x3+1)       y:(y+i-1).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   580
        tabView displayLineFromX:(x3+1)     y:(y+i)    toX:(x3+x2)      y:(y+i).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   581
        tabView displayLineFromX:(x3+x2)    y:(y+i)    toX:(x3+x2+x1)   y:(y2+i).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   582
        tabView displayLineFromX:(x3+x2+x1) y:(y2+i)   toX:(eX-x1)      y:(y2+i).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   583
    ].
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   584
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   585
    tabView paint:shadowColor.
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   586
    0 to:level do:[:i|
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   587
        tabView displayLineFromX:(eX-x1) y:(y2+i+1) toX:eX     y:(y2+y1+i).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   588
        tabView displayLineFromX:(eX-i)  y:(y2+y1)  toX:(eX-i) y:(eY).
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   589
        tabView displayPointX:eX-x1-i y:y2+level
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   590
    ].
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   591
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   592
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   593
! !
cb420d4899ab labelRightInset
ca
parents: 343
diff changeset
   594
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   595
!TabWidget class methodsFor:'documentation'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   596
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   597
version
351
6c46f186d84f make selected line to bottom line if
ca
parents: 350
diff changeset
   598
    ^ '$Header: /cvs/stx/stx/libwidg2/TabWidget.st,v 1.3 1997-04-08 15:23:20 ca Exp $'
343
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   599
! !