[Pkg] The Trunk: Morphic-kb.243.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Nov 21 03:14:28 UTC 2009


Andreas Raab uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-kb.243.mcz

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

Name: Morphic-kb.243
Author: kb
Time: 20 November 2009, 6:02:23 am
UUID: 644ac6da-ec24-8c48-b190-a17e67370545
Ancestors: Morphic-kb.242

 - fix: #releaseSelection: prevented clearing the selection of MenuMorph when disappearing. This caused at least some of the glitches.
 - refactored TheWorldMainDockingBar to build a DockingBarMorph without blocks, but with tragets, selectors and arguments.

=============== Diff against Morphic-kb.242 ===============

Item was added:
+ ----- Method: MenuItemMorph>>subMenuUpdater:selector:arguments: (in category 'accessing') -----
+ subMenuUpdater: updater selector: selector arguments: arguments
+ 
+ 	subMenu := UpdatingMenuMorph new.
+ 	subMenu updater: updater updateSelector: selector arguments: arguments.
+ 	self changed.
+ !

Item was added:
+ ----- Method: TheWorldMainDockingBar>>saveAndQuitSqueak (in category 'menu actions') -----
+ saveAndQuitSqueak
+ 
+ 	SmalltalkImage current snapshot: true andQuit: true!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>saveImageAs (in category 'menu actions') -----
+ saveImageAs
+ 
+ 	SmalltalkImage current saveAs!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>newProjectMenuItemsOn: (in category 'submenu - projects') -----
  newProjectMenuItemsOn: menu
  
  	Project allSubclasses do: [ :each |
  		menu addItem: [ :item | 
  			item
  				contents: ('New ', each name) translated;
  				help: ('Start a new ', each name) translated;
+ 				target: self;
+ 				selector: #newProject:;
+ 				arguments: { each } ] ]!
- 				action: [ ProjectViewMorph openOn: each new ] ] ]!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>newProject: (in category 'menu actions') -----
+ newProject: projectClass
+ 
+ 	 ProjectViewMorph openOn: projectClass new!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>save (in category 'menu actions') -----
+ save
+ 
+ 	SmalltalkImage current snapshot: true andQuit: false!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>windowMenuFor:on: (in category 'submenu - windows') -----
  windowMenuFor: window on: menu
  
  	menu 
  		addItem: [ :item |
  			item
  				contents: 'Close';
+ 				target: window;
+ 				selector: #delete ];
- 				action: [ window delete ] ];
  		addItem: [ :item |
  			item 
  				contents: 'Toggle Full Screen';
+ 				target: window;
+ 				selector: #expandBoxHit ]!
- 				action: [ window expandBoxHit ] ]!

Item was added:
+ ----- Method: MenuItemMorph>>subMenuUpdater:selector: (in category 'accessing') -----
+ subMenuUpdater: updater selector: selector
+ 
+ 	subMenu := UpdatingMenuMorph new.
+ 	subMenu updater: updater updateSelector: selector.
+ 	self changed.
+ !

Item was changed:
  ----- Method: TheWorldMainDockingBar>>workspaceMenuItemOn: (in category 'submenu - tools') -----
  workspaceMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Workspace' translated;
  			help: 'Open a Workspace' translated;
  			icon: (self colorIcon: Preferences workspaceWindowColor);
