[squeak-dev] The Inbox: Morphic-ct.1634.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Feb 29 10:46:56 UTC 2020


Christoph Thiede uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-ct.1634.mcz

==================== Summary ====================

Name: Morphic-ct.1634
Author: ct
Time: 29 February 2020, 11:46:44.317896 am
UUID: 71271fa2-4ed1-6d4f-8f58-30ed8165c367
Ancestors: Morphic-mt.1631

Proposal: Add pick button to NewColorPickerMorph that allows to pick a color from the Display. With this enhancement, NCPM is finally superior to the old ColorPickerMorph and could now replace the latter by the default preferences.

=============== Diff against Morphic-mt.1631 ===============

Item was changed:
  Morph subclass: #NewColorPickerMorph
+ 	instanceVariableNames: 'target setColorSelector hsvaMorph colorPresenter isPicking'
- 	instanceVariableNames: 'target setColorSelector hsvaMorph colorPresenter'
  	classVariableNames: 'UseIt'
  	poolDictionaries: ''
  	category: 'Morphic-Widgets'!
  
  !NewColorPickerMorph commentStamp: 'cmm 12/3/2010 13:36' prior: 0!
  A NewColorPickerMorph is a new widget for choosing colors in Morphic.  Instantiate a NewColorPickerMorph:
  
  	(NewColorPickerMorph
  		on: objectToHaveItsColorSet
  		getColorSelector: itsColorGetterSymbol
  		setColorSelector: itsColorSetterSymbol) openInWorld
  
  !

Item was changed:
  ----- Method: NewColorPickerMorph>>colorSelected: (in category 'model') -----
  colorSelected: aColor
+ 	self isPicking ifFalse: [
+ 		self targetColor: aColor].
- 	self targetColor: aColor.
  	self changed: #colorExpression!

Item was changed:
  ----- Method: NewColorPickerMorph>>initialize (in category 'initialize-release') -----
  initialize
+ 
  	super initialize.
+ 	isPicking := false.
+ 	self initializeHsvaMorph.!
- 	self initializeHsvaMorph!

Item was added:
+ ----- Method: NewColorPickerMorph>>isPicking (in category 'accessing') -----
+ isPicking
+ 
+ 	^ isPicking!

Item was added:
+ ----- Method: NewColorPickerMorph>>isPicking: (in category 'picking') -----
+ isPicking: aBoolean
+ 
+ 	isPicking := aBoolean.
+ 	self changed: #isPicking.
+ 	aBoolean ifTrue: [self pickColor].!

Item was changed:
  ----- Method: NewColorPickerMorph>>newBottomRow (in category 'initialize-release') -----
  newBottomRow
  	^ Morph new
+ 		color: Color transparent;
+ 		changeTableLayout;
+ 		listDirection: #leftToRight;
+ 		hResizing: #spaceFill; vResizing: #shrinkWrap;
+ 		height: 20;
+ 		cellGap: 4;
+ 		addMorphBack: self newPickButton;
+ 		addMorphBack: (StringMorph contents: 'Current selection:' translated);
+ 		addMorphBack: self newColorPresenterMorph;
+ 		addMorphBack: self newCloseButton;
+ 		yourself!
- 		 color: Color transparent ;
- 		 changeTableLayout ;
- 		 listDirection: #leftToRight ;
- 		 hResizing: #spaceFill; vResizing: #shrinkWrap ;
- 		 height: 20 ;
- 		 cellGap: 4 ;
- 		 addMorph: (StringMorph contents: 'Current selection:' translated) ;
- 		 addMorphBack: self newColorPresenterMorph ;
- 		 addMorphBack: self newCloseButton!

