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