Laurent, I attached a package I've added some improvements to your work, I have found useful. Of course I am not knowledgeable about morph, just added some and perhaps can serve as inspiration.


2011/5/23 laurent laffont <laurent.laffont@gmail.com>
On 1.2:

Gofer it
squeaksource: 'LaurentLSandbox';
version: 'Polymorph-Widgets-LaurentLaffont.388';
load.


Then open or move a window so the TaskBar is updated and you have a new "magic" button on bottom left.

(note this is hacky actually, I will write a nicer version this week if people like it).

Laurent.

On Mon, May 23, 2011 at 9:06 AM, St�phane Ducasse <stephane.ducasse@inria.fr> wrote:
send a cs that we can play with it :)

On May 22, 2011, at 8:25 PM, laurent laffont 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
>