I love this.

On Sun, May 22, 2011 at 2:25 PM, laurent laffont <laurent.laffont@gmail.com> wrote:
Hi,

what do you think of adding this in Pharo ?

|taskbar tileWindowsBlock|

tileWindowsBlock := [��
�� |windows numberOfColumns numberOfRows windowWidth windowHeight|
�� windows := (World submorphs select: [:m| m isSystemWindow and: [m isNotMinimized]]) asOrderedCollection. ����
�� numberOfColumns := windows size sqrtFloor.
�� numberOfRows := (windows size / numberOfColumns) rounded.
�� windowWidth := World width // numberOfColumns..
�� windowHeight := World height ��- taskbar height // numberOfRows.

�� Matrix��
�� �� rows: numberOfRows��
�� �� columns: numberOfColumns��
�� �� tabulate: [:row :column| ��|window|��
�� �� �� �� �� windows ifNotEmpty: [ ��
�� �� �� �� �� �� �� window := windows remove: windows first.
�� �� �� �� �� �� �� window��
�� �� �� �� �� �� �� bounds: (
�� �� �� �� �� �� �� �� �� ((column - 1 * windowWidth) @ (row - 1 * windowHeight))
�� �� �� �� �� �� �� �� �� extent: (windowWidth) @ ��windowHeight)
�� �� �� �� �� ]
�� �� ]
].


taskbar := (World submorphs detect: [:m| m isTaskbar]).

taskbar��
�� addMorph: (IconicButton new
�� �� �� �� �� �� target: tileWindowsBlock;
�� �� �� �� �� �� actionSelector: #value;
�� �� �� �� �� �� labelGraphic: taskbar theme smallWindowIcon;
�� �� �� �� �� �� color: Color transparent;
�� �� �� �� �� �� yourself). ��


Laurent Laffont -��@lolgzs

Pharo Smalltalk Screencasts: http://www.pharocasts.com/
Blog: http://magaloma.blogspot.com/
Developer group: http://cara74.seasidehosting.st