+ 			target: StandardToolSet;
+ 			selector: #openWorkspace ]!
- 			action: [ StandardToolSet openWorkspace ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>transcriptMenuItemOn: (in category 'submenu - tools') -----
  transcriptMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Transcript' translated;
  			help: 'Open the Transcript' translated;
  			icon: (self colorIcon: Preferences transcriptWindowColor);
+ 			target: Transcript;
+ 			selector: #open ]!
- 			action: [ Transcript open ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>loadProjectMenuItemOn: (in category 'submenu - projects') -----
  loadProjectMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Load Project' translated;
  			help: 'Load a project from a file' translated;
  			icon: MenuIcons smallLoadProjectIcon;
+ 			target: self;
+ 			selector: #loadProject ]!
- 			action: [ World worldMenu loadProject ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>newProjectMenuItemOn: (in category 'submenu - projects') -----
  newProjectMenuItemOn: menu
  
  	menu addItem: [ :item | 
  		item
  			contents: 'New Project' translated;
  			help: 'Start a new MorphicProject' translated;
  			icon: MenuIcons smallProjectIcon;
+ 			target: self;
+ 			selector: #newProject:;
+ 			arguments: { MorphicProject };
- 			action: [ ProjectViewMorph openOn: MorphicProject new ];
  			addSubMenu: [ :subMenu |
  				self newProjectMenuItemsOn: subMenu ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>monticelloBrowserMenuItemOn: (in category 'submenu - tools') -----
  monticelloBrowserMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Monticello Browser' translated;
  			help: 'Open a Monticello Browser' translated;
  			icon: (self colorIcon: MCTool basicNew defaultBackgroundColor);
+ 			target: MCWorkingCopyBrowser;
+ 			selector: #open ]!
- 			action: [ MCWorkingCopyBrowser open ] ]!

Item was changed:
  ----- Method: UpdatingMenuMorph>>updateMenu (in category 'update') -----
  updateMenu
  	"Reconstitute the menu by first removing the contents and then building it afresh"
  
  	self removeAllMorphs.
+ 	arguments 
+ 		ifNil: [ updater perform: updateSelector with: self ]
+ 		ifNotNil: [ 
+ 			updater 
+ 				perform: updateSelector 
+ 				withArguments: arguments, { self } ]
+ 	!
- 	updater perform: updateSelector with: self
- 
- !

Item was changed:
  ----- Method: TheWorldMainDockingBar>>saveAsMenuItemOn: (in category 'submenu - squeak') -----
  saveAsMenuItemOn: menu
  
  	menu addItem: [ :item |	
  		item
  			contents: 'Save Image As...' translated;
  			help: 'Save the current state of Squeak on disk under a new name' translated;
  			icon: MenuIcons smallSaveAsIcon;
+ 			target: self;
+ 			selector: #saveImageAs ]!
- 			action: [ SmalltalkImage current saveAs ] ]!

Item was changed:
  MenuMorph subclass: #UpdatingMenuMorph
+ 	instanceVariableNames: 'updater updateSelector arguments'
- 	instanceVariableNames: 'updater updateSelector'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'Morphic-Menus'!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>jumpToProjectMenuItemOn: (in category 'submenu - projects') -----
  jumpToProjectMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Jump To Project' translated;
  			icon: MenuIcons smallForwardIcon;
+ 			subMenuUpdater: self
+ 			selector: #updateJumpToProjectSubMenu: ]!
- 			addUpdatingSubMenu: [ :subMenu |
- 				subMenu defaultTarget: Project.
- 				Project buildJumpToMenu: subMenu ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>quitMenuItemOn: (in category 'submenu - squeak') -----
  quitMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Quit' translated;
  			help: 'Quit out of Squeak' translated;
  			icon: MenuIcons smallQuitIcon;
+ 			target: self;
+ 			selector: #quitSqueak ]!
- 			action: [ 
- 				SmalltalkImage current
- 					snapshot: (
- 						self 
- 							confirm: 'Save changes before quitting?' translated 
- 							orCancel: [ ^self ])
- 					andQuit: true ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>saveMenuItemOn: (in category 'submenu - squeak') -----
  saveMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Save Image' translated;
  			help: 'Save the current state of Squeak on disk' translated;
  			icon: MenuIcons smallSaveIcon;
+ 			target: self;
+ 			selector: #saveImage ]!
- 			action: [ SmalltalkImage current snapshot: true andQuit: false ] ]!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>saveImage (in category 'menu actions') -----
+ saveImage
+ 
+ 	SmalltalkImage current saveSession!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>saveProjectMenuItemOn: (in category 'submenu - projects') -----
  saveProjectMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Save Project' translated;
  			help: 'Save this project on a file' translated;
  			icon: MenuIcons smallPublishIcon;
+ 			target: World;
+ 			selector: #saveOnFile ]!
- 			action: [ World saveOnFile ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>testRunnerMenuItemOn: (in category 'submenu - tools') -----
  testRunnerMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Test Runner' translated;
  			help: 'Open the Test Runner' translated;
  			icon: (self colorIcon: TestRunner basicNew defaultBackgroundColor);
+ 			target: TestRunner;
+ 			selector: #open ]!
- 			action: [ TestRunner open ] ]!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>quitSqueak (in category 'menu actions') -----
+ quitSqueak
+ 
+ 	^SmalltalkImage current
+ 		snapshot: (
+ 			self 
+ 				confirm: 'Save changes before quitting?' translated 
+ 				orCancel: [ ^self ])
+ 		andQuit: true
+ 
+ 	!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>loadProject (in category 'menu actions') -----
+ loadProject
+ 
+ 	World worldMenu loadProject!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>updateMenuItemOn: (in category 'submenu - squeak') -----
  updateMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Update Squeak' translated;
  			help: 'Load latest code updates via the internet' translated;
+ 			target: self;
+ 			selector: #updateSqueak ]!
- 			action: [ Utilities updateFromServer ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>saveAsNewVersionMenuItemOn: (in category 'submenu - squeak') -----
  saveAsNewVersionMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Save As New Version' translated;
  			help: 'Save the current state of Squeak on disk under a version-stamped name' translated;
  			icon: MenuIcons smallSaveAsIcon;
+ 			target: self;
+ 			selector: #saveAsNewVersion ]!
- 			action: [ SmalltalkImage current saveAsNewVersion ] ]!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>updateSqueak (in category 'menu actions') -----
+ updateSqueak
+ 
+ 	Utilities updateFromServer!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>aboutMenuItemOn: (in category 'submenu - squeak') -----
  aboutMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'About Squeak...' translated;
+ 			target: self;
+ 			selector: #aboutSqueak ]!
- 			action: [ ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>windowsMenuOn: (in category 'construction') -----
  windowsMenuOn: aDockingBar
  
  	aDockingBar addItem: [ :item |
  		item
  			contents: 'Windows' translated;
+ 			subMenuUpdater: self
+ 			selector: #listWindowsOn: ]
- 			addUpdatingSubMenu: [ :menu | 
- 				self listWindowsOn: menu ] ]
  !

Item was changed:
  ----- Method: TheWorldMainDockingBar>>saveAndQuitMenuItemOn: (in category 'submenu - squeak') -----
  saveAndQuitMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Save And Quit' translated;
  			help: 'Save the current state of Squeak on disk, and quit out of Squeak' translated;
  			icon: MenuIcons smallQuitIcon;
+ 			target: self;
+ 			selector: #saveAndQuitSqueak ]!
- 			action: [ SmalltalkImage current snapshot: true andQuit: true ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>previousProjectMenuItemOn: (in category 'submenu - projects') -----
  previousProjectMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Previous Project' translated;
  			help: 'Return to the most-recently-visited project' translated;
  			icon: MenuIcons smallBackIcon;
+ 			target: World;
+ 			selector: #goBack ]!
- 			action: [ World goBack ] ]!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>browserMenuItemOn: (in category 'submenu - tools') -----
  browserMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'Browser' translated;
  			help: 'Open a browser' translated;
  			icon: (self colorIcon: Preferences browserWindowColor);
+ 			target: StandardToolSet;
+ 			selector: #openClassBrowser ]!
- 			action: [ StandardToolSet openClassBrowser ] ]!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>aboutSqueak (in category 'menu actions') -----
+ aboutSqueak
+ !

Item was changed:
  ----- Method: TheWorldMainDockingBar>>fileListMenuItemOn: (in category 'submenu - tools') -----
  fileListMenuItemOn: menu
  
  	menu addItem: [ :item |
  		item
  			contents: 'File List' translated;
  			help: 'Open a file list' translated;
  			icon: (self colorIcon: Preferences fileListWindowColor);
+ 			target: StandardToolSet;
+ 			selector: #openFileList ]!
- 			action: [ StandardToolSet openFileList ] ]!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>saveAsNewVersion (in category 'menu actions') -----
+ saveAsNewVersion
+ 
+ 	SmalltalkImage current saveAsNewVersion!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>listWindowsOn: (in category 'submenu - windows') -----
  listWindowsOn: menu
  
  	| expanded |
  	expanded := SystemWindow windowsIn: World satisfying: [ :w | w isCollapsed not ].
  	expanded ifEmpty: [ 
  		menu addItem: [ :item | 
  			item
  				contents: 'No open Windows' translated;
+ 				isEnabled: false ] ].
- 				isEnabled: false;
- 				action: [ ] ] ].
  	expanded do: [ :each |
  		menu addItem: [ :item |
  			item 
  				contents: each label;
  				icon: (self colorIcon: each paneColor);
+ 				subMenuUpdater: self
+ 				selector: #windowMenuFor:on:
+ 				arguments: { each };
- 				addUpdatingSubMenu: [ :subMenu | self windowMenuFor: each on: subMenu ];
  				action: [ each activateAndForceLabelToShow ] ] ].!

Item was added:
+ ----- Method: UpdatingMenuMorph>>updater:updateSelector:arguments: (in category 'initialization') -----
+ updater: anObject updateSelector: aSelector arguments: anArray
+ 
+ 	updater := anObject.
+ 	updateSelector := aSelector.
+ 	arguments := anArray!

Item was added:
+ ----- Method: TheWorldMainDockingBar>>updateJumpToProjectSubMenu: (in category 'submenu - projects') -----
+ updateJumpToProjectSubMenu: subMenu
+ 
+ 	subMenu defaultTarget: Project.
+ 	Project buildJumpToMenu: subMenu!

Item was changed:
  ----- Method: MenuItemMorph>>deselect: (in category 'selecting') -----
  deselect: evt
+ 
  	self isSelected: false.
  	subMenu ifNotNil: [
+ 		owner ifNotNil: [ owner activeSubmenu: nil ] ].!
- 		owner ifNotNil:[owner activeSubmenu: nil].
- 		self removeAlarm: #deselectTimeOut:].!

Item was changed:
  ----- Method: MenuMorph>>releasesSelection: (in category 'events') -----
  releasesSelection: evt
  	" The MenuMorph releases its selection if the selected item releases it. 
  	Used in #selectItem:event: "
  
  	self selectedItem ifNil: [ ^true ].
+ 	evt ifNil: [ ^true ].
- 	evt ifNil: [ ^false ].
  	(self selectedItem containsPoint: evt position) ifTrue: [ ^true ].
  	^self selectedItem releasesSelection: evt!



More information about the Packages mailing list