Item was changed:
  ----- Method: NewColorPickerMorph>>newCloseButton (in category 'initialize-release') -----
  newCloseButton
  	^ (PluggableButtonMorph
  		on: self
  		getState: nil
  		action: #delete
  		label: #closeButtonLabel)
+ 		vResizing: #spaceFill;
- 		 vResizing: #spaceFill ;
  		hResizing: #spaceFill;
+ 		balloonText: self closeButtonLabel;
+ 		yourself!
- 		 yourself!

Item was added:
+ ----- Method: NewColorPickerMorph>>newPickButton (in category 'initialize-release') -----
+ newPickButton
+ 	^ (PluggableButtonMorph
+ 		on: self
+ 		getState: #isPicking
+ 		action: #togglePicking
+ 		label: #pickingButtonLabel)
+ 		vResizing: #spaceFill;
+ 		hResizing: #spaceFill;
+ 		balloonText: self pickingButtonLabel;
+ 		yourself!

Item was added:
+ ----- Method: NewColorPickerMorph>>pickColor (in category 'picking') -----
+ pickColor
+ 	
+ 	| selectedColor |
+ 	[
+ 		| previousColor |
+ 		previousColor := self selectedColor.
+ 		selectedColor := self pickColorFromDisplay.
+ 		selectedColor ifNil: [^ self selectedColor: previousColor].
+ 	] ensure: [
+ 		self isPicking: false].
+ 	self selectedColor: selectedColor.!

Item was added:
+ ----- Method: NewColorPickerMorph>>pickColorFromDisplay (in category 'picking') -----
+ pickColorFromDisplay
+ 
+ 	[Sensor anyButtonPressed]
+ 		whileTrue;
+ 		whileFalse: [
+ 			Sensor peekKeyboard = Character escape ifTrue: [
+ 				Sensor flushKeyboard.
+ 				^ nil].
+ 			((ActiveHand world morphsAt: Sensor cursorPoint) includes: self) ifFalse: [
+ 				self selectedColor: (Display colorAt: Sensor cursorPoint)].
+ 			self world displayWorldSafely; runStepMethods].
+ 	Sensor yellowButtonPressed
+ 		ifTrue: [^ nil].
+ 	((ActiveHand world morphsAt: Sensor cursorPoint) includes: self)
+ 		ifTrue: [^ nil].
+ 	^ self selectedColor!

Item was added:
+ ----- Method: NewColorPickerMorph>>pickingButtonLabel (in category 'initialize-release') -----
+ pickingButtonLabel
+ 	^ 'Picking' translated!

Item was changed:
  ----- Method: NewColorPickerMorph>>setup (in category 'initialize-release') -----
  setup
+ 
  	self
+ 		color: Color white darker;
+ 		cornerStyle: #rounded;
+ 		changeTableLayout;
+ 		hResizing: #shrinkWrap;
+ 		vResizing: #shrinkWrap;
+ 		extent: 240 at 240;
+ 		addMorphBack: hsvaMorph;
+ 		addMorphBack: self newColorExpressionMorph;
+ 		addMorphBack: self newBottomRow;
+ 		layoutInset: 4;
+ 		cellGap: 2.
+ 	
+ 	Preferences menuAppearance3d
+ 		ifTrue: [self addDropShadow].!
- 		 color: (Color white darker) ;
- 		 cornerStyle: #rounded ;
- 		 changeTableLayout ;
- 		 hResizing: #shrinkWrap ;
- 		 vResizing: #shrinkWrap ;
- 		 extent: 240 at 240 ;
- 		 addMorphBack: hsvaMorph ;
- 		 addMorphBack: self newColorExpressionMorph ;
- 		 addMorphBack: self newBottomRow ;
- 		 layoutInset: 4 ;
- 		 cellGap: 2.
- 		
- 		Preferences menuAppearance3d
- 		ifTrue: [self addDropShadow].
- 	!

Item was changed:
  ----- Method: NewColorPickerMorph>>setupForProperties (in category 'initialize-release') -----
  setupForProperties
+ 
  	self
+ 		color: Color white darker;
+ 		changeTableLayout;
+ 		hResizing: #shrinkWrap;
+ 		vResizing: #shrinkWrap;
+ 		extent: 240 at 240;
+ 		addMorphBack: hsvaMorph;
+ 		layoutInset: 4;
+ 		cellGap: 2.!
- 		 color: (Color white darker) ;
- 		 changeTableLayout ;
- 		 hResizing: #shrinkWrap ;
- 		 vResizing: #shrinkWrap ;
- 		 extent: 240 at 240 ;
- 		 addMorphBack: hsvaMorph ;
- 		 layoutInset: 4 ;
- 		 cellGap: 2.!

Item was added:
+ ----- Method: NewColorPickerMorph>>togglePicking (in category 'picking') -----
+ togglePicking
+ 	self isPicking: self isPicking not!



More information about the Squeak-dev mailing list