[Pharo-project] WindowOrganiser (was: Tab widget improvements)

Gary Chambers gazzaguru2 at btinternet.com
Fri Jun 10 05:35:47 EDT 2011


Tools->Change Sorter for changesets...

Not sure where to put it for now, probably Polymorph-Widgets.

One other nicety (adapt the first bit as required for dock)...

addWindow: aSystemWindow
 "Add an existing window to the pages."

 TopWindow = aSystemWindow
  ifTrue: [self class passivateTopWindow].
 self tabGroup
  addPage: aSystemWindow configureForEmbedding
  label: (self tabLabelFor: aSystemWindow);
  selectedPageIndex: self tabGroup pages size.
 self isActive ifFalse: [self tabGroup selectedTab passivate].
 self tabGroup selectedTab
  on: #startDrag
  send: #dragTab:event:in:
  to: self
  withValue: aSystemWindow


dragTab: aSystemWindow event: anEvent in: aTabLabel
 "Drag a tab. Remove the window from the organiser and place in hand."
 
 self removeWindow: aSystemWindow.
 anEvent hand grabMorph: aSystemWindow

Regards, Gary

  ----- Original Message ----- 
  From: laurent laffont 
  To: Pharo-project at lists.gforge.inria.fr 
  Sent: Friday, June 10, 2011 7:52 AM
  Subject: Re: [Pharo-project] WindowOrganiser (was: Tab widget improvements)


  Hi Gary,




  I've played a little and changed:


  DockingBarMorph subclass: #WindowOrganiser
  uses: TEasilyThemed
  instanceVariableNames: 'tabGroup'
  classVariableNames: ''
  poolDictionaries: ''
  category: 'Guru'


  (sorry, I feel stupid, I don't know how to make a changeset, need to look at this :)


  So I can open a sort of docking panel: (see attached screenshot)




  WindowOrganiser new
    openInWorld;
    height:200;
    adhereToBottom.




  That means we can have docking panels like the IDEs Java students use :)


  Moreover TWM tile windows only in clear area, so all this play nicely together.


  I wonder what's the best way to package all this. In Polymorph ?



  Laurent Laffont - @lolgzs

  Pharo Smalltalk Screencasts: http://www.pharocasts.com/
  Blog: http://magaloma.blogspot.com/
  Developer group: http://cara74.seasidehosting.st




  On Thu, Jun 9, 2011 at 3:33 PM, Gary Chambers <gazzaguru2 at btinternet.com> wrote:

    Even better when working more properly (attached)

    Regards, Gary

      ----- Original Message ----- 
      From: laurent laffont 
      To: Pharo-project at lists.gforge.inria.fr 
      Sent: Thursday, June 09, 2011 2:12 PM
      Subject: Re: [Pharo-project] Tab widget improvements




      On Thu, Jun 9, 2011 at 3:01 PM, Gary Chambers <gazzaguru2 at btinternet.com> wrote:

        Something to get you started... ;-0




      aaaaargggggggg    THAT'S SO DAMN COOOOOOOOOOOOOOOOOOL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


      Laurent






        WindowOrganiser new open

        Optionally, via halo, turn on "Accept drops" for the window, else use the window menu to "Grab window...".

        Plenty of evilness left to sort out with it, naturally.
        Have fun!

        Regards, Gary

          ----- Original Message ----- 
          From: Gary Chambers 
          To: Pharo-project at lists.gforge.inria.fr 
          Sent: Thursday, June 09, 2011 10:03 AM
          Subject: Re: [Pharo-project] Tab widget improvements


          Hi Laurent.

          Sounds like a cool idea and is possible. You'd likely need to modify SystemWindow  somewhat to deal with being within a tab (remove grips, forward label changes to the tab, handle activation (TopWindow stuff might be tricky) etc.). You'd also want an option (perhaps a button in the tab label) to break the window out again.

          For some of this you could get some ideas from StandardWindow with respect to fullscreen, #noteNewOwner:

          Regards, Gary

            ----- Original Message ----- 
            From: laurent laffont 
            To: Pharo-project at lists.gforge.inria.fr 
            Sent: Wednesday, June 08, 2011 5:20 PM
            Subject: Re: [Pharo-project] Tab widget improvements


            Hi Gary, 


            I wanted to try what follows while coding TWM, maybe with your magic super powers its easy :)


            Create  a SystemWindow subclass: #TabbedWindow (or better name).


            In this window's menu there's the list of all other SystemWindows. When you click on it, the window goes as tab.


            So I can group several windows in a tabbed container. Like the group windows feature of KDE. See http://blip.tv/sebastian-kgler/window-managing-features-in-kde-plasma-4-4-3180359 at 1'50.


            Is it hard ? Idea how to do this ?


            Laurent.



            On Wed, Jun 8, 2011 at 4:57 PM, Gary Chambers <gazzaguru2 at btinternet.com> wrote:

              For another example, just a quickly hacked together (i.e. quick and dirty) multi workspace thing attached.

              MultiWorkspaceWindow new open

              Use the window menu to add workspaces, otherwise works like a workspace for the selected tab.

              Regards, Gary

              ----- Original Message ----- From: "Gary Chambers" <gazzaguru2 at btinternet.com> 

              To: <Pharo-project at lists.gforge.inria.fr>

              Sent: Wednesday, June 08, 2011 3:26 PM 

              Subject: Re: [Pharo-project] Tab widget improvements



                Lol

                Regards, Gary

                ----- Original Message ----- From: "Tudor Girba" <tudor at tudorgirba.com>
                To: <Pharo-project at lists.gforge.inria.fr>
                Sent: Wednesday, June 08, 2011 3:19 PM
                Subject: Re: [Pharo-project] Tab widget improvements


                You know my soft spot :)

                Doru


                On 8 Jun 2011, at 16:04, Gary Chambers wrote:


                  I expect Doru will want it in 1.3 for Moose ;-)

                  Regards, Gary

                  ----- Original Message ----- From: "Marcus Denker" <marcus.denker at inria.fr>
                  To: <Pharo-project at lists.gforge.inria.fr>
                  Sent: Wednesday, June 08, 2011 3:00 PM
                  Subject: Re: [Pharo-project] Tab widget improvements



                  On Jun 8, 2011, at 3:55 PM, Gary Chambers wrote:


                    Attached, some improvements to the TabGroupMorph etc. having had feedback from Doru.

                    Provides scrolling buttons when insufficient room for all tabs and displays only tabs for which there is room! (excepting at least one).

                    Can optionally set wrapScrolling on the TabSelectorMorph to allow wraparound scrolling via the buttons.



                  Do we put that in 1.3 or 1.4?

                  http://code.google.com/p/pharo/issues/list?thanks=4376


                  --
                  Marcus Denker  -- http://www.marcusdenker.de
                  INRIA Lille -- Nord Europe. Team RMoD.





                --
                www.tudorgirba.com

                "Live like you mean it."









-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110610/57e66266/attachment-0001.html>


More information about the Pharo-dev mailing list