2011/5/23 Gastón Dall' Oglio <[email protected]> > 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. >
Thanks Gastón, I like the idea. It will be a good step forward in having better window management. Now we should rewrite this clean + tests (may be adding the notion of widgets like in KDE / Gnome). As windows fill all the space, would be good to have a button to open the world menu. I would love having the possibility of splitting the World + back and forward configuration like Emacs winner mode, keyboard driven. Since several days I use http://most-advantageous.com/optimal-layout/ on OSX and there's some great ideas too. Laurent. > > 2011/5/23 laurent laffont <[email protected]> > >> 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 < >> [email protected]> 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 >>> > >>> >>> >>> >> >
