Laurent and corious :) I add some TasklistMorph behavior. With the open list (cmd-rigth or cmd-left): * cmd-up: maximize all windows * cmd-down: minimize all windows * cmd-b: apply SystemBrowser windows's filter * cmd-w: apply Worspace windows's filter * cmd-a: remove windows's filter
** The cmd-b work in 1.2.1, in 1.3 you have to change TasklistMorph>>keyStroke: because I use OBSystemBrowser class by way of example and therefore does not perform properly filtered. 2011/5/23 laurent laffont <[email protected]> > 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 >>>> > >>>> >>>> >>>> >>> >> >
TasklistMorph.st
Description: Binary data
