--- a/SimpleView.st Thu Oct 13 00:58:44 2016 +0200
+++ b/SimpleView.st Thu Oct 13 02:15:49 2016 +0200
@@ -1,6 +1,6 @@
"
COPYRIGHT (c) 1989 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -82,7 +82,7 @@
copyright
"
COPYRIGHT (c) 1989 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -109,164 +109,167 @@
[Instance variables:]
- superView <View> my superview i.e. the view I am in
-
- subViews <Collection> the collection of subviews
- These are the views proper.
-
- components <Collection> collection of gadgets (will be merged with subViews, soon)
- These are lightweight gadgets (not seen by windows/x11).
-
- styleSheet <ResourcePack> contains widget attributes (see libview/styles/*.style)
-
- resources <ResourcePack> contains national language translations (see lib*/resources/*.rs)
-
- border <Border> color and width of border
-
- unused <nil> to keep the instVar size constant
-
- viewShape <Form> shape of view & border (if device supports it)
-
- top <Number> actual top coordinate (pixels) in superview
-
- left <Number> actual left coordinate (pixels) in superview
-
- flagBits <Integer> flag bits (used to be individual booleans)
- extendChanged true if extend changed during setup
- originChanged true if origin changed during setup
-
- relativeOrigin <Number> relative origin in percent within superview
-
- relativeExtent <Number> relative extent in percent within superview
-
- relativeCorner <Number> relative corner in percent within superview
-
- originRule <Block> rule to compute origin if superview changes size
-
- extentRule <Block> rule to compute extent if superview changes size
-
- cornerRule <Block> rule to compute corner if superview changes size
-
- insets <Array> array with top, left, bottom & right insets (or nil)
-
- layout <LayoutObject> not yet implemented - will replace the above layout
- variables.
-
- shown <Boolean> true if visible (false if iconified, unmapped or covered)
-
- hiddenOnRealize <Boolean> dont show automatically when superview is realized
-
- name <String> my name (future use for resources)
-
- level (**) <Number> 3D level relative to superview
-
- margin <Number> convenient margin; that is the number of pixels
- which are taken up by border plus 3D level
- (i.e. borderWidth + level abs)
-
- innerClipRect <Rectangle> convenient inner clip (minus margin)
-
- shadowColor (**) <Color> color used to draw 3D shadowed edges
-
- lightColor (**) <Color> color used to draw 3D lighted edges
-
- bitGravity <nil | Symbol> gravity of contents (if device supports it)
-
- viewGravity <nil | Symbol> gravity of view (if device supports it)
-
- controller <nil | Controller> the controller (if any)
-
- windowGroup <WindowGroup> the windowGroup
-
- preferredExtent(*) <nil | Point> preferredExtent overWrite
- if nonNil, the widget will not compute
- its pref-extent, but use that value.
-
- explicitExtent(*) <nil | Point> preferredExtent overWrite
- if nonNil, the widget will not compute
- its pref-extent, but use that value.
-
- dependents <nil | Collection> who depends on me
-
- layoutManager
-
- visibilityChannel
-
- helpKey
-
- dropTarget
+ superView <View> my superview i.e. the view I am in
+
+ subViews <Collection> the collection of subviews
+ These are the views proper.
+
+ components <Collection> collection of gadgets (will be merged with subViews, soon)
+ These are lightweight gadgets (not seen by windows/x11).
+
+ styleSheet <ResourcePack> contains widget attributes (see libview/styles/*.style)
+
+ resources <ResourcePack> contains national language translations (see lib*/resources/*.rs)
+
+ border <Border> color and width of border
+
+ unused <nil> to keep the instVar size constant
+
+ viewShape <Form> shape of view & border (if device supports it)
+
+ top <Number> actual top coordinate (pixels) in superview
+
+ left <Number> actual left coordinate (pixels) in superview
+
+ flagBits <Integer> flag bits (used to be individual booleans)
+ extendChanged true if extend changed during setup
+ originChanged true if origin changed during setup
+
+ relativeOrigin <Number> relative origin in percent within superview
+
+ relativeExtent <Number> relative extent in percent within superview
+
+ relativeCorner <Number> relative corner in percent within superview
+
+ originRule <Block> rule to compute origin if superview changes size
+
+ extentRule <Block> rule to compute extent if superview changes size
+
+ cornerRule <Block> rule to compute corner if superview changes size
+
+ insets <Array> array with top, left, bottom & right insets (or nil)
+
+ layout <LayoutObject> not yet implemented - will replace the above layout
+ variables.
+
+ shown <Boolean> true if visible (false if iconified, unmapped or covered)
+
+ unused_hiddenOnRealize <Boolean> don't show automatically when superview is realized.
+ now encoded in the flags.
+ (kept to keep the instVar size constant)
+
+ name <String> my name (future use for resources)
+
+ level (**) <Number> 3D level relative to superview
+
+ margin <Number> convenient margin; that is the number of pixels
+ which are taken up by border plus 3D level
+ (i.e. borderWidth + level abs)
+
+ innerClipRect <Rectangle> convenient inner clip (minus margin)
+
+ shadowColor (**) <Color> color used to draw 3D shadowed edges
+
+ lightColor (**) <Color> color used to draw 3D lighted edges
+
+ bitGravity <nil | Symbol> gravity of contents (if device supports it)
+
+ viewGravity <nil | Symbol> gravity of view (if device supports it)
+
+ controller <nil | Controller> the controller (if any)
+
+ windowGroup <WindowGroup> the windowGroup
+
+ preferredExtent(*) <nil | Point> preferredExtent overWrite
+ if nonNil, the widget will not compute
+ its pref-extent, but use that value.
+
+ explicitExtent(*) <nil | Point> preferredExtent overWrite
+ if nonNil, the widget will not compute
+ its pref-extent, but use that value.
+
+ dependents <nil | Collection> who depends on me
+
+ layoutManager currently unused; will be responsible for
+ child layout management
+
+ visibilityChannel valueHolder to control the visiblity
+
+ helpKey for tooltips
+
+ dropTarget for drag&drop
(*) about to be changed to use preferredExtent as a cache and explicitExtent as
- an overwrite value.
+ an overwrite value.
(**) We have recently started to change the system to use borders instead of separate
- borderWidth, borderColor, level, shadow- and lightColors.
- Expect more changes here in the near future..
+ borderWidth, borderColor, level, shadow- and lightColors.
+ Expect more changes here in the near future..
[Class variables:]
- Grey <Color> the color grey - its used so often
-
- ViewSpacing <Number> preferred spacing between views; 1mm
-
- CentPoint <Point> 100 @ 100 - its used so often
-
- StyleSheet <ResourcePack> contains all view-style specifics
-
- ReturnFocusWhenClosingModalBoxes if true, a closing modalBox returns
- <Boolean> the keyboard focus to the view which was
- active when the box was opened.
- If false (the default), it is left to
- window manager to assign a new focus.
- If running on olwm/olvwm (which requires an
- explicit click to reassign a focus), it is
- better to turn this on in a private.rc file.
+ Grey <Color> the color grey - its used so often
+
+ ViewSpacing <Number> preferred spacing between views; 1mm
+
+ CentPoint <Point> 100 @ 100 - its used so often
+
+ StyleSheet <ResourcePack> contains all view-style specifics
+
+ ReturnFocusWhenClosingModalBoxes if true, a closing modalBox returns
+ <Boolean> the keyboard focus to the view which was
+ active when the box was opened.
+ If false (the default), it is left to
+ window manager to assign a new focus.
+ If running on olwm/olvwm (which requires an
+ explicit click to reassign a focus), it is
+ better to turn this on in a private.rc file.
[styleSheet parameters:]
- popupShadow <Boolean> if true, popupViews show a shadow below
-
- popupLevel <nil | Integer> 3D level
-
- borderWidth <nil | Integer> borderWidth (ignored in 3D styles)
-
- borderColor <nil | Color> borderColor (ignored in 3D styles)
-
- viewBackground <nil | Color> views background
-
- shadowColor <nil | Color> color for shadow edges (ignored in 2D styles)
-
- lightColor <nil | Color> color for light edges (ignored in 2D styles)
-
- font <nil | Font> font to use
+ popupShadow <Boolean> if true, popupViews show a shadow below
+
+ popupLevel <nil | Integer> 3D level
+
+ borderWidth <nil | Integer> borderWidth (ignored in 3D styles)
+
+ borderColor <nil | Color> borderColor (ignored in 3D styles)
+
+ viewBackground <nil | Color> views background
+
+ shadowColor <nil | Color> color for shadow edges (ignored in 2D styles)
+
+ lightColor <nil | Color> color for light edges (ignored in 2D styles)
+
+ font <nil | Font> font to use
TODO:
- get rid of relativeOrigin, relativeCorner, originRule, extentRule,
- and insets; replace by a single object which defines the size
- (mhmh - ST-80 seems to call this LayoutFrame ?)
- -> be prepared for a change here in the near future and ONLY use
- access methods to get those instance variables' values
-
- get rid of 3D level & margin, move it to extra wrappers
- (although this will make view setup more complicated, it will remove
- complexity from the internals of view. Also, it will allow for more
- varieties of borders.)
-
- add components (could also call them gadgets or lightweight views)
- - views are expensive in terms of X resources. This would make all
- framing/edge and panel helper views become cheap ST objects, instead
- of views.
+ get rid of relativeOrigin, relativeCorner, originRule, extentRule,
+ and insets; replace by a single object which defines the size
+ (mhmh - ST-80 seems to call this LayoutFrame ?)
+ -> be prepared for a change here in the near future and ONLY use
+ access methods to get those instance variables' values
+
+ get rid of 3D level & margin, move it to extra wrappers
+ (although this will make view setup more complicated, it will remove
+ complexity from the internals of view. Also, it will allow for more
+ varieties of borders.)
+
+ add components (could also call them gadgets or lightweight views)
+ - views are expensive in terms of X resources. This would make all
+ framing/edge and panel helper views become cheap ST objects, instead
+ of views.
[see also:]
- StandardSystemView DialogBox
- WindowGroup WindowEvent
- Layout
- ( introduction to view programming :html: programming/viewintro.html )
+ StandardSystemView DialogBox
+ WindowGroup WindowEvent
+ Layout
+ ( introduction to view programming :html: programming/viewintro.html )
[author:]
- Claus Gittinger
+ Claus Gittinger
"
!
@@ -276,50 +279,50 @@
to make the individual subviews visible)
a subView in a topView:
- [exBegin]
- |top v|
-
- top := StandardSystemView new.
- v := View new.
- v origin:0.25 @ 0.25 corner:0.75 @ 0.75.
- top addSubView:v.
- top open
- [exEnd]
+ [exBegin]
+ |top v|
+
+ top := StandardSystemView new.
+ v := View new.
+ v origin:0.25 @ 0.25 corner:0.75 @ 0.75.
+ top addSubView:v.
+ top open
+ [exEnd]
the same, a bit more compact:
- [exBegin]
- |top v|
-
- top := StandardSystemView new.
- v := View origin:0.25 @ 0.25 corner:0.75 @ 0.75 in:top.
- top open
- [exEnd]
+ [exBegin]
+ |top v|
+
+ top := StandardSystemView new.
+ v := View origin:0.25 @ 0.25 corner:0.75 @ 0.75 in:top.
+ top open
+ [exEnd]
fixed position/size:
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
top extent:300@300.
v1 := View origin:10@10
- corner:50@50
- in:top.
+ corner:50@50
+ in:top.
v2 := View origin:60@10
- corner:150@100
- in:top.
+ corner:150@100
+ in:top.
v1 viewBackground:(Color red).
v2 viewBackground:(Color yellow).
top open
- [exEnd]
+ [exEnd]
same, using ST-80 way of bulding up view hierarchies
(recommended, if you plan to port applications later)
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -341,10 +344,10 @@
v2 viewBackground:(Color yellow).
top open
- [exEnd]
+ [exEnd]
fixed origin, variable size:
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -363,11 +366,11 @@
top add:v2.
top open
- [exEnd]
+ [exEnd]
fixed origin, variable size,
bottomInset for constant distance from bottom:
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -388,10 +391,10 @@
top add:v2.
top open
- [exEnd]
+ [exEnd]
variable origin, variable size,
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -410,11 +413,11 @@
top add:v2.
top open
- [exEnd]
+ [exEnd]
variable origin, variable size,
insets for some constant distance
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -435,11 +438,11 @@
top add:v2.
top open
- [exEnd]
+ [exEnd]
using layout objects (ST-80 style):
fully specifying the frame
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -452,21 +455,21 @@
v2 viewBackground:(Color yellow).
top add:v1 in:(LayoutFrame new
- leftFraction:0.25;
- rightFraction:0.75;
- topFraction:0.0;
- bottomFraction:0.5).
+ leftFraction:0.25;
+ rightFraction:0.75;
+ topFraction:0.0;
+ bottomFraction:0.5).
top add:v2 in:(LayoutFrame new
- leftFraction:0.5;
- rightFraction:1.0;
- topFraction:0.5;
- bottomFraction:0.75).
+ leftFraction:0.5;
+ rightFraction:1.0;
+ topFraction:0.5;
+ bottomFraction:0.75).
top open
- [exEnd]
+ [exEnd]
another one, with offsets:
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -479,22 +482,22 @@
v2 viewBackground:(Color yellow).
top add:v1 in:(LayoutFrame new
- leftFraction:0.0 offset:10;
- rightFraction:1.0 offset:-10;
- topFraction:0.0 offset:10;
- bottomFraction:0.5).
+ leftFraction:0.0 offset:10;
+ rightFraction:1.0 offset:-10;
+ topFraction:0.0 offset:10;
+ bottomFraction:0.5).
top add:v2 in:(LayoutFrame new
- leftFraction:0.0 offset:30;
- rightFraction:1.0 offset:-30;
- topFraction:0.5 offset:10;
- bottomFraction:0.75).
+ leftFraction:0.0 offset:30;
+ rightFraction:1.0 offset:-30;
+ topFraction:0.5 offset:10;
+ bottomFraction:0.75).
top open
- [exEnd]
+ [exEnd]
specifying origin only. Extent is views preferred
(notice, that plain views have some defaultExtent of 100@100)
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -507,17 +510,17 @@
v2 viewBackground:(Color yellow).
top add:v1 in:(LayoutOrigin new
- leftFraction:0.25;
- topFraction:0.0).
+ leftFraction:0.25;
+ topFraction:0.0).
top add:v2 in:(LayoutOrigin new
- leftFraction:0.5;
- topFraction:0.5).
+ leftFraction:0.5;
+ topFraction:0.5).
top open
- [exEnd]
+ [exEnd]
same example, using buttons which compute their preferredBounds:
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -530,17 +533,17 @@
v2 backgroundColor:(Color yellow).
top add:v1 in:(LayoutOrigin new
- leftFraction:0.25;
- topFraction:0.0).
+ leftFraction:0.25;
+ topFraction:0.0).
top add:v2 in:(LayoutOrigin new
- leftFraction:0.5;
- topFraction:0.5).
+ leftFraction:0.5;
+ topFraction:0.5).
top open
- [exEnd]
+ [exEnd]
border:
- [exBegin]
+ [exBegin]
|top v1 v2|
top := StandardSystemView new.
@@ -554,7 +557,7 @@
v1 border:(SimpleBorder width:1 color:Color red).
v2 border:(SimpleBorder width:1 color:Color blue).
top open
- [exEnd]
+ [exEnd]
"
!
@@ -563,40 +566,40 @@
Currently, these are experimental and work under Windows only
an MDI child:
- [exBegin]
- |top v1 v2|
-
- top := StandardSystemView new.
- top extent:450 @ 300.
- top name:'MDI Client'.
- top beMDIClientView.
- top open.
-
- v1 := View new.
- v1 viewBackground:Color red.
- v1 origin:50 @ 50 corner:150 @ 100.
- v1 beMDIChildView.
- top addSubView:v1.
-
- v2 := View new.
- v2 viewBackground:Color green.
- v2 origin:50 @ 50 corner:150 @ 100.
- v2 beMDIChildView.
- top addSubView:v2.
- [exEnd]
+ [exBegin]
+ |top v1 v2|
+
+ top := StandardSystemView new.
+ top extent:450 @ 300.
+ top name:'MDI Client'.
+ top beMDIClientView.
+ top open.
+
+ v1 := View new.
+ v1 viewBackground:Color red.
+ v1 origin:50 @ 50 corner:150 @ 100.
+ v1 beMDIChildView.
+ top addSubView:v1.
+
+ v2 := View new.
+ v2 viewBackground:Color green.
+ v2 origin:50 @ 50 corner:150 @ 100.
+ v2 beMDIChildView.
+ top addSubView:v2.
+ [exEnd]
"
!
layoutComputation
"
Due to historic reasons, there are 2 mechanisms to resize a view:
- - (old, to be eliminated mechanism)
- based upon info found in
- relativeOrigin / relativeCorner / relativeExtent
- originRule / cornerRule / extentRule
-
- - (new, will migrate to that one)
- letting a layoutObject compute things
+ - (old, to be eliminated mechanism)
+ based upon info found in
+ relativeOrigin / relativeCorner / relativeExtent
+ originRule / cornerRule / extentRule
+
+ - (new, will migrate to that one)
+ letting a layoutObject compute things
Actually, the old mechanism is just as powerful, as the new (layoutObject
based) mechanism; with the help of block=rules, you can compute whatever
@@ -613,13 +616,13 @@
Notice, that a view recomputes its size whenever its superview
changes size. This is done via:
- sizeChanged
- -> allSubviews: superViewChangedSize
+ sizeChanged
+ -> allSubviews: superViewChangedSize
If the geometry computation as performed in superViewChangedSize
is not powerful enough for your application, you can either:
- - redefine superViewChangedSize
- - create a special layoutObject which computes a new layout.
+ - redefine superViewChangedSize
+ - create a special layoutObject which computes a new layout.
"
!
@@ -628,11 +631,11 @@
Due to historic reasons, there are multiple mechanisms for popupMenu
definition:
- - static menus
-
- - dynamic menus from the view
-
- - dynamic menus from the model / menuHolder
+ - static menus
+
+ - dynamic menus from the view
+
+ - dynamic menus from the model / menuHolder
static menus
@@ -643,35 +646,35 @@
It can be defined at initialization time or redefined any time later.
The menu is defined with:
- someView middleButtonMenu:<aPopUpMenu>
+ someView middleButtonMenu:<aPopUpMenu>
Compatibility note:
- static menus should no longer be used - their operation
- is incompatible with ST-80 and ST/X's dynamic menus.
- Do not use them if you care for compatibility.
+ static menus should no longer be used - their operation
+ is incompatible with ST-80 and ST/X's dynamic menus.
+ Do not use them if you care for compatibility.
Also, they do not care for any menuPerformers or menuHolders.
(instead, they use a receiver instance variable, which gets the messages).
example:
- |top v1 v2|
-
- top := StandardSystemView new.
- top extent:300@300.
-
- v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
- v1 viewBackground:Color red.
-
- v2 := View origin:0.5@0.0 corner:1.0@1.0 in:top.
- v2 viewBackground:Color yellow.
-
- v1 middleButtonMenu:(
- PopUpMenu
- labels:#('foo' 'bar')
- selectors:#(foo bar)
- receiver:v1
- ).
-
- top open.
+ |top v1 v2|
+
+ top := StandardSystemView new.
+ top extent:300@300.
+
+ v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
+ v1 viewBackground:Color red.
+
+ v2 := View origin:0.5@0.0 corner:1.0@1.0 in:top.
+ v2 viewBackground:Color yellow.
+
+ v1 middleButtonMenu:(
+ PopUpMenu
+ labels:#('foo' 'bar')
+ selectors:#(foo bar)
+ receiver:v1
+ ).
+
+ top open.
@@ -697,42 +700,42 @@
to the view IFF the model would not respond to the menu message.
(this allows mixing of menu messages for the view AND the model).
- |top v1 v2 holder|
-
- holder := Plug new.
- holder respondTo:#menu1
- with:[
- v1 menuMessage:#otherMenu1.
- PopUpMenu
- labels:#('foo' 'bar')
- selectors:#(foo bar).
- ].
- holder respondTo:#otherMenu1
- with:[
- v1 menuMessage:#menu1.
- PopUpMenu
- labels:#('other foo' 'other bar')
- selectors:#(foo bar).
- ].
- holder respondTo:#menu2
- with:[ PopUpMenu
- labels:#('copy' 'bar2')
- selectors:#(copySelection bar2)
- ].
-
- top := StandardSystemView new.
- top extent:300@300.
-
- v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
- v1 viewBackground:Color red.
-
- v2 := TextView origin:0.5@0.0 corner:1.0@1.0 in:top.
- v2 contents:'pop me up'.
-
- v1 model:holder; menuMessage:#menu1.
- v2 menuHolder:holder; menuMessage:#menu2.
-
- top open.
+ |top v1 v2 holder|
+
+ holder := Plug new.
+ holder respondTo:#menu1
+ with:[
+ v1 menuMessage:#otherMenu1.
+ PopUpMenu
+ labels:#('foo' 'bar')
+ selectors:#(foo bar).
+ ].
+ holder respondTo:#otherMenu1
+ with:[
+ v1 menuMessage:#menu1.
+ PopUpMenu
+ labels:#('other foo' 'other bar')
+ selectors:#(foo bar).
+ ].
+ holder respondTo:#menu2
+ with:[ PopUpMenu
+ labels:#('copy' 'bar2')
+ selectors:#(copySelection bar2)
+ ].
+
+ top := StandardSystemView new.
+ top extent:300@300.
+
+ v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
+ v1 viewBackground:Color red.
+
+ v2 := TextView origin:0.5@0.0 corner:1.0@1.0 in:top.
+ v2 contents:'pop me up'.
+
+ v1 model:holder; menuMessage:#menu1.
+ v2 menuHolder:holder; menuMessage:#menu2.
+
+ top open.
an additional goody is the possibility, to change the menuPerformer (textViews only).
If defined, that one will get the menus message (instead of the model/view).
@@ -745,31 +748,31 @@
- it could be forwarded to the view, though.
This could be useful to intercept/filter things).
- |top v menuProvider menuExecutor |
-
- menuProvider := Plug new.
- menuProvider respondTo:#menu
- with:[ PopUpMenu
- labels:#('copy' 'foo')
- selectors:#(copySelection foo)
- ].
-
- menuExecutor := Plug new.
- menuExecutor respondTo:#copySelection
- with:[Transcript showCR:'copy function'].
- menuExecutor respondTo:#foo
- with:[Transcript showCR:'foo function'].
-
- top := StandardSystemView new.
- top extent:300@300.
-
- v := TextView origin:0.0@0.0 corner:1.0@1.0 in:top.
- v contents:'pop me up'.
-
- v menuHolder:menuProvider; menuMessage:#menu.
- v menuPerformer:menuExecutor.
-
- top open.
+ |top v menuProvider menuExecutor |
+
+ menuProvider := Plug new.
+ menuProvider respondTo:#menu
+ with:[ PopUpMenu
+ labels:#('copy' 'foo')
+ selectors:#(copySelection foo)
+ ].
+
+ menuExecutor := Plug new.
+ menuExecutor respondTo:#copySelection
+ with:[Transcript showCR:'copy function'].
+ menuExecutor respondTo:#foo
+ with:[Transcript showCR:'foo function'].
+
+ top := StandardSystemView new.
+ top extent:300@300.
+
+ v := TextView origin:0.0@0.0 corner:1.0@1.0 in:top.
+ v contents:'pop me up'.
+
+ v menuHolder:menuProvider; menuMessage:#menu.
+ v menuPerformer:menuExecutor.
+
+ top open.
"
! !
@@ -777,12 +780,12 @@
initialize
DefaultStyle isNil ifTrue:[
- Font initialize.
- Form initialize.
- Color initialize.
+ Font initialize.
+ Form initialize.
+ Color initialize.
].
self == SimpleView ifTrue:[
- Smalltalk addDependent:self "/ to get language changes
+ Smalltalk addDependent:self "/ to get language changes
].
ReturnFocusWhenClosingModalBoxes := true. "/ false.
@@ -809,7 +812,7 @@
postAutoload
(Screen notNil and:[Screen current notNil]) ifTrue:[
- self updateStyleCache.
+ self updateStyleCache.
]
! !
@@ -845,14 +848,14 @@
newView := self basicNew.
aView notNil ifTrue:[
- viewsDevice := aView graphicsDevice.
+ viewsDevice := aView graphicsDevice.
"/ newView container:aView.
] ifFalse:[
- viewsDevice := Screen current
+ viewsDevice := Screen current
].
newView initializeForDevice:viewsDevice.
(viewsDevice supportsNativeWidgetType:newView nativeWindowType) ifTrue:[
- newView beNativeWidget
+ newView beNativeWidget
].
aView notNil ifTrue:[aView addSubView:newView].
^ newView
@@ -901,9 +904,9 @@
|viewsDevice|
anotherView notNil ifTrue:[
- viewsDevice := anotherView graphicsDevice.
+ viewsDevice := anotherView graphicsDevice.
] ifFalse:[
- viewsDevice := Screen current.
+ viewsDevice := Screen current.
].
^ self onDevice:viewsDevice
@@ -996,8 +999,8 @@
!
origin:anOrigin extent:anExtent
- label:aLabel icon:aForm
- minExtent:minExtent maxExtent:maxExtent
+ label:aLabel icon:aForm
+ minExtent:minExtent maxExtent:maxExtent
|newView|
newView := self new. "/ onDevice:Screen current.
@@ -1038,11 +1041,11 @@
update:something with:aParameter from:changedObject
changedObject == Smalltalk ifTrue:[
- (something == #Language or:[something == #LanguageTerritory]) ifTrue:[
- "flush resources on language changes"
- self flushAllClassResources.
- self allSubInstancesDo:[:eachView | eachView languageChanged].
- ].
+ (something == #Language or:[something == #LanguageTerritory]) ifTrue:[
+ "flush resources on language changes"
+ self flushAllClassResources.
+ self allSubInstancesDo:[:eachView | eachView languageChanged].
+ ].
]
"Created: 15.6.1996 / 15:23:04 / cg"
@@ -1080,17 +1083,17 @@
DefaultFont notNil ifTrue:[^ DefaultFont].
self == SimpleView ifTrue:[
- f := super defaultFont
+ f := super defaultFont
] ifFalse:[
- f := self superclass defaultFont.
+ f := self superclass defaultFont.
].
f notNil ifTrue:[
- DefaultFont := f.
- f := f onDevice:Screen current.
- f notNil ifTrue:[
- DefaultFont := f.
- ]
+ DefaultFont := f.
+ f := f onDevice:Screen current.
+ f notNil ifTrue:[
+ DefaultFont := f.
+ ]
].
^ DefaultFont
@@ -1104,12 +1107,12 @@
DefaultFont := aFont.
aFont notNil ifTrue:[
- Display notNil ifTrue:[
- f := aFont onDevice:(Screen current).
- f notNil ifTrue:[
- DefaultFont := f.
- ]
- ]
+ Display notNil ifTrue:[
+ f := aFont onDevice:(Screen current).
+ f notNil ifTrue:[
+ DefaultFont := f.
+ ]
+ ]
]
"Modified: 18.3.1996 / 12:56:20 / cg"
@@ -1131,7 +1134,7 @@
DefaultStyle := aStyle.
MIMETypeIconLibrary notNil ifTrue:[
- MIMETypeIconLibrary flushIcons
+ MIMETypeIconLibrary flushIcons
].
"/ no need to read the stylesheet always here
@@ -1143,9 +1146,9 @@
"/ no need to read the stylesheet, then.
"/ used to be unconditional, before.
StyleSheet notNil ifTrue:[
- (Screen notNil and:[Screen current notNil]) ifTrue:[
- self readStyleSheetAndUpdateAllStyleCaches.
- ].
+ (Screen notNil and:[Screen current notNil]) ifTrue:[
+ self readStyleSheetAndUpdateAllStyleCaches.
+ ].
].
"
@@ -1177,20 +1180,20 @@
|iconLibraryClass |
DefaultStyle isNil ifTrue:[
- self setDefaultStyle
+ self setDefaultStyle
].
StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
StyleSheet fileReadFailed ifTrue:[
- ('SimpleView [warning]: ***** no styleSheet for ' , DefaultStyle , '-style.') errorPrintCR.
- DefaultStyle ~~ #normal ifTrue:[
- DefaultStyle := #normal.
- StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
-
- StyleSheet fileReadFailed ifTrue:[
- 'SimpleView [warning]: not even a styleSheet for normal-style (using ugly defaults).' errorPrintCR.
- ]
- ]
+ ('SimpleView [warning]: ***** no styleSheet for ' , DefaultStyle , '-style.') errorPrintCR.
+ DefaultStyle ~~ #normal ifTrue:[
+ DefaultStyle := #normal.
+ StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
+
+ StyleSheet fileReadFailed ifTrue:[
+ 'SimpleView [warning]: not even a styleSheet for normal-style (using ugly defaults).' errorPrintCR.
+ ]
+ ]
].
iconLibraryClass := StyleSheet at:#ToolbarIconLibrary.
@@ -1204,8 +1207,8 @@
Needed after a style change or when a style file has been changed"
DefaultStyle notNil ifTrue:[
- self readStyleSheet.
- self updateAllStyleCaches.
+ self readStyleSheet.
+ self updateAllStyleCaches.
].
"Created: / 15.9.1998 / 22:03:59 / cg"
@@ -1246,28 +1249,28 @@
|defStyle|
true "DefaultStyle isNil" ifTrue:[
- defStyle := OperatingSystem getEnvironment:'STX_VIEWSTYLE'.
- defStyle notNil ifTrue:[
- DefaultStyle := defStyle asSymbol.
- ] ifFalse:[
- "/ use XP for both linux and older windows systems;
- DefaultStyle := ViewStyle msWindowsXP.
-
- OperatingSystem isMSWINDOWSlike ifTrue:[
- "/ use Vista for vista and newer systems;
- OperatingSystem isVistaLike ifTrue:[
- DefaultStyle := ViewStyle msWindowsVista.
- OperatingSystem isWin8Like ifTrue:[
- "/ use win8 for 8 and newer systems;
- DefaultStyle := ViewStyle msWindows8
- ].
- ].
- ] ifFalse:[
- OperatingSystem isOSXlike ifTrue:[
- DefaultStyle := #macosx
- ].
- ].
- ].
+ defStyle := OperatingSystem getEnvironment:'STX_VIEWSTYLE'.
+ defStyle notNil ifTrue:[
+ DefaultStyle := defStyle asSymbol.
+ ] ifFalse:[
+ "/ use XP for both linux and older windows systems;
+ DefaultStyle := ViewStyle msWindowsXP.
+
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ "/ use Vista for vista and newer systems;
+ OperatingSystem isVistaLike ifTrue:[
+ DefaultStyle := ViewStyle msWindowsVista.
+ OperatingSystem isWin8Like ifTrue:[
+ "/ use win8 for 8 and newer systems;
+ DefaultStyle := ViewStyle msWindows8
+ ].
+ ].
+ ] ifFalse:[
+ OperatingSystem isOSXlike ifTrue:[
+ DefaultStyle := #macosx
+ ].
+ ].
+ ].
].
"Modified: / 03-02-2011 / 21:41:35 / cg"
@@ -1277,7 +1280,7 @@
"return the view style sheet information (a dictionary)"
StyleSheet isNil ifTrue:[
- self updateAllStyleCaches.
+ self updateAllStyleCaches.
].
^ StyleSheet
@@ -1309,33 +1312,33 @@
self changed:#style.
SimpleView updateStyleCache.
SimpleView allSubclassesDo:[:aClass |
- "JV@2010-12-02: Removed to avoid lost of preferred fonts on image restart"
- "/ cg: no, this is required!!!!!!
- "/ otherwise, we get ugly courier fonts on windows
- "/ updateStyleCache MUST clear any previously
- "/ cached font values, otherwise you cannot load a style's font.
- "/ if you want to keep your fonts, do it elsewhere (keep some userFontPrefs and restore from there)
-
- "/ JV: Font preferences ARE already saved in user's setting.rc/setting.stx, but they
- "/ are not reloaded on snapshot restart (which is correct, I think).
- "/ This just discard such fonts. I would say calling this upon snapshot restart
- "/ is a bad idea. Workaround it only for me is not a solution as all other
- "/ Linux users are ... off. Let's workaround it:
- (Smalltalk isInitialized not and:
- [OperatingSystem getOSType == #linux and:
- [UserPreferences current linuxFontWorkaround]])
- ifFalse:[
- aClass defaultFont:nil.
- ].
-
- (aClass class includesSelector:#updateStyleCache) ifTrue:[
- aClass updateStyleCache
- ].
+ "JV@2010-12-02: Removed to avoid lost of preferred fonts on image restart"
+ "/ cg: no, this is required!!!!!!
+ "/ otherwise, we get ugly courier fonts on windows
+ "/ updateStyleCache MUST clear any previously
+ "/ cached font values, otherwise you cannot load a style's font.
+ "/ if you want to keep your fonts, do it elsewhere (keep some userFontPrefs and restore from there)
+
+ "/ JV: Font preferences ARE already saved in user's setting.rc/setting.stx, but they
+ "/ are not reloaded on snapshot restart (which is correct, I think).
+ "/ This just discard such fonts. I would say calling this upon snapshot restart
+ "/ is a bad idea. Workaround it only for me is not a solution as all other
+ "/ Linux users are ... off. Let's workaround it:
+ (Smalltalk isInitialized not and:
+ [OperatingSystem getOSType == #linux and:
+ [UserPreferences current linuxFontWorkaround]])
+ ifFalse:[
+ aClass defaultFont:nil.
+ ].
+
+ (aClass class includesSelector:#updateStyleCache) ifTrue:[
+ aClass updateStyleCache
+ ].
].
"/ use #at: to avoid introducing a depency to libview2
(Smalltalk at:#MIMETypeIconLibrary) notNil ifTrue:[
- (Smalltalk at:#MIMETypeIconLibrary) flushIcons
+ (Smalltalk at:#MIMETypeIconLibrary) flushIcons
].
@@ -1357,8 +1360,8 @@
anyway."
<resource: #style (#viewSpacing #font #borderWidth #borderColor
- #viewBackground #shadowColor #lightColor
- #focusColor #focusBorderWidth)>
+ #viewBackground #shadowColor #lightColor
+ #focusColor #focusBorderWidth)>
|styleSheet bgGrey currentScreen|
@@ -1369,67 +1372,67 @@
and keep the values in fast class variables
"
styleSheet isNil ifTrue:[
- self setDefaultStyle.
- self readStyleSheet.
- styleSheet := StyleSheet.
+ self setDefaultStyle.
+ self readStyleSheet.
+ styleSheet := StyleSheet.
].
currentScreen := Screen current ? Screen default.
Grey := styleSheet viewGrey.
Grey isNil ifTrue:[
- Grey := Color gray
+ Grey := Color gray
].
Grey := Grey onDevice:currentScreen.
styleSheet fileReadFailed ifTrue:[
- bgGrey := Color white
+ bgGrey := Color white
] ifFalse:[
- currentScreen hasGrayscales ifTrue:[
- bgGrey := Grey
- ] ifFalse:[
- bgGrey := Color white.
- ]
+ currentScreen hasGrayscales ifTrue:[
+ bgGrey := Grey
+ ] ifFalse:[
+ bgGrey := Color white.
+ ]
].
bgGrey := bgGrey onDevice:currentScreen.
ViewSpacing := styleSheet at:#viewSpacing.
ViewSpacing isNil ifTrue:[
- ViewSpacing := currentScreen defaultStyleValueFor:#viewSpacing.
+ ViewSpacing := currentScreen defaultStyleValueFor:#viewSpacing.
].
DefaultBorderColor := styleSheet colorAt:#borderColor.
DefaultBorderColor isNil ifTrue:[
- DefaultBorderColor := currentScreen defaultStyleValueFor:#borderColor
+ DefaultBorderColor := currentScreen defaultStyleValueFor:#borderColor
].
styleSheet fileReadFailed ifTrue:[
- DefaultBorderWidth := 1.
- DefaultFocusColor := DefaultShadowColor := Color black.
- DefaultViewBackgroundColor := DefaultLightColor := Color white.
- DefaultFocusBorderWidth := 1.
+ DefaultBorderWidth := 1.
+ DefaultFocusColor := DefaultShadowColor := Color black.
+ DefaultViewBackgroundColor := DefaultLightColor := Color white.
+ DefaultFocusBorderWidth := 1.
] ifFalse:[
- DefaultBorderWidth := styleSheet at:#borderWidth default:0.
- DefaultViewBackgroundColor := styleSheet colorAt:#viewBackground default:bgGrey.
- DefaultShadowColor := styleSheet colorAt:#shadowColor.
- DefaultLightColor := styleSheet colorAt:#lightColor.
- DefaultFocusColor := styleSheet colorAt:#focusColor default:Color red.
- DefaultFocusBorderWidth := styleSheet at:'focusBorderWidth' default:2.
+ DefaultBorderWidth := styleSheet at:#borderWidth default:0.
+ DefaultViewBackgroundColor := styleSheet colorAt:#viewBackground default:bgGrey.
+ DefaultShadowColor := styleSheet colorAt:#shadowColor.
+ DefaultLightColor := styleSheet colorAt:#lightColor.
+ DefaultFocusColor := styleSheet colorAt:#focusColor default:Color red.
+ DefaultFocusBorderWidth := styleSheet at:'focusBorderWidth' default:2.
].
self == SimpleView ifTrue:[
- DefaultFont := styleSheet at:#font.
- DefaultFont isNil ifTrue:[
- DefaultFont := Font family:'courier' face:'medium' style:'roman' size:12.
- ].
- DefaultFont := DefaultFont onDevice:currentScreen.
+ DefaultFont := styleSheet at:#font.
+ DefaultFont isNil ifTrue:[
+ DefaultFont := Font family:'courier' face:'medium' style:'roman' size:12.
+ ].
+ DefaultFont := DefaultFont onDevice:currentScreen.
] ifFalse:[
- DefaultFont := nil
+ DefaultFont := nil
].
DefaultViewBackgroundColor isNil ifTrue:[
- 'SimpleView [warning]: bad viewBackground in style - using white' errorPrintCR.
- DefaultViewBackgroundColor := Color white
+ 'SimpleView [warning]: bad viewBackground in style - using white' errorPrintCR.
+ DefaultViewBackgroundColor := Color white
].
"Modified: / 29-04-1997 / 11:16:52 / dq"
@@ -1451,7 +1454,7 @@
"if not already loaded, get the classes resourcePack and return it"
ClassResources isNil ifTrue:[
- ClassResources := super classResources.
+ ClassResources := super classResources.
].
^ ClassResources
!
@@ -1468,20 +1471,20 @@
ResourcePack flushCachedResourcePacks.
SimpleView withAllSubclassesDo:[:aClass |
- aClass flushClassResources.
+ aClass flushClassResources.
]
"
View flushAllClassResources
"
"to change the language:
- Language := #en.
- Smalltalk changed:#Language.
- View flushAllClassResources
+ Language := #en.
+ Smalltalk changed:#Language.
+ View flushAllClassResources
or:
- Language := #de.
- Smalltalk changed:#Language.
- View flushAllClassResources
+ Language := #de.
+ Smalltalk changed:#Language.
+ View flushAllClassResources
"
!
@@ -1528,10 +1531,10 @@
|newDevice|
[
- newDevice := XWorkstation newDispatchingFor:aScreenName.
+ newDevice := XWorkstation newDispatchingFor:aScreenName.
] on:Screen deviceOpenErrorSignal do:[:ex|
- self warn:'Could not open display: ' , aScreenName.
- ^ self
+ self warn:'Could not open display: ' , aScreenName.
+ ^ self
].
^ (self onDevice:newDevice) open.
@@ -1568,7 +1571,7 @@
"/ what a kludge - Dolphin and Squeak mean: printOn:;
"/ ST/X (and some old ST80's) mean: draw-yourself on.
(aGCOrStream isStream) ifTrue:[
- ^ super displayOn:aGCOrStream
+ ^ super displayOn:aGCOrStream
].
self redraw
@@ -1678,25 +1681,25 @@
isApplicationModel := true.
(builder := aBuilder) isNil ifTrue:[
- "/ problem: anApplication could have no builder
- "/ or anApplication could be a non-appModel (theoretically - only providing a spec)
- builder := anApplication perform:#builder ifNotUnderstood:[isApplicationModel := false. nil].
- builder isNil ifTrue:[
- isApplicationModel ifTrue:[
- anApplication createBuilder.
- builder := anApplication builder
- ] ifFalse:[
- builder := UIBuilder new.
- ]
- ]
+ "/ problem: anApplication could have no builder
+ "/ or anApplication could be a non-appModel (theoretically - only providing a spec)
+ builder := anApplication perform:#builder ifNotUnderstood:[isApplicationModel := false. nil].
+ builder isNil ifTrue:[
+ isApplicationModel ifTrue:[
+ anApplication createBuilder.
+ builder := anApplication builder
+ ] ifFalse:[
+ builder := UIBuilder new.
+ ]
+ ]
].
(subSpec := aWindowSpecOrSpecSymbol) isSymbol ifTrue:[
- anApplication isNil ifTrue:[^ self].
- subSpec := anApplication interfaceSpecFor:aWindowSpecOrSpecSymbol.
- subSpec isNil ifTrue:[
- ^ self
- ].
+ anApplication isNil ifTrue:[^ self].
+ subSpec := anApplication interfaceSpecFor:aWindowSpecOrSpecSymbol.
+ subSpec isNil ifTrue:[
+ ^ self
+ ].
].
"/ if the appl is not the master, but the masters builder is used,
@@ -1704,35 +1707,35 @@
masterApp := anApplication perform:#masterApplication ifNotUnderstood:[isApplicationModel := false. nil].
masterApp isNil ifTrue:[
- isApplicationModel := false.
+ isApplicationModel := false.
].
thisApp := builder application.
(isApplicationModel and:[anApplication ~~ thisApp]) ifTrue:[
- masterApp ~~ thisApp ifTrue:[
- self error:'should not happen' mayProceed:true.
- masterApp isNil ifTrue:[
- anApplication masterApplication:thisApp.
- ].
- ].
-
- builder application:anApplication.
- savedView := builder window.
- builder window:self.
- [
- anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
- ] ensure:[
- builder window:savedView.
- builder application:thisApp.
- ].
+ masterApp ~~ thisApp ifTrue:[
+ self error:'should not happen' mayProceed:true.
+ masterApp isNil ifTrue:[
+ anApplication masterApplication:thisApp.
+ ].
+ ].
+
+ builder application:anApplication.
+ savedView := builder window.
+ builder window:self.
+ [
+ anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
+ ] ensure:[
+ builder window:savedView.
+ builder application:thisApp.
+ ].
] ifFalse:[
- thisIsANewBuild := builder window isNil.
- thisIsANewBuild ifTrue:[
- builder window:self.
- anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
- ] ifFalse:[
- "/ WARNING: in case of rebuilding, we do NOT invoke pre- and postBuilds
- builder buildFromSpec:subSpec in:self.
- ]
+ thisIsANewBuild := builder window isNil.
+ thisIsANewBuild ifTrue:[
+ builder window:self.
+ anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
+ ] ifFalse:[
+ "/ WARNING: in case of rebuilding, we do NOT invoke pre- and postBuilds
+ builder buildFromSpec:subSpec in:self.
+ ]
].
"/ postBuildWith: will be called twice if code below is enabled
@@ -1860,9 +1863,9 @@
recursively in all of my subviews"
subViews notNil ifTrue:[
- subViews do:[:v|
- v allViewBackground:something if:condition
- ]
+ subViews do:[:v|
+ v allViewBackground:something if:condition
+ ]
]
"Modified: / 18.7.1996 / 13:34:26 / cg"
@@ -1874,9 +1877,9 @@
recursively in all of my subviews"
subViews notNil ifTrue:[
- subViews do:[:v|
- v allViewForeground:something
- ]
+ subViews do:[:v|
+ v allViewForeground:something
+ ]
]
!
@@ -1921,7 +1924,7 @@
self viewBackground:aColor.
shown ifTrue:[
- self clear; invalidate.
+ self clear; invalidate.
].
"Created: 3.5.1997 / 10:26:49 / cg"
@@ -1932,7 +1935,7 @@
"return my border"
(superView notNil and:[superView isBorderedWrapper]) ifTrue:[
- ^ superView border
+ ^ superView border
].
^ border
@@ -1947,11 +1950,11 @@
border := aBorder.
self computeMargin.
realized ifTrue:[
- m := prevMargin max:margin.
- self invalidate:(0@0 corner:width@m). "/ top margin
- self invalidate:((width-m)@m corner:width@height). "/ right margin
- self invalidate:(0@(height-m) corner:width@height). "/ bottom margin
- self invalidate:(0@m corner:m@(height-m)). "/ left margin
+ m := prevMargin max:margin.
+ self invalidate:(0@0 corner:width@m). "/ top margin
+ self invalidate:((width-m)@m corner:width@height). "/ right margin
+ self invalidate:(0@(height-m) corner:width@height). "/ bottom margin
+ self invalidate:(0@m corner:m@(height-m)). "/ left margin
].
!
@@ -1961,15 +1964,15 @@
|clr|
(superView notNil and:[superView isBorderedWrapper]) ifTrue:[
- ^ superView borderColor
+ ^ superView borderColor
].
"/ ^ borderColor
border notNil ifTrue:[
- clr := border color
+ clr := border color
].
clr isNil ifTrue:[
- ^ self blackColor
+ ^ self blackColor
].
^ clr.
@@ -1982,16 +1985,16 @@
"/ backward compatibility
"/ superView will be renamed to container soon.
(superView notNil and:[superView isBorderedWrapper]) ifTrue:[
- superView borderColor:aColor.
- ^ self
+ superView borderColor:aColor.
+ ^ self
].
aColor isNil ifTrue:[
- border isNil ifTrue:[^ self].
- self border:nil.
+ border isNil ifTrue:[^ self].
+ self border:nil.
] ifFalse:[
- aColor = (self borderColor) ifTrue:[^ self].
- self border:(SimpleBorder new width:(self borderWidth) color:aColor)
+ aColor = (self borderColor) ifTrue:[^ self].
+ self border:(SimpleBorder new width:(self borderWidth) color:aColor)
].
self invalidate.
@@ -2010,18 +2013,18 @@
"set the borderShape to aForm"
aForm isNil ifTrue:[
- viewShape := nil.
- self drawableId notNil ifTrue:[
- device setWindowBorderShape:nil in:self drawableId
- ]
+ viewShape := nil.
+ self drawableId notNil ifTrue:[
+ device setWindowBorderShape:nil in:self drawableId
+ ]
] ifFalse:[
- viewShape isNil ifTrue:[
- viewShape := ArbitraryViewShape new
- ].
- viewShape borderShapeForm:aForm.
- self drawableId notNil ifTrue:[
- device setWindowBorderShape:(aForm id) in:self drawableId
- ]
+ viewShape isNil ifTrue:[
+ viewShape := ArbitraryViewShape new
+ ].
+ viewShape borderShapeForm:aForm.
+ self drawableId notNil ifTrue:[
+ device setWindowBorderShape:(aForm id) in:self drawableId
+ ]
]
"Modified: 18.9.1997 / 11:09:40 / cg"
@@ -2031,7 +2034,7 @@
"return my borderWidth"
(superView notNil and:[superView isBorderedWrapper]) ifTrue:[
- ^ superView borderWidth
+ ^ superView borderWidth
].
border isNil ifTrue:[^ 0].
@@ -2047,25 +2050,25 @@
aNumber := aNumberOrNil.
aNumber notNil ifTrue:[
- self assert:(aNumber >= 0).
- aNumber := aNumber max: 0
+ self assert:(aNumber >= 0).
+ aNumber := aNumber max: 0
].
"/ backward compatibility
"/ superView will be renamed to container soon.
(superView notNil and:[superView isBorderedWrapper]) ifTrue:[
- ^ superView borderWidth:aNumber
+ ^ superView borderWidth:aNumber
].
(aNumber == 0 or:[aNumber isNil]) ifTrue:[
- border isNil ifTrue:[^ self].
- self border:nil.
+ border isNil ifTrue:[^ self].
+ self border:nil.
] ifFalse:[
- border notNil ifTrue:[
- self border:(border copy width:aNumber)
- ] ifFalse:[
- self border:(SimpleBorder new width:aNumber color:(self borderColor)).
- ]
+ border notNil ifTrue:[
+ self border:(border copy width:aNumber)
+ ] ifFalse:[
+ self border:(SimpleBorder new width:aNumber color:(self borderColor)).
+ ]
].
"/ (aNumber ~~ borderWidth) ifTrue:[
@@ -2080,8 +2083,8 @@
computeMargin
border isNil ifTrue:[
- margin := level abs.
- ^ self.
+ margin := level abs.
+ ^ self.
].
margin := border width.
!
@@ -2111,15 +2114,15 @@
"set both the foreground and background colors of the contents"
self
- foregroundColor:fgColor;
- backgroundColor:bgColor
+ foregroundColor:fgColor;
+ backgroundColor:bgColor
!
level
"return my level relative to superView (3D)"
(superView notNil and:[superView isBorderedWrapper]) ifTrue:[
- ^ superView level
+ ^ superView level
].
border notNil ifTrue:[^ border level].
^ level
@@ -2135,36 +2138,36 @@
"/ backward compatibility
"/ superView will be renamed to container soon.
(superView notNil and:[superView isBorderedWrapper]) ifTrue:[
- ^ superView level:aNumber
+ ^ superView level:aNumber
].
(aNumber ~~ level and:[aNumber notNil]) ifTrue:[
- self is3D ifTrue:[
- level := aNumber.
- oldMargin := margin.
- margin := level abs.
-
- realized ifTrue:[
- margin ~~ oldMargin ifTrue:[
- (margin > oldMargin) ifTrue:[
- how := #smaller
- ] ifFalse:[
- how := #larger
- ].
- self sizeChanged:how.
- self setInnerClip.
- ].
- shown ifTrue:[
- margin ~~ oldMargin ifTrue:[
- self clearView.
- self redrawX:margin y:margin
- width:width-(margin*2)
- height:height-(margin*2)
- ].
- self redrawEdges.
- ]
- ]
- ]
+ self is3D ifTrue:[
+ level := aNumber.
+ oldMargin := margin.
+ margin := level abs.
+
+ realized ifTrue:[
+ margin ~~ oldMargin ifTrue:[
+ (margin > oldMargin) ifTrue:[
+ how := #smaller
+ ] ifFalse:[
+ how := #larger
+ ].
+ self sizeChanged:how.
+ self setInnerClip.
+ ].
+ shown ifTrue:[
+ margin ~~ oldMargin ifTrue:[
+ self clearView.
+ self redrawX:margin y:margin
+ width:width-(margin*2)
+ height:height-(margin*2)
+ ].
+ self redrawEdges.
+ ]
+ ]
+ ]
]
"Modified: 5.6.1996 / 14:12:17 / cg"
@@ -2174,10 +2177,10 @@
"return the color to be used for lighted edges (3D only)"
lightColor isNil ifTrue:[
- |avgColor|
-
- avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
- lightColor := avgColor lightened.
+ |avgColor|
+
+ avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
+ lightColor := avgColor lightened.
].
^ lightColor
!
@@ -2228,10 +2231,10 @@
"return the color to be used for shadowed edges (3D only)"
shadowColor isNil ifTrue:[
- |avgColor|
-
- avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
- shadowColor := avgColor darkened.
+ |avgColor|
+
+ avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
+ shadowColor := avgColor darkened.
].
^ shadowColor
!
@@ -2254,11 +2257,11 @@
self assert:(something notNil) message:'invalid viewBackground argument'.
something isColor ifTrue:[
- device hasGrayscales ifTrue:[
- avgColor := something averageColorIn:(0@0 corner:7@7).
- shadowColor := avgColor darkened "on:device".
- lightColor := avgColor lightened "on:device".
- ]
+ device hasGrayscales ifTrue:[
+ avgColor := something averageColorIn:(0@0 corner:7@7).
+ shadowColor := avgColor darkened "on:device".
+ lightColor := avgColor lightened "on:device".
+ ]
].
super viewBackground:something
@@ -2270,10 +2273,10 @@
in myself and recursively in all of my subviews"
(condition value:self) ifTrue:[
- viewBackground ~~ something ifTrue:[
- self viewBackground:something.
- self invalidate
- ].
+ viewBackground ~~ something ifTrue:[
+ self viewBackground:something.
+ self invalidate
+ ].
].
!
@@ -2281,19 +2284,19 @@
"set the viewShape to aForm"
aForm isNil ifTrue:[
- viewShape := nil.
- self drawableId notNil ifTrue:[
- device setWindowShape:nil in:self drawableId
- ]
+ viewShape := nil.
+ self drawableId notNil ifTrue:[
+ device setWindowShape:nil in:self drawableId
+ ]
] ifFalse:[
- viewShape isNil ifTrue:[
- viewShape := ArbitraryViewShape new
- ].
-
- viewShape viewShapeForm:aForm.
- self drawableId notNil ifTrue:[
- device setWindowShape:(aForm id) in:self drawableId
- ]
+ viewShape isNil ifTrue:[
+ viewShape := ArbitraryViewShape new
+ ].
+
+ viewShape viewShapeForm:aForm.
+ self drawableId notNil ifTrue:[
+ device setWindowShape:(aForm id) in:self drawableId
+ ]
]
"Modified: 18.9.1997 / 11:11:04 / cg"
@@ -2314,25 +2317,25 @@
oldChannel == newChannel ifTrue:[^ self].
oldChannel notNil ifTrue:[
- changeSelector isNil ifTrue:[
- oldChannel removeDependent:self
- ] ifFalse:[
- oldChannel retractInterestsFor:self.
- ].
- oldValue := oldChannel value.
+ changeSelector isNil ifTrue:[
+ oldChannel removeDependent:self
+ ] ifFalse:[
+ oldChannel retractInterestsFor:self.
+ ].
+ oldValue := oldChannel value.
].
newChannel notNil ifTrue:[
- changeSelector isNil ifTrue:[
- newChannel addDependent:self.
- newChannel value ~~ oldValue ifTrue:[
- self update:#value with:nil from:newChannel.
- ]
- ] ifFalse:[
- newChannel onChangeSend:changeSelector to:self.
- newChannel value ~~ oldValue ifTrue:[
- self perform:changeSelector.
- ]
- ]
+ changeSelector isNil ifTrue:[
+ newChannel addDependent:self.
+ newChannel value ~~ oldValue ifTrue:[
+ self update:#value with:nil from:newChannel.
+ ]
+ ] ifFalse:[
+ newChannel onChangeSend:changeSelector to:self.
+ newChannel value ~~ oldValue ifTrue:[
+ self perform:changeSelector.
+ ]
+ ]
].
^ newChannel
@@ -2409,7 +2412,7 @@
Obsolete: please use a layout object."
insets isNil ifTrue:[
- insets := Array new:4.
+ insets := Array new:4.
].
insets atAllPut:aNumber.
@@ -2417,7 +2420,7 @@
"/ drawableId isNil ifTrue:[
"/ self originChangedFlag:true
"/ ] ifFalse:[
- self containerChangedSize.
+ self containerChangedSize.
"/ ]
"Modified: 19.7.1996 / 17:30:18 / cg"
@@ -2453,15 +2456,15 @@
|newInset|
insets isNil ifTrue:[
- insets := Array with:0 with:0 with:0 with:0
+ insets := Array with:0 with:0 with:0 with:0
].
newInset := aNumber.
newInset isNil ifTrue:[
- newInset := 0.
+ newInset := 0.
].
(insets at:4) ~= newInset ifTrue:[
- insets at:4 put:newInset.
- self containerChangedSize
+ insets at:4 put:newInset.
+ self containerChangedSize
]
"Modified: 19.7.1996 / 17:30:22 / cg"
@@ -2481,7 +2484,7 @@
self explicitExtent:true.
self pixelOrigin:aRectangle origin
- corner:aRectangle corner
+ corner:aRectangle corner
"Created: 4.6.1996 / 21:44:27 / cg"
"Modified: 10.1.1997 / 19:46:36 / cg"
@@ -2511,39 +2514,39 @@
slowly migrating to use layoutObjects ...
"
layout notNil ifTrue:[
- superView isNil ifTrue:[^ self preferredBounds corner].
- ^ (layout rectangleRelativeTo:(superView viewRectangle)
- preferred:[self preferredBounds]) corner rounded
+ superView isNil ifTrue:[^ self preferredBounds corner].
+ ^ (layout rectangleRelativeTo:(superView viewRectangle)
+ preferred:[self preferredBounds]) corner rounded
].
(cornerRule notNil) ifTrue:[
- newCorner := cornerRule value.
- "
- allow return of relative values ...
- "
- x := newCorner x.
- y := newCorner y.
- x isNil ifTrue:[x := self corner x].
- y isNil ifTrue:[y := self corner y].
- ((x isInteger not) or:[y isInteger not]) ifTrue:[
- newCorner := self cornerFromRelativeCorner:x@y
- ]
+ newCorner := cornerRule value.
+ "
+ allow return of relative values ...
+ "
+ x := newCorner x.
+ y := newCorner y.
+ x isNil ifTrue:[x := self corner x].
+ y isNil ifTrue:[y := self corner y].
+ ((x isInteger not) or:[y isInteger not]) ifTrue:[
+ newCorner := self cornerFromRelativeCorner:x@y
+ ]
] ifFalse:[
- (relativeCorner notNil) ifTrue:[
- newCorner := self cornerFromRelativeCorner:relativeCorner
- ] ifFalse:[
- org := self computeOrigin.
- (extentRule notNil) ifTrue:[
- newExt := extentRule value
- ] ifFalse:[
- (relativeExtent notNil) ifTrue:[
- newExt := self extentFromRelativeExtent:relativeExtent
- ] ifFalse:[
- newExt := self extent.
- ]
- ].
- newCorner := org + newExt
- ]
+ (relativeCorner notNil) ifTrue:[
+ newCorner := self cornerFromRelativeCorner:relativeCorner
+ ] ifFalse:[
+ org := self computeOrigin.
+ (extentRule notNil) ifTrue:[
+ newExt := extentRule value
+ ] ifFalse:[
+ (relativeExtent notNil) ifTrue:[
+ newExt := self extentFromRelativeExtent:relativeExtent
+ ] ifFalse:[
+ newExt := self extent.
+ ]
+ ].
+ newCorner := org + newExt
+ ]
].
^ newCorner
@@ -2564,51 +2567,51 @@
slowly migrating to use layoutObjects ...
"
layout notNil ifTrue:[
- ^ (layout rectangleRelativeTo:(superView viewRectangle)
- preferred:[self preferredBounds]) extent rounded
+ ^ (layout rectangleRelativeTo:(superView viewRectangle)
+ preferred:[self preferredBounds]) extent rounded
].
(cornerRule notNil) ifTrue:[
- newCorner := cornerRule value.
- "
- allow return of relative values ...
- "
- x := newCorner x.
- y := newCorner y.
- x isNil ifTrue:[x := self corner x].
- y isNil ifTrue:[y := self corner y].
- ((x isInteger not) or:[y isInteger not]) ifTrue:[
- newCorner := self cornerFromRelativeCorner:x@y
- ]
+ newCorner := cornerRule value.
+ "
+ allow return of relative values ...
+ "
+ x := newCorner x.
+ y := newCorner y.
+ x isNil ifTrue:[x := self corner x].
+ y isNil ifTrue:[y := self corner y].
+ ((x isInteger not) or:[y isInteger not]) ifTrue:[
+ newCorner := self cornerFromRelativeCorner:x@y
+ ]
] ifFalse:[
- (relativeCorner notNil) ifTrue:[
- newCorner := self cornerFromRelativeCorner:relativeCorner
- ] ifFalse:[
- (extentRule notNil) ifTrue:[
- newExt := extentRule value.
- "
- allow return of relative values ...
- "
- x := newExt x.
- y := newExt y.
- x isNil ifTrue:[x := width].
- y isNil ifTrue:[y := height].
- ((x isInteger not) or:[y isInteger not]) ifTrue:[
- newExt := self extentFromRelativeExtent:x@y
- ]
- ] ifFalse:[
- (relativeExtent notNil) ifTrue:[
- newExt := self extentFromRelativeExtent:relativeExtent
- ] ifFalse:[
- newExt := (width @ height).
- ].
- ].
- ].
+ (relativeCorner notNil) ifTrue:[
+ newCorner := self cornerFromRelativeCorner:relativeCorner
+ ] ifFalse:[
+ (extentRule notNil) ifTrue:[
+ newExt := extentRule value.
+ "
+ allow return of relative values ...
+ "
+ x := newExt x.
+ y := newExt y.
+ x isNil ifTrue:[x := width].
+ y isNil ifTrue:[y := height].
+ ((x isInteger not) or:[y isInteger not]) ifTrue:[
+ newExt := self extentFromRelativeExtent:x@y
+ ]
+ ] ifFalse:[
+ (relativeExtent notNil) ifTrue:[
+ newExt := self extentFromRelativeExtent:relativeExtent
+ ] ifFalse:[
+ newExt := (width @ height).
+ ].
+ ].
+ ].
].
newCorner notNil ifTrue:[
- newOrg := self computeOrigin.
- ^ newCorner - newOrg.
+ newOrg := self computeOrigin.
+ ^ newCorner - newOrg.
].
^ newExt.
!
@@ -2625,29 +2628,29 @@
slowly migrating to use layoutObjects ...
"
layout notNil ifTrue:[
- superView isNil ifTrue:[^ 0@0].
- ^ (layout rectangleRelativeTo:(superView viewRectangle)
- preferred:[self preferredBounds]) origin rounded
+ superView isNil ifTrue:[^ 0@0].
+ ^ (layout rectangleRelativeTo:(superView viewRectangle)
+ preferred:[self preferredBounds]) origin rounded
].
(originRule notNil) ifTrue:[
- newOrg := originRule value.
- "
- allow return of relative values ...
- "
- x := newOrg x.
- y := newOrg y.
- x isNil ifTrue:[x := self origin x].
- y isNil ifTrue:[y := self origin y].
- ((x isInteger not) or:[y isInteger not]) ifTrue:[
- newOrg := self originFromRelativeOrigin:x@y.
- ]
+ newOrg := originRule value.
+ "
+ allow return of relative values ...
+ "
+ x := newOrg x.
+ y := newOrg y.
+ x isNil ifTrue:[x := self origin x].
+ y isNil ifTrue:[y := self origin y].
+ ((x isInteger not) or:[y isInteger not]) ifTrue:[
+ newOrg := self originFromRelativeOrigin:x@y.
+ ]
] ifFalse:[
- (relativeOrigin notNil) ifTrue:[
- newOrg := self originFromRelativeOrigin:relativeOrigin.
- ] ifFalse:[
- ^ (left @ top).
- ].
+ (relativeOrigin notNil) ifTrue:[
+ newOrg := self originFromRelativeOrigin:relativeOrigin.
+ ] ifFalse:[
+ ^ (left @ top).
+ ].
].
^ newOrg
!
@@ -2664,10 +2667,10 @@
corner:corner
"set the views corner;
the corner argument may be:
- a point
- where integer fields mean 'pixel-values'
- and float values mean 'relative-to-superview'
- and nil means 'take current value';
+ a point
+ where integer fields mean 'pixel-values'
+ and float values mean 'relative-to-superview'
+ and nil means 'take current value';
or a block returning a point which is interpreted as above.
Please migrate to use layoutObjects, if possible."
@@ -2676,31 +2679,31 @@
self explicitExtent:true.
corner isBlock ifTrue:[
- cornerRule := corner.
- self drawableId notNil ifTrue:[
- pixelCorner := corner value
- ] ifFalse:[
- self extentChangedFlag:true
- ]
+ cornerRule := corner.
+ self drawableId notNil ifTrue:[
+ pixelCorner := corner value
+ ] ifFalse:[
+ self extentChangedFlag:true
+ ]
] ifFalse:[
- x := corner x.
- y := corner y.
- x isNil ifTrue:[x := self corner x].
- y isNil ifTrue:[y := self corner y].
- c := x @ y.
- ((x isInteger not) or:[y isInteger not]) ifTrue:[
- relativeCorner := c.
- pixelCorner := self cornerFromRelativeCorner.
- pixelCorner isNil ifTrue:[
- self extentChangedFlag:true
- ]
- ] ifFalse:[
- pixelCorner := c
- ]
+ x := corner x.
+ y := corner y.
+ x isNil ifTrue:[x := self corner x].
+ y isNil ifTrue:[y := self corner y].
+ c := x @ y.
+ ((x isInteger not) or:[y isInteger not]) ifTrue:[
+ relativeCorner := c.
+ pixelCorner := self cornerFromRelativeCorner.
+ pixelCorner isNil ifTrue:[
+ self extentChangedFlag:true
+ ]
+ ] ifFalse:[
+ pixelCorner := c
+ ]
].
pixelCorner notNil ifTrue:[
- self pixelCorner:pixelCorner
+ self pixelCorner:pixelCorner
]
"Modified: 15.7.1996 / 09:51:06 / cg"
@@ -2715,51 +2718,51 @@
extent:extent
"set the views extent;
extent may be:
- a point
- where integer fields mean 'pixel-values'
- and float values mean 'relative-to-superview'
- and nil means 'leave current value';
+ a point
+ where integer fields mean 'pixel-values'
+ and float values mean 'relative-to-superview'
+ and nil means 'leave current value';
or a block returning a point which is interpreted as above.
Be careful when using relative extents: rounding errors may
accumulate. Better use origin/corner.
Best: migrate to use layour objects.
Notice: this sets the views explicitExtent flag, which prevents it normally
- from resizing itself to its preferredExtent.
- See initialExtent: for a variation."
+ from resizing itself to its preferredExtent.
+ See initialExtent: for a variation."
|w h pixelExtent e|
self explicitExtent:true.
extent isBlock ifTrue:[
- extentRule := extent.
- self drawableId notNil ifTrue:[
- pixelExtent := extent value
- ] ifFalse:[
- self extentChangedFlag:true
- ]
+ extentRule := extent.
+ self drawableId notNil ifTrue:[
+ pixelExtent := extent value
+ ] ifFalse:[
+ self extentChangedFlag:true
+ ]
] ifFalse:[
- extentRule := nil.
- w := extent x.
- h := extent y.
- w isNil ifTrue:[w := width].
- h isNil ifTrue:[h := height].
- e := w@h.
- ((w isInteger not) or:[h isInteger not]) ifTrue:[
- "/ w > 1 ifTrue:[self halt].
- relativeExtent := e.
- pixelExtent := self extentFromRelativeExtent.
- pixelExtent isNil ifTrue:[
- self extentChangedFlag:true
- ]
- ] ifFalse:[
- relativeExtent := nil.
- pixelExtent := e
- ]
+ extentRule := nil.
+ w := extent x.
+ h := extent y.
+ w isNil ifTrue:[w := width].
+ h isNil ifTrue:[h := height].
+ e := w@h.
+ ((w isInteger not) or:[h isInteger not]) ifTrue:[
+ "/ w > 1 ifTrue:[self halt].
+ relativeExtent := e.
+ pixelExtent := self extentFromRelativeExtent.
+ pixelExtent isNil ifTrue:[
+ self extentChangedFlag:true
+ ]
+ ] ifFalse:[
+ relativeExtent := nil.
+ pixelExtent := e
+ ]
].
pixelExtent notNil ifTrue:[
- self pixelExtent:pixelExtent
+ self pixelExtent:pixelExtent
]
"Modified: / 07-07-2010 / 16:44:57 / cg"
@@ -2809,7 +2812,7 @@
"/ aNumber isInteger ifTrue:[
"/ height := aNumber.
"/ ] ifFalse:[
- self extent:(width @ aNumber)
+ self extent:(width @ aNumber)
"/ ].
"Modified: / 02-02-2011 / 12:16:44 / cg"
@@ -2831,11 +2834,11 @@
|newInset|
insets isNil ifTrue:[
- insets := Array with:0 with:0 with:0 with:0
+ insets := Array with:0 with:0 with:0 with:0
].
newInset := aNumber.
aNumber isNil ifTrue:[
- newInset := 0.
+ newInset := 0.
].
insets at:1 put:newInset.
insets at:3 put:newInset.
@@ -2844,7 +2847,7 @@
"/ drawableId isNil ifTrue:[
"/ self originChangedFlag:true
"/ ] ifFalse:[
- self containerChangedSize.
+ self containerChangedSize.
"/ ]
"Modified: / 30-09-2006 / 15:19:28 / cg"
@@ -2940,8 +2943,8 @@
"set the layout object which controls my geometry."
layout ~= aLayoutObject ifTrue:[
- layout := aLayoutObject.
- self layoutChanged.
+ layout := aLayoutObject.
+ self layoutChanged.
].
"Modified: 19.9.1995 / 16:17:25 / claus"
@@ -2950,9 +2953,9 @@
layoutChanged
superView isNil ifTrue:[
- self originChangedFlag:true extentChangedFlag:true cornerChangedFlag:true.
+ self originChangedFlag:true extentChangedFlag:true cornerChangedFlag:true.
] ifFalse:[
- self containerChangedSize.
+ self containerChangedSize.
]
"Modified: 19.9.1995 / 16:17:25 / claus"
@@ -2995,15 +2998,15 @@
|newInset|
insets isNil ifTrue:[
- insets := Array with:0 with:0 with:0 with:0
+ insets := Array with:0 with:0 with:0 with:0
].
newInset := aNumber.
newInset isNil ifTrue:[
- newInset := 0.
+ newInset := 0.
].
(insets at:1) ~= newInset ifTrue:[
- insets at:1 put:newInset.
- self containerChangedSize.
+ insets at:1 put:newInset.
+ self containerChangedSize.
]
"Modified: 19.7.1996 / 17:30:30 / cg"
@@ -3029,19 +3032,19 @@
cornerVisible := myDevice pointIsVisible:corner.
(myDevice pointsAreOnSameMonitor:origin and:corner) ifTrue:[
- referencePoint := origin.
+ referencePoint := origin.
] ifFalse:[
- originVisible ifTrue:[
- "origin is visible"
- referencePoint := origin.
- ] ifFalse:[
- cornerVisible notNil ifTrue:[
- "corner is visible"
- referencePoint := corner.
- ] ifFalse:[
- referencePoint := 1@1.
- ].
- ].
+ originVisible ifTrue:[
+ "origin is visible"
+ referencePoint := origin.
+ ] ifFalse:[
+ cornerVisible notNil ifTrue:[
+ "corner is visible"
+ referencePoint := corner.
+ ] ifFalse:[
+ referencePoint := 1@1.
+ ].
+ ].
].
deviceBounds := myDevice monitorBoundsAt:referencePoint.
@@ -3054,40 +3057,40 @@
cornerVisible ifTrue:[ deviceBottom := deviceBottom min:(myDevice usableHeightAt:corner) ].
corner y > deviceBottom ifTrue:[
- cornerVisible := false.
+ cornerVisible := false.
].
UserPreferences current forceWindowsIntoMonitorBounds ifFalse:[
- (originVisible and:[cornerVisible]) ifTrue:[^ self].
+ (originVisible and:[cornerVisible]) ifTrue:[^ self].
].
"/ deviceRight := deviceRight min:device usableWidth.
originVisible ifFalse:[
- cornerVisible ifFalse:[
- newTop := deviceBottom - height.
- newLeft := deviceRight - width.
- newLeft := newLeft max:deviceLeft.
- newTop := newTop max:deviceTop.
- ] ifTrue:[
- "/ origin is not; corner is in
- newLeft := (deviceLeft max:newLeft).
- newTop := (deviceTop max:newTop).
- ].
+ cornerVisible ifFalse:[
+ newTop := deviceBottom - height.
+ newLeft := deviceRight - width.
+ newLeft := newLeft max:deviceLeft.
+ newTop := newTop max:deviceTop.
+ ] ifTrue:[
+ "/ origin is not; corner is in
+ newLeft := (deviceLeft max:newLeft).
+ newTop := (deviceTop max:newTop).
+ ].
] ifTrue:[
- "/ notice, the position-dependent query: if there is a higher secondary screen,
- "/ this makes a difference in where a popUpMenu is allowed...
- (corner y > deviceBottom) ifTrue:[
- newTop := deviceBottom - height
- ].
- (corner x > deviceRight) ifTrue:[
- newLeft := deviceRight - width
- ].
- newLeft := newLeft max:deviceLeft.
- newTop := newTop max:deviceTop.
+ "/ notice, the position-dependent query: if there is a higher secondary screen,
+ "/ this makes a difference in where a popUpMenu is allowed...
+ (corner y > deviceBottom) ifTrue:[
+ newTop := deviceBottom - height
+ ].
+ (corner x > deviceRight) ifTrue:[
+ newLeft := deviceRight - width
+ ].
+ newLeft := newLeft max:deviceLeft.
+ newTop := newTop max:deviceTop.
].
((newTop ~~ top) or:[newLeft ~~ left]) ifTrue:[
- self origin:newLeft @ newTop
+ self origin:newLeft @ newTop
].
"Modified: / 27-10-2012 / 13:15:58 / cg"
@@ -3112,35 +3115,35 @@
"/ ].
device supportsArbitraryShapedViews ifTrue:[
- extent := self extent.
- w := extent x.
- h := extent y.
- borderForm := Form extent:extent.
- shapeForm := Form extent:extent.
-
- borderForm fillArcX:0 y:0
- width:w
- height:h
- from:0
- angle:360.
-
- opaque ifFalse:[
- f := borderForm.
- borderForm foreground:(Color colorId:0).
- ] ifTrue:[
- f := shapeForm.
- shapeForm foreground:(Color colorId:1).
- ].
-
- f fillArcX:(lw := gc lineWidth) y:lw
- width:w - (bw * 2)
- height:h - (bw * 2)
- from:0
- angle:360.
-
- self borderShape:borderForm.
- self viewShape:shapeForm.
- ^ self.
+ extent := self extent.
+ w := extent x.
+ h := extent y.
+ borderForm := Form extent:extent.
+ shapeForm := Form extent:extent.
+
+ borderForm fillArcX:0 y:0
+ width:w
+ height:h
+ from:0
+ angle:360.
+
+ opaque ifFalse:[
+ f := borderForm.
+ borderForm foreground:(Color colorId:0).
+ ] ifTrue:[
+ f := shapeForm.
+ shapeForm foreground:(Color colorId:1).
+ ].
+
+ f fillArcX:(lw := gc lineWidth) y:lw
+ width:w - (bw * 2)
+ height:h - (bw * 2)
+ from:0
+ angle:360.
+
+ self borderShape:borderForm.
+ self viewShape:shapeForm.
+ ^ self.
"/
"/ extent := self extent.
@@ -3191,28 +3194,28 @@
"/ ].
device supportsArbitraryShapedViews ifTrue:[
- extent := self extent.
- w := extent x.
- h := extent y.
- borderForm := Form extent:extent.
- shapeForm := Form extent:extent.
-
- borderForm
- fillRectangleX:0 y:0
- width:w
- height:h.
-
- f := borderForm.
- borderForm foreground:(Color colorId:0).
-
- borderForm
- fillRectangleX:bw y:bw
- width:w - (bw * 2)
- height:h - (bw * 2).
-
- self borderShape:borderForm.
- self viewShape:shapeForm.
- ^ self.
+ extent := self extent.
+ w := extent x.
+ h := extent y.
+ borderForm := Form extent:extent.
+ shapeForm := Form extent:extent.
+
+ borderForm
+ fillRectangleX:0 y:0
+ width:w
+ height:h.
+
+ f := borderForm.
+ borderForm foreground:(Color colorId:0).
+
+ borderForm
+ fillRectangleX:bw y:bw
+ width:w - (bw * 2)
+ height:h - (bw * 2).
+
+ self borderShape:borderForm.
+ self viewShape:shapeForm.
+ ^ self.
]
!
@@ -3241,42 +3244,42 @@
origin:origin
"set the views origin;
origin may be:
- a point
- where integer fields mean 'pixel-values'
- and float values mean 'relative-to-superview'
- and nil means 'take current value';
+ a point
+ where integer fields mean 'pixel-values'
+ and float values mean 'relative-to-superview'
+ and nil means 'take current value';
or a block returning a point which is interpreted as above.
Please migrate to use layout objects."
|newLeft newTop pixelOrigin o|
origin isBlock ifTrue:[
- originRule := origin.
- self drawableId notNil ifTrue:[
- pixelOrigin := origin value
- ] ifFalse:[
- self originChangedFlag:true
- ]
+ originRule := origin.
+ self drawableId notNil ifTrue:[
+ pixelOrigin := origin value
+ ] ifFalse:[
+ self originChangedFlag:true
+ ]
] ifFalse:[
- o := origin.
- newLeft := origin x.
- newTop := origin y.
- newLeft isNil ifTrue:[newLeft := left].
- newTop isNil ifTrue:[newTop := top].
- o := newLeft @ newTop.
- ((newLeft isInteger not) or:[newTop isInteger not]) ifTrue:[
- relativeOrigin := o.
- pixelOrigin := self originFromRelativeOrigin.
- pixelOrigin isNil ifTrue:[
- self originChangedFlag:true
- ]
- ] ifFalse:[
- relativeOrigin := nil.
- pixelOrigin := o
- ]
+ o := origin.
+ newLeft := origin x.
+ newTop := origin y.
+ newLeft isNil ifTrue:[newLeft := left].
+ newTop isNil ifTrue:[newTop := top].
+ o := newLeft @ newTop.
+ ((newLeft isInteger not) or:[newTop isInteger not]) ifTrue:[
+ relativeOrigin := o.
+ pixelOrigin := self originFromRelativeOrigin.
+ pixelOrigin isNil ifTrue:[
+ self originChangedFlag:true
+ ]
+ ] ifFalse:[
+ relativeOrigin := nil.
+ pixelOrigin := o
+ ]
].
pixelOrigin notNil ifTrue:[
- self pixelOrigin:pixelOrigin
+ self pixelOrigin:pixelOrigin
].
"Modified: 19.4.1996 / 15:12:36 / cg"
@@ -3292,21 +3295,21 @@
"do it as one operation if possible"
origin isBlock ifFalse:[
- corner isBlock ifFalse:[
- newLeft := origin x.
- newLeft isInteger ifTrue:[
- newTop := origin y.
- newTop isInteger ifTrue:[
- newRight := corner x.
- newRight isInteger ifTrue:[
- newBot := corner y.
- newBot isInteger ifTrue:[
- self pixelOrigin:origin corner:corner
- ]
- ]
- ]
- ]
- ]
+ corner isBlock ifFalse:[
+ newLeft := origin x.
+ newLeft isInteger ifTrue:[
+ newTop := origin y.
+ newTop isInteger ifTrue:[
+ newRight := corner x.
+ newRight isInteger ifTrue:[
+ newBot := corner y.
+ newBot isInteger ifTrue:[
+ self pixelOrigin:origin corner:corner
+ ]
+ ]
+ ]
+ ]
+ ]
].
self origin:origin.
self corner:corner
@@ -3324,21 +3327,21 @@
"do it as one operation if possible"
origin isBlock ifFalse:[
- extent isBlock ifFalse:[
- newLeft := origin x.
- newLeft isInteger ifTrue:[
- newTop := origin y.
- newTop isInteger ifTrue:[
- newWidth := extent x.
- newWidth isInteger ifTrue:[
- newHeight := extent y.
- newHeight isInteger ifTrue:[
- self pixelOrigin:origin extent:extent
- ]
- ]
- ]
- ]
- ]
+ extent isBlock ifFalse:[
+ newLeft := origin x.
+ newLeft isInteger ifTrue:[
+ newTop := origin y.
+ newTop isInteger ifTrue:[
+ newWidth := extent x.
+ newWidth isInteger ifTrue:[
+ newHeight := extent y.
+ newHeight isInteger ifTrue:[
+ self pixelOrigin:origin extent:extent
+ ]
+ ]
+ ]
+ ]
+ ]
].
self extent:extent.
self origin:origin
@@ -3360,17 +3363,17 @@
sumX := 0.
sumY := 0.
[currentView notNil] whileTrue:[
- (currentView == aView) ifTrue:[
- ^ (sumX @ sumY)
- ].
- bw := currentView borderWidth.
- sumX := sumX + (currentView left) + bw.
- sumY := sumY + (currentView top) + bw.
- currentView := currentView superView
+ (currentView == aView) ifTrue:[
+ ^ (sumX @ sumY)
+ ].
+ bw := currentView borderWidth.
+ sumX := sumX + (currentView left) + bw.
+ sumY := sumY + (currentView top) + bw.
+ currentView := currentView superView
].
(aView isNil or:[aView == device rootView]) ifTrue:[
- "return relative to screen ..."
- ^ (sumX @ sumY)
+ "return relative to screen ..."
+ ^ (sumX @ sumY)
].
^ nil
@@ -3410,10 +3413,10 @@
"MB:added {" "needed if layout is used e.g. POUEditor"
layout notNil ifTrue:[
- layout isRectangle ifTrue:[
- ^ 0@0
- ].
- ^(layout rightFraction) @ (layout bottomFraction)
+ layout isRectangle ifTrue:[
+ ^ 0@0
+ ].
+ ^(layout rightFraction) @ (layout bottomFraction)
].
"MB:added }"
@@ -3427,8 +3430,8 @@
relativeCorner := aPoint.
"MB:added {" "needed if layout is used e.g. POUEditor"
layout notNil ifTrue:[
- layout rightFraction: aPoint x.
- layout bottomFraction: aPoint y.
+ layout rightFraction: aPoint x.
+ layout bottomFraction: aPoint y.
].
"MB:added }"
!
@@ -3453,10 +3456,10 @@
"MB:added {" "needed if layout is used e.g. POUEditor"
layout notNil ifTrue:[
- layout isRectangle ifTrue:[
- ^ 0@0
- ].
- ^(layout leftFraction) @ (layout topFraction)
+ layout isRectangle ifTrue:[
+ ^ 0@0
+ ].
+ ^(layout leftFraction) @ (layout topFraction)
].
"MB:added }"
^relativeOrigin
@@ -3468,8 +3471,8 @@
relativeOrigin := aPoint.
"MB:added {" "needed if layout is used e.g. POUEditor"
layout notNil ifTrue:[
- layout leftFraction: aPoint x.
- layout topFraction: aPoint y.
+ layout leftFraction: aPoint x.
+ layout topFraction: aPoint y.
].
"MB:added }"
!
@@ -3506,15 +3509,15 @@
|newInset|
insets isNil ifTrue:[
- insets := Array with:0 with:0 with:0 with:0
+ insets := Array with:0 with:0 with:0 with:0
].
newInset := aNumber.
newInset isNil ifTrue:[
- newInset := 0.
+ newInset := 0.
].
(insets at:3) ~= newInset ifTrue:[
- insets at:3 put:newInset.
- self containerChangedSize.
+ insets at:3 put:newInset.
+ self containerChangedSize.
]
"Modified: 19.7.1996 / 17:30:32 / cg"
@@ -3565,7 +3568,7 @@
"return the inside area of the superView."
superView isNil ifTrue:[
- ^ Rectangle left:0 top:0 right:0 bottom:0.
+ ^ Rectangle left:0 top:0 right:0 bottom:0.
].
^ superView viewRectangle.
@@ -3601,15 +3604,15 @@
|newInset|
insets isNil ifTrue:[
- insets := Array with:0 with:0 with:0 with:0
+ insets := Array with:0 with:0 with:0 with:0
].
newInset := aNumber.
newInset isNil ifTrue:[
- newInset := 0.
+ newInset := 0.
].
(insets at:2) ~= newInset ifTrue:[
- insets at:2 put:newInset.
- self containerChangedSize.
+ insets at:2 put:newInset.
+ self containerChangedSize.
]
"Modified: 19.7.1996 / 17:30:45 / cg"
@@ -3623,11 +3626,11 @@
|newInset|
insets isNil ifTrue:[
- insets := Array with:0 with:0 with:0 with:0
+ insets := Array with:0 with:0 with:0 with:0
].
newInset := aNumber.
aNumber isNil ifTrue:[
- newInset := 0.
+ newInset := 0.
].
insets at:2 put:newInset.
insets at:4 put:newInset.
@@ -3636,7 +3639,7 @@
"/ drawableId isNil ifTrue:[
"/ self originChangedFlag:true
"/ ] ifFalse:[
- self containerChangedSize.
+ self containerChangedSize.
"/ ]
"Modified: / 30-09-2006 / 15:19:45 / cg"
@@ -3667,7 +3670,7 @@
"/ aNumber isInteger ifTrue:[
"/ width := aNumber.
"/ ] ifFalse:[
- self extent:(aNumber @ height)
+ self extent:(aNumber @ height)
"/ ]
"Modified: / 02-02-2011 / 12:16:26 / cg"
@@ -3738,19 +3741,19 @@
"set my container (i.e. superView) to be aContainer"
superView == aContainer ifTrue:[
- "/ no change
- ^ self.
+ "/ no change
+ ^ self.
].
(self drawableId notNil) ifTrue:[
- "/ actually, this is worth an exception
- "/ ('View [error]: ' , self printString , ' already realized - cannot change container') errorPrintCR.
- self error:'already realized - cannot change container' mayProceed:true.
+ "/ actually, this is worth an exception
+ "/ ('View [error]: ' , self printString , ' already realized - cannot change container') errorPrintCR.
+ self error:'already realized - cannot change container' mayProceed:true.
].
(superView notNil and:[superView ~~ aContainer]) ifTrue:[
- "/ actually, this is worth an exception
- ('View [warning]: ' , self printString , ' already has a container') errorPrintCR.
- superView removeComponent:self.
+ "/ actually, this is worth an exception
+ ('View [warning]: ' , self printString , ' already has a container') errorPrintCR.
+ superView removeComponent:self.
].
superView := aContainer
@@ -3768,7 +3771,7 @@
myName := self uuidStringOrName.
viewsWithSameName := aViewCollection select:[:v | v uuidStringOrName = myName].
viewsWithSameName size = 1 ifTrue:[
- ^ nil "/ no conflict
+ ^ nil "/ no conflict
].
^ viewsWithSameName indexOf:self
!
@@ -3786,21 +3789,21 @@
superV := self superView.
[superV isNil] whileFalse:[
- hierarchicalViews addFirst: superV.
- superV := superV superView.
+ hierarchicalViews addFirst: superV.
+ superV := superV superView.
].
hierarchicalViews doWithIndex:[:aView :index |
- uuidOrName := aView uuidStringOrName.
- indexString := nil.
- index > 1 ifTrue:[
- indexOrNil := aView hierarchicalIndex.
- (indexOrNil notNil and:[indexOrNil ~= 1]) ifTrue:[
- indexString := '[',indexOrNil printString,']'
- ]
- ].
- separator := index == 1 ifTrue:[''] ifFalse:['.'].
- hierarchicalUUID := hierarchicalUUID,separator,uuidOrName,(indexString?'').
+ uuidOrName := aView uuidStringOrName.
+ indexString := nil.
+ index > 1 ifTrue:[
+ indexOrNil := aView hierarchicalIndex.
+ (indexOrNil notNil and:[indexOrNil ~= 1]) ifTrue:[
+ indexString := '[',indexOrNil printString,']'
+ ]
+ ].
+ separator := index == 1 ifTrue:[''] ifFalse:['.'].
+ hierarchicalUUID := hierarchicalUUID,separator,uuidOrName,(indexString?'').
].
^ hierarchicalUUID
!
@@ -3867,9 +3870,9 @@
subViews := aListOfViews.
subViews notNil ifTrue:[
- subViews do:[:view |
- view container:self
- ]
+ subViews do:[:view |
+ view container:self
+ ]
]
"Modified: 9.5.1996 / 00:42:28 / cg"
@@ -3909,10 +3912,10 @@
n := 1.
v := self.
[v notNil] whileTrue:[
- (next := v container) isNil ifTrue:[^ v].
- v := next.
- n := n + 1.
- n > 1000 ifTrue:[self error:'circular superView chain'].
+ (next := v container) isNil ifTrue:[^ v].
+ v := next.
+ n := n + 1.
+ n > 1000 ifTrue:[self error:'circular superView chain'].
].
^ nil
@@ -3980,14 +3983,14 @@
the model first, then use the views menu.
"
(menuHolder respondsTo:sym) ifFalse:[
- (self respondsTo:sym) ifTrue:[
- menuHolder := self
- ]
+ (self respondsTo:sym) ifTrue:[
+ menuHolder := self
+ ]
].
sym numArgs > 0 ifTrue:[
- "/ squeak compatibility (with args): create the empty menu here, let model add items
- ^ menuHolder perform:sym withOptionalArgument:(Menu new) and:(device shiftDown).
+ "/ squeak compatibility (with args): create the empty menu here, let model add items
+ ^ menuHolder perform:sym withOptionalArgument:(Menu new) and:(device shiftDown).
].
"
@@ -4010,8 +4013,8 @@
when the view is resized."
bitGravity ~~ gravity ifTrue:[
- bitGravity := gravity.
- gc bitGravity:gravity.
+ bitGravity := gravity.
+ gc bitGravity:gravity.
]
!
@@ -4024,53 +4027,53 @@
currentClippingBounds := gc clippingBoundsOrNil.
(currentClippingBounds = aRectangleOrNil) ifTrue:[
- ^ self
+ ^ self
].
newBounds := aRectangleOrNil.
aRectangleOrNil notNil ifTrue:[
- |currentTransformation|
-
- x := aRectangleOrNil left.
- y := aRectangleOrNil top.
- w := aRectangleOrNil width.
- h := aRectangleOrNil height.
- currentTransformation := gc transformation.
- currentTransformation notNil ifTrue:[
- x := currentTransformation applyToX:x.
- y := currentTransformation applyToY:y.
- w := currentTransformation applyScaleX:w.
- h := currentTransformation applyScaleY:h.
- ].
- (x class ~~ SmallInteger) ifTrue:[
- w := w + (x - x truncated).
- x := x truncated
- ].
- (y class ~~ SmallInteger) ifTrue:[
- h := h + (y - y truncated).
- y := y truncated
- ].
- (w class ~~ SmallInteger) ifTrue:[
- w := w truncated + 1
- ].
- (h class ~~ SmallInteger) ifTrue:[
- h := h truncated + 1
- ].
- x < margin ifTrue:[
- x := margin.
- ].
- y < margin ifTrue:[
- y := margin.
- ].
- x + w - 1 >= (width-margin) ifTrue:[
- w := width - margin - x
- ].
- y + h - 1 >= (height-margin) ifTrue:[
- h := height - margin - y
- ].
- w := w max:0.
- h := h max:0.
- newBounds := Rectangle left:x top:y width:w height:h.
+ |currentTransformation|
+
+ x := aRectangleOrNil left.
+ y := aRectangleOrNil top.
+ w := aRectangleOrNil width.
+ h := aRectangleOrNil height.
+ currentTransformation := gc transformation.
+ currentTransformation notNil ifTrue:[
+ x := currentTransformation applyToX:x.
+ y := currentTransformation applyToY:y.
+ w := currentTransformation applyScaleX:w.
+ h := currentTransformation applyScaleY:h.
+ ].
+ (x class ~~ SmallInteger) ifTrue:[
+ w := w + (x - x truncated).
+ x := x truncated
+ ].
+ (y class ~~ SmallInteger) ifTrue:[
+ h := h + (y - y truncated).
+ y := y truncated
+ ].
+ (w class ~~ SmallInteger) ifTrue:[
+ w := w truncated + 1
+ ].
+ (h class ~~ SmallInteger) ifTrue:[
+ h := h truncated + 1
+ ].
+ x < margin ifTrue:[
+ x := margin.
+ ].
+ y < margin ifTrue:[
+ y := margin.
+ ].
+ x + w - 1 >= (width-margin) ifTrue:[
+ w := width - margin - x
+ ].
+ y + h - 1 >= (height-margin) ifTrue:[
+ h := height - margin - y
+ ].
+ w := w max:0.
+ h := h max:0.
+ newBounds := Rectangle left:x top:y width:w height:h.
].
gc deviceClippingBounds:newBounds
@@ -4082,7 +4085,7 @@
"return my full name to be used for resource-access"
superView notNil ifTrue:[
- ^ superView fullName , '.' , self name
+ ^ superView fullName , '.' , self name
].
^ self name
!
@@ -4091,7 +4094,7 @@
"return my name component to be used for resource-access"
name isNil ifTrue:[
- name := self class name "asString" asLowercaseFirst
+ name := self class name "asString" asLowercaseFirst
].
^ name
!
@@ -4148,8 +4151,8 @@
when the superView is resized."
viewGravity ~~ gravity ifTrue:[
- viewGravity := gravity.
- gc viewGravity:gravity.
+ viewGravity := gravity.
+ gc viewGravity:gravity.
]
! !
@@ -4160,7 +4163,7 @@
or nil, if there is no application"
superView notNil ifTrue:[
- ^ superView application
+ ^ superView application
].
^ nil
@@ -4189,7 +4192,7 @@
controller := aController.
controller notNil ifTrue:[
- controller view:self.
+ controller view:self.
]
"Modified: / 31.10.1997 / 19:58:33 / cg"
@@ -4207,7 +4210,7 @@
"return the views sensor"
windowGroup notNil ifTrue:[
- ^ windowGroup sensor.
+ ^ windowGroup sensor.
].
"there is no window group. Deliver events synchronously"
@@ -4244,18 +4247,18 @@
If I am currently in a group, remove me from it it."
windowGroup notNil ifTrue:[
- windowGroup removeView:self.
- windowGroup := nil
+ windowGroup removeView:self.
+ windowGroup := nil
].
windowGroup := newGroup.
newGroup notNil ifTrue:[
- newGroup addView:self.
+ newGroup addView:self.
].
subViews notNil ifTrue:[
- subViews do:[:aSubview |
- aSubview windowGroup:newGroup
- ]
+ subViews do:[:aSubview |
+ aSubview windowGroup:newGroup
+ ]
].
"Modified: 20.8.1997 / 13:26:37 / cg"
@@ -4309,14 +4312,14 @@
currentTransformation := gc transformation.
currentTransformation isNil ifTrue:[
- (aPoint x ~~ 0 or:[aPoint y ~~ 0]) ifTrue:[
- gc transformation:(WindowingTransformation scale:1 translation:aPoint negated).
- ].
+ (aPoint x ~~ 0 or:[aPoint y ~~ 0]) ifTrue:[
+ gc transformation:(WindowingTransformation scale:1 translation:aPoint negated).
+ ].
] ifFalse:[
- currentTransformation translation:aPoint negated.
+ currentTransformation translation:aPoint negated.
].
self clippingBoundsOrNil notNil ifTrue:[
- self setInnerClip.
+ self setInnerClip.
].
!
@@ -4329,7 +4332,7 @@
currentTransformation := gc transformation.
currentTransformation isNil ifTrue:[
- ^ 0@0
+ ^ 0@0
].
^ currentTransformation translation negated
!
@@ -4343,10 +4346,10 @@
currentTransformation := gc transformation.
currentTransformation isNil ifTrue:[
- ^ Rectangle left:0 top:0 width:width height:height.
+ ^ Rectangle left:0 top:0 width:width height:height.
].
^ Rectangle origin:(currentTransformation translation negated)
- extent:((width @ height) scaledBy:(currentTransformation scale)).
+ extent:((width @ height) scaledBy:(currentTransformation scale)).
"Created: 12.7.1996 / 11:57:04 / stefan"
!
@@ -4375,12 +4378,12 @@
self hiddenOnRealize:true.
realized ifTrue:[
- (superView isNil "/ I am a topView
- or:[superView realized "/ superview already shown
- or:[superView id notNil]]) "/ superview already created
- ifTrue:[
- self unmap
- ]
+ (superView isNil "/ I am a topView
+ or:[superView realized "/ superview already shown
+ or:[superView id notNil]]) "/ superview already created
+ ifTrue:[
+ self unmap
+ ]
]
"Modified: 3.4.1997 / 21:20:40 / cg"
@@ -4398,22 +4401,22 @@
self hiddenOnRealize:false.
realized ifFalse:[
- superView isNil ifTrue:[ "/ I am a topView
- self drawableId isNil ifTrue:[
- "this once was:
- self realize.
- but we don't want Topviews to realize implicitly.
- BTW. the code doesn't work anyway"
- ] ifFalse:[
- self remap.
- ].
- ] ifFalse:[
- (superView realized "/ superview already shown
- or:[superView id notNil]) "/ superview already created
- ifTrue:[
- self realize
- ]
- ].
+ superView isNil ifTrue:[ "/ I am a topView
+ self drawableId isNil ifTrue:[
+ "this once was:
+ self realize.
+ but we don't want Topviews to realize implicitly.
+ BTW. the code doesn't work anyway"
+ ] ifFalse:[
+ self remap.
+ ].
+ ] ifFalse:[
+ (superView realized "/ superview already shown
+ or:[superView id notNil]) "/ superview already created
+ ifTrue:[
+ self realize
+ ]
+ ].
]
"
@@ -4489,11 +4492,10 @@
to be made visible conditionally or later.
For ST-80 compatibility, please use #beVisible / #beInvisible."
- "/ hiddenOnRealize := aBoolean
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagHiddenOnRealize
+ flagBits := flagBits bitOr:FlagHiddenOnRealize
] ifFalse:[
- flagBits := flagBits bitClear:FlagHiddenOnRealize
+ flagBits := flagBits bitClear:FlagHiddenOnRealize
].
"Modified: 17.6.1997 / 11:23:26 / cg"
@@ -4513,9 +4515,9 @@
(especially in panels), which otherwise occur while subviews are removed."
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagBeingDestroyed
+ flagBits := flagBits bitOr:FlagBeingDestroyed
] ifFalse:[
- flagBits := flagBits bitClear:FlagBeingDestroyed
+ flagBits := flagBits bitClear:FlagBeingDestroyed
].
!
@@ -4537,8 +4539,8 @@
v := self.
[v notNil] whileTrue:[
- v shown ifFalse:[^ false].
- v := v container.
+ v shown ifFalse:[^ false].
+ v := v container.
].
^ true
@@ -4555,9 +4557,9 @@
"make the view visible or invisible"
aBoolean ifTrue:[
- self beVisible
+ self beVisible
] ifFalse:[
- self beInvisible
+ self beInvisible
]
"Created: / 27.10.1997 / 04:23:04 / cg"
@@ -4663,12 +4665,12 @@
|l wrapper|
aComponentOrCollection isCollection ifTrue:[
- wrapper := View new.
- aComponentOrCollection do:[:aComponent |
- wrapper add:aComponent
- ]
+ wrapper := View new.
+ aComponentOrCollection do:[:aComponent |
+ wrapper add:aComponent
+ ]
] ifFalse:[
- wrapper := aComponentOrCollection
+ wrapper := aComponentOrCollection
].
l := aRectangleOrLayoutFrame asLayout.
@@ -4689,16 +4691,16 @@
Dont use this right now for non-views"
aComponent isView ifTrue:[
- self addSubView:aComponent
+ self addSubView:aComponent
] ifFalse:[
- components isNil ifTrue:[
- components := OrderedCollection new
- ].
- components add:aComponent.
- aComponent container:self.
- shown ifTrue:[
- aComponent displayOn:self
- ]
+ components isNil ifTrue:[
+ components := OrderedCollection new
+ ].
+ components add:aComponent.
+ aComponent container:self.
+ shown ifTrue:[
+ aComponent displayOn:self
+ ]
]
"Modified: 13.5.1996 / 21:19:51 / cg"
@@ -4708,13 +4710,13 @@
"add a view to the collection of subviews"
subViews isNil ifTrue:[
- subViews := OrderedCollection with:newView
+ subViews := OrderedCollection with:newView
] ifFalse:[
- (subViews includesIdentical:newView) ifTrue:[
- self error:'trying to add a view twice' mayProceed:true.
- ^ self.
- ].
- subViews add:newView.
+ (subViews includesIdentical:newView) ifTrue:[
+ self error:'trying to add a view twice' mayProceed:true.
+ ^ self.
+ ].
+ subViews add:newView.
].
self setContainerIn:newView.
@@ -4728,17 +4730,17 @@
element at some defined place."
subViews isNil ifTrue:[
- subViews := OrderedCollection with:newView
+ subViews := OrderedCollection with:newView
] ifFalse:[
- (subViews includesIdentical:newView) ifTrue:[
- self error:'trying to add a view twice' mayProceed:true.
- ^ self.
- ].
- aViewOrNil isNil ifTrue:[
- subViews add:newView
- ] ifFalse:[
- subViews add:newView after:aViewOrNil.
- ]
+ (subViews includesIdentical:newView) ifTrue:[
+ self error:'trying to add a view twice' mayProceed:true.
+ ^ self.
+ ].
+ aViewOrNil isNil ifTrue:[
+ subViews add:newView
+ ] ifFalse:[
+ subViews add:newView after:aViewOrNil.
+ ]
].
self setContainerIn:newView.
@@ -4753,17 +4755,17 @@
element at some defined place."
subViews isNil ifTrue:[
- subViews := OrderedCollection with:newView
+ subViews := OrderedCollection with:newView
] ifFalse:[
- (subViews includesIdentical:newView) ifTrue:[
- self error:'trying to add a view twice' mayProceed:true.
- ^ self.
- ].
- aViewOrNil isNil ifTrue:[
- subViews addFirst:newView
- ] ifFalse:[
- subViews add:newView before:aViewOrNil.
- ]
+ (subViews includesIdentical:newView) ifTrue:[
+ self error:'trying to add a view twice' mayProceed:true.
+ ^ self.
+ ].
+ aViewOrNil isNil ifTrue:[
+ subViews addFirst:newView
+ ] ifFalse:[
+ subViews add:newView before:aViewOrNil.
+ ]
].
self setContainerIn:newView.
@@ -4782,13 +4784,13 @@
"add a view to the front of the collection of subviews"
subViews isNil ifTrue:[
- subViews := OrderedCollection with:newView
+ subViews := OrderedCollection with:newView
] ifFalse:[
- (subViews includesIdentical:newView) ifTrue:[
- self error:'trying to add a view twice' mayProceed:true.
- ^ self.
- ].
- subViews addFirst:newView.
+ (subViews includesIdentical:newView) ifTrue:[
+ self error:'trying to add a view twice' mayProceed:true.
+ ^ self.
+ ].
+ subViews addFirst:newView.
].
self setContainerIn:newView.
@@ -4802,14 +4804,14 @@
aComponent origin:0.0@0.0 corner:1.0@1.0.
aComponent isView ifTrue:[
- self addSubView:aComponent
+ self addSubView:aComponent
] ifFalse:[
- components := OrderedCollection with:aComponent.
- aComponent container:self.
-
- shown ifTrue:[
- aComponent displayOn:self
- ]
+ components := OrderedCollection with:aComponent.
+ aComponent container:self.
+
+ shown ifTrue:[
+ aComponent displayOn:self
+ ]
]
"Modified: 13.5.1996 / 21:20:29 / cg"
@@ -4819,22 +4821,22 @@
"remove all subviews"
subViews notNil ifTrue:[
- subViews copy do:[:aSubView |
- aSubView destroy.
- ].
-
- "/ paranoia ;-)
- subViews size ~~ 0 ifTrue:[
- (self class name , ' >>View [warning]: some subView(s) did not destroy: ' , subViews printString) infoPrintCR.
- subViews := nil
- ].
+ subViews copy do:[:aSubView |
+ aSubView destroy.
+ ].
+
+ "/ paranoia ;-)
+ subViews size ~~ 0 ifTrue:[
+ (self class name , ' >>View [warning]: some subView(s) did not destroy: ' , subViews printString) infoPrintCR.
+ subViews := nil
+ ].
].
components notNil ifTrue:[
- components copy do:[:aComponent |
- aComponent destroy.
- ].
- components := nil.
+ components copy do:[:aComponent |
+ aComponent destroy.
+ ].
+ components := nil.
]
!
@@ -4843,11 +4845,11 @@
Dont use this right now for non-views"
aComponent isView ifTrue:[
- self removeSubView:aComponent
+ self removeSubView:aComponent
] ifFalse:[
- components isNil ifTrue:[^self].
- components remove:aComponent ifAbsent:[].
- aComponent container:nil
+ components isNil ifTrue:[^self].
+ components remove:aComponent ifAbsent:[].
+ aComponent container:nil
]
"Modified: / 11-09-2006 / 17:14:30 / User"
@@ -4857,12 +4859,12 @@
"remove a view from the collection of subviews"
subViews notNil ifTrue:[
- subViews remove:aView ifAbsent:[nil].
- aView setContainer:nil.
-
- (subViews size == 0) ifTrue:[
- subViews := nil
- ]
+ subViews remove:aView ifAbsent:[nil].
+ aView setContainer:nil.
+
+ (subViews size == 0) ifTrue:[
+ subViews := nil
+ ]
]
!
@@ -4871,10 +4873,10 @@
aView container:self.
(aView graphicsDevice ~~ device) ifTrue:[
- 'SimpleView [warning]: subview (' errorPrint. aView class name errorPrint.
- ') has different device than me (' errorPrint.
- self class name errorPrint. ').' errorPrintCR.
- aView device:device
+ 'SimpleView [warning]: subview (' errorPrint. aView class name errorPrint.
+ ') has different device than me (' errorPrint.
+ self class name errorPrint. ').' errorPrintCR.
+ aView device:device
].
"Created: 9.5.1996 / 00:46:59 / cg"
@@ -4900,9 +4902,9 @@
"an update request"
aspect == #sizeOfView ifTrue:[
- "one of the views we depend on changed its size"
- "/ cg: #containerChangedSize has already been sent by the caller
- ^ self "containerChangedSize".
+ "one of the views we depend on changed its size"
+ "/ cg: #containerChangedSize has already been sent by the caller
+ ^ self "containerChangedSize".
].
super update:aspect with:aParameter from:changedObject
@@ -4923,50 +4925,50 @@
ok := true.
bitmaps := #('wheel1' 'wheel2' 'wheel3' 'wheel4')
- collect:[:name |
- |f|
-
- f := Smalltalk imageFromFileNamed:(name , '.xbm') forClass:self class.
- f isNil ifTrue:[
- ('SimpleView [warning]: no bitmap file: ' , name , '.xbm') errorPrintCR.
- ok := false
- ].
- f
- ].
+ collect:[:name |
+ |f|
+
+ f := Smalltalk imageFromFileNamed:(name , '.xbm') forClass:self class.
+ f isNil ifTrue:[
+ ('SimpleView [warning]: no bitmap file: ' , name , '.xbm') errorPrintCR.
+ ok := false
+ ].
+ f
+ ].
ok ifTrue:[
- maskForm := Smalltalk imageFromFileNamed:'wheelm.xbm' forClass:self class.
- maskForm isNil ifTrue:[
- ('SimpleView [warning]: no bitmap file: wheelm.xbm') errorPrintCR.
- ok := false
- ].
+ maskForm := Smalltalk imageFromFileNamed:'wheelm.xbm' forClass:self class.
+ maskForm isNil ifTrue:[
+ ('SimpleView [warning]: no bitmap file: wheelm.xbm') errorPrintCR.
+ ok := false
+ ].
].
ok ifFalse:[
- self cursor:Cursor wait.
- aBlock ensure:[
- self cursor:oldCursor
- ]
+ self cursor:Cursor wait.
+ aBlock ensure:[
+ self cursor:oldCursor
+ ]
] ifTrue:[
- cursors := bitmaps collect:[:form | (Cursor sourceForm:form
- maskForm:maskForm
- hotX:8
- hotY:8) onDevice:device].
-
- process := [
- Delay waitForSeconds:0.25.
- [
- cursors do:[:curs |
- self cursor:curs.
- Delay waitForSeconds:0.05.
- ]
- ] loop.
- ] forkAt:(Processor activeProcess priority + 1).
-
- aBlock ensure:[
- process terminate.
- self cursor:oldCursor
- ]
+ cursors := bitmaps collect:[:form | (Cursor sourceForm:form
+ maskForm:maskForm
+ hotX:8
+ hotY:8) onDevice:device].
+
+ process := [
+ Delay waitForSeconds:0.25.
+ [
+ cursors do:[:curs |
+ self cursor:curs.
+ Delay waitForSeconds:0.05.
+ ]
+ ] loop.
+ ] forkAt:(Processor activeProcess priority + 1).
+
+ aBlock ensure:[
+ process terminate.
+ self cursor:oldCursor
+ ]
].
"
@@ -4986,35 +4988,35 @@
wasBlocked := OperatingSystem blockInterrupts.
[
- |deps|
-
- deps := dependents.
- "/
- "/ store the very first dependent directly in
- "/ the dependents instVar
- "/
- (deps isNil and:[anObject isCollection not]) ifTrue:[
- dependents := anObject
- ] ifFalse:[
- "/
- "/ store more dependents in the dependents collection
- "/
- deps isCollection ifTrue:[
- deps add:anObject
- ] ifFalse:[
- deps == anObject ifFalse:[
- deps isNil ifTrue:[
- dependents := (IdentitySet with:anObject)
- ] ifFalse:[
- dependents := (IdentitySet with:deps with:anObject)
- ]
- ]
- ]
- ]
+ |deps|
+
+ deps := dependents.
+ "/
+ "/ store the very first dependent directly in
+ "/ the dependents instVar
+ "/
+ (deps isNil and:[anObject isCollection not]) ifTrue:[
+ dependents := anObject
+ ] ifFalse:[
+ "/
+ "/ store more dependents in the dependents collection
+ "/
+ deps isCollection ifTrue:[
+ deps add:anObject
+ ] ifFalse:[
+ deps == anObject ifFalse:[
+ deps isNil ifTrue:[
+ dependents := (IdentitySet with:anObject)
+ ] ifFalse:[
+ dependents := (IdentitySet with:deps with:anObject)
+ ]
+ ]
+ ]
+ ]
] ensure:[
- wasBlocked ifFalse:[
- OperatingSystem unblockInterrupts
- ]
+ wasBlocked ifFalse:[
+ OperatingSystem unblockInterrupts
+ ]
]
"Modified: 8.1.1997 / 23:40:30 / cg"
@@ -5027,7 +5029,7 @@
dependents isNil ifTrue:[^ #()].
dependents isCollection ifTrue:[
- ^ dependents
+ ^ dependents
].
^ IdentitySet with:dependents
@@ -5042,11 +5044,11 @@
|dep|
aCollection size == 1 ifTrue:[
- dep := aCollection first.
- dep isCollection ifFalse:[
- dependents := aCollection first.
- ^ self
- ]
+ dep := aCollection first.
+ dep isCollection ifFalse:[
+ dependents := aCollection first.
+ ^ self
+ ]
].
dependents := aCollection
@@ -5062,11 +5064,11 @@
deps := dependents.
deps notNil ifTrue:[
- deps isCollection ifTrue:[
- deps do:aBlock
- ] ifFalse:[
- aBlock value:deps
- ]
+ deps isCollection ifTrue:[
+ deps do:aBlock
+ ] ifFalse:[
+ aBlock value:deps
+ ]
]
"Created: 11.6.1997 / 13:10:51 / cg"
@@ -5084,31 +5086,31 @@
wasBlocked := OperatingSystem blockInterrupts.
[
- |deps sz dep|
-
- deps := dependents.
- deps notNil ifTrue:[
- deps isCollection ifTrue:[
- deps remove:anObject ifAbsent:[].
- (sz := deps size) == 0 ifTrue:[
- dependents := nil
- ] ifFalse:[
- sz == 1 ifTrue:[
- (dep := deps first) isCollection ifFalse:[
- dependents := dep
- ]
- ]
- ]
- ] ifFalse:[
- deps == anObject ifTrue:[
- dependents := nil
- ]
- ]
- ]
+ |deps sz dep|
+
+ deps := dependents.
+ deps notNil ifTrue:[
+ deps isCollection ifTrue:[
+ deps remove:anObject ifAbsent:[].
+ (sz := deps size) == 0 ifTrue:[
+ dependents := nil
+ ] ifFalse:[
+ sz == 1 ifTrue:[
+ (dep := deps first) isCollection ifFalse:[
+ dependents := dep
+ ]
+ ]
+ ]
+ ] ifFalse:[
+ deps == anObject ifTrue:[
+ dependents := nil
+ ]
+ ]
+ ]
] ensure:[
- wasBlocked ifFalse:[
- OperatingSystem unblockInterrupts
- ]
+ wasBlocked ifFalse:[
+ OperatingSystem unblockInterrupts
+ ]
]
"Modified: 8.1.1997 / 23:41:39 / cg"
@@ -5264,11 +5266,11 @@
"draw bottom 3D edge into window frame"
self drawBottomEdgeLevel:level
- shadow:shadowColor
- light:lightColor
- halfShadow:nil
- halfLight:nil
- style:nil.
+ shadow:shadowColor
+ light:lightColor
+ halfShadow:nil
+ halfLight:nil
+ style:nil.
!
drawBottomEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
@@ -5280,28 +5282,28 @@
count == 0 ifTrue:[^ self].
(count < 0) ifTrue:[
- botFg := lightColor.
- count := count negated
+ botFg := lightColor.
+ count := count negated
] ifFalse:[
- ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
- botFg := halfShadowColor
- ] ifFalse:[
- botFg := shadowColor
- ].
+ ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
+ botFg := halfShadowColor
+ ] ifFalse:[
+ botFg := shadowColor
+ ].
].
super paint:botFg.
super lineWidth:0.
r := width - 1.
0 to:(count - 1) do:[:i |
- b := height - 1 - i.
- super displayDeviceLineFromX:i y:b toX:(r - i) y:b
+ b := height - 1 - i.
+ super displayDeviceLineFromX:i y:b toX:(r - i) y:b
].
((edgeStyle == #soft) and:[level > 1]) ifTrue:[
- b := height - 1.
- super paint:shadowColor.
- super displayDeviceLineFromX:1 y:b toX:r y:b.
+ b := height - 1.
+ super paint:shadowColor.
+ super displayDeviceLineFromX:1 y:b toX:r y:b.
].
self edgeDrawn:#bottom.
@@ -5313,32 +5315,32 @@
"draw all of my 3D edges"
self drawEdgesForX:0 y:0 width:width height:height level:level
- shadow:shadowColor
- light:lightColor
- halfShadow:nil
- halfLight:nil
- style:nil
+ shadow:shadowColor
+ light:lightColor
+ halfShadow:nil
+ halfLight:nil
+ style:nil
!
drawEdgesForX:x y:y width:w height:h level:l
"draw 3D edges into a rectangle"
self
- drawEdgesForX:x y:y width:w height:h level:l
- shadow:shadowColor light:lightColor
- halfShadow:nil halfLight:nil
- style:nil
+ drawEdgesForX:x y:y width:w height:h level:l
+ shadow:shadowColor light:lightColor
+ halfShadow:nil halfLight:nil
+ style:nil
!
drawLeftEdge
"draw left 3D edge into window frame"
self drawLeftEdgeLevel:level
- shadow:shadowColor
- light:lightColor
- halfShadow:nil
- halfLight:nil
- style:nil.
+ shadow:shadowColor
+ light:lightColor
+ halfShadow:nil
+ halfLight:nil
+ style:nil.
!
drawLeftEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
@@ -5349,33 +5351,33 @@
count == 0 ifTrue:[^ self].
(count < 0) ifTrue:[
- leftFg := shadowColor.
- leftHalfFg := halfShadowColor.
- count := count negated.
+ leftFg := shadowColor.
+ leftHalfFg := halfShadowColor.
+ count := count negated.
] ifFalse:[
- leftFg := lightColor.
- leftHalfFg := halfLightColor.
+ leftFg := lightColor.
+ leftHalfFg := halfLightColor.
].
leftHalfFg isNil ifTrue:[
- leftHalfFg := leftFg
+ leftHalfFg := leftFg
].
((edgeStyle == #soft) and:[level > 0]) ifTrue:[
- paint := leftHalfFg
+ paint := leftHalfFg
] ifFalse:[
- paint := leftFg
+ paint := leftFg
].
super paint:paint.
super lineWidth:0.
b := height - 1.
0 to:(count - 1) do:[:i |
- super displayDeviceLineFromX:i y:i toX:i y:(b - i)
+ super displayDeviceLineFromX:i y:i toX:i y:(b - i)
].
((edgeStyle == #soft) and:[level > 2]) ifTrue:[
- super paint:(device blackColor).
- super displayDeviceLineFromX:0 y:0 toX:0 y:b.
+ super paint:(device blackColor).
+ super displayDeviceLineFromX:0 y:0 toX:0 y:b.
].
self edgeDrawn:#left.
@@ -5387,11 +5389,11 @@
"draw right 3D edge into window frame"
self drawRightEdgeLevel:level
- shadow:shadowColor
- light:lightColor
- halfShadow:nil
- halfLight:nil
- style:nil.
+ shadow:shadowColor
+ light:lightColor
+ halfShadow:nil
+ halfLight:nil
+ style:nil.
!
drawRightEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
@@ -5403,27 +5405,27 @@
count == 0 ifTrue:[^ self].
(count < 0) ifTrue:[
- rightFg := lightColor.
- count := count negated
+ rightFg := lightColor.
+ count := count negated
] ifFalse:[
- ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
- rightFg := halfShadowColor
- ] ifFalse:[
- rightFg := shadowColor
- ].
+ ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
+ rightFg := halfShadowColor
+ ] ifFalse:[
+ rightFg := shadowColor
+ ].
].
super paint:rightFg.
super lineWidth:0.
b := height - 1.
0 to:(count - 1) do:[:i |
- r := width - 1 - i.
- super displayDeviceLineFromX:r y:i toX:r y:(b - i)
+ r := width - 1 - i.
+ super displayDeviceLineFromX:r y:i toX:r y:(b - i)
].
((edgeStyle == #soft) and:[level > 1]) ifTrue:[
- r := width - 1.
- super paint:shadowColor.
- super displayDeviceLineFromX:r y:1 toX:r y:b.
+ r := width - 1.
+ super paint:shadowColor.
+ super displayDeviceLineFromX:r y:1 toX:r y:b.
].
self edgeDrawn:#right.
@@ -5435,11 +5437,11 @@
"draw top 3D edge into window frame"
self drawTopEdgeLevel:level
- shadow:shadowColor
- light:lightColor
- halfShadow:nil
- halfLight:nil
- style:nil.
+ shadow:shadowColor
+ light:lightColor
+ halfShadow:nil
+ halfLight:nil
+ style:nil.
!
drawTopEdgeLevel:level atY:y shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
@@ -5450,32 +5452,32 @@
count == 0 ifTrue:[^ self].
(count < 0) ifTrue:[
- topFg := shadowColor.
- topHalfFg := halfShadowColor.
- count := count negated
+ topFg := shadowColor.
+ topHalfFg := halfShadowColor.
+ count := count negated
] ifFalse:[
- topFg := lightColor.
- topHalfFg := halfLightColor.
+ topFg := lightColor.
+ topHalfFg := halfLightColor.
].
topHalfFg isNil ifTrue:[
- topHalfFg := topFg
+ topHalfFg := topFg
].
((edgeStyle == #soft) and:[level > 0]) ifTrue:[
- paint := topHalfFg
+ paint := topHalfFg
] ifFalse:[
- paint := topFg
+ paint := topFg
].
super paint:paint.
super lineWidth:0.
r := width - 1.
0 to:(count - 1) do:[:i |
- super displayDeviceLineFromX:i y:y+i toX:(r - i) y:y+i
+ super displayDeviceLineFromX:i y:y+i toX:(r - i) y:y+i
].
((edgeStyle == #soft) and:[level > 2]) ifTrue:[
- super paint:(device blackColor).
- super displayDeviceLineFromX:0 y:y+0 toX:r y:y+0.
+ super paint:(device blackColor).
+ super displayDeviceLineFromX:0 y:y+0 toX:r y:y+0.
].
self edgeDrawn:#top.
@@ -5495,32 +5497,32 @@
count == 0 ifTrue:[^ self].
(count < 0) ifTrue:[
- topFg := shadowColor.
- topHalfFg := halfShadowColor.
- count := count negated
+ topFg := shadowColor.
+ topHalfFg := halfShadowColor.
+ count := count negated
] ifFalse:[
- topFg := lightColor.
- topHalfFg := halfLightColor.
+ topFg := lightColor.
+ topHalfFg := halfLightColor.
].
topHalfFg isNil ifTrue:[
- topHalfFg := topFg
+ topHalfFg := topFg
].
((edgeStyle == #soft) and:[level > 0]) ifTrue:[
- paint := topHalfFg
+ paint := topHalfFg
] ifFalse:[
- paint := topFg
+ paint := topFg
].
super paint:paint.
super lineWidth:0.
r := width - 1.
0 to:(count - 1) do:[:i |
- super displayDeviceLineFromX:i y:i toX:(r - i) y:i
+ super displayDeviceLineFromX:i y:i toX:(r - i) y:i
].
((edgeStyle == #soft) and:[level > 2]) ifTrue:[
- super paint:(device blackColor).
- super displayDeviceLineFromX:0 y:0 toX:r y:0.
+ super paint:(device blackColor).
+ super displayDeviceLineFromX:0 y:0 toX:r y:0.
].
self edgeDrawn:#top.
@@ -5532,11 +5534,11 @@
"redraw my edges (if any)"
(level ~~ 0) ifTrue:[
- shown ifTrue:[
- gc clippingBounds:nil.
- self drawEdges.
- gc deviceClippingBounds:innerClipRect
- ]
+ shown ifTrue:[
+ gc clippingBounds:nil.
+ self drawEdges.
+ gc deviceClippingBounds:innerClipRect
+ ]
]
"Modified: / 25.5.1999 / 14:50:25 / cg"
@@ -5549,13 +5551,13 @@
If there is none, return the value from exceptionValue"
subViews notNil ifTrue:[
- subViews do:[:aSubview |
- |v|
-
- (aBlock value:aSubview) ifTrue:[ ^ aSubview ].
- v := aSubview allSubViewsDetect:aBlock ifNone:nil.
- v notNil ifTrue:[^ v].
- ]
+ subViews do:[:aSubview |
+ |v|
+
+ (aBlock value:aSubview) ifTrue:[ ^ aSubview ].
+ v := aSubview allSubViewsDetect:aBlock ifNone:nil.
+ v notNil ifTrue:[^ v].
+ ]
].
^ exceptionValue value.
@@ -5566,9 +5568,9 @@
"evaluate aBlock for all subviews (recursively)"
subViews notNil ifTrue:[
- subViews do:[:aSubview |
- aSubview withAllSubViewsDo:aBlock
- ]
+ subViews do:[:aSubview |
+ aSubview withAllSubViewsDo:aBlock
+ ]
]
"Modified: 12.2.1997 / 12:23:38 / cg"
@@ -5582,8 +5584,8 @@
v := self container.
[v notNil] whileTrue:[
- (aBlock value:v) ifTrue:[^ v].
- v := v container.
+ (aBlock value:v) ifTrue:[^ v].
+ v := v container.
].
^ exceptionValue value
!
@@ -5595,8 +5597,8 @@
v := self container.
[v notNil] whileTrue:[
- aBlock value:v.
- v := v container.
+ aBlock value:v.
+ v := v container.
].
!
@@ -5604,15 +5606,15 @@
"find a visible subview for which aBlock returns true (recursively)"
subViews notNil ifTrue:[
- subViews do:[:aSubview |
- |v|
-
- aSubview shown ifTrue:[
- (aBlock value:aSubview) ifTrue:[ ^ aSubview ].
- v := aSubview allVisibleSubViewsDetect:aBlock ifNone:nil.
- v notNil ifTrue:[^ v].
- ].
- ]
+ subViews do:[:aSubview |
+ |v|
+
+ aSubview shown ifTrue:[
+ (aBlock value:aSubview) ifTrue:[ ^ aSubview ].
+ v := aSubview allVisibleSubViewsDetect:aBlock ifNone:nil.
+ v notNil ifTrue:[^ v].
+ ].
+ ]
].
^ exceptionBlock value.
!
@@ -5623,7 +5625,7 @@
unless they overlap. In that case, the later view is placed above the earlier."
aSubViewOrComponent isView ifFalse:[
- ^ self changeSequenceOrderForComponent:aSubViewOrComponent to:anIndex
+ ^ self changeSequenceOrderForComponent:aSubViewOrComponent to:anIndex
].
^ self changeSequenceOrderForView:aSubViewOrComponent to:anIndex
!
@@ -5635,11 +5637,11 @@
|removedComponent|
(components notNil and:[components size >= anIndex]) ifTrue:[
- removedComponent := components remove:aComponent ifAbsent:nil.
- removedComponent notNil ifTrue:[
- components add:removedComponent beforeIndex:anIndex.
- ^ true
- ]
+ removedComponent := components remove:aComponent ifAbsent:nil.
+ removedComponent notNil ifTrue:[
+ components add:removedComponent beforeIndex:anIndex.
+ ^ true
+ ]
].
^ false
!
@@ -5652,11 +5654,11 @@
|removedView|
(subViews notNil and:[subViews size >= anIndex]) ifTrue:[
- removedView := subViews remove:aSubView ifAbsent:nil.
- removedView notNil ifTrue:[
- subViews add:removedView beforeIndex:anIndex.
- ^ true
- ]
+ removedView := subViews remove:aSubView ifAbsent:nil.
+ removedView notNil ifTrue:[
+ subViews add:removedView beforeIndex:anIndex.
+ ^ true
+ ]
].
^ false
!
@@ -5681,35 +5683,35 @@
"/ how comes ? And what should be done to avoid this ?
checkForAnyNonExisting :=
- [
- anyNonExisting := false.
- aCollectionOfDropObjects do:[:eachDropObject |
- eachDropObject isFileObject ifTrue:[
- eachDropObject isDirectory ifFalse:[
- eachDropObject theObject asFilename exists ifFalse:[
- anyNonExisting := true.
- whichNonExisting := eachDropObject theObject asFilename.
- ]
- ]
- ].
- ].
- anyNonExisting
- ].
+ [
+ anyNonExisting := false.
+ aCollectionOfDropObjects do:[:eachDropObject |
+ eachDropObject isFileObject ifTrue:[
+ eachDropObject isDirectory ifFalse:[
+ eachDropObject theObject asFilename exists ifFalse:[
+ anyNonExisting := true.
+ whichNonExisting := eachDropObject theObject asFilename.
+ ]
+ ]
+ ].
+ ].
+ anyNonExisting
+ ].
self withWaitCursorDo:[
- tDelayed := 0.
- checkForAnyNonExisting doWhile:[
- anyNonExisting ifTrue:[
- Delay waitForSeconds:0.3.
- tDelayed := tDelayed + 0.3.
- ].
- anyNonExisting and:[ tDelayed <= 3].
- ].
+ tDelayed := 0.
+ checkForAnyNonExisting doWhile:[
+ anyNonExisting ifTrue:[
+ Delay waitForSeconds:0.3.
+ tDelayed := tDelayed + 0.3.
+ ].
+ anyNonExisting and:[ tDelayed <= 3].
+ ].
].
(anyNonExisting and:[checkForAnyNonExisting value]) ifTrue:[
- Dialog warn:('Dropfile not present: %1' bindWith:whichNonExisting pathName).
- ^ self
+ Dialog warn:('Dropfile not present: %1' bindWith:whichNonExisting pathName).
+ ^ self
].
view := self.
@@ -5717,32 +5719,32 @@
app := view application.
app notNil ifTrue:[
- (app canDropObjects:aCollectionOfDropObjects in:view at:positionInView) ifTrue:[
- app dropObjects:aCollectionOfDropObjects in:view at:positionInView.
- ^ self.
- ].
+ (app canDropObjects:aCollectionOfDropObjects in:view at:positionInView) ifTrue:[
+ app dropObjects:aCollectionOfDropObjects in:view at:positionInView.
+ ^ self.
+ ].
].
[view notNil] whileTrue:[
- "new mechanism to get a dropTarget"
- target := view dropTarget.
- target notNil ifTrue:[
- dropContext := DropContext new.
- dropContext dropObjects:aCollectionOfDropObjects.
- dropContext dropTarget:target.
-
- (target canDrop:dropContext) ifTrue:[
- target drop:dropContext.
- ^ self.
- ].
- ].
-
- (view canDropObjects:aCollectionOfDropObjects at:positionInView) ifTrue:[
- view dropObjects:aCollectionOfDropObjects at:positionInView.
- ^ self.
- ].
- view := view superView.
- positionInView := nil.
+ "new mechanism to get a dropTarget"
+ target := view dropTarget.
+ target notNil ifTrue:[
+ dropContext := DropContext new.
+ dropContext dropObjects:aCollectionOfDropObjects.
+ dropContext dropTarget:target.
+
+ (target canDrop:dropContext) ifTrue:[
+ target drop:dropContext.
+ ^ self.
+ ].
+ ].
+
+ (view canDropObjects:aCollectionOfDropObjects at:positionInView) ifTrue:[
+ view dropObjects:aCollectionOfDropObjects at:positionInView.
+ ^ self.
+ ].
+ view := view superView.
+ positionInView := nil.
]
"Modified: / 17-10-2006 / 18:00:46 / cg"
@@ -5752,8 +5754,8 @@
"button was moved"
self topView == TopView currentWindowBeingMoved ifTrue:[
- self topView doWindowMove.
- ^ self.
+ self topView doWindowMove.
+ ^ self.
].
"Created: / 03-03-2011 / 19:11:11 / cg"
@@ -5763,10 +5765,10 @@
"button was pressed quickly again - check my components for a hit."
components notNil ifTrue:[
- self componentsContainingX:x y:y do:[:comp :cx :cy |
- comp buttonMultiPress:button x:cx y:cy.
- ^ self
- ]
+ self componentsContainingX:x y:y do:[:comp :cx :cy |
+ comp buttonMultiPress:button x:cx y:cy.
+ ^ self
+ ]
].
super buttonMultiPress:button x:x y:y
@@ -5781,16 +5783,16 @@
|topView|
components notNil ifTrue:[
- self componentsContainingX:x y:y do:[:comp :cx :cy |
- comp buttonPress:button x:cx y:cy.
- ^ self
- ]
+ self componentsContainingX:x y:y do:[:comp :cx :cy |
+ comp buttonPress:button x:cx y:cy.
+ ^ self
+ ]
].
"/ an undecorated (but modeless) topView -> do a window move
(topView := self topView) startWindowMoveOnButtonPress ifTrue:[
- topView startWindowMove.
- ^ self.
+ topView startWindowMove.
+ ^ self.
].
super buttonPress:button x:x y:y
@@ -5802,15 +5804,15 @@
"button was released - check my components for a hit."
components notNil ifTrue:[
- self componentsContainingX:x y:y do:[:comp :cx :cy |
- comp buttonRelease:button x:cx y:cy.
- ^ self
- ]
+ self componentsContainingX:x y:y do:[:comp :cx :cy |
+ comp buttonRelease:button x:cx y:cy.
+ ^ self
+ ]
].
self topView == TopView currentWindowBeingMoved ifTrue:[
- self topView endWindowMove.
- ^ self.
+ self topView endWindowMove.
+ ^ self.
].
super buttonRelease:button x:x y:y
@@ -5826,9 +5828,9 @@
|oldScale newScale factor|
amount > 0 ifTrue:[
- factor := 1.2.
+ factor := 1.2.
] ifFalse:[
- factor := 0.8.
+ factor := 0.8.
].
oldScale := self scale.
newScale := (oldScale * factor) max:0.1.
@@ -5843,7 +5845,7 @@
|app|
(app := self application) notNil ifTrue:[
- app clientMessage:msgType format:msgFormat eventData:msgData
+ app clientMessage:msgType format:msgFormat eventData:msgData
].
!
@@ -5868,74 +5870,74 @@
(superView isNil
and:[self drawableId notNil]) ifTrue:[
- "/ have to be careful - some window managers (motif) wrap another
- "/ view around and the reported origin is relative to that.
- "/ not relative to the screen.
- p := device translatePoint:0@0 fromView:self toView:nil.
- p := p + self borderWidth.
- left := p x.
- top := p y.
+ "/ have to be careful - some window managers (motif) wrap another
+ "/ view around and the reported origin is relative to that.
+ "/ not relative to the screen.
+ p := device translatePoint:0@0 fromView:self toView:nil.
+ p := p + self borderWidth.
+ left := p x.
+ top := p y.
].
((width ~~ newWidth) or:[height ~~ newHeight]) ifTrue:[
- realized ifFalse:[
- width := newWidth.
- height := newHeight.
- self extentChangedFlag:true.
- ^ self
- ].
-
- ((newWidth <= width) and:[newHeight <= height]) ifTrue:[
- how := #smaller
- ] ifFalse:[
- ((newWidth >= width) and:[newHeight >= height]) ifTrue:[
- how := #larger
- ]
- ].
-
- margin ~~ 0 ifTrue:[
- mustRedrawBottomEdge := newHeight < height.
- mustRedrawRightEdge := newWidth < width.
- anyEdge := mustRedrawBottomEdge or:[mustRedrawRightEdge].
-
- mustRedrawPreviousRightBorderArea := newWidth > width.
- mustRedrawPreviousBottomBorderArea := newHeight > height.
- ] ifFalse:[
- anyEdge := mustRedrawPreviousRightBorderArea := mustRedrawPreviousBottomBorderArea := false
- ].
-
- mustRedrawPreviousRightBorderArea ifTrue:[
- self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
- ].
- mustRedrawPreviousBottomBorderArea ifTrue:[
- self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
- ].
-
- width := newWidth.
- height := newHeight.
-
- "recompute inner-clip if needed"
- self setInnerClip.
-
- "
- must first process pending exposes;
- otherwise, those may be drawn at a wrong position
- "
+ realized ifFalse:[
+ width := newWidth.
+ height := newHeight.
+ self extentChangedFlag:true.
+ ^ self
+ ].
+
+ ((newWidth <= width) and:[newHeight <= height]) ifTrue:[
+ how := #smaller
+ ] ifFalse:[
+ ((newWidth >= width) and:[newHeight >= height]) ifTrue:[
+ how := #larger
+ ]
+ ].
+
+ margin ~~ 0 ifTrue:[
+ mustRedrawBottomEdge := newHeight < height.
+ mustRedrawRightEdge := newWidth < width.
+ anyEdge := mustRedrawBottomEdge or:[mustRedrawRightEdge].
+
+ mustRedrawPreviousRightBorderArea := newWidth > width.
+ mustRedrawPreviousBottomBorderArea := newHeight > height.
+ ] ifFalse:[
+ anyEdge := mustRedrawPreviousRightBorderArea := mustRedrawPreviousBottomBorderArea := false
+ ].
+
+ mustRedrawPreviousRightBorderArea ifTrue:[
+ self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
+ ].
+ mustRedrawPreviousBottomBorderArea ifTrue:[
+ self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
+ ].
+
+ width := newWidth.
+ height := newHeight.
+
+ "recompute inner-clip if needed"
+ self setInnerClip.
+
+ "
+ must first process pending exposes;
+ otherwise, those may be drawn at a wrong position
+ "
"/ claus: no; expose events are in the same queue as configure events;
"/ which is exactly for that reason ...
"/ windowGroup notNil ifTrue:[
"/ windowGroup processExposeEvents
"/ ].
- self sizeChanged:how.
-
- (anyEdge and:[shown]) ifTrue:[
- mustRedrawBottomEdge ifTrue:[
- self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
- ].
- mustRedrawRightEdge ifTrue:[
- self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
- ].
+ self sizeChanged:how.
+
+ (anyEdge and:[shown]) ifTrue:[
+ mustRedrawBottomEdge ifTrue:[
+ self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
+ ].
+ mustRedrawRightEdge ifTrue:[
+ self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
+ ].
"/ OLD code:
"/ self clippingRectangle:nil.
"/ mustRedrawBottomEdge ifTrue:[
@@ -5945,11 +5947,11 @@
"/ self drawRightEdge
"/ ].
"/ self deviceClippingRectangle:innerClipRect
- ]
+ ]
].
originChanged ifTrue:[
- dependents notNil ifTrue:[ self changed:#origin ].
+ dependents notNil ifTrue:[ self changed:#origin ].
].
"Modified: / 10.10.2001 / 14:14:19 / cg"
@@ -5970,20 +5972,20 @@
slowly migrating to use layoutObjects ...
"
layout isNil ifTrue:[
- newOrg := self computeOrigin.
- newExt := self computeExtent.
+ newOrg := self computeOrigin.
+ newExt := self computeExtent.
] ifFalse:[layout isAssociation ifTrue:[
- layout key == #extent ifTrue:[
- newOrg := 1@1.
- newExt := layout value.
- ] ifFalse:[
- self shouldImplement.
- ].
+ layout key == #extent ifTrue:[
+ newOrg := 1@1.
+ newExt := layout value.
+ ] ifFalse:[
+ self shouldImplement.
+ ].
] ifFalse:[
- r := (layout rectangleRelativeTo:(superView viewRectangle)
- preferred:[self preferredBounds]).
- newOrg := r origin rounded.
- newExt := r extent rounded.
+ r := (layout rectangleRelativeTo:(superView viewRectangle)
+ preferred:[self preferredBounds]).
+ newOrg := r origin rounded.
+ newExt := r extent rounded.
"/ newOrg printCR.
"/ newExt printCR.
]].
@@ -6024,7 +6026,7 @@
"/ my subviews (they remember this in the shown instVar)
realized ifTrue:[
- shown ifFalse:[
+ shown ifFalse:[
"/ old:
"/ shown := true.
"/ subViews notNil ifTrue:[
@@ -6034,8 +6036,8 @@
"/ ]
"/ which is equivalent to:
- self mapped.
- ]
+ self mapped.
+ ]
].
"Modified: 30.5.1996 / 11:41:02 / cg"
@@ -6050,9 +6052,9 @@
"/ my subviews (they remember this in the shown instVar)
realized ifTrue:[
- shown ifTrue:[
- self unmapped
- ]
+ shown ifTrue:[
+ self unmapped
+ ]
]
"Modified: 30.5.1996 / 11:41:25 / cg"
@@ -6066,7 +6068,7 @@
|app|
(app := self application) notNil ifTrue:[
- app copyDataEvent:parameter eventData:msgData
+ app copyDataEvent:parameter eventData:msgData
].
!
@@ -6087,11 +6089,11 @@
"view has been destroyed by someone else (usually window system)"
shown ifTrue:[
- shown := false.
- dependents notNil ifTrue:[
- self changed:#visibility.
- self changed:#destroyed
- ].
+ shown := false.
+ dependents notNil ifTrue:[
+ self changed:#visibility.
+ self changed:#destroyed
+ ].
].
super destroyed
@@ -6106,17 +6108,17 @@
(dropTypeSymbol == WindowEvent dropType_file
or:[dropTypeSymbol == WindowEvent dropType_directory]) ifTrue:[
- dropObjects := Array with:(DropObject newFile:dropValue)
+ dropObjects := Array with:(DropObject newFile:dropValue)
] ifFalse:[
- dropTypeSymbol == WindowEvent dropType_files ifTrue:[
- dropObjects := (dropValue collect:[:fn | DropObject newFile:fn])
- ] ifFalse:[
- dropTypeSymbol == WindowEvent dropType_text ifTrue:[
- dropObjects := Array with:(DropObject newText:dropValue)
- ] ifFalse:[
- dropObjects := Array with:(DropObject new:dropValue)
- ]
- ]
+ dropTypeSymbol == WindowEvent dropType_files ifTrue:[
+ dropObjects := (dropValue collect:[:fn | DropObject newFile:fn])
+ ] ifFalse:[
+ dropTypeSymbol == WindowEvent dropType_text ifTrue:[
+ dropObjects := Array with:(DropObject newText:dropValue)
+ ] ifFalse:[
+ dropObjects := Array with:(DropObject new:dropValue)
+ ]
+ ]
].
"/ Transcript showCR:'Drop:'.
@@ -6137,7 +6139,7 @@
|leftEdge topEdge rightEdge botEdge anyEdge nx ny nw nh old oldPaint|
shown ifFalse:[
- ^ self
+ ^ self
].
nw := w.
@@ -6151,110 +6153,110 @@
check if there is a need to draw an edge (i.e. if margin is hit)
"
(margin ~~ 0) ifTrue:[
- |currentTransformation|
-
- leftEdge := false.
- topEdge := false.
- rightEdge := false.
- botEdge := false.
- currentTransformation := gc transformation.
- currentTransformation notNil ifTrue:[
- "
- need device coordinates for this test
- "
- nx := currentTransformation applyToX:nx.
- ny := currentTransformation applyToY:ny.
- nw := currentTransformation applyScaleX:nw.
- nh := currentTransformation applyScaleY:nh.
- ].
- "
- adjust expose rectangle, to exclude the margin.
- Care for rounding errors ...
- "
- (nx class ~~ SmallInteger) ifTrue:[
- old := nx.
- nx := nx truncated.
- nw := nw + (nx - old).
- ].
- (ny class ~~ SmallInteger) ifTrue:[
- old := ny.
- ny := ny truncated.
- nh := nh + (ny - old).
- ].
- (nw class ~~ SmallInteger) ifTrue:[
- nw := nw truncated + 1
- ].
- (nh class ~~ SmallInteger) ifTrue:[
- nh := nh truncated + 1
- ].
-
- (nx < margin) ifTrue:[
- old := nx.
- nx := margin.
- nw := nw - (nx - old).
- leftEdge := anyEdge := true.
- ].
- ((nx + nw - 1) >= (width - margin)) ifTrue:[
- nw := (width - margin - nx).
- rightEdge := anyEdge := true.
- ].
- (ny < margin) ifTrue:[
- old := ny.
- ny := margin.
- nh := nh - (ny - old).
- topEdge := anyEdge := true.
- ].
- ((ny + nh - 1) >= (height - margin)) ifTrue:[
- nh := (height - margin - ny).
- botEdge := anyEdge := true.
- ].
- currentTransformation notNil ifTrue:[
- "
- need logical coordinates for redraw
- "
- nx := currentTransformation applyInverseToX:nx.
- ny := currentTransformation applyInverseToY:ny.
- nw := currentTransformation applyInverseScaleX:nw.
- nh := currentTransformation applyInverseScaleY:nh.
- ].
+ |currentTransformation|
+
+ leftEdge := false.
+ topEdge := false.
+ rightEdge := false.
+ botEdge := false.
+ currentTransformation := gc transformation.
+ currentTransformation notNil ifTrue:[
+ "
+ need device coordinates for this test
+ "
+ nx := currentTransformation applyToX:nx.
+ ny := currentTransformation applyToY:ny.
+ nw := currentTransformation applyScaleX:nw.
+ nh := currentTransformation applyScaleY:nh.
+ ].
+ "
+ adjust expose rectangle, to exclude the margin.
+ Care for rounding errors ...
+ "
+ (nx class ~~ SmallInteger) ifTrue:[
+ old := nx.
+ nx := nx truncated.
+ nw := nw + (nx - old).
+ ].
+ (ny class ~~ SmallInteger) ifTrue:[
+ old := ny.
+ ny := ny truncated.
+ nh := nh + (ny - old).
+ ].
+ (nw class ~~ SmallInteger) ifTrue:[
+ nw := nw truncated + 1
+ ].
+ (nh class ~~ SmallInteger) ifTrue:[
+ nh := nh truncated + 1
+ ].
+
+ (nx < margin) ifTrue:[
+ old := nx.
+ nx := margin.
+ nw := nw - (nx - old).
+ leftEdge := anyEdge := true.
+ ].
+ ((nx + nw - 1) >= (width - margin)) ifTrue:[
+ nw := (width - margin - nx).
+ rightEdge := anyEdge := true.
+ ].
+ (ny < margin) ifTrue:[
+ old := ny.
+ ny := margin.
+ nh := nh - (ny - old).
+ topEdge := anyEdge := true.
+ ].
+ ((ny + nh - 1) >= (height - margin)) ifTrue:[
+ nh := (height - margin - ny).
+ botEdge := anyEdge := true.
+ ].
+ currentTransformation notNil ifTrue:[
+ "
+ need logical coordinates for redraw
+ "
+ nx := currentTransformation applyInverseToX:nx.
+ ny := currentTransformation applyInverseToY:ny.
+ nw := currentTransformation applyInverseScaleX:nw.
+ nh := currentTransformation applyInverseScaleY:nh.
+ ].
].
(nw > 0 and:[nh > 0]) ifTrue:[
- "
- redraw inside area
- "
- self
- clippingBounds:(Rectangle left:nx top:ny width:nw height:nh);
- redrawX:nx y:ny width:nw height:nh.
+ "
+ redraw inside area
+ "
+ self
+ clippingBounds:(Rectangle left:nx top:ny width:nw height:nh);
+ redrawX:nx y:ny width:nw height:nh.
].
"
redraw edge(s)
"
anyEdge ifTrue:[
- self clippingBounds:nil.
- oldPaint := self paint.
- border notNil ifTrue:[
- border displayOn:self forDisplayBox:(Rectangle left:0 top:0 width:width height:height).
- ] ifFalse:[
- (topEdge and:[leftEdge and:[botEdge and:[rightEdge]]]) ifTrue:[
- self drawEdges
- ] ifFalse:[
- topEdge ifTrue:[
- self drawTopEdge
- ].
- leftEdge ifTrue:[
- self drawLeftEdge
- ].
- botEdge ifTrue:[
- self drawBottomEdge
- ].
- rightEdge ifTrue:[
- self drawRightEdge
- ]
- ].
- ].
- self paint:oldPaint.
+ self clippingBounds:nil.
+ oldPaint := self paint.
+ border notNil ifTrue:[
+ border displayOn:self forDisplayBox:(Rectangle left:0 top:0 width:width height:height).
+ ] ifFalse:[
+ (topEdge and:[leftEdge and:[botEdge and:[rightEdge]]]) ifTrue:[
+ self drawEdges
+ ] ifFalse:[
+ topEdge ifTrue:[
+ self drawTopEdge
+ ].
+ leftEdge ifTrue:[
+ self drawLeftEdge
+ ].
+ botEdge ifTrue:[
+ self drawBottomEdge
+ ].
+ rightEdge ifTrue:[
+ self drawRightEdge
+ ]
+ ].
+ ].
+ self paint:oldPaint.
].
gc deviceClippingBounds:innerClipRect.
@@ -6277,7 +6279,7 @@
"notification from the windowGroup that I got the keyboardFocus."
delegate notNil ifTrue:[
- delegate perform:#hasKeyboardFocus: with:aBoolean ifNotUnderstood:nil
+ delegate perform:#hasKeyboardFocus: with:aBoolean ifNotUnderstood:nil
].
^ self
!
@@ -6292,44 +6294,44 @@
|focusView|
components notNil ifTrue:[
- components notNil ifTrue:[
- self componentsContainingX:x y:y do:[:comp :cx :cy |
- comp keyPress:key x:cx y:cy.
- ^ self
- ]
- ].
+ components notNil ifTrue:[
+ self componentsContainingX:x y:y do:[:comp :cx :cy |
+ comp keyPress:key x:cx y:cy.
+ ^ self
+ ]
+ ].
].
key == #Menu ifTrue:[
- ((focusView := self windowGroup focusView) notNil
- and:[focusView ~~ self])
- ifTrue:[
- "/ forward to the focusView
- focusView keyPress:key x:-1 y:-1.
- ^ self
- ].
- ^ self activateMenu.
+ ((focusView := self windowGroup focusView) notNil
+ and:[focusView ~~ self])
+ ifTrue:[
+ "/ forward to the focusView
+ focusView keyPress:key x:-1 y:-1.
+ ^ self
+ ].
+ ^ self activateMenu.
].
x isNil ifTrue:[
- "/ already redelegated, but nowhere handled
- superView notNil ifTrue:[
- superView keyPress:key x:nil y:nil.
- ].
- ^ self
+ "/ already redelegated, but nowhere handled
+ superView notNil ifTrue:[
+ superView keyPress:key x:nil y:nil.
+ ].
+ ^ self
].
superView notNil ifTrue:[
- superView
- dispatchEvent:#keyPress:x:y:
- arguments:(Array with:key with:0 with:0)
+ superView
+ dispatchEvent:#keyPress:x:y:
+ arguments:(Array with:key with:0 with:0)
"/ WindowEvent
"/ sendEvent:#keyPress:x:y:
"/ arguments:(Array with:key with:0 with:0)
"/ view:superView
] ifFalse:[
- super keyPress:key x:x y:y
+ super keyPress:key x:x y:y
]
"Modified: / 20.5.1998 / 22:55:08 / cg"
@@ -6341,12 +6343,12 @@
Otherwise, do whatever my superclass would do."
components notNil ifTrue:[
- components notNil ifTrue:[
- self componentsContainingX:x y:y do:[:comp :cx :cy |
- comp keyRelease:key x:cx y:cy.
- ^ self
- ]
- ].
+ components notNil ifTrue:[
+ self componentsContainingX:x y:y do:[:comp :cx :cy |
+ comp keyRelease:key x:cx y:cy.
+ ^ self
+ ]
+ ].
].
super keyRelease:key x:x y:y
@@ -6371,9 +6373,9 @@
"
the old code was:
- realized := true.
- shown := true.
- ...
+ realized := true.
+ shown := true.
+ ...
this created a race condition, if the view was
realized and shortly after unrealized - before the mapped event
@@ -6383,41 +6385,41 @@
"
realized ifTrue:[
- shownBefore := shown.
-
- "/ currently, the 'shown ifFalse:' optimization is
- "/ not ok, since 'shown' is also modified by visibilityChanges.
- "/ Also, when remapped, X11 only sends a mapped event for the topView.
- "/ Therefore, synthetically generate those #superViewMapped messages
- "/ in any case.
-
- shown := true.
- "
- backed views will not get expose events - have
- to force a redraw here to get things drawn into
- backing store.
- "
- backed ifTrue:[
- self redrawX:0 y:0 width:width height:height
- ].
-
- "/ tell my subViews ...
- subViews notNil ifTrue:[
- subViews do:[:v |
+ shownBefore := shown.
+
+ "/ currently, the 'shown ifFalse:' optimization is
+ "/ not ok, since 'shown' is also modified by visibilityChanges.
+ "/ Also, when remapped, X11 only sends a mapped event for the topView.
+ "/ Therefore, synthetically generate those #superViewMapped messages
+ "/ in any case.
+
+ shown := true.
+ "
+ backed views will not get expose events - have
+ to force a redraw here to get things drawn into
+ backing store.
+ "
+ backed ifTrue:[
+ self redrawX:0 y:0 width:width height:height
+ ].
+
+ "/ tell my subViews ...
+ subViews notNil ifTrue:[
+ subViews do:[:v |
"/ v shown ifFalse:[
- v mapped.
+ v mapped.
"/ ]
- ]
- ].
- shownBefore ~~ true ifTrue:[
- dependents notNil ifTrue:[ self changed:#visibility ].
- ].
- self takeFocusWhenMapped ifTrue:[
- "/ this is a one-shot!!
- self takeFocusWhenMapped:false.
- self assignKeyboardFocusToFirstKeyboardConsumer.
- "/ self requestFocus
- ].
+ ]
+ ].
+ shownBefore ~~ true ifTrue:[
+ dependents notNil ifTrue:[ self changed:#visibility ].
+ ].
+ self takeFocusWhenMapped ifTrue:[
+ "/ this is a one-shot!!
+ self takeFocusWhenMapped:false.
+ self assignKeyboardFocusToFirstKeyboardConsumer.
+ "/ self requestFocus
+ ].
]
"Modified: / 09-12-2010 / 18:12:24 / cg"
@@ -6437,39 +6439,39 @@
sensor := self sensor.
UserPreferences current allowMouseWheelZoom ifTrue:[
- zoomInOrOut := sensor ctrlDown or:[sensor metaDown].
- zoomInOrOut ifTrue:[
- self mouseWheelZoom:amount.
- ^ self.
- ].
+ zoomInOrOut := sensor ctrlDown or:[sensor metaDown].
+ zoomInOrOut ifTrue:[
+ self mouseWheelZoom:amount.
+ ^ self.
+ ].
].
horizontal := pageScroll := false.
(UserPreferences current shiftMouseWheelScrollsHorizontally) ifTrue:[
- horizontal := sensor shiftDown
+ horizontal := sensor shiftDown
] ifFalse:[
- pageScroll := sensor shiftDown.
+ pageScroll := sensor shiftDown.
].
pageScroll ifFalse:[
- amountToScroll := horizontal
- ifTrue:[ self horizontalScrollStep]
- ifFalse:[ self verticalScrollStep ].
- amountToScroll := self scaleMouseWheelScrollAmount:amountToScroll.
+ amountToScroll := horizontal
+ ifTrue:[ self horizontalScrollStep]
+ ifFalse:[ self verticalScrollStep ].
+ amountToScroll := self scaleMouseWheelScrollAmount:amountToScroll.
].
amount > 0 ifTrue:[
- pageScroll ifTrue:[
- horizontal ifTrue:[self pageLeft] ifFalse:[self pageUp]
- ] ifFalse:[
- horizontal ifTrue:[self scrollLeft:amountToScroll] ifFalse:[self scrollUp:amountToScroll]
- ]
+ pageScroll ifTrue:[
+ horizontal ifTrue:[self pageLeft] ifFalse:[self pageUp]
+ ] ifFalse:[
+ horizontal ifTrue:[self scrollLeft:amountToScroll] ifFalse:[self scrollUp:amountToScroll]
+ ]
] ifFalse:[
- pageScroll ifTrue:[
- horizontal ifTrue:[self pageRight] ifFalse:[self pageDown]
- ] ifFalse:[
- horizontal ifTrue:[self scrollRight:amountToScroll] ifFalse:[self scrollDown:amountToScroll]
- ]
+ pageScroll ifTrue:[
+ horizontal ifTrue:[self pageRight] ifFalse:[self pageDown]
+ ] ifFalse:[
+ horizontal ifTrue:[self scrollRight:amountToScroll] ifFalse:[self scrollDown:amountToScroll]
+ ]
].
"Modified: / 21.5.1999 / 19:58:42 / cg"
@@ -6489,18 +6491,18 @@
"/ first ask my flags if its enforced or forbidden
self requestFocusOnPointerEnter ifTrue:[
- doRequestFocus := true
+ doRequestFocus := true
] ifFalse:[
- self doNotRequestFocusOnPointerEnter ifTrue:[
- doRequestFocus := false
- ] ifFalse:[
- "/ then look for the settings.
- doRequestFocus := self wantsFocusWithPointerEnter
- ]
+ self doNotRequestFocusOnPointerEnter ifTrue:[
+ doRequestFocus := false
+ ] ifFalse:[
+ "/ then look for the settings.
+ doRequestFocus := self wantsFocusWithPointerEnter
+ ]
].
doRequestFocus ifTrue:[
- self requestFocus.
+ self requestFocus.
].
dependents notNil ifTrue:[ self changed:#pointerInView ]
@@ -6566,8 +6568,8 @@
hCont := self heightOfContents.
hCont > (innerHeight * 3) ifTrue:[
- factor := (hCont // innerHeight) min:4.
- ^ amountToScroll * factor.
+ factor := (hCont // innerHeight) min:4.
+ ^ amountToScroll * factor.
].
^ amountToScroll
!
@@ -6580,58 +6582,58 @@
|subViews|
viewBackground isViewBackground ifTrue:[
- "/ there is only one, which needs this: a gradient over the actual height/width;
- "/ this cannot just fill the new exposed area, but must recompute the gradient scales
- (viewBackground needsFullRedrawOnChangeOfWidth
- or:[ viewBackground needsFullRedrawOnChangeOfHeight]) ifTrue:[
- self invalidate
- ]
+ "/ there is only one, which needs this: a gradient over the actual height/width;
+ "/ this cannot just fill the new exposed area, but must recompute the gradient scales
+ (viewBackground needsFullRedrawOnChangeOfWidth
+ or:[ viewBackground needsFullRedrawOnChangeOfHeight]) ifTrue:[
+ self invalidate
+ ]
].
(subViews := self subViews) notEmptyOrNil ifTrue:[
- (how isNil "false"
- or:[how == #smaller]) ifTrue:[
- subViews do:[:view |
- view notNil ifTrue:[
- view containerChangedSize
- ]
- ]
- ] ifFalse:[
- "doing it reverse speeds up resizing - usually subviews
- are created from top-left to bottom-right; therefore
- bottom-right views will be moved/resized first, then top-left ones;
- this avoids multiple redraws of subviews"
-
- subViews reverseDo:[:view |
- view notNil ifTrue:[
- view containerChangedSize
- ]
- ]
- ]
+ (how isNil "false"
+ or:[how == #smaller]) ifTrue:[
+ subViews do:[:view |
+ view notNil ifTrue:[
+ view containerChangedSize
+ ]
+ ]
+ ] ifFalse:[
+ "doing it reverse speeds up resizing - usually subviews
+ are created from top-left to bottom-right; therefore
+ bottom-right views will be moved/resized first, then top-left ones;
+ this avoids multiple redraws of subviews"
+
+ subViews reverseDo:[:view |
+ view notNil ifTrue:[
+ view containerChangedSize
+ ]
+ ]
+ ]
].
components notNil ifTrue:[
- (how isNil "false"
- or:[how == #smaller]) ifTrue:[
- components do:[:view |
- view containerChangedSize
- ]
- ] ifFalse:[
- "doing it reverse speeds up resizing - usually subviews
- are created from top-left to bottom-right; therefore
- bottom-right views will be moved/resized first, then top-left ones;
- this avoids multiple redraws of subviews"
-
- components reverseDo:[:view |
- view containerChangedSize
- ]
- ]
+ (how isNil "false"
+ or:[how == #smaller]) ifTrue:[
+ components do:[:view |
+ view containerChangedSize
+ ]
+ ] ifFalse:[
+ "doing it reverse speeds up resizing - usually subviews
+ are created from top-left to bottom-right; therefore
+ bottom-right views will be moved/resized first, then top-left ones;
+ this avoids multiple redraws of subviews"
+
+ components reverseDo:[:view |
+ view containerChangedSize
+ ]
+ ]
].
self changed:#sizeOfView with:how.
superView notNil ifTrue:[
- superView subViewChangedSize
+ superView subViewChangedSize
]
"Modified: / 2.4.1998 / 13:59:59 / cg"
@@ -6675,20 +6677,20 @@
|wdgr|
shown ifTrue:[
- shown := false.
- dependents notNil ifTrue:[ self changed:#visibility ].
+ shown := false.
+ dependents notNil ifTrue:[ self changed:#visibility ].
].
(wdgr := self windowGroup) notNil ifTrue:[
- wdgr focusView == self ifTrue:[
- wdgr focusViewUnmapped.
- ].
+ wdgr focusView == self ifTrue:[
+ wdgr focusViewUnmapped.
+ ].
].
subViews notNil ifTrue:[
- subViews do:[:v |
- v containerUnmapped
- ].
- dependents notNil ifTrue:[ self changed:#visibility ].
+ subViews do:[:v |
+ v containerUnmapped
+ ].
+ dependents notNil ifTrue:[ self changed:#visibility ].
]
"Modified: 25.2.1997 / 22:40:52 / cg"
@@ -6703,8 +6705,8 @@
newShown := how ~~ #fullyObscured.
newShown ~~ shown ifTrue:[
- shown := newShown.
- dependents notNil ifTrue:[ self changed:#visibility ].
+ shown := newShown.
+ dependents notNil ifTrue:[ self changed:#visibility ].
].
!
@@ -6720,56 +6722,56 @@
sent to scrollableViews..."
scrollCode == #SB_LINEDOWN ifTrue:[
- self scrollDown.
- ^ self.
+ self scrollDown.
+ ^ self.
].
scrollCode == #SB_LINEUP ifTrue:[
- self scrollUp.
- ^ self.
+ self scrollUp.
+ ^ self.
].
scrollCode == #SB_LINELEFT ifTrue:[
- self scrollLeft.
- ^ self.
+ self scrollLeft.
+ ^ self.
].
scrollCode == #SB_LINERIGHT ifTrue:[
- self scrollRight.
- ^ self.
+ self scrollRight.
+ ^ self.
].
scrollCode == #SB_PAGEDOWN ifTrue:[
- self pageDown.
- ^ self.
+ self pageDown.
+ ^ self.
].
scrollCode == #SB_PAGEUP ifTrue:[
- self pageUp.
- ^ self.
+ self pageUp.
+ ^ self.
].
scrollCode == #SB_PAGELEFT ifTrue:[
- self pageLeft.
- ^ self.
+ self pageLeft.
+ ^ self.
].
scrollCode == #SB_PAGERIGHT ifTrue:[
- self pageRight.
- ^ self.
+ self pageRight.
+ ^ self.
].
scrollCode == #SB_THUMBPOSITIONVERTICAL ifTrue:[
- self scrollVerticalToPercent:newPosition.
- ^ self.
+ self scrollVerticalToPercent:newPosition.
+ ^ self.
].
scrollCode == #SB_THUMBPOSITIONHORIZONTAL ifTrue:[
- self scrollHorizontalToPercent:newPosition.
- ^ self.
+ self scrollHorizontalToPercent:newPosition.
+ ^ self.
].
scrollCode == #SB_THUMBTRACKVERTICAL ifTrue:[
- self scrollVerticalToPercent:newPosition.
- ^ self.
+ self scrollVerticalToPercent:newPosition.
+ ^ self.
].
scrollCode == #SB_THUMBTRACKHORIZONTAL ifTrue:[
- self scrollHorizontalToPercent:newPosition.
- ^ self.
+ self scrollHorizontalToPercent:newPosition.
+ ^ self.
].
scrollCode == #SB_ENDSCROLL ifTrue:[
- ^ self.
+ ^ self.
].
! !
@@ -6901,13 +6903,13 @@
|sequence ev lastView|
(keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
- ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
- ifFalse:[ sequence := keyOrStringOrSymbol ].
+ ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
+ ifFalse:[ sequence := keyOrStringOrSymbol ].
sequence do:[:each |
- ev := WindowEvent keyPress:each x:0 y:0 view:self.
- "/ x/y will be set in simulateUserEvent:ev at:aPoint
- lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
+ ev := WindowEvent keyPress:each x:0 y:0 view:self.
+ "/ x/y will be set in simulateUserEvent:ev at:aPoint
+ lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
].
^ lastView
!
@@ -6928,17 +6930,17 @@
|sequence ev1 ev2 lastView|
(keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
- ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
- ifFalse:[ sequence := keyOrStringOrSymbol ].
+ ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
+ ifFalse:[ sequence := keyOrStringOrSymbol ].
sequence do:[:each |
- ev1 := WindowEvent keyPress:each x:0 y:0 view:self.
- "/ x/y will be set in simulateUserEvent:ev at:aPoint
- lastView := self simulateUserEvent:ev1 at:aPoint sendDisplayEvent:sendDisplayEvent.
-
- ev2 := WindowEvent keyRelease:each x:0 y:0 view:self.
- "/ x/y will be set in simulateUserEvent:ev at:aPoint
- lastView := self simulateUserEvent:ev2 at:aPoint sendDisplayEvent:sendDisplayEvent.
+ ev1 := WindowEvent keyPress:each x:0 y:0 view:self.
+ "/ x/y will be set in simulateUserEvent:ev at:aPoint
+ lastView := self simulateUserEvent:ev1 at:aPoint sendDisplayEvent:sendDisplayEvent.
+
+ ev2 := WindowEvent keyRelease:each x:0 y:0 view:self.
+ "/ x/y will be set in simulateUserEvent:ev at:aPoint
+ lastView := self simulateUserEvent:ev2 at:aPoint sendDisplayEvent:sendDisplayEvent.
].
^ lastView
!
@@ -6959,13 +6961,13 @@
|sequence ev lastView|
(keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
- ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
- ifFalse:[ sequence := keyOrStringOrSymbol ].
+ ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
+ ifFalse:[ sequence := keyOrStringOrSymbol ].
sequence do:[:each |
- ev := WindowEvent keyRelease:each x:0 y:0 view:self.
- "/ x/y will be set in simulateUserEvent:ev at:aPoint
- lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
+ ev := WindowEvent keyRelease:each x:0 y:0 view:self.
+ "/ x/y will be set in simulateUserEvent:ev at:aPoint
+ lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
].
^ lastView
!
@@ -6999,45 +7001,45 @@
|targetView pointXLated|
sendDisplayEvent ifTrue:[
- "/ translate to screen coordinates
- pointXLated := device translatePoint:aPoint from:(self id) to:(device rootWindowId).
- device
- sendKeyOrButtonEvent:ev type
- x:pointXLated x y:pointXLated y
- keyOrButton:(ev isKeyEvent ifTrue:[ev rawKey] ifFalse:[ev button])
- state:(ev modifierFlags)
- toViewId:self id.
- ^ self.
+ "/ translate to screen coordinates
+ pointXLated := device translatePoint:aPoint from:(self id) to:(device rootWindowId).
+ device
+ sendKeyOrButtonEvent:ev type
+ x:pointXLated x y:pointXLated y
+ keyOrButton:(ev isKeyEvent ifTrue:[ev rawKey] ifFalse:[ev button])
+ state:(ev modifierFlags)
+ toViewId:self id.
+ ^ self.
].
(ev isButtonEvent or:[ev isPointerEnterLeaveEvent]) ifTrue:[
- "/ if there is a pointer grab, the event has to sent to that one
- targetView := device activePointerGrab.
+ "/ if there is a pointer grab, the event has to sent to that one
+ targetView := device activePointerGrab.
] ifFalse:[
- (ev isKeyEvent) ifTrue:[
- "/ if there is a pointer grab, the event has to sent to that one
- targetView := device activeKeyboardGrab.
- ].
+ (ev isKeyEvent) ifTrue:[
+ "/ if there is a pointer grab, the event has to sent to that one
+ targetView := device activeKeyboardGrab.
+ ].
].
targetView isNil ifTrue:[
- ((0@0 corner:self extent) containsPoint:aPoint) ifTrue:[
- self subViews do:[:each |
- |whichView|
-
- whichView := each simulateUserEvent:ev at:(device translatePoint:aPoint fromView:self toView:each).
- whichView notNil ifTrue:[^ whichView].
- ].
- targetView := self.
- ].
+ ((0@0 corner:self extent) containsPoint:aPoint) ifTrue:[
+ self subViews do:[:each |
+ |whichView|
+
+ whichView := each simulateUserEvent:ev at:(device translatePoint:aPoint fromView:self toView:each).
+ whichView notNil ifTrue:[^ whichView].
+ ].
+ targetView := self.
+ ].
].
targetView notNil ifTrue:[
- pointXLated := device translatePoint:aPoint fromView:self toView:targetView.
- ev x:(pointXLated x).
- ev y:(pointXLated y).
- ev view:targetView.
- targetView sensor pushEvent:ev.
- ^ targetView
+ pointXLated := device translatePoint:aPoint fromView:self toView:targetView.
+ ev x:(pointXLated x).
+ ev y:(pointXLated y).
+ ev view:targetView.
+ targetView sensor pushEvent:ev.
+ ^ targetView
].
^ nil
@@ -7054,13 +7056,13 @@
self stopButtonLongPressedHandlerProcess.
p :=
- [
- Delay waitForSeconds:0.7.
- self sensor leftButtonPressed ifTrue:[
- "/ simulate a right-button press
- self buttonPress:2 x:0 y:0
- ]
- ] newProcess.
+ [
+ Delay waitForSeconds:0.7.
+ self sensor leftButtonPressed ifTrue:[
+ "/ simulate a right-button press
+ self buttonPress:2 x:0 y:0
+ ]
+ ] newProcess.
device buttonLongPressedHandlerProcess:p.
p resume.
@@ -7073,8 +7075,8 @@
(p := device buttonLongPressedHandlerProcess) notNil ifTrue:[
"/ Transcript showCR:'stop'.
- device buttonLongPressedHandlerProcess:nil.
- p terminate.
+ device buttonLongPressedHandlerProcess:nil.
+ p terminate.
].
! !
@@ -7085,13 +7087,13 @@
wg := self windowGroup.
wg notNil ifTrue:[
- device isWindowsPlatform ifTrue:[
- wg focusView:aConsumer byTab:true.
- ] ifFalse:[
- aConsumer requestFocus.
- "/ consumer requestFocus. - could be denied; but we force it here
- wg focusView:aConsumer byTab:false.
- ].
+ device isWindowsPlatform ifTrue:[
+ wg focusView:aConsumer byTab:true.
+ ] ifFalse:[
+ aConsumer requestFocus.
+ "/ consumer requestFocus. - could be denied; but we force it here
+ wg focusView:aConsumer byTab:false.
+ ].
].
!
@@ -7112,25 +7114,25 @@
|firstInputField firstConsumer firstCursorConsumer consumer|
self withAllSubViewsDo:[:v |
- v shown ifTrue:[
- (firstInputField isNil and:[v isInputField]) ifTrue:[
- firstInputField := v
- ].
- (firstConsumer isNil and:[v isKeyboardConsumer]) ifTrue:[
- firstConsumer := v
- ].
- (firstCursorConsumer isNil and:[v isCursorKeyConsumer]) ifTrue:[
- firstCursorConsumer := v
- ].
- ].
+ v shown ifTrue:[
+ (firstInputField isNil and:[v isInputField]) ifTrue:[
+ firstInputField := v
+ ].
+ (firstConsumer isNil and:[v isKeyboardConsumer]) ifTrue:[
+ firstConsumer := v
+ ].
+ (firstCursorConsumer isNil and:[v isCursorKeyConsumer]) ifTrue:[
+ firstCursorConsumer := v
+ ].
+ ].
].
(firstInputField notNil and:[self preferFirstInputFieldWhenAssigningInitialFocus]) ifTrue:[
- consumer := firstInputField.
+ consumer := firstInputField.
].
consumer := (consumer ? firstConsumer ? firstCursorConsumer).
"/ Transcript showCR:consumer.
consumer notNil ifTrue:[
- self assignKeyboardFocusTo:consumer
+ self assignKeyboardFocusTo:consumer
].
"Modified: / 29-08-2006 / 14:32:30 / cg"
@@ -7148,9 +7150,9 @@
"/ canTab := aBoolean
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagCanTab
+ flagBits := flagBits bitOr:FlagCanTab
] ifFalse:[
- flagBits := flagBits bitClear:FlagCanTab
+ flagBits := flagBits bitClear:FlagCanTab
].
!
@@ -7166,9 +7168,9 @@
if false, the behavior depends upon the settings."
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagDoNotRequestFocusOnPointerEnter
+ flagBits := flagBits bitOr:FlagDoNotRequestFocusOnPointerEnter
] ifFalse:[
- flagBits := flagBits bitClear:FlagDoNotRequestFocusOnPointerEnter
+ flagBits := flagBits bitClear:FlagDoNotRequestFocusOnPointerEnter
].
!
@@ -7196,16 +7198,16 @@
index == 0 ifTrue:[ ^ nil ].
subviewsInFocusOrder from:(index + 1) do:[:eachChildAfterTheOne |
- eachChildAfterTheOne shown ifTrue:[
- (eachChildAfterTheOne canTab
- and:[eachChildAfterTheOne enabled]) ifTrue:[
- ^ eachChildAfterTheOne
- ].
-
- (viewInSubView := eachChildAfterTheOne focusNext) notNil ifTrue:[
- ^ viewInSubView
- ].
- ].
+ eachChildAfterTheOne shown ifTrue:[
+ (eachChildAfterTheOne canTab
+ and:[eachChildAfterTheOne enabled]) ifTrue:[
+ ^ eachChildAfterTheOne
+ ].
+
+ (viewInSubView := eachChildAfterTheOne focusNext) notNil ifTrue:[
+ ^ viewInSubView
+ ].
+ ].
].
^ nil
!
@@ -7217,15 +7219,15 @@
|viewInSubView|
self subviewsInFocusOrder do:[:aSubView|
- (aSubView canTab
- and:[aSubView enabled
- and:[aCondition value:aSubView]]) ifTrue:[
- ^ aSubView
- ].
-
- (viewInSubView := aSubView focusNextForWhich:aCondition) notNil ifTrue:[
- ^ viewInSubView
- ]
+ (aSubView canTab
+ and:[aSubView enabled
+ and:[aCondition value:aSubView]]) ifTrue:[
+ ^ aSubView
+ ].
+
+ (viewInSubView := aSubView focusNextForWhich:aCondition) notNil ifTrue:[
+ ^ viewInSubView
+ ]
].
^ nil
!
@@ -7237,18 +7239,18 @@
|viewInSubView|
shown ifTrue:[
- self subviewsInFocusOrder reverseDo:[:aSubView|
- aSubView shown ifTrue:[
- viewInSubView := aSubView focusPrevious.
-
- viewInSubView notNil ifTrue:[
- ^ viewInSubView
- ].
- (aSubView canTab and:[aSubView enabled]) ifTrue:[
- ^ aSubView
- ].
- ]
- ]
+ self subviewsInFocusOrder reverseDo:[:aSubView|
+ aSubView shown ifTrue:[
+ viewInSubView := aSubView focusPrevious.
+
+ viewInSubView notNil ifTrue:[
+ ^ viewInSubView
+ ].
+ (aSubView canTab and:[aSubView enabled]) ifTrue:[
+ ^ aSubView
+ ].
+ ]
+ ]
].
^ nil
!
@@ -7267,19 +7269,19 @@
index == 0 ifTrue:[ ^ nil ].
subviewsInFocusOrder from:1 to:(index - 1) reverseDo:[:eachChildBeforeTheOne |
- eachChildBeforeTheOne shown ifTrue:[
- (viewInSubView := eachChildBeforeTheOne focusPrevious) notNil ifTrue:[
- ^ viewInSubView
- ].
-
- (eachChildBeforeTheOne canTab and:[eachChildBeforeTheOne enabled]) ifTrue:[
- ^ eachChildBeforeTheOne
- ].
- ].
+ eachChildBeforeTheOne shown ifTrue:[
+ (viewInSubView := eachChildBeforeTheOne focusPrevious) notNil ifTrue:[
+ ^ viewInSubView
+ ].
+
+ (eachChildBeforeTheOne canTab and:[eachChildBeforeTheOne enabled]) ifTrue:[
+ ^ eachChildBeforeTheOne
+ ].
+ ].
].
"/ the code below allows for a notebooks tab-list to be reached
(self canTab and:[self enabled]) ifTrue:[
- ^ self
+ ^ self
].
^ nil
@@ -7314,7 +7316,7 @@
"/ Transcript show:'take: '; showCR:self.
windowGroup notNil ifTrue:[
- ^ windowGroup focusRequestFrom:self
+ ^ windowGroup focusRequestFrom:self
].
"/ Transcript show:'oops: '; showCR:self.
^ true
@@ -7336,9 +7338,9 @@
"
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagRequestFocusOnPointerEnter
+ flagBits := flagBits bitOr:FlagRequestFocusOnPointerEnter
] ifFalse:[
- flagBits := flagBits bitClear:FlagRequestFocusOnPointerEnter
+ flagBits := flagBits bitClear:FlagRequestFocusOnPointerEnter
].
!
@@ -7351,34 +7353,34 @@
|delta clrId bd graphicsDevice|
explicit ifTrue:[
- (self drawableId notNil
- and:[superView notNil
- and:[styleSheet notNil]]) ifTrue:[
- (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
- graphicsDevice := device.
-
- (graphicsDevice supportsWindowBorder:(bd := DefaultFocusBorderWidth)) ifFalse:[
- (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
- bd := 0.
- ]
- ].
- delta := bd - self borderWidth.
- delta ~~ 0 ifTrue:[
- (left == 0 or:[top == 0]) ifTrue:[
- graphicsDevice resizeWindow:self drawableId width:width-delta-delta height:height-delta-delta.
- ] ifFalse:[
- graphicsDevice moveWindow:self drawableId x:left-delta y:top-delta.
- ].
- graphicsDevice setWindowBorderWidth:bd in:self drawableId.
- ].
-
- clrId := (DefaultFocusColor onDevice:graphicsDevice) colorId.
- clrId isNil ifTrue:[
- clrId := graphicsDevice blackpixel
- ].
- graphicsDevice setWindowBorderColor:clrId in:self drawableId.
- ]
- ]
+ (self drawableId notNil
+ and:[superView notNil
+ and:[styleSheet notNil]]) ifTrue:[
+ (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
+ graphicsDevice := device.
+
+ (graphicsDevice supportsWindowBorder:(bd := DefaultFocusBorderWidth)) ifFalse:[
+ (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
+ bd := 0.
+ ]
+ ].
+ delta := bd - self borderWidth.
+ delta ~~ 0 ifTrue:[
+ (left == 0 or:[top == 0]) ifTrue:[
+ graphicsDevice resizeWindow:self drawableId width:width-delta-delta height:height-delta-delta.
+ ] ifFalse:[
+ graphicsDevice moveWindow:self drawableId x:left-delta y:top-delta.
+ ].
+ graphicsDevice setWindowBorderWidth:bd in:self drawableId.
+ ].
+
+ clrId := (DefaultFocusColor onDevice:graphicsDevice) colorId.
+ clrId isNil ifTrue:[
+ clrId := graphicsDevice blackpixel
+ ].
+ graphicsDevice setWindowBorderColor:clrId in:self drawableId.
+ ]
+ ]
]
"Modified: / 17.9.1998 / 15:08:34 / cg"
@@ -7393,24 +7395,24 @@
|delta bd graphicsDevice|
explicit ifTrue:[
- (self drawableId notNil and:[superView notNil]) ifTrue:[
- (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
- graphicsDevice := device.
-
- (graphicsDevice supportsWindowBorder:(bd := self borderWidth)) ifFalse:[
- (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
- bd := 0.
- ]
- ].
- delta := DefaultFocusBorderWidth - bd.
- delta ~~ 0 ifTrue:[
- graphicsDevice setWindowBorderWidth:bd in:self drawableId.
- graphicsDevice moveWindow:self drawableId x:left y:top.
- graphicsDevice resizeWindow:self drawableId width:width height:height.
- ].
- self setBorderColor.
- ]
- ]
+ (self drawableId notNil and:[superView notNil]) ifTrue:[
+ (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
+ graphicsDevice := device.
+
+ (graphicsDevice supportsWindowBorder:(bd := self borderWidth)) ifFalse:[
+ (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
+ bd := 0.
+ ]
+ ].
+ delta := DefaultFocusBorderWidth - bd.
+ delta ~~ 0 ifTrue:[
+ graphicsDevice setWindowBorderWidth:bd in:self drawableId.
+ graphicsDevice moveWindow:self drawableId x:left y:top.
+ graphicsDevice resizeWindow:self drawableId width:width height:height.
+ ].
+ self setBorderColor.
+ ]
+ ]
]
"Modified: / 17.9.1998 / 15:08:02 / cg"
@@ -7424,7 +7426,7 @@
"Unconditionally take the focus from my windowGroup"
windowGroup notNil ifTrue:[
- windowGroup focusView:self byTab:nil "/false.
+ windowGroup focusView:self byTab:nil "/false.
].
!
@@ -7436,9 +7438,9 @@
takeFocusWhenMapped:aBoolean
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagTakeFocusWhenMapped
+ flagBits := flagBits bitOr:FlagTakeFocusWhenMapped
] ifFalse:[
- flagBits := flagBits bitClear:FlagTakeFocusWhenMapped
+ flagBits := flagBits bitClear:FlagTakeFocusWhenMapped
].
"Created: / 09-12-2010 / 10:34:11 / cg"
@@ -7448,15 +7450,15 @@
"invoked when my topView is mapped"
self isKeyboardConsumer ifTrue:[
- self takeFocusWhenMapped ifTrue:[
- self requestFocus
- ]
+ self takeFocusWhenMapped ifTrue:[
+ self requestFocus
+ ]
] ifFalse:[
- subViews notNil ifTrue:[
- subViews do:[:eachSubView |
- eachSubView topViewWasMapped
- ].
- ].
+ subViews notNil ifTrue:[
+ subViews do:[:eachSubView |
+ eachSubView topViewWasMapped
+ ].
+ ].
].
"Created: / 09-12-2010 / 18:11:51 / cg"
@@ -7537,8 +7539,8 @@
"/ sensor flushMotionEventsFor:nil
"/ ].
aCursorOrNil notNil ifTrue:[
- cursor := (aCursorOrNil onDevice:device).
- ^ device grabPointerInView:self withCursor:cursor
+ cursor := (aCursorOrNil onDevice:device).
+ ^ device grabPointerInView:self withCursor:cursor
].
^ device grabPointerInView:self
!
@@ -7549,14 +7551,14 @@
|sensor|
device activeKeyboardGrab == self ifTrue:[
- (sensor := self sensor) notNil ifTrue:[
- "/ make certain all X events have been received
- device sync.
- "/ now all events have been received.
- "/ now, flush all pointer events
- sensor flushKeyboardFor:self
- ].
- device ungrabKeyboard.
+ (sensor := self sensor) notNil ifTrue:[
+ "/ make certain all X events have been received
+ device sync.
+ "/ now all events have been received.
+ "/ now, flush all pointer events
+ sensor flushKeyboardFor:self
+ ].
+ device ungrabKeyboard.
].
!
@@ -7566,14 +7568,14 @@
|sensor|
device activePointerGrab == self ifTrue:[
- (sensor := self sensor) notNil ifTrue:[
- "/ make certain all X events have been received
- device sync.
- "/ now all events have been received.
- "/ now, flush all pointer events
- sensor flushMotionEventsFor:self
- ].
- device ungrabPointer.
+ (sensor := self sensor) notNil ifTrue:[
+ "/ make certain all X events have been received
+ device sync.
+ "/ now all events have been received.
+ "/ now, flush all pointer events
+ sensor flushMotionEventsFor:self
+ ].
+ device ungrabPointer.
]
! !
@@ -7590,7 +7592,7 @@
|app|
(app := self application) notNil ifTrue:[
- app noticeOfWindowClose:self
+ app noticeOfWindowClose:self
].
!
@@ -7598,7 +7600,7 @@
|app|
(app := self application) notNil ifTrue:[
- app noticeOfWindowOpen:self
+ app noticeOfWindowOpen:self
].
dependents notNil ifTrue:[ self changed:#opened ]
!
@@ -7649,11 +7651,11 @@
self isBeingDestroyed:true.
realized ifTrue:[
- self unmap.
+ self unmap.
].
shown ifTrue:[
- shown := false.
- dependents notNil ifTrue:[ self changed:#visibility ].
+ shown := false.
+ dependents notNil ifTrue:[ self changed:#visibility ].
].
"/ controller notNil ifTrue:[
@@ -7662,11 +7664,11 @@
"/ ].
subViews notNil ifTrue:[
- self destroySubViews.
+ self destroySubViews.
].
superView notNil ifTrue:[
- superView removeSubView:self.
- superView := nil
+ superView removeSubView:self.
+ superView := nil
].
super destroy.
@@ -7678,13 +7680,13 @@
"/ ].
controller notNil ifTrue:[
- controller release.
- controller := nil.
+ controller release.
+ controller := nil.
].
windowGroup notNil ifTrue:[
- windowGroup removeView:self.
- windowGroup := nil
+ windowGroup removeView:self.
+ windowGroup := nil
].
self noticeOfWindowClose.
@@ -7705,32 +7707,32 @@
viewBackground := DefaultViewBackgroundColor.
DefaultLightColor notNil ifTrue:[
- lightColor := DefaultLightColor.
+ lightColor := DefaultLightColor.
] ifFalse:[
- device hasGrayscales ifTrue:[
- (viewBackground isImageOrForm and:[viewBackground colorMap isNil]) ifTrue:[
- lightColor := viewBackground averageColor lightened.
- ] ifFalse:[
- lightColor := viewBackground lightened.
- ].
- DefaultLightColor := lightColor.
- ] ifFalse:[
- "
- this seems strange: on B&W screens, we create the light color
- darker than normal viewBackground (White) -
- to make the boundary of the view visible
- "
- lightColor := Color gray:50
- ]
+ device hasGrayscales ifTrue:[
+ (viewBackground isImageOrForm and:[viewBackground colorMap isNil]) ifTrue:[
+ lightColor := viewBackground averageColor lightened.
+ ] ifFalse:[
+ lightColor := viewBackground lightened.
+ ].
+ DefaultLightColor := lightColor.
+ ] ifFalse:[
+ "
+ this seems strange: on B&W screens, we create the light color
+ darker than normal viewBackground (White) -
+ to make the boundary of the view visible
+ "
+ lightColor := Color gray:50
+ ]
].
DefaultShadowColor notNil ifTrue:[
- shadowColor := DefaultShadowColor.
+ shadowColor := DefaultShadowColor.
] ifFalse:[
- shadowColor := self blackColor.
+ shadowColor := self blackColor.
].
((DefaultBorderWidth ? 1) ~= 0 and:[DefaultBorderColor notNil]) ifTrue:[
- self border:(SimpleBorder width:(DefaultBorderWidth ? 1) color:DefaultBorderColor)
+ self border:(SimpleBorder width:(DefaultBorderWidth ? 1) color:DefaultBorderColor)
].
"/ font := self defaultFont. -- already done in #initialize
@@ -7746,12 +7748,12 @@
and keep the values in fast class variables
"
StyleSheet isNil ifTrue:[
- DefaultStyle isNil ifTrue:[
- "/ the very-very first time (no styleSheet yet)
- View setDefaultStyle.
- View defaultStyle:DefaultStyle.
- ].
- SimpleView updateAllStyleCaches
+ DefaultStyle isNil ifTrue:[
+ "/ the very-very first time (no styleSheet yet)
+ View setDefaultStyle.
+ View defaultStyle:DefaultStyle.
+ ].
+ SimpleView updateAllStyleCaches
].
styleSheet := StyleSheet.
@@ -7778,7 +7780,6 @@
self basicFont:self defaultFont.
shown := realized := false.
- "/ hiddenOnRealize := false.
"/ explicitExtent := false.
"fill in some defaults - some of them are usually redefined in subclasses
@@ -7802,15 +7803,15 @@
"/ self originChangedFlag:false extentChangedFlag:false cornerChangedFlag:false.
name isNil ifTrue:[
- name := self class name.
+ name := self class name.
].
bitGravity := #NorthWest. "/ nil.
viewGravity := nil.
controllerClass := self defaultControllerClass.
controllerClass notNil ifTrue:[
- controller := controllerClass new.
- controller view:self.
+ controller := controllerClass new.
+ controller view:self.
].
self initializeMiddleButtonMenu.
@@ -7830,7 +7831,7 @@
prepareForReinit
super prepareForReinit.
windowGroup notNil ifTrue:[
- windowGroup reinitialize
+ windowGroup reinitialize
]
!
@@ -7847,12 +7848,12 @@
oldBorder := self border.
self initStyle.
(self drawableId notNil and:[self gcId notNil]) ifTrue:[
- "force a change"
- self border:oldBorder.
- self level:oldLevel.
- self viewBackground:self viewBackground.
- self clearView.
- self invalidate.
+ "force a change"
+ self border:oldBorder.
+ self level:oldLevel.
+ self viewBackground:self viewBackground.
+ self clearView.
+ self invalidate.
].
"Modified: / 18.9.1998 / 21:15:33 / cg"
@@ -7865,16 +7866,16 @@
"if I have already been reinited - return"
self drawableId notNil ifTrue:[
- ^ self
+ ^ self
].
"
superView must be there, first
"
superView notNil ifTrue:[
- (sv := superView view) id isNil ifTrue:[
- sv reinitialize
- ]
+ (sv := superView view) id isNil ifTrue:[
+ sv reinitialize
+ ]
].
"reinit cursor"
@@ -7886,18 +7887,18 @@
"if I was mapped, do it again"
realized ifTrue:[
- "only remap if I have a superview - otherwise, I might be
- a hidden iconView or menu ..."
- superView notNil ifTrue:[
+ "only remap if I have a superview - otherwise, I might be
+ a hidden iconView or menu ..."
+ superView notNil ifTrue:[
"/ shown ifTrue:[
- device
- moveResizeWindow:self drawableId x:left y:top width:width height:height;
- mapWindow:self drawableId
+ device
+ moveResizeWindow:self drawableId x:left y:top width:width height:height;
+ mapWindow:self drawableId
"/ mapView:self id:self drawableId iconified:false
"/ atX:left y:top width:width height:height
"/ minExtent:(self minExtent) maxExtent:(self maxExtent)
"/ ].
- ].
+ ].
].
"restore controller"
@@ -7910,8 +7911,8 @@
"remove all dependencies from the receiver"
visibilityChannel notNil ifTrue:[
- visibilityChannel retractInterestsFor:self.
- visibilityChannel removeDependent:self. visibilityChannel := nil
+ visibilityChannel retractInterestsFor:self.
+ visibilityChannel removeDependent:self. visibilityChannel := nil
].
dependents := nil.
@@ -7960,9 +7961,9 @@
"set or clear the mnemonic key"
aSymbolOrNil isSymbol ifTrue:[
- self objectAttributeAt:#mnemonicKey put:aSymbolOrNil
+ self objectAttributeAt:#mnemonicKey put:aSymbolOrNil
] ifFalse:[
- self removeObjectAttribute:#mnemonicKey
+ self removeObjectAttribute:#mnemonicKey
].
!
@@ -7975,19 +7976,19 @@
key := aKeyEvent key.
rawKey := aKeyEvent rawKey.
(shown and:[ subViews notNil ]) ifTrue:[
- subViews do:[:aSubView |
- aSubView shown ifTrue:[
- (aSubView enabled
- and:[ (mnemonic := aSubView mnemonicKey) notNil
- and:[ (mnemonic == rawKey or:[ mnemonic == key ]) ]])
- ifTrue:[
- ^ aSubView
- ].
- (view := aSubView mnemonicViewNext:aKeyEvent) notNil ifTrue:[
- ^ view
- ].
- ]
- ]
+ subViews do:[:aSubView |
+ aSubView shown ifTrue:[
+ (aSubView enabled
+ and:[ (mnemonic := aSubView mnemonicKey) notNil
+ and:[ (mnemonic == rawKey or:[ mnemonic == key ]) ]])
+ ifTrue:[
+ ^ aSubView
+ ].
+ (view := aSubView mnemonicViewNext:aKeyEvent) notNil ifTrue:[
+ ^ view
+ ].
+ ]
+ ]
].
^ nil
@@ -8007,22 +8008,22 @@
|key|
shown ifTrue:[
- self enabled ifTrue:[
- (key := self shortcutKey) notNil ifTrue:[
- (key == aKeyEvent key or:[ key == aKeyEvent rawKey ]) ifTrue:[
- self requestFocus.
- (controller ? self) performShortcutAction.
- ^ true
- ]
- ].
- ].
- subViews notNil ifTrue:[
- subViews do:[:aSubView |
- (aSubView processShortcut:aKeyEvent) ifTrue:[
- ^ true
- ]
- ]
- ]
+ self enabled ifTrue:[
+ (key := self shortcutKey) notNil ifTrue:[
+ (key == aKeyEvent key or:[ key == aKeyEvent rawKey ]) ifTrue:[
+ self requestFocus.
+ (controller ? self) performShortcutAction.
+ ^ true
+ ]
+ ].
+ ].
+ subViews notNil ifTrue:[
+ subViews do:[:aSubView |
+ (aSubView processShortcut:aKeyEvent) ifTrue:[
+ ^ true
+ ]
+ ]
+ ]
].
^ false
!
@@ -8038,33 +8039,33 @@
s := aString readStream.
[s atEnd] whileFalse:[
- c := s next.
- c == $& ifTrue:[
- n := s peek.
- (n notNil and:[n isLetter]) ifTrue:[
- c := s next.
- pos := xLatedString size + 1.
- ] ifFalse:[
- n == $& ifTrue:[
- s next.
- ]
- ]
- ].
- c notNil ifTrue:[
- xLatedString nextPut:c
- ]
+ c := s next.
+ c == $& ifTrue:[
+ n := s peek.
+ (n notNil and:[n isLetter]) ifTrue:[
+ c := s next.
+ pos := xLatedString size + 1.
+ ] ifFalse:[
+ n == $& ifTrue:[
+ s next.
+ ]
+ ]
+ ].
+ c notNil ifTrue:[
+ xLatedString nextPut:c
+ ]
].
xLatedString := xLatedString contents.
pos notNil ifTrue:[
- shortcutCharacter := xLatedString at:pos ifAbsent:nil.
-
- xLatedString isText ifFalse:[
- xLatedString := xLatedString asText
- ].
- xLatedString emphasisAt:pos add:#underline.
-
- shortcut := ('Cmd' , shortcutCharacter asLowercase) asSymbol.
+ shortcutCharacter := xLatedString at:pos ifAbsent:nil.
+
+ xLatedString isText ifFalse:[
+ xLatedString := xLatedString asText
+ ].
+ xLatedString emphasisAt:pos add:#underline.
+
+ shortcut := ('Cmd' , shortcutCharacter asLowercase) asSymbol.
].
^ Array with:shortcut with:xLatedString
@@ -8089,9 +8090,9 @@
"set or clear the shortcut key"
aSymbolOrNil notNil ifTrue:[
- self objectAttributeAt:#shortcutKey put:aSymbolOrNil
+ self objectAttributeAt:#shortcutKey put:aSymbolOrNil
] ifFalse:[
- self removeObjectAttribute:#shortcutKey
+ self removeObjectAttribute:#shortcutKey
].
! !
@@ -8103,8 +8104,8 @@
font := gc font.
oldSize := font size.
newFont := font asSize:(largerBoolean
- ifTrue:[(oldSize + 1) min:100]
- ifFalse:[(oldSize-1) max:4]).
+ ifTrue:[(oldSize + 1) min:100]
+ ifFalse:[(oldSize-1) max:4]).
self font:newFont.
"Modified: / 27-02-1996 / 00:53:51 / cg"
@@ -8120,86 +8121,86 @@
and handled in the superClass (static menus are a historic leftOver).
Otherwise, the follwing steps are performed:
- - ask the receiver for the menu (via #yellowButtonMenu)
- - ask the receiver for the menuPerformer.
- - startUp the menu - it is supposed to return an actionSelector
- - if the menuPerformer responds to the selector,
- send it to the performer;
- otherwise send it to the view (the receiver)
- This is funny, it allows additional menuItems to be added
- AND still get the views copy/cut/paste functionality.
- Without this, you had to redefine and forward all of those
- messages in the performer."
+ - ask the receiver for the menu (via #yellowButtonMenu)
+ - ask the receiver for the menuPerformer.
+ - startUp the menu - it is supposed to return an actionSelector
+ - if the menuPerformer responds to the selector,
+ send it to the performer;
+ otherwise send it to the view (the receiver)
+ This is funny, it allows additional menuItems to be added
+ AND still get the views copy/cut/paste functionality.
+ Without this, you had to redefine and forward all of those
+ messages in the performer."
|menu menuPerformer actionSelector prevReceiver wg|
self middleButtonMenu isNil ifTrue:[
- "
- try ST-80 style menus first:
- if there is a model, and a menuMessage is defined,
- ask model for the menu and launch that if non-nil.
- "
- menu := self yellowButtonMenu.
- menu notNil ifTrue:[
- "
- got one, launch the menu. It is supposed
- to return an actionSelector.
- "
- menuPerformer := self menuPerformer value.
-
- "/ could be a spec ...
- menu isArray ifTrue:[
- menu := menu decodeAsLiteralArray.
- menu receiver:menuPerformer.
- menu findGuiResourcesIn:(self menuHolder).
- ] ifFalse:[
- (menu respondsTo:#receiver) ifTrue:[
- menuPerformer := menu receiver ? menuPerformer.
- ].
- ].
-
- "
- a temporary kludge:
- pass myself as receiver, the menuPerformer as performer;
- the menu will send its messages to either the
- menuPerformer or me (its receiver).
- This allows for the ST-80 behavior, where some messages
- go to the model, others to the view
- (copy/cut/paste).
- "
- (prevReceiver := menu receiver) isNil ifTrue:[
- "/ kludge for oldStyle menus (MenuView/PopUpMenu)
- "/ not req'd for real Menus
- "/ (menu isKindOf:Menu) ifFalse:[
- (menu respondsTo:#menuPerformer:) ifTrue:[
- menu receiver:self. "/ really ?
- menu menuPerformer:menuPerformer.
- ] ifFalse:[
- "/ ] ifTrue:[
- "/ new style menu
- menu receiver:menuPerformer.
- ]
- ].
-
- "/
- "/ startup the menu - this returns a selector
- "/
- actionSelector := self startUpMenu:menu.
-
- "/ before doing anything else, redraw expose area from
- "/ the menu (in case the action changes my state)
- (wg := self windowGroup) notNil ifTrue:[
- wg processExposeEvents.
- ].
-
- (actionSelector notNil and:[actionSelector isSymbol]) ifTrue:[
- self dispatchMenuSelection:actionSelector to: menuPerformer.
- ].
-
- menu receiver:prevReceiver.
-
- ^ self
- ].
+ "
+ try ST-80 style menus first:
+ if there is a model, and a menuMessage is defined,
+ ask model for the menu and launch that if non-nil.
+ "
+ menu := self yellowButtonMenu.
+ menu notNil ifTrue:[
+ "
+ got one, launch the menu. It is supposed
+ to return an actionSelector.
+ "
+ menuPerformer := self menuPerformer value.
+
+ "/ could be a spec ...
+ menu isArray ifTrue:[
+ menu := menu decodeAsLiteralArray.
+ menu receiver:menuPerformer.
+ menu findGuiResourcesIn:(self menuHolder).
+ ] ifFalse:[
+ (menu respondsTo:#receiver) ifTrue:[
+ menuPerformer := menu receiver ? menuPerformer.
+ ].
+ ].
+
+ "
+ a temporary kludge:
+ pass myself as receiver, the menuPerformer as performer;
+ the menu will send its messages to either the
+ menuPerformer or me (its receiver).
+ This allows for the ST-80 behavior, where some messages
+ go to the model, others to the view
+ (copy/cut/paste).
+ "
+ (prevReceiver := menu receiver) isNil ifTrue:[
+ "/ kludge for oldStyle menus (MenuView/PopUpMenu)
+ "/ not req'd for real Menus
+ "/ (menu isKindOf:Menu) ifFalse:[
+ (menu respondsTo:#menuPerformer:) ifTrue:[
+ menu receiver:self. "/ really ?
+ menu menuPerformer:menuPerformer.
+ ] ifFalse:[
+ "/ ] ifTrue:[
+ "/ new style menu
+ menu receiver:menuPerformer.
+ ]
+ ].
+
+ "/
+ "/ startup the menu - this returns a selector
+ "/
+ actionSelector := self startUpMenu:menu.
+
+ "/ before doing anything else, redraw expose area from
+ "/ the menu (in case the action changes my state)
+ (wg := self windowGroup) notNil ifTrue:[
+ wg processExposeEvents.
+ ].
+
+ (actionSelector notNil and:[actionSelector isSymbol]) ifTrue:[
+ self dispatchMenuSelection:actionSelector to: menuPerformer.
+ ].
+
+ menu receiver:prevReceiver.
+
+ ^ self
+ ].
].
"/
@@ -8223,8 +8224,8 @@
mhmh - kludge for selectors with argument
"
(menuSelection isMemberOf:Array) ifTrue:[
- actionArg1 := menuSelection at:2.
- actionSelector := menuSelection at:1.
+ actionArg1 := menuSelection at:2.
+ actionSelector := menuSelection at:1.
].
menuPerformer := aMenuPerformerOrNil ? self menuPerformer.
@@ -8235,18 +8236,18 @@
Simulate this behavior, by looking what the model responds to.
"
actionSelector isSymbol ifTrue:[
- (menuPerformer respondsTo:actionSelector) ifFalse:[
- ((app := self application) respondsTo:actionSelector) ifTrue:[
- menuPerformer := app.
- actionArg1 := self model.
- actionArg2 := self controller.
- ] ifFalse:[
- (self respondsTo:actionSelector) ifTrue:[
- menuPerformer := self
- ]
- ]
- ].
- menuPerformer perform:actionSelector withOptionalArgument:actionArg1 and:actionArg2.
+ (menuPerformer respondsTo:actionSelector) ifFalse:[
+ ((app := self application) respondsTo:actionSelector) ifTrue:[
+ menuPerformer := app.
+ actionArg1 := self model.
+ actionArg2 := self controller.
+ ] ifFalse:[
+ (self respondsTo:actionSelector) ifTrue:[
+ menuPerformer := self
+ ]
+ ]
+ ].
+ menuPerformer perform:actionSelector withOptionalArgument:actionArg1 and:actionArg2.
].
"Created: / 20.6.1997 / 11:47:42 / cg"
@@ -8261,9 +8262,9 @@
aMenuOrMenuSpec isNil ifTrue:[^ nil].
aMenuOrMenuSpec isArray ifTrue:[
- spec := aMenuOrMenuSpec decodeAsLiteralArray.
+ spec := aMenuOrMenuSpec decodeAsLiteralArray.
] ifFalse:[
- spec := aMenuOrMenuSpec.
+ spec := aMenuOrMenuSpec.
].
"/ spec receiver:self. -- now done in findGuiResources ...
spec findGuiResourcesIn:self.
@@ -8288,25 +8289,25 @@
componentsContainingX:x y:y do:aBlock
(x isNil or:[y isNil]) ifTrue:[
- "/ delegated
- ^ self
+ "/ delegated
+ ^ self
].
components notNil ifTrue:[
- components reverseDo:[:aComponent |
- |thisFrame|
-
- thisFrame := aComponent bounds.
- (thisFrame containsPointX:x y:y) ifTrue:[
- "/ prepare for masked/non-rectangular components ...
- (aComponent perform:#containsPointX:y: with:x with:y ifNotUnderstood:true)
- ifTrue:[
- aBlock value:aComponent
- value:x - thisFrame left
- value:y - thisFrame top.
- ]
- ]
- ]
+ components reverseDo:[:aComponent |
+ |thisFrame|
+
+ thisFrame := aComponent bounds.
+ (thisFrame containsPointX:x y:y) ifTrue:[
+ "/ prepare for masked/non-rectangular components ...
+ (aComponent perform:#containsPointX:y: with:x with:y ifNotUnderstood:true)
+ ifTrue:[
+ aBlock value:aComponent
+ value:x - thisFrame left
+ value:y - thisFrame top.
+ ]
+ ]
+ ]
].
"Created: / 08-05-1996 / 23:40:59 / cg"
@@ -8320,24 +8321,24 @@
margin isNil ifTrue:[margin := 0].
(margin ~~ 0) ifTrue:[
- m2 := margin + margin.
- nX := nY := margin.
- nW := width - m2.
- nH := height - m2.
+ m2 := margin + margin.
+ nX := nY := margin.
+ nW := width - m2.
+ nH := height - m2.
"/ transformation notNil ifTrue:[
"/ nX := transformation applyInverseToX:nX.
"/ nY := transformation applyInverseToY:nY.
"/ nW := transformation applyInverseScaleX:nW.
"/ nH := transformation applyInverseScaleY:nH.
"/ ].
- innerClipRect := Rectangle
- left:nX
- top:nY
- width:nW
- height:nH
+ innerClipRect := Rectangle
+ left:nX
+ top:nY
+ width:nW
+ height:nH
] ifFalse:[
- "no clipping"
- innerClipRect := nil
+ "no clipping"
+ innerClipRect := nil
]
"Modified: / 22.5.1999 / 16:50:58 / cg"
@@ -8358,10 +8359,10 @@
bw := self borderWidth ? 0.
insets isNil ifTrue:[
- bw == 0 ifTrue:[
- ^ p
- ].
- ^ (p x - bw) @ (p y - bw)
+ bw == 0 ifTrue:[
+ ^ p
+ ].
+ ^ (p x - bw) @ (p y - bw)
].
r := (insets at:3) + bw.
b := (insets at:4) + bw.
@@ -8374,7 +8375,7 @@
"/ b := bottomInset + bw
"/ ].
((r ~~ 0) or:[b ~~ 0]) ifTrue:[
- ^ (p x - r) @ (p y - b)
+ ^ (p x - r) @ (p y - b)
].
^ p
@@ -8396,17 +8397,17 @@
|subViews|
(subViews := self subViews) notNil ifTrue:[
- subViews do:[:v| |p|
- (ignoreInvisible or:[v shown]) ifTrue:[
- ( (aPoint x between:(v left) and:(v right))
- and:[aPoint y between:(v top) and:(v bottom)]
- ) ifTrue:[
- "/ found a subview - the point is there
- p := device translatePoint:aPoint fromView:self toView:v.
- ^ v detectViewAt:p ignoreInvisible:ignoreInvisible.
- ]
- ]
- ]
+ subViews do:[:v| |p|
+ (ignoreInvisible or:[v shown]) ifTrue:[
+ ( (aPoint x between:(v left) and:(v right))
+ and:[aPoint y between:(v top) and:(v bottom)]
+ ) ifTrue:[
+ "/ found a subview - the point is there
+ p := device translatePoint:aPoint fromView:self toView:v.
+ ^ v detectViewAt:p ignoreInvisible:ignoreInvisible.
+ ]
+ ]
+ ]
].
"/ no subview - the point is here
^ self
@@ -8418,9 +8419,9 @@
"set the exeplicit extent flag to aBoolean."
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagHasExplicitExtent
+ flagBits := flagBits bitOr:FlagHasExplicitExtent
] ifFalse:[
- flagBits := flagBits bitClear:FlagHasExplicitExtent
+ flagBits := flagBits bitClear:FlagHasExplicitExtent
].
!
@@ -8438,50 +8439,50 @@
bw := self borderWidth ? 0.
superView isNil ifTrue:[
- inRect := 0@0 extent:device extent
+ inRect := 0@0 extent:device extent
] ifFalse:[
- inRect := superView viewRectangle.
+ inRect := superView viewRectangle.
].
bw2 := bw * 2.
rel := aPoint x.
rel isInteger ifFalse:[
- newX := (rel * (inRect width + bw2)) asInteger + inRect left.
- (bw ~~ 0) ifTrue:[
- newX := newX - bw
- ].
+ newX := (rel * (inRect width + bw2)) asInteger + inRect left.
+ (bw ~~ 0) ifTrue:[
+ newX := newX - bw
+ ].
] ifTrue:[
- newX := rel
+ newX := rel
].
rel := aPoint y.
rel isInteger ifFalse:[
- newY := (rel * (inRect height + bw2)) asInteger + inRect top.
- (bw ~~ 0) ifTrue:[
- newY := newY - bw
- ].
+ newY := (rel * (inRect height + bw2)) asInteger + inRect top.
+ (bw ~~ 0) ifTrue:[
+ newY := newY - bw
+ ].
] ifTrue:[
- newY := rel
+ newY := rel
].
insets notNil ifTrue:[
- i := insets at:1. "top"
- (i ~~ 0) ifTrue:[
- newX := newX - i
- ].
- i := insets at:3. "left"
- (i ~~ 0) ifTrue:[
- newX := newX - i
- ].
- i := insets at:2. "right"
- (i ~~ 0) ifTrue:[
- newY := newY - i
- ].
- i := insets at:4. "bottom"
- (i ~~ 0) ifTrue:[
- newY := newY - i
- ].
+ i := insets at:1. "top"
+ (i ~~ 0) ifTrue:[
+ newX := newX - i
+ ].
+ i := insets at:3. "left"
+ (i ~~ 0) ifTrue:[
+ newX := newX - i
+ ].
+ i := insets at:2. "right"
+ (i ~~ 0) ifTrue:[
+ newY := newY - i
+ ].
+ i := insets at:4. "bottom"
+ (i ~~ 0) ifTrue:[
+ newY := newY - i
+ ].
].
^ newX @ newY
!
@@ -8500,7 +8501,7 @@
p := self pointFromRelative:aPoint.
insets isNil ifTrue:[
- ^ p
+ ^ p
].
l := insets at:1.
t := insets at:2.
@@ -8513,7 +8514,7 @@
"/ t := topInset
"/ ].
((l ~~ 0) or:[t ~~ 0]) ifTrue:[
- ^ (p x + l) @ (p y + t)
+ ^ (p x + l) @ (p y + t)
].
^ p
!
@@ -8552,25 +8553,25 @@
newLeft := origin x.
newTop := origin y.
((newTop ~~ top) or:[newLeft ~~ left]) ifTrue:[
- top := newTop.
- left := newLeft.
-
- "
- if the receiver is visible, or is a topView, perform the
- operation right away - otherwise, simply remember that the
- origin has changed - will tell the display once we get realized
- "
+ top := newTop.
+ left := newLeft.
+
+ "
+ if the receiver is visible, or is a topView, perform the
+ operation right away - otherwise, simply remember that the
+ origin has changed - will tell the display once we get realized
+ "
"/ (shown
"/ or:[superView isNil and:[drawableId notNil]]) ifTrue:[
- "/ no, have to do it if drawableId is there
- "/ (otherwise, we could not move unmapped views around ...
- "/
- self drawableId notNil ifTrue:[
- device moveWindow:self drawableId x:left y:top
- ] ifFalse:[
- self originChangedFlag:true
- ]
+ "/ no, have to do it if drawableId is there
+ "/ (otherwise, we could not move unmapped views around ...
+ "/
+ self drawableId notNil ifTrue:[
+ device moveWindow:self drawableId x:left y:top
+ ] ifFalse:[
+ self originChangedFlag:true
+ ]
]
"Modified: / 21-01-2011 / 13:59:08 / cg"
@@ -8607,16 +8608,16 @@
a dimension <= 0 ... (although I think that 0 makes sense ...)
"
newWidth < 1 ifTrue:[
- newWidth := 1.
+ newWidth := 1.
].
newHeight < 1 ifTrue:[
- newHeight := 1
+ newHeight := 1
].
((newWidth == width) and:[newHeight == height]) ifTrue:[
- sameOrigin ifTrue:[^ self].
- dependents notNil ifTrue:[ self changed:#origin ].
- ^ self pixelOrigin:origin
+ sameOrigin ifTrue:[^ self].
+ dependents notNil ifTrue:[ self changed:#origin ].
+ ^ self pixelOrigin:origin
].
top := newTop.
@@ -8624,142 +8625,142 @@
"/ shown ifTrue:[ "4-nov-94 actually correct,"
self drawableId notNil ifTrue:[ "but theres a bug in menus when resized while hidden"
- mustRedrawBottomEdge := (margin ~~ 0) and:[newHeight < height].
- mustRedrawRightEdge := (margin ~~ 0) and:[newWidth < width].
-
- ((newHeight <= height) and:[newWidth <= width]) ifTrue:[
- how := #smaller
- ] ifFalse:[
- ((newHeight >= height) and:[newWidth >= width]) ifTrue:[
- how := #larger
- ]
- ].
-
- mustRepaintRight := false.
- mustRepaintBottom := false.
-
- oldWidth := width.
- oldHeight := height.
-
- shown ifTrue:[
- (margin ~~ 0) ifTrue:[
- "clear the old edges"
-
- oldPaint := nil.
- newWidth > width ifTrue:[
- self clippingBounds:nil.
- oldPaint := self paint.
- self paint:viewBackground.
- self fillDeviceRectangleX:(width - margin)
- y:0
- width:margin
- height:height.
- mustRepaintRight := true.
- ].
- newHeight > height ifTrue:[
- self clippingBounds:nil.
- oldPaint := self paint.
- self paint:viewBackground.
- self fillDeviceRectangleX:0
- y:(height - margin)
- width:width
- height:margin.
- mustRepaintBottom := true.
- ].
- oldPaint notNil ifTrue:[ self paint:oldPaint. ]
- ]
- ].
-
- width := newWidth.
- height := newHeight.
-
- self setInnerClip.
-
- "if view becomes smaller, send sizeChanged first"
- true "(how == #smaller)" ifTrue:[
- self sizeChanged:how
- ].
-
- "have to tell X, when extent of view is changed"
- sameOrigin ifTrue:[
- device resizeWindow:self drawableId width:width height:height.
- ] ifFalse:[
- "claus: some xservers seem to do better when resizing
- first ...."
+ mustRedrawBottomEdge := (margin ~~ 0) and:[newHeight < height].
+ mustRedrawRightEdge := (margin ~~ 0) and:[newWidth < width].
+
+ ((newHeight <= height) and:[newWidth <= width]) ifTrue:[
+ how := #smaller
+ ] ifFalse:[
+ ((newHeight >= height) and:[newWidth >= width]) ifTrue:[
+ how := #larger
+ ]
+ ].
+
+ mustRepaintRight := false.
+ mustRepaintBottom := false.
+
+ oldWidth := width.
+ oldHeight := height.
+
+ shown ifTrue:[
+ (margin ~~ 0) ifTrue:[
+ "clear the old edges"
+
+ oldPaint := nil.
+ newWidth > width ifTrue:[
+ self clippingBounds:nil.
+ oldPaint := self paint.
+ self paint:viewBackground.
+ self fillDeviceRectangleX:(width - margin)
+ y:0
+ width:margin
+ height:height.
+ mustRepaintRight := true.
+ ].
+ newHeight > height ifTrue:[
+ self clippingBounds:nil.
+ oldPaint := self paint.
+ self paint:viewBackground.
+ self fillDeviceRectangleX:0
+ y:(height - margin)
+ width:width
+ height:margin.
+ mustRepaintBottom := true.
+ ].
+ oldPaint notNil ifTrue:[ self paint:oldPaint. ]
+ ]
+ ].
+
+ width := newWidth.
+ height := newHeight.
+
+ self setInnerClip.
+
+ "if view becomes smaller, send sizeChanged first"
+ true "(how == #smaller)" ifTrue:[
+ self sizeChanged:how
+ ].
+
+ "have to tell X, when extent of view is changed"
+ sameOrigin ifTrue:[
+ device resizeWindow:self drawableId width:width height:height.
+ ] ifFalse:[
+ "claus: some xservers seem to do better when resizing
+ first ...."
"
- (how == #smaller) ifTrue:[
- device resizeWindow:drawableId width:width height:height.
- device moveWindow:drawableId x:left y:top
- ] ifFalse:[
- device moveResizeWindow:drawableId x:left y:top width:width height:height
- ].
+ (how == #smaller) ifTrue:[
+ device resizeWindow:drawableId width:width height:height.
+ device moveWindow:drawableId x:left y:top
+ ] ifFalse:[
+ device moveResizeWindow:drawableId x:left y:top width:width height:height
+ ].
"
- device moveResizeWindow:self drawableId x:left y:top
- width:width height:height.
- ].
-
- "if view becomes bigger, send sizeChanged after"
- false "(how ~~ #smaller)" ifTrue:[
- self sizeChanged:how
- ].
-
- shown ifTrue:[
- (mustRedrawBottomEdge or:[mustRedrawRightEdge]) ifTrue:[
- border notNil ifTrue:[
- mustRedrawBottomEdge ifTrue:[
- self invalidateDeviceRectangle:((0 @ (height - margin)) extent:width@margin) repairNow:false.
- ].
- mustRedrawRightEdge ifTrue:[
- self invalidateDeviceRectangle:(((width - margin) @ 0) extent:margin@height) repairNow:false.
- ].
- ] ifFalse:[
- self deviceClippingBounds:nil.
- oldPaint := self paint.
- mustRedrawBottomEdge ifTrue:[
- self drawBottomEdge
- ].
- mustRedrawRightEdge ifTrue:[
- self drawRightEdge
- ].
- self paint:oldPaint.
- self deviceClippingBounds:innerClipRect
- ]
- ].
- ].
-
- mustRepaintRight ifTrue:[
- self invalidateDeviceRectangle:(((oldWidth - margin) @ 0)
- extent:margin@height)
- repairNow:false.
+ device moveResizeWindow:self drawableId x:left y:top
+ width:width height:height.
+ ].
+
+ "if view becomes bigger, send sizeChanged after"
+ false "(how ~~ #smaller)" ifTrue:[
+ self sizeChanged:how
+ ].
+
+ shown ifTrue:[
+ (mustRedrawBottomEdge or:[mustRedrawRightEdge]) ifTrue:[
+ border notNil ifTrue:[
+ mustRedrawBottomEdge ifTrue:[
+ self invalidateDeviceRectangle:((0 @ (height - margin)) extent:width@margin) repairNow:false.
+ ].
+ mustRedrawRightEdge ifTrue:[
+ self invalidateDeviceRectangle:(((width - margin) @ 0) extent:margin@height) repairNow:false.
+ ].
+ ] ifFalse:[
+ self deviceClippingBounds:nil.
+ oldPaint := self paint.
+ mustRedrawBottomEdge ifTrue:[
+ self drawBottomEdge
+ ].
+ mustRedrawRightEdge ifTrue:[
+ self drawRightEdge
+ ].
+ self paint:oldPaint.
+ self deviceClippingBounds:innerClipRect
+ ]
+ ].
+ ].
+
+ mustRepaintRight ifTrue:[
+ self invalidateDeviceRectangle:(((oldWidth - margin) @ 0)
+ extent:margin@height)
+ repairNow:false.
"/ self redrawDeviceX:(oldWidth - margin)
"/ y:0
"/ width:margin
"/ height:height.
- ].
- mustRepaintBottom ifTrue:[
- self invalidateDeviceRectangle:((0 @ (oldHeight - margin))
- extent:width@margin)
- repairNow:false.
+ ].
+ mustRepaintBottom ifTrue:[
+ self invalidateDeviceRectangle:((0 @ (oldHeight - margin))
+ extent:width@margin)
+ repairNow:false.
"/ self redrawDeviceX:0
"/ y:(oldHeight - margin)
"/ width:width
"/ height:margin.
- ].
+ ].
] ifFalse:[
- "otherwise memorize the need for a sizeChanged message"
-
- width := newWidth.
- height := newHeight.
- sameOrigin ifFalse:[
- self originChangedFlag:true.
- ].
- self extentChangedFlag:true.
- subViews notEmptyOrNil ifTrue:[
- self extentChangedBeforeCreatedFlag:true.
- ].
+ "otherwise memorize the need for a sizeChanged message"
+
+ width := newWidth.
+ height := newHeight.
+ sameOrigin ifFalse:[
+ self originChangedFlag:true.
+ ].
+ self extentChangedFlag:true.
+ subViews notEmptyOrNil ifTrue:[
+ self extentChangedBeforeCreatedFlag:true.
+ ].
].
sameOrigin ifFalse:[
- dependents notNil ifTrue:[ self changed:#origin ].
+ dependents notNil ifTrue:[ self changed:#origin ].
].
"Modified: / 25.5.1999 / 14:49:56 / cg"
@@ -8773,39 +8774,39 @@
bw := self borderWidth ? 0.
superView isNil ifTrue:[
- superWidth := device width + bw.
- superHeight := device height + bw.
- superLeft := superTop := 0.
+ superWidth := device width + bw.
+ superHeight := device height + bw.
+ superLeft := superTop := 0.
] ifFalse:[
- inRect := superView viewRectangle.
- superWidth := inRect width.
- superHeight := inRect height.
- superLeft := inRect left.
- superTop := inRect top.
+ inRect := superView viewRectangle.
+ superWidth := inRect width.
+ superHeight := inRect height.
+ superLeft := inRect left.
+ superTop := inRect top.
].
rel := p x.
rel isInteger ifTrue:[
- newX := rel
+ newX := rel
] ifFalse:[
- newX := (rel * superWidth) asInteger + superLeft.
- (bw ~~ 0) ifTrue:[
- rel ~= 1.0 ifTrue:[
- newX := newX - bw
- ]
- ]
+ newX := (rel * superWidth) asInteger + superLeft.
+ (bw ~~ 0) ifTrue:[
+ rel ~= 1.0 ifTrue:[
+ newX := newX - bw
+ ]
+ ]
].
rel := p y.
rel isInteger ifTrue:[
- newY := rel
+ newY := rel
] ifFalse:[
- newY := (rel * superHeight) asInteger + superTop.
- (bw ~~ 0) ifTrue:[
- rel ~= 1.0 ifTrue:[
- newY := newY - bw
- ]
- ]
+ newY := (rel * superHeight) asInteger + superTop.
+ (bw ~~ 0) ifTrue:[
+ rel ~= 1.0 ifTrue:[
+ newY := newY - bw
+ ]
+ ]
].
^ newX @ newY
@@ -8853,17 +8854,17 @@
|form|
(form := viewShape borderShapeForm) notNil ifTrue:[
- gc windowBorderShape:form.
+ gc windowBorderShape:form.
].
(form := viewShape viewShapeForm) notNil ifTrue:[
- gc windowShape:form.
+ gc windowShape:form.
].
"Created: 18.9.1997 / 11:09:00 / cg"
!
windowGroupClass
- ^ WindowGroup
+ ^ WindowGroup
! !
!SimpleView methodsFor:'queries'!
@@ -8887,16 +8888,16 @@
focusViewToCheck == self ifTrue:[ ^ true ].
focusViewToCheck notNil ifTrue:[
- (focusViewToCheck isComponentOf: self) ifTrue:[ ^ true ].
-
- "mhmh - is there a delegation to me ?"
- (delegate := focusViewToCheck delegate) notNil ifTrue:[
- delegate == self ifTrue:[^ true].
- "/ no: delegate does not understand this (EnterFieldGroup or KbdForwarder)
- "/ we will see, if commenting this leads to problems...
- "/ (delegate isComponentOf: self) ifTrue:[ ^ true ].
- ^ delegate askFor:#delegatesTo: with:self
- ]
+ (focusViewToCheck isComponentOf: self) ifTrue:[ ^ true ].
+
+ "mhmh - is there a delegation to me ?"
+ (delegate := focusViewToCheck delegate) notNil ifTrue:[
+ delegate == self ifTrue:[^ true].
+ "/ no: delegate does not understand this (EnterFieldGroup or KbdForwarder)
+ "/ we will see, if commenting this leads to problems...
+ "/ (delegate isComponentOf: self) ifTrue:[ ^ true ].
+ ^ delegate askFor:#delegatesTo: with:self
+ ]
].
^ false
@@ -8929,11 +8930,11 @@
savedPref := preferredExtent.
savedExplicit := explicitExtent.
[
- preferredExtent := explicitExtent := nil.
- computedPref := self preferredExtent.
+ preferredExtent := explicitExtent := nil.
+ computedPref := self preferredExtent.
] ensure:[
- preferredExtent := savedPref.
- explicitExtent := savedExplicit.
+ preferredExtent := savedPref.
+ explicitExtent := savedExplicit.
].
^ computedPref
!
@@ -8946,9 +8947,9 @@
cornerChangedFlag:aBoolean
"/ cornerChangedFlag := aBoolean
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagCornerChanged
+ flagBits := flagBits bitOr:FlagCornerChanged
] ifFalse:[
- flagBits := flagBits bitClear:FlagCornerChanged
+ flagBits := flagBits bitClear:FlagCornerChanged
].
!
@@ -8971,9 +8972,9 @@
extentChangedBeforeCreatedFlag:aBoolean
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagExtentChangedBeforeCreated
+ flagBits := flagBits bitOr:FlagExtentChangedBeforeCreated
] ifFalse:[
- flagBits := flagBits bitClear:FlagExtentChangedBeforeCreated
+ flagBits := flagBits bitClear:FlagExtentChangedBeforeCreated
].
!
@@ -8985,9 +8986,9 @@
extentChangedFlag:aBoolean
"/ extentChangedFlag := aBoolean
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagExtentChanged
+ flagBits := flagBits bitOr:FlagExtentChanged
] ifFalse:[
- flagBits := flagBits bitClear:FlagExtentChanged
+ flagBits := flagBits bitClear:FlagExtentChanged
].
!
@@ -9018,11 +9019,11 @@
focusViewToCheck == self ifTrue:[ ^ true ].
focusViewToCheck notNil ifTrue:[
- "mhmh - is there a delegation to me ?"
- (delegate := focusViewToCheck delegate) notNil ifTrue:[
- delegate == self ifTrue:[^ true].
- ^ delegate askFor:#delegatesTo: with:self
- ]
+ "mhmh - is there a delegation to me ?"
+ (delegate := focusViewToCheck delegate) notNil ifTrue:[
+ delegate == self ifTrue:[^ true].
+ ^ delegate askFor:#delegatesTo: with:self
+ ]
].
^ false
@@ -9059,7 +9060,7 @@
sview := self.
[ (sview := sview container) notNil ] whileTrue:[
- sview == aViewOrComponent ifTrue:[^ true].
+ sview == aViewOrComponent ifTrue:[^ true].
].
^ false
!
@@ -9202,9 +9203,9 @@
originChangedFlag:aBoolean
"/ originChangedFlag := aBoolean
aBoolean ifTrue:[
- flagBits := flagBits bitOr:FlagOriginChanged
+ flagBits := flagBits bitOr:FlagOriginChanged
] ifFalse:[
- flagBits := flagBits bitClear:FlagOriginChanged
+ flagBits := flagBits bitClear:FlagOriginChanged
].
!
@@ -9214,10 +9215,10 @@
newBits := flagBits bitClear:(FlagOriginChanged bitOr: FlagExtentChanged).
originChanged ifTrue:[
- newBits := newBits bitOr:FlagOriginChanged
+ newBits := newBits bitOr:FlagOriginChanged
].
extentChanged ifTrue:[
- newBits := newBits bitOr:FlagExtentChanged
+ newBits := newBits bitOr:FlagExtentChanged
].
flagBits := newBits.
@@ -9229,13 +9230,13 @@
newBits := flagBits bitClear:((FlagOriginChanged bitOr: FlagExtentChanged) bitOr: FlagCornerChanged).
originChanged ifTrue:[
- newBits := newBits bitOr:FlagOriginChanged
+ newBits := newBits bitOr:FlagOriginChanged
].
extentChanged ifTrue:[
- newBits := newBits bitOr:FlagExtentChanged
+ newBits := newBits bitOr:FlagExtentChanged
].
cornerChanged ifTrue:[
- newBits := newBits bitOr:FlagCornerChanged
+ newBits := newBits bitOr:FlagCornerChanged
].
flagBits := newBits.
@@ -9269,48 +9270,48 @@
"/ If I have an explicit preferredExtent..
explicitExtent notNil ifTrue:[
- ^ explicitExtent
+ ^ explicitExtent
].
"/ If I have a cached preferredExtent value..
preferredExtent notNil ifTrue:[
- ^ preferredExtent
+ ^ preferredExtent
].
"/ mhmh - if I have subViews, collect their
"/ preferred bounds ...
subViews notNil ifTrue:[
- maxX := maxY := 0.
- subViews do:[:aSubView |
- |org corn|
-
- org := aSubView computeOrigin.
- corn := org + aSubView preferredExtent.
- maxX := maxX max:corn x.
- maxY := maxY max:corn y.
- ]
+ maxX := maxY := 0.
+ subViews do:[:aSubView |
+ |org corn|
+
+ org := aSubView computeOrigin.
+ corn := org + aSubView preferredExtent.
+ maxX := maxX max:corn x.
+ maxY := maxY max:corn y.
+ ]
].
"/ mhmh - if I have components, collect their preferred bounds ...
components notNil ifTrue:[
- maxX isNil ifTrue:[
- maxX := maxY := 0.
- ].
- components do:[:aComponent |
- |bounds org corn|
-
- bounds := aComponent preferredBounds.
- corn := bounds corner.
- maxX := maxX max:corn x.
- maxY := maxY max:corn y.
- ]
+ maxX isNil ifTrue:[
+ maxX := maxY := 0.
+ ].
+ components do:[:aComponent |
+ |bounds org corn|
+
+ bounds := aComponent preferredBounds.
+ corn := bounds corner.
+ maxX := maxX max:corn x.
+ maxY := maxY max:corn y.
+ ]
].
"/ nothing found - return the actual size
maxX isNil ifTrue:[
- ^ self extent.
+ ^ self extent.
].
^ maxX @ maxY.
@@ -9393,7 +9394,7 @@
Actually, its a historical leftover"
windowGroup notNil ifTrue:[
- ^ windowGroup sensor hasButtonMotionEventFor:self
+ ^ windowGroup sensor hasButtonMotionEventFor:self
].
^ super buttonMotionEventPending
@@ -9411,7 +9412,7 @@
myClass := self class.
(myClass == View or:[myClass == SimpleView]) ifTrue:[
- ^ ViewSpec "/ CompositeSpecCollection
+ ^ ViewSpec "/ CompositeSpecCollection
].
"/ try: appending 'Spec' to my classes name
@@ -9419,8 +9420,8 @@
myName := self class name.
cls := Smalltalk classNamed:(myName , 'Spec').
cls notNil ifTrue:[
- cls := cls autoload.
- (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
+ cls := cls autoload.
+ (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
].
(myName endsWith:'View') ifTrue:[
@@ -9431,12 +9432,12 @@
"/ (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
"/ ].
- "/ try with 'View' replaced by 'Spec'
- cls := Smalltalk classNamed:((myName copyButLast:4) , 'View').
- cls notNil ifTrue:[
- cls := cls autoload.
- (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
- ]
+ "/ try with 'View' replaced by 'Spec'
+ cls := Smalltalk classNamed:((myName copyButLast:4) , 'View').
+ cls notNil ifTrue:[
+ cls := cls autoload.
+ (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
+ ]
].
"/ fall back for all others
@@ -9454,10 +9455,10 @@
"return a symbol describing my style (one of: #dialog, #popUp or #normal)"
self isPopUpView ifTrue:[
- ^ #popUp
+ ^ #popUp
].
self isMDIChildView ifTrue:[
- ^ #mdiChild
+ ^ #mdiChild
].
^ #normal
@@ -9491,11 +9492,11 @@
This does not make the view visible (needs a #map for that)"
self drawableId isNil ifTrue:[
- "
- make certain that superview is created also
- "
- superView notNil ifTrue:[
- superView view create.
+ "
+ make certain that superview is created also
+ "
+ superView notNil ifTrue:[
+ superView view create.
"/ "and put my controller into the superviews controller list"
"/ controller notNil ifTrue:[
@@ -9503,43 +9504,43 @@
"/ controller manager:(superView controller manager)
"/ ]
"/ ]
- ] ifFalse:[
- device isNil ifTrue:[ device := Screen current ].
- "/
- "/ if the display is not already dispatching events,
- "/ this starts the event process.
- "/
- device startDispatch
- ].
-
- cursor notNil ifTrue:[
- cursor := cursor onDevice:device.
- ].
-
- self extentChangedBeforeCreatedFlag ifTrue:[
- "/ this is true, if the extent was changed before
- "/ this view was created (and therefore, no sizeChangeEvent
- "/ was sent to me, which would notify children.)
- "/ have to do this here.
- self sizeChanged:nil. "/ must tell children (if any)
- ].
- self hasExplicitExtent ifFalse:[
- self resize
- ].
-
- self physicalCreate.
-
- viewBackground notNil ifTrue:[
- self setViewBackground
- ].
-
- self initEvents.
-
- "
- this is the first create,
- force sizechange messages to be sent to the view
- "
- self originChangedFlag:true extentChangedFlag:true
+ ] ifFalse:[
+ device isNil ifTrue:[ device := Screen current ].
+ "/
+ "/ if the display is not already dispatching events,
+ "/ this starts the event process.
+ "/
+ device startDispatch
+ ].
+
+ cursor notNil ifTrue:[
+ cursor := cursor onDevice:device.
+ ].
+
+ self extentChangedBeforeCreatedFlag ifTrue:[
+ "/ this is true, if the extent was changed before
+ "/ this view was created (and therefore, no sizeChangeEvent
+ "/ was sent to me, which would notify children.)
+ "/ have to do this here.
+ self sizeChanged:nil. "/ must tell children (if any)
+ ].
+ self hasExplicitExtent ifFalse:[
+ self resize
+ ].
+
+ self physicalCreate.
+
+ viewBackground notNil ifTrue:[
+ self setViewBackground
+ ].
+
+ self initEvents.
+
+ "
+ this is the first create,
+ force sizechange messages to be sent to the view
+ "
+ self originChangedFlag:true extentChangedFlag:true
]
"Modified: 28.3.1997 / 13:50:17 / cg"
@@ -9550,7 +9551,7 @@
self drawableId isNil ifTrue:[self create].
subViews notNil ifTrue:[
- subViews do:[:subView | subView createWithAllSubViews]
+ subViews do:[:subView | subView createWithAllSubViews]
]
!
@@ -9566,10 +9567,10 @@
is always sent."
shadowColor notNil ifTrue:[
- shadowColor := shadowColor onDevice:device
+ shadowColor := shadowColor onDevice:device
].
lightColor notNil ifTrue:[
- lightColor := lightColor onDevice:device
+ lightColor := lightColor onDevice:device
].
"Created: 13.1.1997 / 21:51:59 / cg"
@@ -9588,25 +9589,25 @@
slowly migrating to use layoutObjects ...
"
layout notNil ifTrue:[
- superView notNil ifTrue:[
- (self originOrExtentOrCornerChanged) ifTrue:[
- layout isAssociation ifTrue:[
- layout key == #extent ifTrue:[
- org := 1@1.
- ext := layout value.
- ] ifFalse:[
- self shouldImplement.
- ].
- ] ifFalse:[
- r := (layout rectangleRelativeTo:(superView viewRectangle)
- preferred:[self preferredBounds]).
- org := r origin rounded.
- ext := r extent rounded.
- ].
- self pixelOrigin:org extent:ext.
- ].
- ].
- ^ self.
+ superView notNil ifTrue:[
+ (self originOrExtentOrCornerChanged) ifTrue:[
+ layout isAssociation ifTrue:[
+ layout key == #extent ifTrue:[
+ org := 1@1.
+ ext := layout value.
+ ] ifFalse:[
+ self shouldImplement.
+ ].
+ ] ifFalse:[
+ r := (layout rectangleRelativeTo:(superView viewRectangle)
+ preferred:[self preferredBounds]).
+ org := r origin rounded.
+ ext := r extent rounded.
+ ].
+ self pixelOrigin:org extent:ext.
+ ].
+ ].
+ ^ self.
].
"if the extent is not the one we created the window with ..."
@@ -9618,20 +9619,20 @@
self originChangedFlag ifTrue:[
"/ org := self computeOrigin.
"/ self pixelOrigin:org.
- originRule notNil ifTrue:[
- self pixelOrigin:self computeOrigin
- ] ifFalse:[
- relativeOrigin notNil ifTrue:[
- self originFromRelativeOrigin:relativeOrigin
- ] ifFalse:[
- shown ifTrue:[
- device moveWindow:self drawableId x:left y:top.
- ] ifFalse:[
- self pixelOrigin:left@top
- ].
- ].
- ].
- self originChangedFlag:false
+ originRule notNil ifTrue:[
+ self pixelOrigin:self computeOrigin
+ ] ifFalse:[
+ relativeOrigin notNil ifTrue:[
+ self originFromRelativeOrigin:relativeOrigin
+ ] ifFalse:[
+ shown ifTrue:[
+ device moveWindow:self drawableId x:left y:top.
+ ] ifFalse:[
+ self pixelOrigin:left@top
+ ].
+ ].
+ ].
+ self originChangedFlag:false
]
"Modified: 18.6.1996 / 21:44:03 / cg"
@@ -9652,24 +9653,24 @@
realized ifFalse:[^ self].
(windowGroup notNil and:[windowGroup isModal]) ifTrue:[
- masterGroup := windowGroup previousGroup.
- windowGroup focusView:nil.
+ masterGroup := windowGroup previousGroup.
+ windowGroup focusView:nil.
].
self unmap.
self flush.
masterGroup notNil ifTrue:[
- "
- this is a kludge for IRIS and others which do not provide backingstore:
- when we hide a modalbox (such as a searchbox) which covered
- a scrollbar, the scrollbars bitblt-method will copy from the
- not-yet redrawn area - effectively clearing the scroller.
- We need a short delay here, since at this time, the expose event has
- not yet arrived.
- "
- Delay waitForSeconds:0.05.
- masterGroup processExposeEvents
+ "
+ this is a kludge for IRIS and others which do not provide backingstore:
+ when we hide a modalbox (such as a searchbox) which covered
+ a scrollbar, the scrollbars bitblt-method will copy from the
+ not-yet redrawn area - effectively clearing the scroller.
+ We need a short delay here, since at this time, the expose event has
+ not yet arrived.
+ "
+ Delay waitForSeconds:0.05.
+ masterGroup processExposeEvents
].
"/ WindowGroup leaveSignal raise.
@@ -9689,7 +9690,7 @@
ignored here."
self isPopUpView ifTrue:[
- self hide
+ self hide
].
^ self
!
@@ -9699,8 +9700,8 @@
For topViews, the windowManager will choose (or ask for) the
views position on the screen.
Notice:
- Actually, this method is only valid for topViews;
- however, it is defined here to allow things like 'Button new realize'"
+ Actually, this method is only valid for topViews;
+ however, it is defined here to allow things like 'Button new realize'"
self mapAt:nil iconified:false
@@ -9712,8 +9713,8 @@
For topViews, if aPoint is nonNil, the views origin is located there
(unless you have a dictator as windowManager ;-)
Notice:
- Actually, this method is only valid for topViews;
- however, it is defined here to allow things like 'Button new realize'"
+ Actually, this method is only valid for topViews;
+ however, it is defined here to allow things like 'Button new realize'"
self mapAt:aPoint iconified:false
@@ -9726,61 +9727,61 @@
(unless you have a dictator as windowManager ;-).
If the iconified argument is true, the window is created as icon initially.
Notice:
- Actually, this method is only valid for topViews;
- however, it is defined here to allow things like 'Button new realize'"
+ Actually, this method is only valid for topViews;
+ however, it is defined here to allow things like 'Button new realize'"
|subs|
realized ifFalse:[
- self drawableId isNil ifTrue:[
- "
- first time ?
- yes, realize (implies a map)
- "
- self realizeKeepingGroup:false at:aPoint iconified:iconified
- ] ifFalse:[
- "
- no, map only
- "
- realized := true.
- aPoint isNil ifTrue:[
- iconified ifTrue:[
- device
- mapView:self id:self drawableId iconified:iconified
- atX:0 y:0
- width:width height:height
- minExtent:(self minExtent) maxExtent:(self maxExtent).
- ] ifFalse:[
- device mapWindow:self drawableId.
- ]
- ] ifFalse:[
- left := aPoint x.
- top := aPoint y.
- device
- mapView:self id:self drawableId iconified:iconified
- atX:left y:top
- width:width height:height
- minExtent:(self minExtent) maxExtent:(self maxExtent).
- ].
-
- "/
- "/ implies that all realized subviews
- "/ are now also mapped
- "/
- "/ not needed for topViews - the mapped event does exactly the same
- "/ however, X does not generate mapped events for non-topViews
- "/ when a view gets deiconified.
-
- superView notNil ifTrue:[
- (subs := self subViews) notNil ifTrue:[
- subs do:[:v |
- v realized "shown" ifFalse:[
- v mapped
- ]
- ]
- ]
- ]
- ].
+ self drawableId isNil ifTrue:[
+ "
+ first time ?
+ yes, realize (implies a map)
+ "
+ self realizeKeepingGroup:false at:aPoint iconified:iconified
+ ] ifFalse:[
+ "
+ no, map only
+ "
+ realized := true.
+ aPoint isNil ifTrue:[
+ iconified ifTrue:[
+ device
+ mapView:self id:self drawableId iconified:iconified
+ atX:0 y:0
+ width:width height:height
+ minExtent:(self minExtent) maxExtent:(self maxExtent).
+ ] ifFalse:[
+ device mapWindow:self drawableId.
+ ]
+ ] ifFalse:[
+ left := aPoint x.
+ top := aPoint y.
+ device
+ mapView:self id:self drawableId iconified:iconified
+ atX:left y:top
+ width:width height:height
+ minExtent:(self minExtent) maxExtent:(self maxExtent).
+ ].
+
+ "/
+ "/ implies that all realized subviews
+ "/ are now also mapped
+ "/
+ "/ not needed for topViews - the mapped event does exactly the same
+ "/ however, X does not generate mapped events for non-topViews
+ "/ when a view gets deiconified.
+
+ superView notNil ifTrue:[
+ (subs := self subViews) notNil ifTrue:[
+ subs do:[:v |
+ v realized "shown" ifFalse:[
+ v mapped
+ ]
+ ]
+ ]
+ ]
+ ].
]
"Modified: 23.8.1996 / 14:53:55 / stefan"
@@ -9842,28 +9843,28 @@
"/ ]
"/ ].
(viewGravity notNil "and:[viewGravity ~~ #NorthWest]") ifTrue:[
- gc viewGravity:viewGravity.
+ gc viewGravity:viewGravity.
].
(bitGravity notNil "and:[bitGravity ~~ #NorthWest]") ifTrue:[
- isInputOnly ifFalse:[
- gc bitGravity:bitGravity.
- ]
+ isInputOnly ifFalse:[
+ gc bitGravity:bitGravity.
+ ]
].
viewShape notNil ifTrue:[
- self setViewShape
+ self setViewShape
].
(backed notNil and:[backed ~~ false]) ifTrue:[
- self backingStore:backed.
+ self backingStore:backed.
].
self saveUnder ifTrue:[
- self saveUnder:true.
+ self saveUnder:true.
].
cursor notNil ifTrue:[
- self setCursor
+ self setCursor
].
name notNil ifTrue:[
- self windowName:name.
+ self windowName:name.
].
"Modified: / 9.4.1998 / 20:18:12 / cg"
@@ -9902,14 +9903,14 @@
"realize all my subviews - but not myself."
subViews notNil ifTrue:[
- subViews do:[:subView |
- subView realize
- ]
+ subViews do:[:subView |
+ subView realize
+ ]
].
components notNil ifTrue:[
- components do:[:component |
- component realize
- ]
+ components do:[:component |
+ component realize
+ ]
].
"Modified: 5.9.1995 / 23:30:47 / claus"
@@ -9952,11 +9953,11 @@
self fetchDeviceResources.
self drawableId isNil ifTrue:[
- self create.
- self drawableId isNil ifTrue:[
- ('SimpleView [warning]: could not create view: ' , self class name) errorPrintCR.
- ^ self
- ]
+ self create.
+ self drawableId isNil ifTrue:[
+ ('SimpleView [warning]: could not create view: ' , self class name) errorPrintCR.
+ ^ self
+ ]
].
self isBeingDestroyed:false. "/ in case a view gets rerealized
@@ -9965,85 +9966,85 @@
(windowGroup notNil
and:[superView isNil
and:[windowGroup isForModalSubview]]) ifTrue:[
- keep := true.
+ keep := true.
] ifFalse:[
- keep := keepGroupAsIs
+ keep := keepGroupAsIs
].
keep ifFalse:[
- "
- put myself into superviews windowgroup if there is a superview
- This is the default behavior, which may be suppressed by
- passing true as keepGroupAsIs-argument.
- (it may be useful to assign a separate windowGroup to
- a childView to have it execute independent of the parent
- -> an example is found in the fileBrowsers kill-button)
- "
- superView notNil ifTrue:[
- superGroup := superView windowGroup.
- (windowGroup notNil and:[superGroup ~~ windowGroup]) ifTrue:[
- "
- mhmh - seems that the windowgroup has changed ....
- "
+ "
+ put myself into superviews windowgroup if there is a superview
+ This is the default behavior, which may be suppressed by
+ passing true as keepGroupAsIs-argument.
+ (it may be useful to assign a separate windowGroup to
+ a childView to have it execute independent of the parent
+ -> an example is found in the fileBrowsers kill-button)
+ "
+ superView notNil ifTrue:[
+ superGroup := superView windowGroup.
+ (windowGroup notNil and:[superGroup ~~ windowGroup]) ifTrue:[
+ "
+ mhmh - seems that the windowgroup has changed ....
+ "
"/ 'oops - wgroup change on realize' printNL.
- groupChange := true.
-
- "/
- "/ recursively change the windowGroup of
- "/ myself and all of my children
- "/
- self windowGroup:superGroup.
- ] ifFalse:[
- windowGroup isNil ifTrue:[
- "/
- "/ only change the group of myself -
- "/ subviews will fetch it when realized.
- "/
- windowGroup := superGroup.
- superGroup notNil ifTrue:[superGroup addView:self].
- ]
- ].
- ].
+ groupChange := true.
+
+ "/
+ "/ recursively change the windowGroup of
+ "/ myself and all of my children
+ "/
+ self windowGroup:superGroup.
+ ] ifFalse:[
+ windowGroup isNil ifTrue:[
+ "/
+ "/ only change the group of myself -
+ "/ subviews will fetch it when realized.
+ "/
+ windowGroup := superGroup.
+ superGroup notNil ifTrue:[superGroup addView:self].
+ ]
+ ].
+ ].
].
(self originOrExtentChanged) ifTrue:[
- self fixSize.
- self sizeChanged:nil.
+ self fixSize.
+ self sizeChanged:nil.
].
position notNil ifTrue:[
- self origin:position.
+ self origin:position.
].
(subViews notNil or:[components notNil]) ifTrue:[
- (realized not or:[groupChange]) ifTrue:[
- self isHiddenOnRealize ifFalse:[
- self realizeAllSubViews.
- ].
- ].
+ (realized not or:[groupChange]) ifTrue:[
+ self isHiddenOnRealize ifFalse:[
+ self realizeAllSubViews.
+ ].
+ ].
].
self preRealize.
iconified ifTrue:[
- realized ifFalse:[
- self mapIconified
- ]
+ realized ifFalse:[
+ self mapIconified
+ ]
] ifFalse:[
- (self isHiddenOnRealize not
- and:[visibilityChannel isNil or:[visibilityChannel value]]) ifTrue:[
- self setInnerClip.
-
- realized ifFalse:[
- "
- now, make the view visible
- "
- self mapAt:position
- ]
- ]
+ (self isHiddenOnRealize not
+ and:[visibilityChannel isNil or:[visibilityChannel value]]) ifTrue:[
+ self setInnerClip.
+
+ realized ifFalse:[
+ "
+ now, make the view visible
+ "
+ self mapAt:position
+ ]
+ ]
].
controller notNil ifTrue:[
- controller startUp
+ controller startUp
].
self postRealize
@@ -10057,22 +10058,22 @@
"recreate (i.e. tell X about me) after a snapin or a migration"
self drawableId isNil ifTrue:[
- super recreate.
- self physicalCreate.
-
- viewBackground notNil ifTrue:[
- self setViewBackground
- ].
-
- "
- XXX has to be changed: eventmasks are device specific -
- XXX will not allow restart on another Workstation-type.
- XXX event masks must become symbolic
- "
- eventMask isNil ifTrue:[
- eventMask := device defaultEventMask
- ].
- device setEventMask:eventMask in:self drawableId
+ super recreate.
+ self physicalCreate.
+
+ viewBackground notNil ifTrue:[
+ self setViewBackground
+ ].
+
+ "
+ XXX has to be changed: eventmasks are device specific -
+ XXX will not allow restart on another Workstation-type.
+ XXX event masks must become symbolic
+ "
+ eventMask isNil ifTrue:[
+ eventMask := device defaultEventMask
+ ].
+ device setEventMask:eventMask in:self drawableId
]
!
@@ -10080,16 +10081,16 @@
"realize all my subviews and all of their subviews - but not myself."
subViews notNil ifTrue:[
- subViews do:[:subView |
- subView realize.
- subView recursiveRealizeAllSubViews.
- ]
+ subViews do:[:subView |
+ subView realize.
+ subView recursiveRealizeAllSubViews.
+ ]
].
components notNil ifTrue:[
- components do:[:component |
- component realize.
- component recursiveRealizeAllSubViews.
- ]
+ components do:[:component |
+ component realize.
+ component recursiveRealizeAllSubViews.
+ ]
].
!
@@ -10100,18 +10101,18 @@
are known to ignore this ..."
realized ifFalse:[
- self drawableId isNil ifTrue:[
- self realize
- ] ifFalse:[
- "
- now, make the view visible
- "
- realized := true.
- device
- mapView:self id:self drawableId iconified:false
- atX:left y:top width:width height:height
- minExtent:(self minExtent) maxExtent:(self maxExtent)
- ]
+ self drawableId isNil ifTrue:[
+ self realize
+ ] ifFalse:[
+ "
+ now, make the view visible
+ "
+ realized := true.
+ device
+ mapView:self id:self drawableId iconified:false
+ atX:left y:top width:width height:height
+ minExtent:(self minExtent) maxExtent:(self maxExtent)
+ ]
]
"Created: 8.5.1996 / 09:33:06 / cg"
@@ -10134,14 +10135,14 @@
self drawableId isNil ifTrue:[self create].
self drawableId notNil ifTrue:[
- aWindowGroup ~~ windowGroup ifTrue:[
- windowGroup notNil ifTrue:[
- windowGroup removeView:self
- ].
- windowGroup := aWindowGroup.
- aWindowGroup addTopView:self.
- ].
- self remap.
+ aWindowGroup ~~ windowGroup ifTrue:[
+ windowGroup notNil ifTrue:[
+ windowGroup removeView:self
+ ].
+ windowGroup := aWindowGroup.
+ aWindowGroup addTopView:self.
+ ].
+ self remap.
]
"Modified: 3.5.1996 / 23:59:30 / stefan"
@@ -10152,17 +10153,17 @@
"rerealize myself with all subviews"
self drawableId notNil ifTrue:[
- realized := true.
- self realizeAllSubViews.
- superView isNil ifTrue:[
- device
- mapView:self id:self drawableId iconified:false
- atX:left y:top width:width height:height
- minExtent:(self minExtent) maxExtent:(self maxExtent)
- ] ifFalse:[
- device
- mapWindow:self drawableId
- ].
+ realized := true.
+ self realizeAllSubViews.
+ superView isNil ifTrue:[
+ device
+ mapView:self id:self drawableId iconified:false
+ atX:left y:top width:width height:height
+ minExtent:(self minExtent) maxExtent:(self maxExtent)
+ ] ifFalse:[
+ device
+ mapWindow:self drawableId
+ ].
]
"Modified: 28.1.1997 / 17:59:28 / cg"
@@ -10174,10 +10175,10 @@
preferredExtent), but may be redefined in some subclasses."
self hasExplicitExtent ifFalse:[
- layout isNil ifTrue:[
- self extent:(self preferredExtent).
- self explicitExtent:false.
- ].
+ layout isNil ifTrue:[
+ self extent:(self preferredExtent).
+ self explicitExtent:false.
+ ].
]
"Modified: 15.7.1996 / 11:20:27 / cg"
@@ -10194,24 +10195,24 @@
"unmap the view - the view stays created (but invisible), and can be remapped again later."
realized ifTrue:[
- realized := false.
- self drawableId notNil ifTrue:[
- device unmapWindow:self drawableId.
-
- "/ make it go away immediately
- "/ (this hides the subview killing)
- self flush.
- ].
-
- "/ Normally, this is not correct with X, where the
- "/ unmap is an asynchronous operation.
- "/ (shown is cleared also in unmapped event)
- "/ Do it anyway, to avoid synchronisation problems.
-
- shown ifTrue:[
- shown := false.
- dependents notNil ifTrue:[ self changed:#visibility ].
- ]
+ realized := false.
+ self drawableId notNil ifTrue:[
+ device unmapWindow:self drawableId.
+
+ "/ make it go away immediately
+ "/ (this hides the subview killing)
+ self flush.
+ ].
+
+ "/ Normally, this is not correct with X, where the
+ "/ unmap is an asynchronous operation.
+ "/ (shown is cleared also in unmapped event)
+ "/ Do it anyway, to avoid synchronisation problems.
+
+ shown ifTrue:[
+ shown := false.
+ dependents notNil ifTrue:[ self changed:#visibility ].
+ ]
].
"
@@ -10221,9 +10222,9 @@
top extent:200@200.
sub := View
- origin:0.2@0.2
- corner:0.8@0.8
- in:top.
+ origin:0.2@0.2
+ corner:0.8@0.8
+ in:top.
sub viewBackground:Color red.
sub hiddenOnRealize:true.
@@ -10263,11 +10264,11 @@
drawFocusFrame
self hasFocus ifTrue:[
- (styleSheet at:#focusHighlightStyle) == #win95 ifTrue:[
- self windowGroup focusCameByTab ifTrue:[
- self drawWin95FocusFrame
- ]
- ].
+ (styleSheet at:#focusHighlightStyle) == #win95 ifTrue:[
+ self windowGroup focusCameByTab ifTrue:[
+ self drawWin95FocusFrame
+ ]
+ ].
]
!
@@ -10322,16 +10323,16 @@
self fill:flashColor.
messageOrNil notNil ifTrue:[
- self withForeground:self whiteColor do:[
- self displayString:messageOrNil centeredAt:(self center).
- ].
+ self withForeground:self whiteColor do:[
+ self displayString:messageOrNil centeredAt:(self center).
+ ].
].
Delay waitForSeconds:0.1.
self fill:self whiteColor.
messageOrNil notNil ifTrue:[
- self withForeground:self blackColor do:[
- self displayString:messageOrNil centeredAt:(self center).
- ].
+ self withForeground:self blackColor do:[
+ self displayString:messageOrNil centeredAt:(self center).
+ ].
].
Delay waitForSeconds:0.1.
self fill:viewBackground.
@@ -10365,13 +10366,13 @@
until the receiver's windowGroupProcess gets rescheduled."
shown ifFalse:[
- "/ no need to add damage - will get a full-redraw anyway,
- "/ when I will be shown again.
- ^ self
+ "/ no need to add damage - will get a full-redraw anyway,
+ "/ when I will be shown again.
+ ^ self
].
self
- invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
- repairNow:false
+ invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
+ repairNow:false
"Modified: / 9.11.1998 / 21:04:16 / cg"
!
@@ -10386,9 +10387,9 @@
intil the receiver's windowGroupProcess gets rescheduled."
shown ifFalse:[
- "/ no need to add damage - will get a full-redraw anyway,
- "/ when I will be shown again.
- ^ self
+ "/ no need to add damage - will get a full-redraw anyway,
+ "/ when I will be shown again.
+ ^ self
].
self invalidate:aRectangle repairNow:false
@@ -10404,15 +10405,15 @@
|r currentTransformation|
shown ifFalse:[
- "/ no need to add damage - will get a full-redraw anyway,
- "/ when I will be shown again.
- ^ self
+ "/ no need to add damage - will get a full-redraw anyway,
+ "/ when I will be shown again.
+ ^ self
].
r := aRectangle.
currentTransformation := gc transformation.
currentTransformation notNil ifTrue:[
- r := (currentTransformation transformPoint:r origin) corner:(currentTransformation transformPoint:r corner).
+ r := (currentTransformation transformPoint:r origin) corner:(currentTransformation transformPoint:r corner).
].
self invalidateDeviceRectangle:r repairNow:doRepairNow
@@ -10427,17 +10428,17 @@
The given rectangle is in device coordinate space."
shown ifFalse:[
- "/ no need to add damage - will get a full-redraw anyway,
- "/ when I will be shown again.
- ^ self
+ "/ no need to add damage - will get a full-redraw anyway,
+ "/ when I will be shown again.
+ ^ self
].
(aRectangle width <= 0 or:[aRectangle height <= 0]) ifTrue:[
- "/ no need to add damages with extent <= 0
- ^ self
+ "/ no need to add damages with extent <= 0
+ ^ self
].
self sensor addDamage:aRectangle view:self.
doRepairNow ifTrue:[
- self repairDamage
+ self repairDamage
]
"Modified: / 10.11.1998 / 01:55:03 / cg"
@@ -10450,13 +10451,13 @@
damaged areas right now."
shown ifFalse:[
- "/ no need to add damage - will get a full-redraw anyway,
- "/ when I will be shown again.
- ^ self
+ "/ no need to add damage - will get a full-redraw anyway,
+ "/ when I will be shown again.
+ ^ self
].
self
- invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
- repairNow:doRepair
+ invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
+ repairNow:doRepair
"Created: 19.4.1997 / 11:58:04 / cg"
"Modified: 19.4.1997 / 12:00:00 / cg"
@@ -10466,9 +10467,9 @@
"add a damage to redraw all of the receiver, to its input event queue."
shown ifFalse:[
- "/ no need to add damage - will get a full-redraw anyway,
- "/ when I will be shown again.
- ^ self
+ "/ no need to add damage - will get a full-redraw anyway,
+ "/ when I will be shown again.
+ ^ self
].
self invalidate:(Rectangle left:x top:y width:w height:h)
!
@@ -10479,9 +10480,9 @@
damaged areas right now."
shown ifFalse:[
- "/ no need to add damage - will get a full-redraw anyway,
- "/ when I will be shown again.
- ^ self
+ "/ no need to add damage - will get a full-redraw anyway,
+ "/ when I will be shown again.
+ ^ self
].
self invalidate:(Rectangle left:x top:y width:w height:h) repairNow:doRepair
!
@@ -10499,24 +10500,24 @@
"redraw a part of the view immediately."
self
- redrawX:(aRectangle left)
- y:(aRectangle top)
- width:(aRectangle width)
- height:(aRectangle height)
+ redrawX:(aRectangle left)
+ y:(aRectangle top)
+ width:(aRectangle width)
+ height:(aRectangle height)
"Modified: 19.4.1997 / 11:54:23 / cg"
!
redrawComponentsIn:aRectangle
components notNil ifTrue:[
- components do:[:aComponent |
- |thisFrame is|
-
- thisFrame := aComponent bounds.
- (thisFrame notNil and:[thisFrame intersects:aRectangle]) ifTrue:[
- aComponent displayOn:self
- ]
- ]
+ components do:[:aComponent |
+ |thisFrame is|
+
+ thisFrame := aComponent bounds.
+ (thisFrame notNil and:[thisFrame intersects:aRectangle]) ifTrue:[
+ aComponent displayOn:self
+ ]
+ ]
].
!
@@ -10530,15 +10531,15 @@
currentTransformation := gc transformation.
currentTransformation isNil ifTrue:[
- lx := x.
- ly := y.
- lw := w.
- lh := h.
+ lx := x.
+ ly := y.
+ lw := w.
+ lh := h.
] ifFalse:[
- lx := currentTransformation applyInverseToX:x.
- ly := currentTransformation applyInverseToY:y.
- lw := currentTransformation applyInverseScaleX:w.
- lh := currentTransformation applyInverseScaleY:h.
+ lx := currentTransformation applyInverseToX:x.
+ ly := currentTransformation applyInverseToY:y.
+ lw := currentTransformation applyInverseScaleX:w.
+ lh := currentTransformation applyInverseScaleY:h.
].
self redrawX:lx y:ly width:lw height:lh
!
@@ -10558,7 +10559,7 @@
self clippingBounds:area.
self clearExposedAreaInRedraw ifTrue:[
- self clearRectangleX:x y:y width:w height:h.
+ self clearRectangleX:x y:y width:w height:h.
].
self renderOrRedraw.
@@ -10572,12 +10573,12 @@
renderOrRedraw
renderer notNil ifTrue:[
- "/ experimental feature
- thisContext isRecursive ifTrue:[self halt].
- renderer render:self on:self at:0@0
+ "/ experimental feature
+ thisContext isRecursive ifTrue:[self halt].
+ renderer render:self on:self at:0@0
] ifFalse:[
- "/ redraw everything - a fallBack for lazy views.
- self redraw.
+ "/ redraw everything - a fallBack for lazy views.
+ self redraw.
].
!
@@ -10588,10 +10589,10 @@
|wg|
shown ifTrue:[
- (wg := self windowGroup) notNil ifTrue:[
- "/ wg processRealExposeEventsFor:self. "/ this ignores map/unmap
- wg processExposeEventsFor:self. "/ this handles map/unmap
- ]
+ (wg := self windowGroup) notNil ifTrue:[
+ "/ wg processRealExposeEventsFor:self. "/ this ignores map/unmap
+ wg processExposeEventsFor:self. "/ this handles map/unmap
+ ]
]
"Created: / 19.4.1997 / 12:01:13 / cg"
@@ -10692,10 +10693,10 @@
wCont := self widthOfContents.
currentTransformation := gc transformation.
currentTransformation notNil ifTrue:[
- wCont := currentTransformation applyScaleX:wCont.
+ wCont := currentTransformation applyScaleX:wCont.
].
self scrollHorizontalTo:
- ((((wCont * percent) / 100.0) + 0.5) asInteger)
+ ((((wCont * percent) / 100.0) + 0.5) asInteger)
!
scrollLeft
@@ -10711,8 +10712,8 @@
|viewOrigin|
nPixels ~~ 0 ifTrue:[
- viewOrigin := self viewOrigin.
- self scrollTo:((viewOrigin x - nPixels) @ viewOrigin y).
+ viewOrigin := self viewOrigin.
+ self scrollTo:((viewOrigin x - nPixels) @ viewOrigin y).
]
"Modified: / 20.8.1996 / 17:35:09 / stefan"
@@ -10725,8 +10726,8 @@
|viewOrigin|
nPixels ~~ 0 ifTrue:[
- viewOrigin := self viewOrigin.
- self scrollTo:(viewOrigin x @ (viewOrigin y + nPixels))
+ viewOrigin := self viewOrigin.
+ self scrollTo:(viewOrigin x @ (viewOrigin y + nPixels))
]
"Modified: / 20-08-1996 / 17:34:36 / stefan"
@@ -10746,8 +10747,8 @@
|viewOrigin|
nPixels ~~ 0 ifTrue:[
- viewOrigin := self viewOrigin.
- self scrollTo:((viewOrigin x + nPixels) @ viewOrigin y)
+ viewOrigin := self viewOrigin.
+ self scrollTo:((viewOrigin x + nPixels) @ viewOrigin y)
]
"Modified: / 20.8.1996 / 17:35:37 / stefan"
@@ -10779,12 +10780,12 @@
currentTransformation := gc transformation.
currentTransformation notNil ifTrue:[
- wCont := currentTransformation applyScaleX:wCont.
- hCont := currentTransformation applyScaleY:hCont.
+ wCont := currentTransformation applyScaleX:wCont.
+ hCont := currentTransformation applyScaleY:hCont.
].
self scrollTo:
- ((((wCont * percent x) / 100.0) + 0.5) asInteger) @
- ((((hCont * percent y) / 100.0) + 0.5) asInteger)
+ ((((wCont * percent x) / 100.0) + 0.5) asInteger) @
+ ((((hCont * percent y) / 100.0) + 0.5) asInteger)
"Created: 5.8.1996 / 12:15:53 / stefan"
"Modified: 5.8.1996 / 12:42:57 / stefan"
@@ -10798,7 +10799,7 @@
wCont := self widthOfContents.
currentTransformation := gc transformation.
currentTransformation notNil ifTrue:[
- wCont := currentTransformation applyScaleX:wCont.
+ wCont := currentTransformation applyScaleX:wCont.
].
self scrollHorizontalTo:((wCont - self innerWidth) max:0)
!
@@ -10849,10 +10850,10 @@
hCont := self heightOfContents.
currentTransformation := gc transformation.
currentTransformation notNil ifTrue:[
- hCont := currentTransformation applyScaleY:hCont.
+ hCont := currentTransformation applyScaleY:hCont.
].
self scrollVerticalTo:
- ((((hCont * percent) / 100.0) + 0.5) asInteger)
+ ((((hCont * percent) / 100.0) + 0.5) asInteger)
!
verticalScrollStep
@@ -10892,9 +10893,9 @@
point."
^ self
- scrollTo:newOrigin
- redraw:doRedraw
- allowScrollBeyondContents:false
+ scrollTo:newOrigin
+ redraw:doRedraw
+ allowScrollBeyondContents:false
!
scrollTo:newOrigin redraw:doRedraw allowScrollBeyondContents:allowScrollBeyondContents
@@ -10914,12 +10915,12 @@
wCont := self widthOfContents.
currentTransformation := gc transformation.
currentTransformation isNil ifTrue:[
- orgY := orgX := 0
+ orgY := orgX := 0
] ifFalse:[
- wCont := (currentTransformation applyScaleX:wCont) rounded.
- hCont := (currentTransformation applyScaleY:hCont) rounded.
- orgY := currentTransformation translation y negated.
- orgX := currentTransformation translation x negated
+ wCont := (currentTransformation applyScaleX:wCont) rounded.
+ hCont := (currentTransformation applyScaleY:hCont) rounded.
+ orgY := currentTransformation translation y negated.
+ orgX := currentTransformation translation x negated
].
iw := self innerWidth.
@@ -10931,20 +10932,20 @@
y := newOrigin y.
allowScrollBeyondContents ifFalse:[
- x + iw > wCont ifTrue:[
- x := (wCont - iw) asInteger.
- ].
+ x + iw > wCont ifTrue:[
+ x := (wCont - iw) asInteger.
+ ].
].
x < 0 ifTrue:[
- x := 0
+ x := 0
].
allowScrollBeyondContents ifFalse:[
- y + ih > hCont ifTrue:[
- y := (hCont - ih) asInteger.
- ].
+ y + ih > hCont ifTrue:[
+ y := (hCont - ih) asInteger.
+ ].
].
y < 0 ifTrue:[
- y := 0.
+ y := 0.
].
dX := x - orgX.
@@ -10955,79 +10956,79 @@
].
(wg := self windowGroup) notNil ifTrue:[
- wg processRealExposeEventsFor:self.
+ wg processRealExposeEventsFor:self.
].
self originWillChange.
(shown and:[doRedraw]) ifTrue:[
- copyWidth := iw - dX abs.
- copyHeight := ih - dY abs.
- ((copyWidth > 0) and:[copyHeight > 0]) ifTrue:[
- "/ some of the currently displayed pixels
- "/ remain visible. Copy them
-
- dX < 0 ifTrue:[
- fromX := margin.
- toX := margin - dX.
- redrawX := margin
- ] ifFalse:[
- fromX := margin + dX.
- toX := margin.
- redrawX := margin + copyWidth.
- ].
- dY < 0 ifTrue:[
- fromY := margin.
- toY := margin - dY.
- redrawY := margin.
- ] ifFalse:[
- fromY := margin + dY.
- toY := margin.
- redrawY := margin + copyHeight.
- ].
- self catchExpose.
- self setViewOrigin:(x @ y).
- self
- copyFrom:self
- x:fromX y:fromY
- toX:toX y:toY
- width:copyWidth
- height:copyHeight
- async:true.
-
- self setInnerClip.
-
- "first redraw the rectangle above/below the
- copied area (with full width)."
-
- copyHeight < ih ifTrue:[
- self invalidateDeviceRectangle:((margin@redrawY) extent:(iw@(ih - copyHeight))) repairNow:false.
+ copyWidth := iw - dX abs.
+ copyHeight := ih - dY abs.
+ ((copyWidth > 0) and:[copyHeight > 0]) ifTrue:[
+ "/ some of the currently displayed pixels
+ "/ remain visible. Copy them
+
+ dX < 0 ifTrue:[
+ fromX := margin.
+ toX := margin - dX.
+ redrawX := margin
+ ] ifFalse:[
+ fromX := margin + dX.
+ toX := margin.
+ redrawX := margin + copyWidth.
+ ].
+ dY < 0 ifTrue:[
+ fromY := margin.
+ toY := margin - dY.
+ redrawY := margin.
+ ] ifFalse:[
+ fromY := margin + dY.
+ toY := margin.
+ redrawY := margin + copyHeight.
+ ].
+ self catchExpose.
+ self setViewOrigin:(x @ y).
+ self
+ copyFrom:self
+ x:fromX y:fromY
+ toX:toX y:toY
+ width:copyWidth
+ height:copyHeight
+ async:true.
+
+ self setInnerClip.
+
+ "first redraw the rectangle above/below the
+ copied area (with full width)."
+
+ copyHeight < ih ifTrue:[
+ self invalidateDeviceRectangle:((margin@redrawY) extent:(iw@(ih - copyHeight))) repairNow:false.
"/ self
"/ redrawDeviceX:margin y:redrawY
"/ width:iw height:(ih - copyHeight).
- ].
-
- "second redraw the rectangle left/right of the
- copied area"
-
- copyWidth < iw ifTrue:[
- self invalidateDeviceRectangle:((redrawX@toY) extent:((iw-copyWidth)@copyHeight)) repairNow:false.
+ ].
+
+ "second redraw the rectangle left/right of the
+ copied area"
+
+ copyWidth < iw ifTrue:[
+ self invalidateDeviceRectangle:((redrawX@toY) extent:((iw-copyWidth)@copyHeight)) repairNow:false.
"/ self redrawDeviceX:redrawX y:toY
"/
"/ width:iw - copyWidth
"/ height:copyHeight.
- ].
- self waitForExpose.
- ] ifFalse:[
- "redraw everything"
-
- self setViewOrigin:(x @ y).
- self invalidateDeviceRectangle:((margin@margin) extent:(iw@ih)) repairNow:false.
+ ].
+ self waitForExpose.
+ ] ifFalse:[
+ "redraw everything"
+
+ self setViewOrigin:(x @ y).
+ self invalidateDeviceRectangle:((margin@margin) extent:(iw@ih)) repairNow:false.
"/ self redrawDeviceX:margin y:margin
"/ width:iw
"/ height:ih.
- ].
+ ].
] ifFalse:[
- self setViewOrigin:(x @ y).
+ self setViewOrigin:(x @ y).
].
self originChanged:(dX negated @ dY negated).
@@ -11091,17 +11092,17 @@
"does not work:
- |v|
-
- v := View new open.
- v displayLineFrom:0@0 to:50@50
+ |v|
+
+ v := View new open.
+ v displayLineFrom:0@0 to:50@50
does work:
- |v|
-
- v := View new openAndWait.
- v displayLineFrom:0@0 to:50@50
+ |v|
+
+ v := View new openAndWait.
+ v displayLineFrom:0@0 to:50@50
"
!
@@ -11138,10 +11139,10 @@
The view will be handled by its own process, effectively running in
parallel.
Notice:
- This entry is for NON-topviews, which want to be served
- autonomous from their real topview.
- (see the fileBrowsers kill-button
- when executing unix commands as an example)"
+ This entry is for NON-topviews, which want to be served
+ autonomous from their real topview.
+ (see the fileBrowsers kill-button
+ when executing unix commands as an example)"
|wg mainGroup|
@@ -11150,7 +11151,7 @@
mainGroup := WindowGroup activeGroup.
mainGroup notNil ifTrue:[
- mainGroup := mainGroup mainGroup.
+ mainGroup := mainGroup mainGroup.
].
wg isForModalSubview:true. "/ make it handle update events for the main group
@@ -11186,14 +11187,14 @@
"
the same:
- YesNoBox new open
-
- YesNoBox new openModal
+ YesNoBox new open
+
+ YesNoBox new openModal
different:
- (Button label:'hello') open
-
- (Button label:'hello') openModal
+ (Button label:'hello') open
+
+ (Button label:'hello') openModal
"
!
@@ -11241,8 +11242,8 @@
isPopup := self isPopUpView.
aWindowGroup notNil ifTrue:[
- mainGroup := aWindowGroup mainGroup.
- mainView := mainGroup mainView.
+ mainGroup := aWindowGroup mainGroup.
+ mainView := mainGroup mainView.
].
"/ set the windowgroup BEFORE sending the aboutToOpen notification
@@ -11250,161 +11251,161 @@
"/ this allows for the handler to enqueue an event,
"/ or to add event hooks.
Processor activeProcessIsSystemProcess ifTrue:[
- "
- put myself into the modal group, let it handle events for
- me as well. This is only a half way solution, since the view
- is not modal at all ... however, the only situation
- where this happens is with modal boxes popped while in a
- modal browser. You will forgive me for that inconvenience.
- "
- windowGroup := aWindowGroup.
- aWindowGroup notNil ifTrue:[aWindowGroup addTopView:self].
+ "
+ put myself into the modal group, let it handle events for
+ me as well. This is only a half way solution, since the view
+ is not modal at all ... however, the only situation
+ where this happens is with modal boxes popped while in a
+ modal browser. You will forgive me for that inconvenience.
+ "
+ windowGroup := aWindowGroup.
+ aWindowGroup notNil ifTrue:[aWindowGroup addTopView:self].
] ifFalse:[
- previousGroup := WindowGroup activeGroup.
+ previousGroup := WindowGroup activeGroup.
].
windowGroup isNil ifTrue:[
- "/ create a new window group put myself into it
- windowGroup := self windowGroupClass new.
- windowGroup
- addTopView:self;
- setPreviousGroup:previousGroup.
-
- superView notNil ifTrue:[
- "/
- "/ special: this is a modal subview,
- "/ prevent the view from reassigning its windowGroup when realized
- "/ (subviews normally place themself into the superviews group)
- "/
- windowGroup isForModalSubview:true.
- ].
+ "/ create a new window group put myself into it
+ windowGroup := self windowGroupClass new.
+ windowGroup
+ addTopView:self;
+ setPreviousGroup:previousGroup.
+
+ superView notNil ifTrue:[
+ "/
+ "/ special: this is a modal subview,
+ "/ prevent the view from reassigning its windowGroup when realized
+ "/ (subviews normally place themself into the superviews group)
+ "/
+ windowGroup isForModalSubview:true.
+ ].
].
makeTransient := true.
transientFor := mainView.
isPopup ifFalse:[
- "/ the following allows for knowledgable programmers to suppress dialog boxes,
- "/ or to patch common controls right before opening...
- (Dialog aboutToOpenBoxNotificationSignal raiseRequestWith:self) == #abort ifTrue:[
- ^ self
- ].
- windowGroup isNil ifTrue:[
- "/ the aboutToOpenBoxNotificationSignal handler destroyed me (although it should proceed with #abort)!!
- "/ Transcript showCR:(self class name,': box opening suppressed by aboutToOpenBoxNotificationSignal handler').
- ^ self.
- ].
-
- "/ the following allows for hooks to add a bell sound or other whenever a dialog opens
- device modalWindowListenersDo:[:listener | listener aboutToOpenWindow:self].
-
- "/ the following raises the corresponding mainview, so the dialog shows above
- "/ any currently covered view. However, be careful if being debugged, or if this dialog
- "/ is opened by an already open dialog.
- (mainView isNil or:[mainView windowGroup isInModalLoop]) ifTrue:[
- (previousGroup notNil and:[previousGroup isModal]) ifTrue:[
- transientFor := previousGroup mainView.
- ].
- ].
-
- transientFor notNil ifTrue:[
- (transientFor windowGroup isInModalLoop
- or:[ transientFor windowGroup isDebugged
- or:[ WindowGroup activeGroup isDebugged
- ]]) ifFalse:[
- self tracePoint:#cg message:'activate'.
- self debuggingCodeFor:#cg is:[ Transcript showCR:transientFor; showCR:transientFor windowGroup. ].
- transientFor activate; setForegroundWindow.
+ "/ the following allows for knowledgable programmers to suppress dialog boxes,
+ "/ or to patch common controls right before opening...
+ (Dialog aboutToOpenBoxNotificationSignal raiseRequestWith:self) == #abort ifTrue:[
+ ^ self
+ ].
+ windowGroup isNil ifTrue:[
+ "/ the aboutToOpenBoxNotificationSignal handler destroyed me (although it should proceed with #abort)!!
+ "/ Transcript showCR:(self class name,': box opening suppressed by aboutToOpenBoxNotificationSignal handler').
+ ^ self.
+ ].
+
+ "/ the following allows for hooks to add a bell sound or other whenever a dialog opens
+ device modalWindowListenersDo:[:listener | listener aboutToOpenWindow:self].
+
+ "/ the following raises the corresponding mainview, so the dialog shows above
+ "/ any currently covered view. However, be careful if being debugged, or if this dialog
+ "/ is opened by an already open dialog.
+ (mainView isNil or:[mainView windowGroup isInModalLoop]) ifTrue:[
+ (previousGroup notNil and:[previousGroup isModal]) ifTrue:[
+ transientFor := previousGroup mainView.
+ ].
+ ].
+
+ transientFor notNil ifTrue:[
+ (transientFor windowGroup isInModalLoop
+ or:[ transientFor windowGroup isDebugged
+ or:[ WindowGroup activeGroup isDebugged
+ ]]) ifFalse:[
+ self tracePoint:#cg message:'activate'.
+ self debuggingCodeFor:#cg is:[ Transcript showCR:transientFor; showCR:transientFor windowGroup. ].
+ transientFor activate; setForegroundWindow.
"/ ] ifTrue:[
"/ makeTransient := false.
- ]
- ].
+ ]
+ ].
].
"/ makeTransient ifTrue:[
- transientFor notNil ifTrue:[
- "set the transient property.
- This is currently used for X, to tell the Window Manager
- That this view should be always on top of the mainView"
- self drawableId isNil ifTrue:[self create].
- device setTransient:self drawableId for:transientFor id.
- ].
+ transientFor notNil ifTrue:[
+ "set the transient property.
+ This is currently used for X, to tell the Window Manager
+ That this view should be always on top of the mainView"
+ self drawableId isNil ifTrue:[self create].
+ device setTransient:self drawableId for:transientFor id.
+ ].
"/ ].
self raise.
Processor activeProcessIsSystemProcess ifTrue:[
- self realize
+ self realize
] ifFalse:[
- "
- show a stop-cursor in the suspended window groups
- "
- (mainGroup notNil and:[isPopup not]) ifTrue:[
- mainGroup showCursor:(Cursor stop).
- previousGroup ~~ mainGroup ifTrue:[
- previousGroup showCursor:(Cursor stop).
- ].
- cursorChanged := true.
- ].
-
- "
- go dispatch events in this new group
- (thus current windowgroup is blocked from interaction)
- "
- AbortOperationRequest handle:[:ex |
- "/ the dialog/popup is aborted - hide it. Care for another abort during the hide.
- AbortOperationRequest handle:[:ex2 |
- "/ an aborted hide (possibly due to a cancelled user confirmation or similar)
- self breakPoint:#cg.
- ex exit.
- ] do:[
- self hide.
- realized ifTrue:[
- "/ self halt. "/ hide handled and closeRequest not wanted:
- ex exit.
- ].
- ].
- ] do:[
- [
- [
- windowGroup startupModal:[realized and:aBlock] forGroup:aWindowGroup
- ] ifCurtailed:[
- self hide.
- ]
- ] ensure:[
- aWindowGroup notNil ifTrue:[
- aWindowGroup graphicsDevice sync. "that's a round trip - make sure that all drawing has been processed"
- "/ ensure that eventListener runs here ...
- Delay waitForMilliseconds:50.
- aWindowGroup processExposeEvents.
-
- (self isPopUpView or:[ReturnFocusWhenClosingModalBoxes]) ifTrue:[
- "
- return the input focus to the previously active group's top.
- This helps with window managers which need an explicit click
- on the view for the focus.
- Only do this, if the previous group is still having the focus.
- (i.e. no other view was opened in the meantime)
- "
- aWindowGroup graphicsDevice focusView isNil ifTrue:[
- tops := aWindowGroup topViews.
- (tops notEmptyOrNil) ifTrue:[
- tops first getKeyboardFocus
- ].
- ].
- ].
-
- "
- restore cursors in the changed groups
- "
- cursorChanged notNil ifTrue:[
- mainGroup restoreCursors.
- previousGroup ~~ mainGroup ifTrue:[
- previousGroup restoreCursors.
- ].
- ].
- ].
- Dialog boxClosedNotificationSignal raiseRequestWith:self.
- ]
- ].
+ "
+ show a stop-cursor in the suspended window groups
+ "
+ (mainGroup notNil and:[isPopup not]) ifTrue:[
+ mainGroup showCursor:(Cursor stop).
+ previousGroup ~~ mainGroup ifTrue:[
+ previousGroup showCursor:(Cursor stop).
+ ].
+ cursorChanged := true.
+ ].
+
+ "
+ go dispatch events in this new group
+ (thus current windowgroup is blocked from interaction)
+ "
+ AbortOperationRequest handle:[:ex |
+ "/ the dialog/popup is aborted - hide it. Care for another abort during the hide.
+ AbortOperationRequest handle:[:ex2 |
+ "/ an aborted hide (possibly due to a cancelled user confirmation or similar)
+ self breakPoint:#cg.
+ ex exit.
+ ] do:[
+ self hide.
+ realized ifTrue:[
+ "/ self halt. "/ hide handled and closeRequest not wanted:
+ ex exit.
+ ].
+ ].
+ ] do:[
+ [
+ [
+ windowGroup startupModal:[realized and:aBlock] forGroup:aWindowGroup
+ ] ifCurtailed:[
+ self hide.
+ ]
+ ] ensure:[
+ aWindowGroup notNil ifTrue:[
+ aWindowGroup graphicsDevice sync. "that's a round trip - make sure that all drawing has been processed"
+ "/ ensure that eventListener runs here ...
+ Delay waitForMilliseconds:50.
+ aWindowGroup processExposeEvents.
+
+ (self isPopUpView or:[ReturnFocusWhenClosingModalBoxes]) ifTrue:[
+ "
+ return the input focus to the previously active group's top.
+ This helps with window managers which need an explicit click
+ on the view for the focus.
+ Only do this, if the previous group is still having the focus.
+ (i.e. no other view was opened in the meantime)
+ "
+ aWindowGroup graphicsDevice focusView isNil ifTrue:[
+ tops := aWindowGroup topViews.
+ (tops notEmptyOrNil) ifTrue:[
+ tops first getKeyboardFocus
+ ].
+ ].
+ ].
+
+ "
+ restore cursors in the changed groups
+ "
+ cursorChanged notNil ifTrue:[
+ mainGroup restoreCursors.
+ previousGroup ~~ mainGroup ifTrue:[
+ previousGroup restoreCursors.
+ ].
+ ].
+ ].
+ Dialog boxClosedNotificationSignal raiseRequestWith:self.
+ ]
+ ].
]
"Created: / 10-12-1995 / 14:06:14 / cg"
@@ -11465,25 +11466,25 @@
"
the same:
- (Button label:'hello') open
-
- (Button label:'hello') openModeless
+ (Button label:'hello') open
+
+ (Button label:'hello') openModeless
different:
- YesNoBox new open
-
- YesNoBox new openModeless
+ YesNoBox new open
+
+ YesNoBox new openModeless
"
"
(almost) the same:
- YesNoBox new open
-
- YesNoBox new openModal
+ YesNoBox new open
+
+ YesNoBox new openModal
different:
- (Button label:'hello') open
-
- (Button label:'hello') openModal
+ (Button label:'hello') open
+
+ (Button label:'hello') openModal
"
"Modified: 24.7.1997 / 13:17:49 / cg"
@@ -11519,10 +11520,10 @@
self drawableId isNil ifTrue:[self create].
windowGroup isNil ifTrue:[
- newGroup := true.
- windowGroup := self windowGroupClass new.
+ newGroup := true.
+ windowGroup := self windowGroupClass new.
] ifFalse:[
- newGroup := false.
+ newGroup := false.
].
windowGroup addTopView:self.
@@ -11531,13 +11532,13 @@
device nonModalWindowListenersDo:[:listener | listener aboutToOpenWindow:self].
newGroup ifTrue:[
- (aPoint isNil and:[iconified not]) ifTrue:[
- windowGroup startupWith:[self realize].
- ] ifFalse:[
- windowGroup startupWith:[self realizeKeepingGroup:false at:aPoint iconified:iconified].
- ].
+ (aPoint isNil and:[iconified not]) ifTrue:[
+ windowGroup startupWith:[self realize].
+ ] ifFalse:[
+ windowGroup startupWith:[self realizeKeepingGroup:false at:aPoint iconified:iconified].
+ ].
] ifFalse:[
- self realizeInGroup.
+ self realizeInGroup.
].
"
@@ -11590,45 +11591,45 @@
another view (which is only available once visible),
use this to suspend the current process until the receiver is shown.
Caveat:
- we poll here for the view to be shown - we need a semaphore
- which is raised by the view in order to do it right."
+ we poll here for the view to be shown - we need a semaphore
+ which is raised by the view in order to do it right."
|wg n|
n := 0.
[self shown] whileFalse:[
- (device notNil and:[device isOpen not]) ifTrue:[^ self].
-
- "/ this was added to avoid a deadlock, when called from within
- "/ the event dispatch process (as when doing foo inspect there).
- n > (10 / 0.05) ifTrue:[
- 'SimpleView [info]: View not visible after 10 seconds - will not wait any longer in waitUntilVisible' infoPrintCR.
- ^ self
- ].
- n := n + 1.
- Delay waitForMilliseconds:50.
- (wg := self windowGroup) notNil ifTrue:[
- wg processExposeEvents.
- ].
+ (device notNil and:[device isOpen not]) ifTrue:[^ self].
+
+ "/ this was added to avoid a deadlock, when called from within
+ "/ the event dispatch process (as when doing foo inspect there).
+ n > (10 / 0.05) ifTrue:[
+ 'SimpleView [info]: View not visible after 10 seconds - will not wait any longer in waitUntilVisible' infoPrintCR.
+ ^ self
+ ].
+ n := n + 1.
+ Delay waitForMilliseconds:50.
+ (wg := self windowGroup) notNil ifTrue:[
+ wg processExposeEvents.
+ ].
].
"does not work (the view is in its opening phase,
when we attempt to draw a line - this gives an error, since
its internals are not yet correctly setup):
- |v|
-
- v := View new open.
- v displayLineFrom:0@0 to:50@50
+ |v|
+
+ v := View new open.
+ v displayLineFrom:0@0 to:50@50
does work (since we wait until the view has completely finished
its startup phase):
- |v|
-
- v := View new open.
- v waitUntilVisible.
- v displayLineFrom:0@0 to:50@50
+ |v|
+
+ v := View new open.
+ v waitUntilVisible.
+ v displayLineFrom:0@0 to:50@50
"
"Modified: / 08-08-2010 / 14:46:34 / cg"
@@ -11696,71 +11697,71 @@
be customized by additional widgets.
i.e. its typical use is like:
- |doNotShowHolder|
-
- doNotShowHolder := false asValue.
- Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
- |box|
-
- box := ex box.
- box verticalPanel
- add:(CheckBox label:('Do not show this information in the future.')
- model:doNotShowHolder).
- ] do:[
- Dialog information:'This is a standard information box.\(but has an additional check toggle in it)' withCRs.
- ].
+ |doNotShowHolder|
+
+ doNotShowHolder := false asValue.
+ Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
+ |box|
+
+ box := ex box.
+ box verticalPanel
+ add:(CheckBox label:('Do not show this information in the future.')
+ model:doNotShowHolder).
+ ] do:[
+ Dialog information:'This is a standard information box.\(but has an additional check toggle in it)' withCRs.
+ ].
Another application is to suppress dialogs, by returning #abort from the query
(of course, in real life, the Dialog call is deeply nested below the handler and done elsewhere):
- Dialog aboutToOpenBoxNotificationSignal
- answer:#abort
- do:[
- Dialog information:'This box is not shown.'
- ].
+ Dialog aboutToOpenBoxNotificationSignal
+ answer:#abort
+ do:[
+ Dialog information:'This box is not shown.'
+ ].
or to automatically answer all dialogs by simulating user entering a return:
- Dialog aboutToOpenBoxNotificationSignal
- handle:[:ex |
- ex box windowGroup sensor
- pushEvent:
- (WindowEvent
- keyPress:#Return
- rawKey:#Return
- hasShift:false ctrl:false alt:false meta:false
- button1:false button2:false button3:false
- x:1 y:1 view:ex box).
- ] do:[
- Transcript showCR:(Dialog confirm:'Please confirm.')
- ].
+ Dialog aboutToOpenBoxNotificationSignal
+ handle:[:ex |
+ ex box windowGroup sensor
+ pushEvent:
+ (WindowEvent
+ keyPress:#Return
+ rawKey:#Return
+ hasShift:false ctrl:false alt:false meta:false
+ button1:false button2:false button3:false
+ x:1 y:1 view:ex box).
+ ] do:[
+ Transcript showCR:(Dialog confirm:'Please confirm.')
+ ].
or an escape:
- Dialog aboutToOpenBoxNotificationSignal
- handle:[:ex |
- ex box windowGroup sensor
- pushEvent:
- (WindowEvent
- keyPress:#Escape
- rawKey:#Escape
- hasShift:false ctrl:false alt:false meta:false
- button1:false button2:false button3:false
- x:1 y:1 view:ex box).
- ] do:[
- Transcript showCR:(Dialog confirm:'Please confirm.')
- ].
+ Dialog aboutToOpenBoxNotificationSignal
+ handle:[:ex |
+ ex box windowGroup sensor
+ pushEvent:
+ (WindowEvent
+ keyPress:#Escape
+ rawKey:#Escape
+ hasShift:false ctrl:false alt:false meta:false
+ button1:false button2:false button3:false
+ x:1 y:1 view:ex box).
+ ] do:[
+ Transcript showCR:(Dialog confirm:'Please confirm.')
+ ].
Finally, a recorder may want to keep track of which dialogs have been opened:
(of course, again, the Dialog calls are deeply nested below the handler and done elsewhere):
- Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
- Transcript showCR:ex box topView label
- ] do:[
- Dialog information:'box #1.'.
- Dialog information:'box #2.'.
- Dialog confirm:'bla'.
- ].
+ Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
+ Transcript showCR:ex box topView label
+ ] do:[
+ Dialog information:'box #1.'.
+ Dialog information:'box #2.'.
+ Dialog confirm:'bla'.
+ ].
"
! !
@@ -11798,25 +11799,25 @@
be wrapped by other programs.
i.e. its typical use is like:
- Dialog boxClosedNotificationSignal handle:[:ex |
- Transcript showCR:'box closed'
- ] do:[
- Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
- Transcript showCR:'box about to open'
- ] do:[
- Dialog information:'This is a standard information box.'.
- ].
- ].
-
- Dialog boxClosedNotificationSignal handle:[:ex |
- Transcript showCR:'box closed'
- ] do:[
- Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
- Transcript showCR:'box about to open'
- ] do:[
- Dialog confirm:'Yes or No.'.
- ].
- ].
+ Dialog boxClosedNotificationSignal handle:[:ex |
+ Transcript showCR:'box closed'
+ ] do:[
+ Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
+ Transcript showCR:'box about to open'
+ ] do:[
+ Dialog information:'This is a standard information box.'.
+ ].
+ ].
+
+ Dialog boxClosedNotificationSignal handle:[:ex |
+ Transcript showCR:'box closed'
+ ] do:[
+ Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
+ Transcript showCR:'box about to open'
+ ] do:[
+ Dialog confirm:'Yes or No.'.
+ ].
+ ].
"
! !