NoteBookFrameView.st
author Claus Gittinger <cg@exept.de>
Fri, 15 Jun 2018 10:54:35 +0200
changeset 5816 7876c07931a7
parent 3150 e3a55f15ef7e
child 4770 6634b540fea2
permissions -rw-r--r--
#DOCUMENTATION by cg class: ComboListView class comment/format in: #documentation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
     1
"
deae51987b20 intitial checkin
ca
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
     3
	      All Rights Reserved
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
     4
deae51987b20 intitial checkin
ca
parents:
diff changeset
     5
 This software is furnished under a license and may be used
deae51987b20 intitial checkin
ca
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
deae51987b20 intitial checkin
ca
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
deae51987b20 intitial checkin
ca
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
deae51987b20 intitial checkin
ca
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
deae51987b20 intitial checkin
ca
parents:
diff changeset
    10
 hereby transferred.
deae51987b20 intitial checkin
ca
parents:
diff changeset
    11
"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    12
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    13
"{ Package: 'stx:libwidg2' }"
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
    14
deae51987b20 intitial checkin
ca
parents:
diff changeset
    15
SimpleView subclass:#NoteBookFrameView
deae51987b20 intitial checkin
ca
parents:
diff changeset
    16
	instanceVariableNames:''
deae51987b20 intitial checkin
ca
parents:
diff changeset
    17
	classVariableNames:''
deae51987b20 intitial checkin
ca
parents:
diff changeset
    18
	poolDictionaries:''
deae51987b20 intitial checkin
ca
parents:
diff changeset
    19
	category:'Views-Misc'
deae51987b20 intitial checkin
ca
parents:
diff changeset
    20
!
deae51987b20 intitial checkin
ca
parents:
diff changeset
    21
deae51987b20 intitial checkin
ca
parents:
diff changeset
    22
!NoteBookFrameView class methodsFor:'documentation'!
deae51987b20 intitial checkin
ca
parents:
diff changeset
    23
deae51987b20 intitial checkin
ca
parents:
diff changeset
    24
copyright
deae51987b20 intitial checkin
ca
parents:
diff changeset
    25
"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    26
 COPYRIGHT (c) 1997 by eXept Software AG
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    27
	      All Rights Reserved
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
    28
deae51987b20 intitial checkin
ca
parents:
diff changeset
    29
 This software is furnished under a license and may be used
deae51987b20 intitial checkin
ca
parents:
diff changeset
    30
 only in accordance with the terms of that license and with the
deae51987b20 intitial checkin
ca
parents:
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
deae51987b20 intitial checkin
ca
parents:
diff changeset
    32
 be provided or otherwise made available to, or used by, any
deae51987b20 intitial checkin
ca
parents:
diff changeset
    33
 other person.  No title to or ownership of the software is
deae51987b20 intitial checkin
ca
parents:
diff changeset
    34
 hereby transferred.
deae51987b20 intitial checkin
ca
parents:
diff changeset
    35
"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    36
deae51987b20 intitial checkin
ca
parents:
diff changeset
    37
deae51987b20 intitial checkin
ca
parents:
diff changeset
    38
deae51987b20 intitial checkin
ca
parents:
diff changeset
    39
!
deae51987b20 intitial checkin
ca
parents:
diff changeset
    40
deae51987b20 intitial checkin
ca
parents:
diff changeset
    41
documentation
deae51987b20 intitial checkin
ca
parents:
diff changeset
    42
"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    43
    this view is used as the bottom part of a notebook,
deae51987b20 intitial checkin
ca
parents:
diff changeset
    44
    in which the selected subCanvas is drawn.
deae51987b20 intitial checkin
ca
parents:
diff changeset
    45
    Its only reason for existance is to redefine the
deae51987b20 intitial checkin
ca
parents:
diff changeset
    46
    border drawing to NOT draw the top border.
354
86c6240e3a7e comment
Claus Gittinger <cg@exept.de>
parents: 344
diff changeset
    47
86c6240e3a7e comment
Claus Gittinger <cg@exept.de>
parents: 344
diff changeset
    48
    [author:]
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    49
	Claus Gittinger
