[Pharo-project] Tiling windows

Stéphane Ducasse stephane.ducasse at inria.fr
Mon May 23 09:06:43 CEST 2011


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
> 




More information about the Pharo-project mailing list