TabWidget.st
author ca
Thu, 03 Apr 1997 19:35:04 +0200
changeset 343 dd49faa984ce
child 350 cb420d4899ab
permissions -rw-r--r--
intitial checkin
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
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    16
	instanceVariableNames:'tabView label origin extent inset'
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
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    22
TabWidget subclass:#Folder
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
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    29
TabWidget subclass:#Window
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
dd49faa984ce intitial checkin
ca
parents:
diff changeset
    36
TabWidget subclass:#Mac
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
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   106
    style at:#unselectedColor  put:unselectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   107
    style at:#selectedColor    put:selectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   108
    style at:#labelColor       put:(Color black).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   109
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   110
    style at:#vspace           put:0.      "/ vertical   tab space
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   111
    style at:#hspace           put:0.      "/ horizontal tab space
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   112
    style at:#leftOverLap      put:0.      "/ right tab overlaps left tab n pixels
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   113
    style at:#lableTopInset    put:4.      "/ additional top label inset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   114
    style at:#labelBottomInset put:4.      "/ additional bottom inset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   115
    style at:#expandSelection  put:0@0.    "/ expand selection extent x y when raised
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   116
    style at:#fixedLabelSize   put:false.  "/ true: label size derives from preferred extent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   117
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   118
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   119
  ^ style
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   120
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   121
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   122
widgetClass:aWidget
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   123
    |wdg nm|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   124
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   125
    nm := aWidget asString.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   126
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   127
    (wdg := Smalltalk classNamed:(self name asString, '::', nm)) notNil ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   128
        ^ wdg
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   129
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   130
    ^ Smalltalk classNamed:nm
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   131
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   132
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   133
!TabWidget class methodsFor:'constants'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   134
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   135
defaultExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   136
    ^ 80 @ 25
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   137
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
labelLeftInset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   142
    ^ 4
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   143
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   144
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   145
!TabWidget methodsFor:'accessing'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   146
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   147
extent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   148
    "return the tab extent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   149
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   150
    ^ extent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   151
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   152
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   153
extent:anExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   154
    "change the tab extent; no redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   155
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   156
    extent := anExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   157
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   158
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   159
inset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   160
    "returns the bottom inset starting from 1.0
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   161
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   162
    ^ inset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   163
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   164
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   165
inset:anInset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   166
    "change the bottom inset starting from 1.0; no redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   167
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   168
    inset := anInset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   169
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   170
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   171
labelOrigin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   172
    "returns origin of label
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   173
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   174
  ^ (self labelOriginWithinFrame)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   175
     + ((tabView styleAt:#leftOverLap) @ (tabView styleAt:#lableTopInset))
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   176
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   177
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   178
origin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   179
    "returns the tab origin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   180
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   181
    ^ origin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   182
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   183
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   184
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   185
origin:anOrigin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   186
    "change the tab origin; no redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   187
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   188
    origin := anOrigin
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   189
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   190
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   191
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   192
origin:anOrigin extent:anExtent inset:anInset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   193
    "change origin, extent and bottom inset starting from 1.0; no redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   194
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   195
    origin := anOrigin.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   196
    extent := anExtent.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   197
    inset  := anInset.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   198
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   199
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   200
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   201
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   202
preferredExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   203
    "returns my preferred extent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   204
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   205
    |x y|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   206
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   207
    label isNil ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   208
        ^ self class defaultExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   209
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   210
    x := 2 + (label  widthOn:tabView).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   211
    y :=   (label heightOn:tabView)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   212
         + (tabView styleAt:#labelBottomInset)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   213
         + (tabView styleAt:#lableTopInset).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   214
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   215
  ^ ((self labelOrigin) + (x@y))
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   216
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   217
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   218
!TabWidget methodsFor:'drawing'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   219
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   220
redraw:isSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   221
    "full redraw
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   222
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   223
    |p y|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   224
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   225
    self redrawSelected:isSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   226
    tabView paintColor:#labelColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   227
    p := origin  + self labelOrigin.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   228
    y := p y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   229
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   230
    label isString ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   231
        y := y + tabView font ascent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   232
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   233
    label displayOn:tabView x:(p x) y:y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   234
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   235
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   236
!TabWidget methodsFor:'initialization'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   237
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   238
label:aLabel for:aTabView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   239
    "initialize attributes
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   240
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   241
    tabView     := aTabView.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   242
    label       := aLabel.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   243
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   244
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   245
!TabWidget methodsFor:'queries'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   246
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   247
containsPoint:aPoint
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   248
    "return true, if the aPoint is contained in the tab
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   249
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   250
    |x|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   251
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   252
    x := aPoint x.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   253
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   254
    (x > origin x and:[aPoint y > origin y]) ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   255
        ^ x < (origin x + extent x)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   256
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   257
    ^ false.
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:'redefine'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   261
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   262
labelOriginWithinFrame
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   263
    "returns the offset from origin to the origin of the label
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   264
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   265
    ^ (self class labelLeftInset) @ 0
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   266
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   267
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   268
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   269
redrawSelected:isSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   270
    "full redraw excluding the label
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   271
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   272
    ^ self subclassResponsibility
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   273
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   274
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   275
styleChanged:anIdentifier to:someThing
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   276
    "any style changed; could be redifined in subclass
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   277
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   278
    |dark light|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   279
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   280
    anIdentifier == #selectedColor ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   281
        dark  := #shadowColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   282
        light := #lightColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   283
    ] ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   284
        anIdentifier == #unselectedColor ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   285
            ^ self
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   286
        ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   287
        dark  := #shadowColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   288
        light := #lightColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   289
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   290
    tabView styleAt:dark  put:((someThing averageColorIn:(0@0 corner:7@7)) darkened  on:tabView device).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   291
    tabView styleAt:light put:((someThing averageColorIn:(0@0 corner:7@7)) lightened on:tabView device).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   292
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   293
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   294
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   295
!TabWidget::Folder class methodsFor:'accessing'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   296
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   297
tabStyleOn:aView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   298
    |style|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   299
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   300
    style := super tabStyleOn:aView.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   301
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   302
    style at:#hspace           put:2.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   303
    style at:#vspace           put:2.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   304
    style at:#labelBottomInset put:10.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   305
    style at:#expandSelection  put:4@8.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   306
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   307
  ^ style
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   308
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   309
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   310
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   311
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   312
!TabWidget::Folder class methodsFor:'constants'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   313
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   314
folderTabSize
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   315
    ^ 4@4
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
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   320
!TabWidget::Folder methodsFor:'redefined'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   321
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   322
labelOriginWithinFrame
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   323
    |org|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   324
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   325
    org := super labelOriginWithinFrame.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   326
    org  y:(org y + self class folderTabSize y).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   327
  ^ org
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   328
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   329
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   330
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   331
redrawSelected:isSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   332
    "full redraw; excluding the label
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   333
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   334
    |lightColor shadowColor polygon fs x y y1 y2 x1 x2 x3 eX eY level|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   335
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   336
    polygon := Array new:8.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   337
    x  := origin x.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   338
    y  := origin y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   339
    eX := x + extent x - 1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   340
    eY := tabView extent y - inset.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   341
    fs := self class folderTabSize.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   342
    x1 := fs x.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   343
    y1 := fs y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   344
    y2 := y + y1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   345
    x3 := x + x1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   346
    x2 := 10.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   347
    level := 2.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   348
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   349
    polygon at:1 put:(Point x:x            y:eY).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   350
    polygon at:2 put:(Point x:x            y:y2).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   351
    polygon at:3 put:(Point x:x3           y:y).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   352
    polygon at:4 put:(Point x:(x3+x2)      y:y).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   353
    polygon at:5 put:(Point x:(x3+x2+x1)   y:y2).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   354
    polygon at:6 put:(Point x:(eX-x1)      y:y2).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   355
    polygon at:7 put:(Point x:(eX)         y:(y2+y1)).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   356
    polygon at:8 put:(Point x:(eX)         y:eY).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   357
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   358
    isSelected ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   359
        tabView paintColor:#unselectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   360
        lightColor := tabView styleAt:#lightColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   361
        shadowColor := tabView styleAt:#shadowColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   362
    ] ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   363
        tabView paintColor:#selectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   364
        lightColor := tabView styleAt:#lightColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   365
        shadowColor := tabView styleAt:#shadowColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   366
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   367
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   368
    tabView fillPolygon:polygon.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   369
    tabView paint:lightColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   370
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   371
    0 to:level do:[:i|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   372
        tabView displayLineFromX:(x+i)      y:(eY)     toX:(x+i)        y:(y2).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   373
        tabView displayLineFromX:(x+1)      y:(y2+i-1) toX:(x3+1)       y:(y+i-1).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   374
        tabView displayLineFromX:(x3+1)     y:(y+i)    toX:(x3+x2)      y:(y+i).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   375
        tabView displayLineFromX:(x3+x2)    y:(y+i)    toX:(x3+x2+x1)   y:(y2+i).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   376
        tabView displayLineFromX:(x3+x2+x1) y:(y2+i)   toX:(eX-x1)      y:(y2+i).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   377
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   378
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   379
    tabView paint:shadowColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   380
    0 to:level do:[:i|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   381
        tabView displayLineFromX:(eX-x1) y:(y2+i+1) toX:eX     y:(y2+y1+i).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   382
        tabView displayLineFromX:(eX-i)  y:(y2+y1)  toX:(eX-i) y:(eY).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   383
        tabView displayPointX:eX-x1-i y:y2+level
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   384
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   385
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   386
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   387
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   388
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   389
!TabWidget::Window class methodsFor:'accessing'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   390
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   391
tabStyleOn:aView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   392
    |style col|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   393
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   394
    style := super tabStyleOn:aView.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   395
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   396
    style at:#fixedLabelSize   put:true.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   397
    style at:#tabLevel         put:2.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   398
    style at:#roundedEdges     put:true.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   399
    style at:#expandSelection  put:4@4.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   400
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   401
  ^ style
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   402
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   403
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   404
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   405
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   406
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   407
!TabWidget::Window methodsFor:'redifined'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   408
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   409
labelOriginWithinFrame
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   410
    |org|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   411
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   412
    org := super labelOriginWithinFrame.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   413
  ^ org + (tabView styleAt:#tabLevel)
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   414
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   415
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   416
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   417
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   418
redrawSelected:isSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   419
    "redraw; set fill-color to aColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   420
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   421
    |polygon color y x ext xR yB tabLevel light roundedEdges shadowColor lightColor|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   422
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   423
    ext := (extent x) @ (tabView extent y - inset).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   424
    x   := origin x.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   425
    y   := origin y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   426
    xR  := x + ext x - 1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   427
    yB  := ext y - 1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   428
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   429
    roundedEdges := tabView styleAt:#roundedEdges.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   430
    tabLevel     := tabView styleAt:#tabLevel.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   431
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   432
    isSelected ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   433
        color       := tabView styleAt:#unselectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   434
        shadowColor := tabView styleAt:#shadowColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   435
        lightColor  := tabView styleAt:#lightColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   436
    ] ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   437
        color       := tabView styleAt:#selectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   438
        shadowColor := tabView styleAt:#shadowColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   439
        lightColor  := tabView styleAt:#lightColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   440
        yB := yB + 1
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   441
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   442
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   443
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   444
    tabView paint:color.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   445
    tabView fillRectangle:(Rectangle left:x top:y extent:ext).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   446
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   447
    roundedEdges ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   448
        tabView displayLineFromX:x y:y-1 toX:xR y:y-1.          
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   449
        tabView displayLineFromX:x+1 y:y-2 toX:xR-1 y:y-2.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   450
        tabView displayLineFromX:x+2 y:y-3 toX:xR-2 y:y-3.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   451
        
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   452
        tabView paint:lightColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   453
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   454
        0 to:tabLevel-1 do:[:i |
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   455
            tabView displayPointX:x+i y:y-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   456
            tabView displayPointX:x+1+i y:y-1-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   457
            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
   458
        ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   459
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   460
        tabView paint:shadowColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   461
        0 to:tabLevel-1 do:[:i |
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   462
            tabView displayPointX:xR-i y:y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   463
            tabView displayPointX:xR-i y:y-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   464
            tabView displayPointX:xR-1-i y:y-1-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   465
        ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   466
        tabView displayPointX:xR-2 y:y-1-1-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   467
        tabView displayPointX:xR-3 y:y-1-1-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   468
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   469
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   470
    tabView paint:lightColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   471
    0 to:tabLevel-1 do:[:i |
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   472
        roundedEdges ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   473
            tabView displayLineFromX:x y:y+i toX:xR y:y+i.    "/ upper edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   474
        ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   475
        tabView displayLineFromX:x+i y:y toX:x+i y:yB.    "/ left edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   476
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   477
    tabView paint:shadowColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   478
    0 to:tabLevel-1 do:[:i |
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   479
        tabView displayLineFromX:xR-i y:y+i toX:xR-i y:yB.  "/ right edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   480
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   481
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   482
    isSelected ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   483
        "/ bottom edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   484
        tabView paint:lightColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   485
        tabView displayLineFromX:x-tabLevel-1 y:yB toX:xR+tabLevel+1 y:yB.    "/ bottom edge
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   486
    ] ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   487
"/        tabView paintColor:#labelColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   488
"/        tabView lineStyle:#dashed.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   489
"/        tabView displayRectangle:((origin extent:extent) insetBy:(3@4)).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   490
"/        tabView lineStyle:#solid
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   491
    ]
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   492
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   493
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   494
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   495
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   496
!TabWidget::Mac class methodsFor:'accessing'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   497
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   498
tabStyleOn:aView
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   499
    |style col|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   500
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   501
    style := super tabStyleOn:aView.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   502
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   503
    style at:#fixedLabelSize   put:true.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   504
    style at:#leftOverLap      put:10.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   505
  ^ style
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   506
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   507
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   508
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   509
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   510
!TabWidget::Mac class methodsFor:'constants'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   511
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   512
rightInset
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   513
    ^ 25 "/ 23
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   514
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   515
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   516
!TabWidget::Mac methodsFor:'redefine'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   517
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   518
preferredExtent
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   519
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   520
  ^ (super preferredExtent) + ((self class rightInset) @ 0).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   521
!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   522
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   523
redrawSelected:isSelected
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   524
    "full redraw; excluding the label
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   525
    "
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   526
    |polygon x y x1 eX eY color shadowColor lightColor|
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   527
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   528
    isSelected ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   529
        color       := tabView styleAt:#unselectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   530
        shadowColor := tabView styleAt:#shadowColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   531
        lightColor  := tabView styleAt:#lightColorUnselected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   532
    ] ifTrue:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   533
        color       := tabView styleAt:#selectedColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   534
        shadowColor := tabView styleAt:#shadowColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   535
        lightColor  := tabView styleAt:#lightColorSelected.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   536
    ].
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   537
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   538
    polygon := Array new:5.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   539
    x  := origin x.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   540
    y  := origin y.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   541
    eX := x + extent x - 1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   542
    eY := tabView extent y - inset.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   543
    x1 := eX - self class rightInset.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   544
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   545
    polygon at:1 put:(Point x:x      y:eY).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   546
    polygon at:2 put:(Point x:x      y:y).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   547
    polygon at:3 put:(Point x:x1     y:y).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   548
    polygon at:4 put:(Point x:eX     y:(y+extent y)).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   549
    polygon at:5 put:(Point x:eX     y:eY).
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   550
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   551
    tabView paint:color.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   552
    tabView fillPolygon:polygon.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   553
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   554
    tabView paint:lightColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   555
    tabView displayLineFromX:x+1 y:eY toX:x+1 y:y+1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   556
    tabView displayLineFromX:x+1 y:y+1 toX:x1-1 y:y+1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   557
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   558
    tabView paintColor:#labelColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   559
    tabView displayPolygon:polygon.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   560
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   561
    isSelected ifFalse:[
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   562
        tabView paint:shadowColor.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   563
        tabView displayLineFromX:x y:eY-1 toX:eX y:eY-1.
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   564
    ]
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   565
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   566
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   567
! !
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   568
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   569
!TabWidget class methodsFor:'documentation'!
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   570
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   571
version
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   572
    ^ '$Header: /cvs/stx/stx/libwidg2/TabWidget.st,v 1.1 1997-04-03 17:35:04 ca Exp $'
dd49faa984ce intitial checkin
ca
parents:
diff changeset
   573
! !