354
86c6240e3a7e comment
Claus Gittinger <cg@exept.de>
parents: 344
diff changeset
    50
86c6240e3a7e comment
Claus Gittinger <cg@exept.de>
parents: 344
diff changeset
    51
    [see also:]
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    52
	NoteBookView TabView
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
    53
"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    54
! !
deae51987b20 intitial checkin
ca
parents:
diff changeset
    55
deae51987b20 intitial checkin
ca
parents:
diff changeset
    56
!NoteBookFrameView methodsFor:'drawing'!
deae51987b20 intitial checkin
ca
parents:
diff changeset
    57
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    58
drawEdgesForX:x y:y width:w height:h level:l
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    59
		shadow:shadowColor light:lightColor
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    60
		halfShadow:halfShadowColor halfLight:halfLightColor
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    61
		style:edgeStyle
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
    62
deae51987b20 intitial checkin
ca
parents:
diff changeset
    63
    "draw 3D edges into a rectangle, but NOT the top edge"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    64
deae51987b20 intitial checkin
ca
parents:
diff changeset
    65
    |topLeftFg botRightFg topLeftHalfFg botRightHalfFg
deae51987b20 intitial checkin
ca
parents:
diff changeset
    66
     count "{ Class: SmallInteger }"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    67
     r     "{ Class: SmallInteger }"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    68
     b     "{ Class: SmallInteger }"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    69
     xi    "{ Class: SmallInteger }"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    70
     yi    "{ Class: SmallInteger }"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    71
     run paint|
deae51987b20 intitial checkin
ca
parents:
diff changeset
    72
deae51987b20 intitial checkin
ca
parents:
diff changeset
    73
    count := l.
deae51987b20 intitial checkin
ca
parents:
diff changeset
    74
    (count < 0) ifTrue:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    75
	topLeftFg := shadowColor.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    76
	botRightFg := lightColor.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    77
	topLeftHalfFg := halfShadowColor.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    78
	botRightHalfFg := halfLightColor.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    79
	count := count negated
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
    80
    ] ifFalse:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    81
	topLeftFg := lightColor.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    82
	botRightFg := shadowColor.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    83
	topLeftHalfFg := halfLightColor.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    84
	botRightHalfFg := halfShadowColor.
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
    85
    ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
    86
    topLeftHalfFg isNil ifTrue:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    87
	topLeftHalfFg := topLeftFg
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
    88
    ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
    89
    botRightHalfFg isNil ifTrue:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
    90
	botRightHalfFg := botRightFg
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
    91
    ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
    92
deae51987b20 intitial checkin
ca
parents:
diff changeset
    93
    r := x + w - 1. "right"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    94
    b := y + h - 1. "bottom"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    95
deae51987b20 intitial checkin
ca
parents:
diff changeset
    96
    self lineWidth:0.
deae51987b20 intitial checkin
ca
parents:
diff changeset
    97
deae51987b20 intitial checkin
ca
parents:
diff changeset
    98
    "top and left edges"
