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
|
On Sun, May 22, 2011 at 8:25 PM, laurent laffont <[hidden email]> wrote: Hi, (I forgot I've hacked TaskBarMorph to make it working well but the idea is here :)
|
In reply to this post by laurent laffont
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 > |
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 <[hidden email]> wrote: send a cs that we can play with it :) |
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 <[hidden email]> On 1.2: Polymorph-Widgets-GastonDallOglio.389.mcz (866K) Download Attachment |
2011/5/23 Gastón Dall' Oglio <[hidden email]>
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.
|
In reply to this post by laurent laffont
I love this.
On Sun, May 22, 2011 at 2:25 PM, laurent laffont <[hidden email]> wrote: Hi, |
In reply to this post by Gastón Dall' Oglio
Be careful, in 1.3 it hangs my image and I was forced to kill it.
2011/5/23 Gastón Dall' Oglio <[hidden email]>
-- Mariano http://marianopeck.wordpress.com |
Sorry Mariano, I omitted to say that I tried this on a one-click image 1.2.1, but still is not the code so try to share with you but the idea of separating the types of windows, which I found very useful when I have many windows. 2011/5/23 Mariano Martinez Peck <[hidden email]> Be careful, in 1.3 it hangs my image and I was forced to kill it. |
Yes Gaston, don't worry ;) I didn't have any useful in the image. I just warned in case some other folks do.
2011/5/23 Gastón Dall' Oglio <[hidden email]>
-- Mariano http://marianopeck.wordpress.com |
In reply to this post by laurent laffont
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 <[hidden email]>
TasklistMorph.st (12K) Download Attachment |
2011/5/24 Gastón Dall' Oglio <[hidden email]>
I did not understand until I enable the setting "Keep task list open" :) I've started a TilingWindowManager project (I will upload it this evening on SS) so we can put all our stuff + tests without polluting TaskBar & Tasklist too much.
Indeed, after 3 days I can't live without the tiling buttons :) Laurent.
|
Ok we need a 1.3 version because now we get excited.
Stef On May 24, 2011, at 8:51 AM, laurent laffont wrote: > > > 2011/5/24 Gastón Dall' Oglio <[hidden email]> > 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. > > > I did not understand until I enable the setting "Keep task list open" :) > > I've started a TilingWindowManager project (I will upload it this evening on SS) so we can put all our stuff + tests without polluting TaskBar & Tasklist too much. > > Indeed, after 3 days I can't live without the tiling buttons :) > > Laurent. > > > > 2011/5/23 laurent laffont <[hidden email]> > 2011/5/23 Gastón Dall' Oglio <[hidden email]> > 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 <[hidden email]> > 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 <[hidden email]> 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 > > > > > > > > > |
Yes! it's really exciting :) "Keep task list open": go to World menu => System => Settings => Search for "task" =>check "Keep task list open". Now, open various system Browsers, Workspaces and other types of windows, and then hold cmd (or alt in linux) and next press right next b next w next a, and so on. Of this manner you can filter various windows of different kind using the task list.
TilingWindowManager :/ ... LayoutWindowManager? Sorry for short answer, my English is very poor :( 2011/5/24 Stéphane Ducasse <[hidden email]> Ok we need a 1.3 version because now we get excited. |
In reply to this post by Stéphane Ducasse
On Tue, May 24, 2011 at 9:48 AM, Stéphane Ducasse <[hidden email]> wrote: Ok we need a 1.3 version because now we get excited. Here's a first shot (not integrated to TaskBarMorph though) which works in 1.3: Gofer it
squeaksource: 'TilingWindowManager'; package: 'TWM'; load.
TWMBar new open. The real manager is TilingWM. Try: (TilingWM forWorld: World) tileVisibleWindows.
(TilingWM forWorld: World) tileBrowsers. (TilingWM forWorld: World) tileWorkspaces. Laurent. Stef |
I like it :)
Adrian On May 24, 2011, at 22:25 , laurent laffont wrote: > On Tue, May 24, 2011 at 9:48 AM, Stéphane Ducasse <[hidden email] >> wrote: > >> Ok we need a 1.3 version because now we get excited. >> > > Here's a first shot (not integrated to TaskBarMorph though) which works in > 1.3: > > Gofer it > squeaksource: 'TilingWindowManager'; > package: 'TWM'; > load. > TWMBar new open. > > The real manager is TilingWM. Try: > > (TilingWM forWorld: World) tileVisibleWindows. > (TilingWM forWorld: World) tileBrowsers. > (TilingWM forWorld: World) tileWorkspaces. > > > Laurent. > > > >> Stef >> >> On May 24, 2011, at 8:51 AM, laurent laffont wrote: >> >>> >>> >>> 2011/5/24 Gastón Dall' Oglio <[hidden email]> >>> 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. >>> >>> >>> I did not understand until I enable the setting "Keep task list open" :) >>> >>> I've started a TilingWindowManager project (I will upload it this evening >> on SS) so we can put all our stuff + tests without polluting TaskBar & >> Tasklist too much. >>> >>> Indeed, after 3 days I can't live without the tiling buttons :) >>> >>> Laurent. >>> >>> >>> >>> 2011/5/23 laurent laffont <[hidden email]> >>> 2011/5/23 Gastón Dall' Oglio <[hidden email]> >>> 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 <[hidden email]> >>> 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 < >> [hidden email]> 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 >>>> >>> >>> >>> >>> >>> >>> >>> >> >> >> |
In reply to this post by laurent laffont
I do not understand.
how can I get a browser? once this is one is created I get the browser full screen but then how do I get a chance to create a new one if I want. dividing the browsers based on the screen size results in rather small browsers :) Stef > TWMBar new open. > > The real manager is TilingWM. Try: > > (TilingWM forWorld: World) tileVisibleWindows. > (TilingWM forWorld: World) tileBrowsers. > (TilingWM forWorld: World) tileWorkspaces. > |
On Wed, May 25, 2011 at 11:06 AM, Stéphane Ducasse <[hidden email]> wrote: I do not understand. Hey, this is just a start :) I will add a button to open the world menu. once this is one is created I get the browser full screen yes, but because browsers waste space IMHO. Maybe we could get rid of windows borders when tiled.
Laurent.
|
Now there's a button to open the world menu. Pharo Smalltalk Screencasts: http://www.pharocasts.com/ Blog: http://magaloma.blogspot.com/ Developer group: http://cara74.seasidehosting.st On Wed, May 25, 2011 at 11:20 AM, laurent laffont <[hidden email]> wrote:
|
Excelent! IMHO, it's better that's not integrated to TaskBarMorph, lets it free :) For example, click in unused space of the TWMBar and you can move it around you wish in the screen, similar to use DockingBarMorph>>beFloating. I attach screenshot.
Laurent, I improved (or not? :)) your work, if you think that is bad for TWM simply undo it ;) 2011/5/25 laurent laffont <[hidden email]>
=?ISO-8859-1?Q?=C1rea_de_trabajo_1=5F002=2Epng?= (141K) Download Attachment =?ISO-8859-1?Q?=C1rea_de_trabajo_1=5F003=2Epng?= (138K) Download Attachment |
Free forum by Nabble | Edit this page |