[squeak-dev] The Trunk: Tools-eem.256.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Aug 15 01:40:13 UTC 2010
Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.256.mcz
==================== Summary ====================
Name: Tools-eem.256
Author: eem
Time: 14 August 2010, 6:39:45.243 pm
UUID: b6d2c00a-55b7-42ec-911b-8eb801388d7f
Ancestors: Tools-cbr.255
Fix multi-window menu labelling for unselected windows
(old code broke if system organization changed).
=============== Diff against Tools-cbr.255 ===============
Item was changed:
----- Method: PackagePaneBrowser>>multiWindowName (in category 'multi-window support') -----
multiWindowName
"Answer the string to display for the receiver in a multi-window."
^String streamContents:
[:s| | str |
self package
ifNil: [s nextPut: $a; space; nextPutAll: self defaultBrowserTitle]
ifNotNil:
[:pkg|
+ self selectedClass
+ ifNil: [self selectedSystemCategoryName
+ ifNil: [s nextPutAll: pkg]
+ ifNotNil: [:cat| s nextPutAll: cat]]
+ ifNotNil:
+ [:class|
+ s nextPutAll: pkg; space; print: class.
+ self metaClassIndicated ifTrue:
+ [s nextPutAll: ' class']]].
- s nextPutAll: pkg; space.
- self selectedClass ifNotNil: [:class| s print: class].
- self metaClassIndicated ifTrue:
- [s nextPutAll: ' class']].
(str := self selectedMessageName) notNil
ifTrue: [s nextPutAll: '>>'; nextPutAll: str]
ifFalse:
[(str := self selectedMessageCategoryName) notNil
ifTrue: [s space; nextPut: ${; nextPutAll: str; nextPut: $}]]]!
Item was added:
+ ----- Method: PackagePaneBrowser>>multiWindowNameForState: (in category 'multi-window support') -----
+ multiWindowNameForState: savedStateMessage
+ "Answer the string to display for the receiver in a multi-window."
+ | getarg |
+ getarg := [:keyword| savedStateMessage arguments at: (savedStateMessage selector keywords indexOf: keyword)].
+ ^String streamContents:
+ [:s|
+ (getarg value: 'restoreToPackage:')
+ ifNil: [s nextPut: $a; space; nextPutAll: self defaultBrowserTitle]
+ ifNotNil:
+ [:pkg|
+ s nextPutAll: pkg.
+ (getarg value: 'className:')
+ ifNil: [(getarg value: 'category:') ifNotNil:
+ [:categoryName| s nextPut: $-; nextPutAll: categoryName]]
+ ifNotNil:
+ [:className|
+ s space; nextPutAll: className.
+ (getarg value: 'meta:') ifTrue:
+ [s nextPutAll: ' class'].
+ self isHierarchy ifTrue:
+ [s space; nextPutAll: ' Hierarchy'].
+ (getarg value: 'selector:')
+ ifNil: [(getarg value: 'protocol:') ifNotNil:
+ [:protocol| s space; nextPut: ${; nextPutAll: protocol; nextPut: $}]]
+ ifNotNil: [:selector| s nextPutAll: '>>'; nextPutAll: selector]]]]!
Item was added:
+ ----- Method: Browser>>multiWindowNameForState: (in category 'multi-window support') -----
+ multiWindowNameForState: savedStateMessage
+ "Answer the string to display for the receiver in a multi-window."
+ | getarg |
+ getarg := [:keyword| savedStateMessage arguments at: (savedStateMessage selector keywords indexOf: keyword)].
+ ^String streamContents:
+ [:s|
+ (getarg value: 'className:')
+ ifNil: [(getarg value: 'restoreToCategory:')
+ ifNil: [s nextPut: $a; space; nextPutAll: self defaultBrowserTitle]
+ ifNotNil: [:categoryName| s nextPutAll: categoryName]]
+ ifNotNil:
+ [:className|
+ s nextPutAll: className.
+ (getarg value: 'meta:') ifTrue:
+ [s nextPutAll: ' class'].
+ self isHierarchy ifTrue:
+ [s space; nextPutAll: ' Hierarchy'].
+ (getarg value: 'selector:')
+ ifNil: [(getarg value: 'protocol:') ifNotNil:
+ [:protocol| s space; nextPut: ${; nextPutAll: protocol; nextPut: $}]]
+ ifNotNil: [:selector| s nextPutAll: '>>'; nextPutAll: selector]]]!
Item was changed:
----- Method: SavedMultiWindowState>>selectWindowsMenu (in category 'operations') -----
selectWindowsMenu
| menu currentItem |
menu := MenuMorph new defaultTarget: self.
models withIndexDo:
+ [:model :index| | modelLabel |
+ modelLabel := index = currentModelIndex
+ ifTrue: [model multiWindowName]
+ ifFalse: [model multiWindowNameForState: (modelStates at: index) first].
+ models size > 1 ifTrue:
+ [modelLabel := index printString, '. ', modelLabel].
- [:model :index| | entry |
- entry := models size > 1
- ifTrue: [index printString, '. ', model multiWindowName]
- ifFalse: [model multiWindowName].
menu
add: (index = currentModelIndex
+ ifTrue: [Text string: modelLabel attribute: TextEmphasis bold]
- ifTrue: [Text string: entry attribute: TextEmphasis bold]
ifFalse:
[((modelStates at: index) last anySatisfy: [:editState| editState notNil])
+ ifTrue: [Text string: modelLabel attribute: TextColor red]
+ ifFalse: [modelLabel]])
- ifTrue: [Text string: entry attribute: TextColor red]
- ifFalse: [entry]])
target: self
selector: #selectWindowIndex:
argument: index.
index = currentModelIndex ifTrue:
[currentItem := menu lastItem]].
menu
addLine;
add: 'new window' target: self selector: #addNewWindow;
add: 'copy this window' target: self selector: #copyWindow;
add: 'remove this window' target: self selector: #removeCurrentWindow.
models size <= 1 ifTrue:
[menu lastItem isEnabled: false].
menu selectItem: currentItem event: nil.
^menu!
More information about the Squeak-dev
mailing list
|