[squeak-dev] The Trunk: Morphic-kb.241.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Nov 21 03:11:50 UTC 2009
Andreas Raab uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-kb.241.mcz
==================== Summary ====================
Name: Morphic-kb.241
Author: kb
Time: 20 November 2009, 12:11:21 pm
UUID: 0ca38c8f-d991-684e-b25e-3cd6e17ef5a2
Ancestors: Morphic-kb.240
- added preamble to unscubscribe TheWorldMainDockingBar from system change notifications.
- added 2px vertical padding to MenuItemMorph in minHeight
- refactored the building of TheWorldMainDockingBar
- added a stub for Help menu
- played a bit with the Windows menu: now you can close a window from there.
=============== Diff against Morphic-kb.240 ===============
Item was added:
+ ----- 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;
+ action: [ ProjectViewMorph openOn: each new ] ] ]!
Item was changed:
----- Method: MenuItemMorph>>subMenuUpdater: (in category 'accessing') -----
subMenuUpdater: aBlock
subMenuUpdater := aBlock.
+ self updateSubMenu.
self changed.
!
Item was changed:
----- Method: TheWorldMainDockingBar class>>initialize (in category 'class initialization') -----
initialize
" self initialize "
- SystemChangeNotifier uniqueInstance noMoreNotificationsFor: self.
- SystemChangeNotifier uniqueInstance
- notify: self
- ofSystemChangesOfItem: #method
- using: #updateInstances:.
-
Locale addLocalChangedListener: self.
+ self updateInstances!
- self setTimeStamp!
Item was added:
+ ----- Method: TheWorldMainDockingBar>>windowMenuFor:on: (in category 'submenu - windows') -----
+ windowMenuFor: window on: menu
+
+ menu
+ addItem: [ :item |
+ item
+ contents: 'Close';
+ action: [ window delete ] ];
+ addItem: [ :item |
+ item
+ contents: 'Full Screen';
+ action: [ window fullScreen ] ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>workspaceMenuItemOn: (in category 'submenu - tools') -----
+ workspaceMenuItemOn: menu
- workspaceMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Workspace' translated;
+ help: 'Open a Workspace' translated;
+ icon: (self colorIcon: Preferences workspaceWindowColor);
+ action: [ StandardToolSet openWorkspace ] ]!
- item
- contents: 'Workspace';
- help: 'Open a workspace';
- icon: (self colorIcon: Preferences workspaceWindowColor);
- action: [ StandardToolSet openWorkspace ]!
Item was changed:
----- Method: MenuItemMorph>>minHeight (in category 'layout') -----
minHeight
| iconHeight |
iconHeight := self hasIcon
ifTrue: [self icon height + 2]
ifFalse: [0].
+ ^(self fontToUse height max: iconHeight) + 2!
- ^ self fontToUse height max: iconHeight !
Item was changed:
----- Method: TheWorldMainDockingBar>>transcriptMenuItemOn: (in category 'submenu - tools') -----
+ transcriptMenuItemOn: menu
- transcriptMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Transcript' translated;
+ help: 'Open the Transcript' translated;
+ icon: (self colorIcon: Preferences transcriptWindowColor);
+ action: [ Transcript open ] ]!
- item
- contents: 'Transcript';
- help: 'Open the Transcript';
- icon: (self colorIcon: Preferences transcriptWindowColor);
- action: [ Transcript open ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>loadProjectMenuItemOn: (in category 'submenu - projects') -----
+ loadProjectMenuItemOn: menu
- loadProjectMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Load Project' translated;
+ help: 'Load a project from a file' translated;
+ icon: MenuIcons smallLoadProjectIcon;
+ action: [ World worldMenu loadProject ] ]!
- item
- contents: 'Previous Project';
- help: 'Return to the most-recently-visited project';
- icon: MenuIcons smallBackIcon;
- action: [ World goBack ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>toolsMenuOn: (in category 'construction') -----
toolsMenuOn: aDockingBar
aDockingBar addItem: [ :item |
item
contents: 'Tools' translated;
+ addSubMenu: [ :menu |
+ self
+ browserMenuItemOn: menu;
+ workspaceMenuItemOn: menu;
+ transcriptMenuItemOn: menu;
+ testRunnerMenuItemOn: menu.
+ menu addLine.
+ self
+ monticelloBrowserMenuItemOn: menu;
+ fileListMenuItemOn: menu ] ]!
- addSubMenu: [ :menu | self buildMenu: self toolsMenu on: menu ] ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>newProjectMenuItemOn: (in category 'submenu - projects') -----
+ newProjectMenuItemOn: menu
- newProjectMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'New Project' translated;
+ help: 'Start a new MorphicProject' translated;
+ icon: MenuIcons smallProjectIcon;
+ action: [ ProjectViewMorph openOn: MorphicProject new ];
+ addSubMenu: [ :subMenu |
+ self newProjectMenuItemsOn: subMenu ] ]!
- item
- contents: 'New Project';
- help: 'Start a new project';
- icon: MenuIcons smallProjectIcon;
- action: [ MorphicProject openViewOn: nil ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>monticelloBrowserMenuItemOn: (in category 'submenu - tools') -----
+ monticelloBrowserMenuItemOn: menu
- monticelloBrowserMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Monticello Browser' translated;
+ help: 'Open a Monticello Browser' translated;
+ icon: (self colorIcon: MCTool basicNew defaultBackgroundColor);
+ action: [ MCWorkingCopyBrowser open ] ]!
- item
- contents: 'Monticello Browser';
- help: 'Open a Monticello Browser';
- icon: (self colorIcon: MCTool basicNew defaultBackgroundColor);
- action: [ MCWorkingCopyBrowser open ]!
Item was changed:
Object subclass: #TheWorldMainDockingBar
+ instanceVariableNames: ''
- instanceVariableNames: 'icons'
classVariableNames: 'Instance TS'
poolDictionaries: ''
category: 'Morphic-Kernel'!
Item was changed:
----- Method: TheWorldMainDockingBar>>saveAsMenuItemOn: (in category 'submenu - squeak') -----
+ saveAsMenuItemOn: menu
- saveAsMenuItemOn: item
+ 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;
+ action: [ SmalltalkImage current saveAs ] ]!
- item
- contents: 'Save Image As...';
- help: 'Save the current state of Squeak on disk under a new name';
- icon: MenuIcons smallSaveAsIcon;
- action: [ SmalltalkImage current saveAs ]!
Item was changed:
----- Method: MenuItemMorph>>select: (in category 'selecting') -----
select: evt
self isSelected: true.
self updateSubMenu.
owner activeSubmenu: subMenu.
subMenu ifNotNil: [
subMenu delete.
subMenu
popUpAdjacentTo: self adjacentTo
forHand: evt hand
from: self.
subMenu selectItem: nil event: evt].!
Item was changed:
----- Method: MenuMorph>>displayFiltered: (in category 'keyboard control') -----
displayFiltered: evt
| matchStr allItems isMatch matches feedbackMorph |
matchStr := self valueOfProperty: #matchString.
allItems := self submorphs select: [:m | m isKindOf: MenuItemMorph].
matches := allItems select: [:m |
isMatch :=
matchStr isEmpty or: [
m contents includesSubstring: matchStr caseSensitive: false].
m isEnabled: isMatch.
isMatch].
feedbackMorph := self valueOfProperty: #feedbackMorph.
feedbackMorph ifNil: [
feedbackMorph :=
TextMorph new
autoFit: true;
color: Color darkGray.
self
addLine;
addMorphBack: feedbackMorph lock.
self setProperty: #feedbackMorph toValue: feedbackMorph.
self fullBounds. "Lay out for submorph adjacency"].
feedbackMorph contents: '<', matchStr, '>'.
matchStr isEmpty ifTrue: [
feedbackMorph delete.
self submorphs last delete.
self removeProperty: #feedbackMorph].
+ "matches size >= 1 ifTrue: [
+ self selectItem: matches first event: evt]"!
- matches size >= 1 ifTrue: [
- self selectItem: matches first event: evt]
- !
Item was changed:
----- Method: TheWorldMainDockingBar>>projectsMenuOn: (in category 'construction') -----
projectsMenuOn: aDockingBar
aDockingBar addItem: [ :item |
item
contents: 'Projects' translated;
+ addSubMenu: [ :menu |
+ self
+ newProjectMenuItemOn: menu;
+ saveProjectMenuItemOn: menu;
+ loadProjectMenuItemOn: menu;
+ previousProjectMenuItemOn: menu;
+ jumpToProjectMenuItemOn: menu ] ]
- addSubMenu: [ :menu | self buildMenu: self projectsMenu on: menu ] ]
!
Item was changed:
----- Method: TheWorldMainDockingBar>>jumpToProjectMenuItemOn: (in category 'submenu - projects') -----
+ jumpToProjectMenuItemOn: menu
- jumpToProjectMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Jump To Project' translated;
+ icon: MenuIcons smallForwardIcon;
+ subMenuUpdater: [ :subMenu |
+ subMenu defaultTarget: Project.
+ Project buildJumpToMenu: subMenu ] ]!
- item
- contents: 'Jump To Project';
- icon: MenuIcons smallForwardIcon;
- subMenuUpdater: [ :menu |
- menu defaultTarget: Project.
- Project buildJumpToMenu: menu ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>quitMenuItemOn: (in category 'submenu - squeak') -----
+ quitMenuItemOn: menu
- quitMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Quit' translated;
+ help: 'Quit out of Squeak' translated;
+ icon: MenuIcons smallQuitIcon;
+ action: [
+ SmalltalkImage current
+ snapshot: (
+ self
+ confirm: 'Save changes before quitting?' translated
+ orCancel: [ ^self ])
+ andQuit: true ] ]!
- item
- contents: 'Quit';
- help: 'Quit out of Squeak';
- icon: MenuIcons smallQuitIcon;
- 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
- saveMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Save Image' translated;
+ help: 'Save the current state of Squeak on disk' translated;
+ icon: MenuIcons smallSaveIcon;
+ action: [ SmalltalkImage current snapshot: true andQuit: false ] ]!
- item
- contents: 'Save Image';
- help: 'Save the current state of Squeak on disk';
- icon: MenuIcons smallSaveIcon;
- action: [ SmalltalkImage current snapshot: true andQuit: false ]!
Item was added:
+ ----- Method: TheWorldMainDockingBar>>menusOn: (in category 'construction') -----
+ menusOn: aDockingBar
+
+ self
+ squeakMenuOn: aDockingBar;
+ projectsMenuOn: aDockingBar;
+ toolsMenuOn: aDockingBar;
+ windowsMenuOn: aDockingBar;
+ helpMenuOn: aDockingBar!
Item was changed:
----- Method: TheWorldMainDockingBar>>saveProjectMenuItemOn: (in category 'submenu - projects') -----
+ saveProjectMenuItemOn: menu
- saveProjectMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Save Project' translated;
+ help: 'Save this project on a file' translated;
+ icon: MenuIcons smallPublishIcon;
+ action: [ World saveOnFile ] ]!
- item
- contents: 'Save Project';
- help: 'Save this project on a file';
- icon: MenuIcons smallPublishIcon;
- action: [ World saveOnFile ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>testRunnerMenuItemOn: (in category 'submenu - tools') -----
+ testRunnerMenuItemOn: menu
- testRunnerMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Test Runner' translated;
+ help: 'Open the Test Runner' translated;
+ icon: (self colorIcon: TestRunner basicNew defaultBackgroundColor);
+ action: [ TestRunner open ] ]!
- item
- contents: 'Test Runner';
- help: 'Open the Test Runner';
- icon: (self colorIcon: Preferences testRunnerWindowColor);
- action: [ TestRunner open ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>squeakMenuOn: (in category 'construction') -----
squeakMenuOn: aDockingBar
"Private - fill the given docking bar"
aDockingBar addItem: [ :item |
item
contents: '';
icon: MenuIcons squeakLogoIcon;
selectedIcon: MenuIcons squeakLogoInvertedIcon;
+ addSubMenu: [ :menu |
+ self
+ aboutMenuItemOn: menu;
+ updateMenuItemOn: menu.
+ menu addLine.
+ self
+ saveMenuItemOn: menu;
+ saveAsMenuItemOn: menu;
+ saveAsNewVersionMenuItemOn: menu.
+ menu addLine.
+ self
+ saveAndQuitMenuItemOn: menu;
+ quitMenuItemOn: menu ] ]!
- addSubMenu: [ :menu | self buildMenu: self squeakMenu on: menu ] ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>updateMenuItemOn: (in category 'submenu - squeak') -----
+ updateMenuItemOn: menu
- updateMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Update Squeak' translated;
+ help: 'Load latest code updates via the internet' translated;
+ action: [ Utilities updateFromServer ] ]!
- item
- contents: 'Update Squeak';
- help: 'Load latest code updates via the internet';
- action: [ Utilities updateFromServer ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>saveAsNewVersionMenuItemOn: (in category 'submenu - squeak') -----
+ saveAsNewVersionMenuItemOn: menu
- saveAsNewVersionMenuItemOn: item
+ 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;
+ action: [ SmalltalkImage current saveAsNewVersion ] ]!
- item
- contents: 'Save As New Version';
- help: 'Save the current state of Squeak on disk under a version-stamped name';
- icon: MenuIcons smallSaveAsIcon;
- action: [ SmalltalkImage current saveAsNewVersion ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>aboutMenuItemOn: (in category 'submenu - squeak') -----
+ aboutMenuItemOn: menu
- aboutMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'About Squeak...' translated;
+ action: [ ] ]!
- item
- contents: 'About Squeak...' translated;
- action: [ ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>windowsMenuOn: (in category 'construction') -----
windowsMenuOn: aDockingBar
aDockingBar addItem: [ :item |
item
contents: 'Windows' translated;
+ subMenuUpdater: [ :menu |
+ self listWindowsOn: menu ] ]
- subMenuUpdater: [ :menu | self listWindowsOn: menu ] ]
!
Item was changed:
----- Method: TheWorldMainDockingBar>>saveAndQuitMenuItemOn: (in category 'submenu - squeak') -----
+ saveAndQuitMenuItemOn: menu
- saveAndQuitMenuItemOn: item
+ 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;
+ action: [ SmalltalkImage current snapshot: true andQuit: true ] ]!
- item
- contents: 'Save And Quit';
- help: 'Save the current state of Squeak on disk, and quit out of Squeak';
- icon: MenuIcons smallQuitIcon;
- action: [ SmalltalkImage current snapshot: true andQuit: true ]!
Item was added:
+ ----- 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;
+ action: [ World goBack ] ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>browserMenuItemOn: (in category 'submenu - tools') -----
+ browserMenuItemOn: menu
- browserMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'Browser' translated;
+ help: 'Open a browser' translated;
+ icon: (self colorIcon: Preferences browserWindowColor);
+ action: [ StandardToolSet openClassBrowser ] ]!
- item
- contents: 'Browser';
- help: 'Open a browser';
- icon: (self colorIcon: Preferences browserWindowColor);
- action: [ StandardToolSet openClassBrowser ]!
Item was added:
+ ----- Method: TheWorldMainDockingBar>>helpMenuOn: (in category 'construction') -----
+ helpMenuOn: aDockingBar
+
+ aDockingBar addItem: [ :item |
+ item
+ contents: 'Help' translated;
+ help: 'Todo' ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>fileListMenuItemOn: (in category 'submenu - tools') -----
+ fileListMenuItemOn: menu
- fileListMenuItemOn: item
+ menu addItem: [ :item |
+ item
+ contents: 'File List' translated;
+ help: 'Open a file list' translated;
+ icon: (self colorIcon: Preferences fileListWindowColor);
+ action: [ StandardToolSet openFileList ] ]!
- item
- contents: 'File List';
- help: 'Open a file list';
- icon: (self colorIcon: Preferences fileListWindowColor);
- action: [ StandardToolSet openFileList ]!
Item was changed:
----- Method: TheWorldMainDockingBar>>fillDockingBar: (in category 'construction') -----
fillDockingBar: aDockingBar
"Private - fill the given docking bar"
aDockingBar addSpace: 6.
+ self menusOn: aDockingBar.
- self
- squeakMenuOn: aDockingBar;
- toolsMenuOn: aDockingBar;
- projectsMenuOn: aDockingBar;
- windowsMenuOn: aDockingBar.
aDockingBar
setProperty: #mainDockingBarTimeStamp
toValue: self class timeStamp!
Item was changed:
+ ----- Method: TheWorldMainDockingBar>>listWindowsOn: (in category 'submenu - windows') -----
- ----- Method: TheWorldMainDockingBar>>listWindowsOn: (in category 'construction') -----
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;
action: [ ] ] ].
expanded do: [ :each |
menu addItem: [ :item |
item
contents: each label;
icon: (self colorIcon: each paneColor);
+ subMenuUpdater: [ :subMenu | self windowMenuFor: each on: subMenu ];
action: [ each activateAndForceLabelToShow ] ] ].!
Item was changed:
Item was removed:
- ----- Method: TheWorldMainDockingBar>>buildMenuItem:on: (in category 'private') -----
- buildMenuItem: aString on: menu
-
- aString first = $= ifTrue: [ ^menu addLine ].
- menu addItem: [ :item |
- self perform: (aString, 'MenuItemOn:') asSymbol with: item ].
- !
Item was removed:
- ----- Method: TheWorldMainDockingBar>>buildMenu:on: (in category 'private') -----
- buildMenu: description on: menu
-
- menu defaultTarget: self.
- description do: [ :each |
- self buildMenuItem: each on: menu ]!
Item was removed:
- ----- Method: TheWorldMainDockingBar>>squeakMenu (in category 'construction') -----
- squeakMenu
-
- ^#(
- 'about'
- 'update'
- '==='
- 'save'
- 'saveAs'
- 'saveAsNewVersion'
- '==='
- 'saveAndQuit'
- 'quit')!
Item was removed:
- ----- Method: TheWorldMainDockingBar>>projectsMenu (in category 'construction') -----
- projectsMenu
-
- ^#( 'newProject'
- 'saveProject'
- 'loadProject'
- 'jumpToProject')!
Item was removed:
- ----- Method: TheWorldMainDockingBar>>toolsMenu (in category 'construction') -----
- toolsMenu
-
- ^#(
- 'browser'
- 'workspace'
- 'transcript'
- 'testRunner'
- '==='
- 'monticelloBrowser'
- 'fileList')!
More information about the Squeak-dev
mailing list
|