NoteBookFrameView.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 02 Sep 2022 11:25:39 +0100
branchjv
changeset 6261 9b7eb7159d29
parent 4770 6634b540fea2
permissions -rw-r--r--
Fix loong standing bug with some menus not being translated / resolved This has happened with browser "View" menu when sometimes it had the slice resolved and sometimes not. It turned out that it was because the code disabled resources (and therefore slices) resolution when processing shortcuts, so the menu was created and cached unresolved. This fixes the issue. eXept apparently run into the same problem.
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