handling Inbox contributions was: [squeak-dev] The Inbox:
Morphic-kb.428.mcz
Chris Muller
asqueaker at gmail.com
Mon Apr 26 17:14:01 UTC 2010
When someone commits to trunk, the e-mail gives the name of the
contriibutor. Would that also be useful for inbox contributions?
On Sun, Apr 25, 2010 at 10:11 AM, <commits at source.squeak.org> wrote:
> A new version of Morphic was added to project The Inbox:
> http://source.squeak.org/inbox/Morphic-kb.428.mcz
>
> ==================== Summary ====================
>
> Name: Morphic-kb.428
> Author: kb
> Time: 25 April 2010, 5:10:40.092 pm
> UUID: a1cf4a4c-027b-4789-919e-dbdca41d10be
> Ancestors: Morphic-ar.427
>
> First stab at refactoring TheWorldMainDockingBar to allow external packages to insert new menus, or menu items. We use two pragmas to fill the docking bar.
>
> A method in TheWorldMainDockingBar marked with pragma: <createDockingBarMenuWithPriority: NN> will get a chance to build on the DockingBarMorph, which it gets as its sole argument.
>
> A method in TheWorldMainDockingBar marked with pragma: <fillDockingBarMenu: #MENUNAME priority: NN> will get a chance to build on a menu, which it gets as its sole argument, when someone calls TheWorldMainDockingBar >> fillMenu: menu with: #MENUNAME
>
> Priority controls the order in which these methods are called.
>
> Currently there are three menus filled with this technique: #tools, #extras, #help
>
> So if you want to add a new menu item to the #extras menu from your package, you'll need to create an extension method on TheWorldMainDockingBar containing the pragma <fillDockingBarMenu: #extras priority: 50>, and evaluate [TheWorldMainDockingBar updateInstances]
>
> You can find examples in TheWorldMainDockingBar.
>
>
> =============== Diff against Morphic-ar.427 ===============
>
> Item was changed:
> + ----- Method: TheWorldMainDockingBar>>toolsMenuOn: (in category 'submenu - tools') -----
> - ----- Method: TheWorldMainDockingBar>>toolsMenuOn: (in category 'construction') -----
> toolsMenuOn: aDockingBar
> +
> + <createDockingBarMenuWithPriority: 30>
> -
> aDockingBar addItem: [ :item |
> item
> contents: 'Tools' translated;
> addSubMenu: [ :menu |
> + self fillMenu: menu with: #tools ] ]!
> - self
> - browserMenuItemOn: menu;
> - workspaceMenuItemOn: menu;
> - transcriptMenuItemOn: menu;
> - testRunnerMenuItemOn: menu.
> - menu addLine.
> - self
> - monticelloBrowserMenuItemOn: menu;
> - monticelloConfigurationsMenuItemOn: menu;
> - simpleChangeSorterMenuItemOn: menu;
> - dualChangeSorterMenuItemOn: menu.
> - menu addLine.
> - self
> - processBrowserMenuItemOn: menu;
> - preferenceBrowserMenuItemOn: menu;
> - fileListMenuItemOn: menu.
> - ] ]!
>
> Item was added:
> + ----- Method: TheWorldMainDockingBar>>displayMenuItemsOn: (in category 'submenu - extras') -----
> + displayMenuItemsOn: menu
> +
> + <fillDockingBarMenu: #extras priority: 20>
> + menu addItem: [ :item |
> + item
> + contents: 'Window Colors' translated;
> + help: 'Changes the window color scheme' translated;
> + addSubMenu: [ :submenu | self windowColorsOn: submenu ] ].
> + menu addItem: [ :item |
> + item
> + contents: 'Restore Display (r)' translated;
> + help: 'Redraws the entire display' translated;
> + target: World;
> + selector: #restoreMorphicDisplay ].
> + menu addItem: [ :item |
> + item
> + contents: 'Rebuild Menus' translated;
> + help: 'Rebuilds the menu bar' translated;
> + target: self class;
> + selector: #updateInstances ].!
>
> Item was changed:
> + ----- Method: TheWorldMainDockingBar>>windowColorsOn: (in category 'submenu - extras') -----
> - ----- Method: TheWorldMainDockingBar>>windowColorsOn: (in category 'construction') -----
> windowColorsOn: menu
>
> menu addItem:[:item|
> item
> contents: 'Uniform Windows' translated;
> help: 'Use uniform window colors' translated;
> target: Preferences;
> selector: #installUniformWindowColors].
>
> menu addItem:[:item|
> item
> contents: 'Colorful Windows' translated;
> help: 'Use bright window colors' translated;
> target: Preferences;
> selector: #installBrightWindowColors].
> !
>
> Item was changed:
> + ----- Method: TheWorldMainDockingBar>>windowsMenuOn: (in category 'submenu - windows') -----
> - ----- Method: TheWorldMainDockingBar>>windowsMenuOn: (in category 'construction') -----
> windowsMenuOn: aDockingBar
> +
> + <createDockingBarMenuWithPriority: 50>
> -
> aDockingBar addItem: [ :item |
> item
> contents: 'Windows' translated;
> subMenuUpdater: self
> selector: #listWindowsOn: ]
> !
>
> Item was added:
> + ----- Method: TheWorldMainDockingBar>>changesMenuItemsOn: (in category 'submenu - extras') -----
> + changesMenuItemsOn: menu
> +
> + <fillDockingBarMenu: #extras priority: 10>
> + menu addItem: [ :item |
> + item
> + contents: 'Recover Changes' translated;
> + help: 'Recover changes after a crash' translated;
> + icon: MenuIcons smallHelpIcon;
> + target: ChangeList;
> + selector: #browseRecentLog ].
> + menu addItem: [ :item |
> + item
> + contents: 'Set Author Initials' translated;
> + help: 'Sets the author initials' translated;
> + target: Utilities;
> + selector: #setAuthorInitials ].!
>
> Item was changed:
> + ----- Method: TheWorldMainDockingBar>>extrasMenuOn: (in category 'submenu - extras') -----
> - ----- Method: TheWorldMainDockingBar>>extrasMenuOn: (in category 'construction') -----
> extrasMenuOn: aDockingBar
>
> + <createDockingBarMenuWithPriority: 40>
> + aDockingBar addItem: [ :it |
> - aDockingBar addItem: [ :it|
> it contents: 'Extras' translated;
> + addSubMenu: [ :menu |
> + self fillMenu: menu with: #extras ] ]!
> - addSubMenu: [:menu|
> - menu addItem:[:item|
> - item
> - contents: 'Recover Changes' translated;
> - help: 'Recover changes after a crash' translated;
> - icon: MenuIcons smallHelpIcon;
> - target: ChangeList;
> - selector: #browseRecentLog].
> - menu addLine.
> - menu addItem:[:item|
> - item
> - contents: 'Window Colors' translated;
> - help: 'Changes the window color scheme' translated;
> - addSubMenu:[:submenu| self windowColorsOn: submenu]].
> - menu addItem:[:item|
> - item
> - contents: 'Set Author Initials' translated;
> - help: 'Sets the author initials' translated;
> - target: Utilities;
> - selector: #setAuthorInitials].
> - menu addItem:[:item|
> - item
> - contents: 'Restore Display (r)' translated;
> - help: 'Redraws the entire display' translated;
> - target: World;
> - selector: #restoreMorphicDisplay].
> - menu addItem:[:item|
> - item
> - contents: 'Rebuild Menus' translated;
> - help: 'Rebuilds the menu bar' translated;
> - target: TheWorldMainDockingBar;
> - selector: #updateInstances].
> - menu addLine.
> - menu addItem:[:item|
> - item
> - contents: 'Start Profiler' translated;
> - help: 'Starts the profiler' translated;
> - target: self;
> - selector: #startMessageTally].
> - menu addItem:[:item|
> - item
> - contents: 'Collect Garbage' translated;
> - help: 'Run the garbage collector and report space usage' translated;
> - target: Utilities;
> - selector: #garbageCollectAndReport].
> - menu addItem:[:item|
> - item
> - contents: 'Purge Undo Records' translated;
> - help: 'Save space by removing all the undo information remembered in all projects' translated;
> - target: CommandHistory;
> - selector: #resetAllHistory].
> - menu addItem:[:item|
> - item
> - contents: 'VM statistics' translated;
> - help: 'Virtual Machine information' translated;
> - target: self;
> - selector: #vmStatistics].
> - menu addLine.
> - menu addItem:[:item|
> - item
> - contents: 'Graphical Imports' translated;
> - help: 'View the global repository called ImageImports; you can easily import external graphics into ImageImports via the FileList' translated;
> - target: (Imports default);
> - selector: #viewImages].
> - menu addItem:[:item|
> - item
> - contents: 'Standard Graphics Library' translated;
> - help: 'Lets you view and change the system''s standard library of graphics' translated;
> - target: ScriptingSystem;
> - selector: #inspectFormDictionary].
> - menu addItem:[:item|
> - item
> - contents: 'Annotation Setup' translated;
> - help: 'Click here to get a little window that will allow you to specify which types of annotations, in which order, you wish to see in the annotation panes of browsers and other tools' translated;
> - target: Preferences;
> - selector: #editAnnotations].
> - ] ]!
>
> Item was changed:
> + ----- Method: TheWorldMainDockingBar>>projectsMenuOn: (in category 'submenu - projects') -----
> - ----- Method: TheWorldMainDockingBar>>projectsMenuOn: (in category 'construction') -----
> projectsMenuOn: aDockingBar
> +
> + <createDockingBarMenuWithPriority: 20>
> -
> aDockingBar addItem: [ :item |
> item
> contents: 'Projects' translated;
> addSubMenu: [ :menu |
> self
> newProjectMenuItemOn: menu;
> saveProjectMenuItemOn: menu;
> loadProjectMenuItemOn: menu;
> previousProjectMenuItemOn: menu;
> jumpToProjectMenuItemOn: menu ] ]
> !
>
> Item was added:
> + ----- Method: TheWorldMainDockingBar>>developerToolMenuItemsOn: (in category 'submenu - tools') -----
> + developerToolMenuItemsOn: menu
> +
> + <fillDockingBarMenu: #tools priority: 10>
> + self
> + browserMenuItemOn: menu;
> + workspaceMenuItemOn: menu;
> + transcriptMenuItemOn: menu;
> + testRunnerMenuItemOn: menu!
>
> Item was added:
> + ----- Method: TheWorldMainDockingBar>>graphicsMenuItemsOn: (in category 'submenu - extras') -----
> + graphicsMenuItemsOn: menu
> +
> + <fillDockingBarMenu: #extras priority: 40>
> + menu addItem:[:item|
> + item
> + contents: 'Graphical Imports' translated;
> + help: 'View the global repository called ImageImports; you can easily import external graphics into ImageImports via the FileList' translated;
> + target: (Imports default);
> + selector: #viewImages].
> + menu addItem:[:item|
> + item
> + contents: 'Standard Graphics Library' translated;
> + help: 'Lets you view and change the system''s standard library of graphics' translated;
> + target: ScriptingSystem;
> + selector: #inspectFormDictionary].
> + menu addItem:[:item|
> + item
> + contents: 'Annotation Setup' translated;
> + help: 'Click here to get a little window that will allow you to specify which types of annotations, in which order, you wish to see in the annotation panes of browsers and other tools' translated;
> + target: Preferences;
> + selector: #editAnnotations].!
>
> Item was added:
> + ----- Method: TheWorldMainDockingBar>>helpMenuItemsOn: (in category 'submenu - help') -----
> + helpMenuItemsOn: menu
> +
> + <fillDockingBarMenu: #help priority: 10>
> + menu addItem: [ :item |
> + item
> + contents: 'Online Resources' translated;
> + help: 'Online resources for Squeak' translated;
> + target: self;
> + icon: MenuIcons smallHelpIcon;
> + selector: #showWelcomeText:label:in:;
> + arguments: {
> + #squeakOnlineResources.
> + 'Squeak Online Resources'.
> + (140 at 140 extent: 560 at 360)
> + }].
> + menu addItem:[:item|
> + item
> + contents: 'Keyboard Shortcuts' translated;
> + help: 'Keyboard bindings used in Squeak' translated;
> + target: Utilities;
> + selector: #openCommandKeyHelp ].
> + menu addItem:[:item|
> + item
> + contents: 'Font Size Summary' translated;
> + help: 'Font size summary from the old Squeak 3.10.2 help menu.' translated;
> + target: TextStyle;
> + selector: #fontSizeSummary ].
> + menu addItem:[:item|
> + item
> + contents: 'Useful Expressions' translated;
> + help: 'Useful expressions from the old Squeak 3.10.2 help menu.' translated;
> + target: Utilities;
> + selector: #openStandardWorkspace ].
> + menu addLine.
> + menu addItem:[:item|
> + item
> + contents: 'Extending the system' translated;
> + help: 'Includes code snippets to evaluate for extending the system' translated;
> + target: self;
> + icon: MenuIcons smallHelpIcon;
> + selector: #showWelcomeText:label:in:;
> + arguments: {
> + #extendingTheSystem.
> + 'How to extend the system'.
> + (140 at 140 extent: 560 at 360)
> + }].
> + menu addLine.
> + menu addItem:[:item|
> + item
> + contents: 'Welcome Workspaces' translated;
> + help: 'The Welcome Workspaces' translated;
> + addSubMenu:[:submenu| self welcomeWorkspacesOn: submenu]].!
>
> Item was added:
> + ----- Method: TheWorldMainDockingBar>>vmMenuItemsOn: (in category 'submenu - extras') -----
> + vmMenuItemsOn: menu
> +
> + <fillDockingBarMenu: #extras priority: 30>
> + menu addItem:[:item|
> + item
> + contents: 'Start Profiler' translated;
> + help: 'Starts the profiler' translated;
> + target: self;
> + selector: #startMessageTally].
> + menu addItem:[:item|
> + item
> + contents: 'Collect Garbage' translated;
> + help: 'Run the garbage collector and report space usage' translated;
> + target: Utilities;
> + selector: #garbageCollectAndReport].
> + menu addItem:[:item|
> + item
> + contents: 'Purge Undo Records' translated;
> + help: 'Save space by removing all the undo information remembered in all projects' translated;
> + target: CommandHistory;
> + selector: #resetAllHistory].
> + menu addItem:[:item|
> + item
> + contents: 'VM statistics' translated;
> + help: 'Virtual Machine information' translated;
> + target: self;
> + selector: #vmStatistics]!
>
> Item was added:
> + ----- Method: TheWorldMainDockingBar>>fillMenu:with: (in category 'private') -----
> + fillMenu: menu with: menuName
> +
> + | priority |
> + priority := nil.
> + (Pragma
> + allNamed: #fillDockingBarMenu:priority:
> + in: self class
> + sortedByArgument: 2) do: [ :pragma |
> + pragma arguments first = menuName ifTrue: [
> + pragma arguments second = priority ifFalse: [ menu addLine ].
> + self perform: pragma selector with: menu ] ].!
>
> Item was changed:
> + ----- Method: TheWorldMainDockingBar>>squeakMenuOn: (in category 'submenu - squeak') -----
> - ----- Method: TheWorldMainDockingBar>>squeakMenuOn: (in category 'construction') -----
> squeakMenuOn: aDockingBar
> "Private - fill the given docking bar"
>
> + <createDockingBarMenuWithPriority: 10>
> 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 ] ]!
>
> Item was added:
> + ----- Method: TheWorldMainDockingBar>>otherToolMenuItemsOn: (in category 'submenu - tools') -----
> + otherToolMenuItemsOn: menu
> +
> + <fillDockingBarMenu: #tools priority: 30>
> + self
> + processBrowserMenuItemOn: menu;
> + preferenceBrowserMenuItemOn: menu;
> + fileListMenuItemOn: menu.!
>
> Item was changed:
> ----- Method: TheWorldMainDockingBar>>helpMenuOn: (in category 'submenu - help') -----
> helpMenuOn: aDockingBar
> +
> + <createDockingBarMenuWithPriority: 60>
> + aDockingBar addItem: [ :item |
> + item
> + contents: 'Help' translated;
> + addSubMenu: [ :menu |
> + self fillMenu: menu with: #help ] ].!
> -
> - aDockingBar addItem: [ :it |
> - it contents: 'Help' translated;
> - addSubMenu: [ :menu | 'Todo'.
> - menu addItem:[:item|
> - item
> - contents: 'Online Resources' translated;
> - help: 'Online resources for Squeak' translated;
> - target: self;
> - icon: MenuIcons smallHelpIcon;
> - selector: #showWelcomeText:label:in:;
> - arguments: {
> - #squeakOnlineResources.
> - 'Squeak Online Resources'.
> - (140 at 140 extent: 560 at 360)
> - }].
> - menu addItem:[:item|
> - item
> - contents: 'Keyboard Shortcuts' translated;
> - help: 'Keyboard bindings used in Squeak' translated;
> - target: Utilities;
> - selector: #openCommandKeyHelp ].
> - menu addItem:[:item|
> - item
> - contents: 'Font Size Summary' translated;
> - help: 'Font size summary from the old Squeak 3.10.2 help menu.' translated;
> - target: TextStyle;
> - selector: #fontSizeSummary ].
> - menu addItem:[:item|
> - item
> - contents: 'Useful Expressions' translated;
> - help: 'Useful expressions from the old Squeak 3.10.2 help menu.' translated;
> - target: Utilities;
> - selector: #openStandardWorkspace ].
> - menu addLine.
> - menu addItem:[:item|
> - item
> - contents: 'Extending the system' translated;
> - help: 'Includes code snippets to evaluate for extending the system' translated;
> - target: self;
> - icon: MenuIcons smallHelpIcon;
> - selector: #showWelcomeText:label:in:;
> - arguments: {
> - #extendingTheSystem.
> - 'How to extend the system'.
> - (140 at 140 extent: 560 at 360)
> - }].
> - menu addLine.
> - menu addItem:[:item|
> - item
> - contents: 'Welcome Workspaces' translated;
> - help: 'The Welcome Workspaces' translated;
> - addSubMenu:[:submenu| self welcomeWorkspacesOn: submenu]].
> - ]].!
>
> Item was added:
> + ----- Method: TheWorldMainDockingBar>>changeManagementToolMenuItemsOn: (in category 'submenu - tools') -----
> + changeManagementToolMenuItemsOn: menu
> +
> + <fillDockingBarMenu: #tools priority: 20>
> + self
> + monticelloBrowserMenuItemOn: menu;
> + monticelloConfigurationsMenuItemOn: menu;
> + simpleChangeSorterMenuItemOn: menu;
> + dualChangeSorterMenuItemOn: menu.!
>
> Item was changed:
> ----- Method: TheWorldMainDockingBar>>menusOn: (in category 'construction') -----
> menusOn: aDockingBar
>
> + (Pragma
> + allNamed: #createDockingBarMenuWithPriority:
> + in: self class
> + sortedByArgument: 1) do: [ :pragma |
> + self perform: pragma selector with: aDockingBar ].
> - self
> - squeakMenuOn: aDockingBar;
> - projectsMenuOn: aDockingBar;
> - toolsMenuOn: aDockingBar;
> - extrasMenuOn: aDockingBar;
> - windowsMenuOn: aDockingBar;
> - helpMenuOn: aDockingBar.
> aDockingBar addSpacer.
> self
> searchBarOn: aDockingBar;
> clockOn: aDockingBar!
>
>
>
More information about the Squeak-dev
mailing list
|