Class

cogdebugger.coggui3ports

Tiler

Related Doc: package coggui3ports

Permalink

class Tiler extends Reactor

User: gonzatob
Date: 2/8/12
Time: 2:51 PM

This is a utility class to help lay out frames on a desktop in an organized fashion. It's based on a technique for packing small lightmaps into a single larger texture; read about it here:

http://www.blackpawn.com/texts/lightmaps/default.html

Basically, we carve up the available screen real estate into smaller and smaller rectangles as we add frames. These rectangles are organized in a tree where each node contains a rectangle representing a portion of the screen and also has a reference to the frame occupying that rectangle (or null if the space is unoccupied). A null reference signals that that piece of the screen is unoccupied.

This implementation is event based to avoid issues arising from frames not knowing their final size immediately upon construction - they have to build and pack any child components first, which often doesn't happen before the frame's constructor returns.

In its current form it has several limitations: it doesn't respond to screen resizing or merge rectangles as frames are closed. It's also limited to only handling ProbeFrames, when it could conceivably be made more generic to handle more generic InternalFrames. Lastly, it's possible that this should have been implemented as a LayoutManager to be applied to a component. This was quickest though.

Linear Supertypes
Reactor, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Tiler
  2. Reactor
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Tiler(desktopSize: Dimension)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def deafTo(ps: Publisher*): Unit

    Permalink
    Definition Classes
    Reactor
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  11. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  12. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  13. def listenTo(ps: Publisher*): Unit

    Permalink
    Definition Classes
    Reactor
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. def printTree(): Unit

    Permalink

    Prints the tile tree to console.

    Prints the tile tree to console. Debugging function.

  18. val reactions: Reactions

    Permalink
    Definition Classes
    Reactor
  19. def reset(newSize: Dimension = this.desktopSize): Unit

    Permalink
  20. def retile(desktopSize: Dimension): Unit

    Permalink
  21. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  22. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  23. val verbose: Boolean

    Permalink
  24. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Reactor

Inherited from AnyRef

Inherited from Any

Ungrouped