[squeak-dev] The Trunk: Morphic-mt.2076.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Jan 26 09:45:19 UTC 2023
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.2076.mcz
==================== Summary ====================
Name: Morphic-mt.2076
Author: mt
Time: 26 January 2023, 10:45:16.970707 am
UUID: cc104798-6dc6-2a4d-9db9-c459cb739680
Ancestors: Morphic-mt.2075
Some code clean-up around a morph#s "highlight-for-mouse-down" feature.
=============== Diff against Morphic-mt.2075 ===============
Item was changed:
----- Method: LazyListMorph>>highlightPotentialDropRow:on: (in category 'drawing') -----
highlightPotentialDropRow: row on: aCanvas
| drawBounds |
drawBounds := self drawBoundsForRow: row.
drawBounds := drawBounds intersect: self bounds.
+ aCanvas frameRectangle: drawBounds width: 1 px color: self selectionColor asColor!
- aCanvas frameRectangle: drawBounds color: self selectionColor asColor!
Item was changed:
----- Method: Morph>>drawMouseDownHighlightOn: (in category 'drawing') -----
drawMouseDownHighlightOn: aCanvas
self highlightedForMouseDown ifTrue: [
self wantsRoundedCorners
+ ifTrue: [aCanvas frameRoundRect: self fullBounds radius: self cornerRadius width: 1 px color: self color darker darker]
+ ifFalse: [aCanvas frameRectangle: self fullBounds width: 1 px color: self color darker darker]].!
- ifTrue: [aCanvas frameRoundRect: self fullBounds radius: self cornerRadius width: 1 color: self color darker darker]
- ifFalse: [aCanvas frameRectangle: self fullBounds color: self color darker darker]].!
Item was removed:
- ----- Method: Morph>>highlightForMouseDown (in category 'drawing') -----
- highlightForMouseDown
- self highlightForMouseDown: true!
Item was removed:
- ----- Method: Morph>>highlightForMouseDown: (in category 'drawing') -----
- highlightForMouseDown: aBoolean
- aBoolean
- ifTrue:[self setProperty: #highlightedForMouseDown toValue: aBoolean]
- ifFalse:[self removeProperty: #highlightedForMouseDown. self resetExtension].
- self changed!
Item was changed:
----- Method: Morph>>highlightedForMouseDown (in category 'drawing') -----
highlightedForMouseDown
+
+ extension ifNil: [^ false].
+ ^ (self valueOfProperty: #highlightedForMouseDown) == true!
- ^(self valueOfProperty: #highlightedForMouseDown) == true!
Item was added:
+ ----- Method: Morph>>highlightedForMouseDown: (in category 'drawing') -----
+ highlightedForMouseDown: aBoolean
+
+ (extension isNil and: [aBoolean not]) ifTrue: [^ self].
+ self highlightedForMouseDown == aBoolean ifTrue: [^ self].
+ aBoolean
+ ifFalse: [self removeProperty: #highlightedForMouseDown]
+ ifTrue: [self setProperty: #highlightedForMouseDown toValue: aBoolean].
+ self changed.!
Item was changed:
----- Method: SimpleHierarchicalListMorph>>mouseDown: (in category 'event handling') -----
mouseDown: evt
| aMorph selectors |
aMorph := self itemFromPoint: evt position.
evt yellowButtonPressed "First check for option (menu) click"
ifTrue: [
(PluggableListMorph menuRequestUpdatesSelection and: [model okToChange]) ifTrue: [
aMorph == selectedMorph
ifFalse: [self setSelectedMorph: aMorph]].
^ self yellowButtonActivity: evt shiftPressed].
(aMorph notNil and:[aMorph inToggleArea: (aMorph point: evt position from: self)])
ifTrue:[^self toggleExpandedState: aMorph event: evt].
aMorph ifNil:[^super mouseDown: evt].
+ PluggableListMorph highlightPreSelection ifTrue: [
+ aMorph highlightedForMouseDown: true.
+ self setProperty: #highlightedMorph toValue: aMorph].
- aMorph highlightForMouseDown.
- self setProperty: #highlightedMorph toValue: aMorph.
selectors := Array
with: #click:
with: (self doubleClickEnabled ifTrue: [#doubleClick:] ifFalse: [nil])
with: nil
with: (self dragEnabled ifTrue:[#startDrag:] ifFalse:[nil]).
evt hand waitForClicksOrDrag: self event: evt selectors: selectors threshold: HandMorph dragThreshold "pixels".!
Item was changed:
----- Method: SimpleHierarchicalListMorph>>mouseUp: (in category 'event handling') -----
mouseUp: event
+ | clickedMorph |
+ model okToChange ifFalse: [^ self].
+ (clickedMorph := self itemFromPoint: event position) ifNil: [^ self].
- | clickedMorph highlightedMorph |
- clickedMorph := self itemFromPoint: event position.
- highlightedMorph := self valueOfProperty: #highlightedMorph ifAbsent: [].
- self removeProperty: #highlightedMorph.
-
- ((model okToChange not
- or: [clickedMorph isNil])
- or: [clickedMorph ~~ highlightedMorph]) ifTrue: [
- highlightedMorph ifNotNil: [:m | m highlightForMouseDown: false].
- ^ self].
+ (self valueOfProperty: #highlightedMorph ifAbsent: [])
+ ifNotNil: [:m |
+ m highlightedForMouseDown: false.
+ self removeProperty: #highlightedMorph].
+
((autoDeselect isNil or: [autoDeselect]) and: [clickedMorph == selectedMorph])
ifTrue: [self setSelectedMorph: nil]
ifFalse: [self setSelectedMorph: clickedMorph].
- highlightedMorph highlightForMouseDown: false.
event hand newKeyboardFocus: self.
Cursor normal show.!
Item was changed:
----- Method: SimpleHierarchicalListMorph>>removeObsoleteEventHandlers (in category 'obsolete') -----
removeObsoleteEventHandlers
scroller submorphs do:[:m|
+ m eventHandler: nil; highlightedForMouseDown: false; resetExtension].!
- m eventHandler: nil; highlightForMouseDown: false; resetExtension].!
Item was changed:
----- Method: SimpleHierarchicalListMorph>>startDrag: (in category 'drag and drop') -----
startDrag: evt
| itemMorph |
evt hand hasSubmorphs ifTrue: [^ self].
self model okToChange ifFalse: [^ self].
itemMorph := scroller submorphs
detect: [:any | any highlightedForMouseDown]
ifNone: [^ self].
"Prepare visuals."
+ itemMorph highlightedForMouseDown: false.
- itemMorph highlightForMouseDown: false.
self setSelectedMorph: itemMorph.
[ "Initiate drag."
(self model dragPassengerFor: itemMorph inMorph: self) ifNotNil: [:passenger | | ddm |
ddm := (self valueOfProperty: #dragTransferClass ifAbsent: [TransferMorph]) withPassenger: passenger from: self.
ddm dragTransferType: (self model dragTransferTypeForMorph: self).
ddm updateFromUserInputEvent: evt.
self model dragStartedFor: itemMorph transferMorph: ddm.
evt hand grabMorph: ddm].
] ensure: [
Cursor normal show.
evt hand releaseMouseFocus: self].!
More information about the Squeak-dev
mailing list
|