deae51987b20 intitial checkin
ca
parents:
diff changeset
    99
    ((edgeStyle == #soft) and:["l" count > 0]) ifTrue:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   100
	paint := topLeftHalfFg
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   101
    ] ifFalse:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   102
	paint := topLeftFg
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   103
    ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
   104
    self paint:paint.
deae51987b20 intitial checkin
ca
parents:
diff changeset
   105
deae51987b20 intitial checkin
ca
parents:
diff changeset
   106
    0 to:(count - 1) do:[:i |
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   107
	run := y + i.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   108
	run := x + i.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   109
	self displayDeviceLineFromX:run y:y toX:run y:b  "left"
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   110
    ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
   111
    (edgeStyle == #soft) ifTrue:[
deae51987b20 intitial checkin
ca
parents:
diff changeset
   112
"
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   113
	self paint:topLeftFg.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   114
	self displayDeviceLineFromX:x y:y toX:r y:y.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   115
	self displayDeviceLineFromX:x y:y toX:x y:b
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   116
"
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   117
	(l > 2) ifTrue:[
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   118
	    self paint:(device blackColor).
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   119
	    self displayDeviceLineFromX:x y:y toX:x y:b.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   120
	]
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   121
    ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
   122
deae51987b20 intitial checkin
ca
parents:
diff changeset
   123
    xi := x + 1.
deae51987b20 intitial checkin
ca
parents:
diff changeset
   124
    yi := y + 1.
deae51987b20 intitial checkin
ca
parents:
diff changeset
   125
deae51987b20 intitial checkin
ca
parents:
diff changeset
   126
"/ does not look good
deae51987b20 intitial checkin
ca
parents:
diff changeset
   127
"/ style == #st80 iftrue:[
deae51987b20 intitial checkin
ca
parents:
diff changeset
   128
"/  yi := yi + 1
deae51987b20 intitial checkin
ca
parents:
diff changeset
   129
"/ ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
   130
deae51987b20 intitial checkin
ca
parents:
diff changeset
   131
    "bottom and right edges"
deae51987b20 intitial checkin
ca
parents:
diff changeset
   132
    (edgeStyle == #soft "new:" and:[count > 1]) ifTrue:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   133
	paint := botRightHalfFg
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   134
    ] ifFalse:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   135
	paint := botRightFg
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   136
    ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
   137
deae51987b20 intitial checkin
ca
parents:
diff changeset
   138
    self paint:paint.
deae51987b20 intitial checkin
ca
parents:
diff changeset
   139
    0 to:(count - 1) do:[:i |
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   140
	run := b - i.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   141
	self displayDeviceLineFromX:xi-1 y:run toX:r y:run. "bottom"
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   142
	run := r - i.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   143
	self displayDeviceLineFromX:run y:yi-1 toX:run y:b.  "right"
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   144
	xi := xi + 1.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   145
	yi := yi + 1
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   146
    ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
   147
    ((edgeStyle == #soft) and:[l > 1]) ifTrue:[
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   148
	self paint:(device blackColor) "shadowColor".
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   149
	self displayDeviceLineFromX:(x + (1 - 1)) y:b toX:r y:b.
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   150
	self displayDeviceLineFromX:r y:(y + (1 - 1)) toX:r y:b
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   151
    ].
deae51987b20 intitial checkin
ca
parents:
diff changeset
   152
deae51987b20 intitial checkin
ca
parents:
diff changeset
   153
    self edgeDrawn:#all
deae51987b20 intitial checkin
ca
parents:
diff changeset
   154
deae51987b20 intitial checkin
ca
parents:
diff changeset
   155
    "Modified: 7.3.1997 / 17:59:19 / cg"
deae51987b20 intitial checkin
ca
parents:
diff changeset
   156
deae51987b20 intitial checkin
ca
parents:
diff changeset
   157
deae51987b20 intitial checkin
ca
parents:
diff changeset
   158
!
deae51987b20 intitial checkin
ca
parents:
diff changeset
   159
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   160
drawTopEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   161
    "does NOT draw the top edge"
deae51987b20 intitial checkin
ca
parents:
diff changeset
   162
deae51987b20 intitial checkin
ca
parents:
diff changeset
   163
    ^ self
deae51987b20 intitial checkin
ca
parents:
diff changeset
   164
deae51987b20 intitial checkin
ca
parents:
diff changeset
   165
! !
deae51987b20 intitial checkin
ca
parents:
diff changeset
   166
deae51987b20 intitial checkin
ca
parents:
diff changeset
   167
!NoteBookFrameView class methodsFor:'documentation'!
deae51987b20 intitial checkin
ca
parents:
diff changeset
   168
deae51987b20 intitial checkin
ca
parents:
diff changeset
   169
version
3150
e3a55f15ef7e package information
Claus Gittinger <cg@exept.de>
parents: 354
diff changeset
   170
    ^ '$Header: /cvs/stx/stx/libwidg2/NoteBookFrameView.st,v 1.3 2006-11-13 16:11:31 cg Exp $'
344
deae51987b20 intitial checkin
ca
parents:
diff changeset
   171
! !