[squeak-dev] The Inbox: Morphic-nice.635.mcz
H. Hirzel
hannes.hirzel at gmail.com
Tue Jan 22 22:08:56 UTC 2013
Ok, this is a different approach from what Bert suggests
http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-January/168158.html
to make it possible that closed Monticello windows are garbage
collected and with them MCDefinitions. Both apply to all windows.
What are the pros and cons?
--Hannes
On Tue, 22 Jan 2013 21:57:54.533 0000, commits at source.squeak.org
<commits at source.squeak.org> wrote:
> A new version of Morphic was added to project The Inbox:
> http://source.squeak.org/inbox/Morphic-nice.635.mcz
>
> ==================== Summary ====================
>
> Name: Morphic-nice.635
> Author: nice
> Time: 22 January 2013, 10:57:07.833 pm
> UUID: 3a69be3a-68a2-47aa-86e5-1aa7147bcb38
> Ancestors: Morphic-dtl.634
>
> Let TheWorldMainDockingBar points weakly on opened windows.
> Otherwise they won't be garbage collected until next time the 'windows' menu
> is opened.
>
> =============== Diff against Morphic-dtl.634 ===============
>
> Item was changed:
> ----- Method: TheWorldMainDockingBar>>listWindowsOn: (in category 'submenu
> - windows') -----
> listWindowsOn: menu
>
> | windows |
> windows := SortedCollection sortBlock: [:winA :winB |
> winA model name = winB model name
> ifTrue: [winA label < winB label]
> ifFalse: [winA model name < winB model name]].
> windows addAll: self allVisibleWindows.
> windows ifEmpty: [
> menu addItem: [ :item |
> item
> contents: 'No Windows' translated;
> isEnabled: false ] ].
> windows do: [ :each |
> + | weak |
> + weak := WeakArray with: each.
> menu addItem: [ :item |
> item
> contents: (self windowMenuItemLabelFor: each);
> icon: (self colorIcon: each model defaultBackgroundColor);
> - target: each;
> - selector: #comeToFront;
> subMenuUpdater: self
> + selector: #windowMenuFor:on:
> + arguments: { weak };
> + action: [ weak first ifNotNil: [:w | w activateAndForceLabelToShow;
> expand ] ] ] ].!
> - selector: #windowMenuFor:on:
> - arguments: { each };
> - action: [ each activateAndForceLabelToShow; expand ] ] ].!
>
> Item was changed:
> ----- Method: TheWorldMainDockingBar>>windowMenuFor:on: (in category
> 'submenu - windows') -----
> + windowMenuFor: weakArray on: menu
> + weakArray first
> + ifNil:
> + [menu
> + addItem: [ :item |
> + item
> + contents: 'already closed...' translated ;
> + isEnabled: false ]]
> + ifNotNil:
> + [:window |
> + menu
> + addItem: [ :item |
> + item
> + contents: 'Close' translated ;
> + target: window;
> + selector: #delete ];
> + addItem: [ :item |
> + item
> + contents: 'Close all like this' translated ;
> + target: self;
> + selector: #closeAllWindowsLike:;
> + arguments: { window } ];
> + addItem: [ :item |
> + item
> + contents: 'Close all but this' translated ;
> + target: self;
> + selector: #closeAllWindowsBut:;
> + arguments: { window } ];
> + addItem: [ :item |
> + item
> + contents: 'Expand or Contract' translated ;
> + target: window;
> + selector: #expandBoxHit ] ]!
> - windowMenuFor: window on: menu
> - menu
> - addItem: [ :item |
> - item
> - contents: 'Close' translated ;
> - target: window;
> - selector: #delete ];
> - addItem: [ :item |
> - item
> - contents: 'Close all like this' translated ;
> - target: self;
> - selector: #closeAllWindowsLike:;
> - arguments: { window } ];
> - addItem: [ :item |
> - item
> - contents: 'Close all but this' translated ;
> - target: self;
> - selector: #closeAllWindowsBut:;
> - arguments: { window } ];
> - addItem: [ :item |
> - item
> - contents: 'Expand or Contract' translated ;
> - target: window;
> - selector: #expandBoxHit ]!
>
>
>
More information about the Squeak-dev
mailing list
|