[Pharo-project] Tiling windows

laurent laffont laurent.laffont at gmail.com
Sun May 22 14:25:34 EDT 2011


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 <http://twitter.com/#!/lolgzs>

Pharo Smalltalk Screencasts: http://www.pharocasts.com/
Blog: http://magaloma.blogspot.com/
Developer group: http://cara74.seasidehosting.st
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110522/c2470693/attachment.html>


More information about the Pharo-dev mailing list