com.threerings.opengl.gui
Class Window

java.lang.Object
  extended by com.threerings.opengl.gui.Component
      extended by com.threerings.opengl.gui.Container
          extended by com.threerings.opengl.gui.Window
All Implemented Interfaces:
ConfigUpdateListener<ManagedConfig>, Comparable<Window>
Direct Known Subclasses:
DecoratedWindow, PopupWindow, StretchWindow, UserInterfaceWindow

public class Window
extends Container
implements Comparable<Window>

A window defines the top-level of a component hierarchy. It must be created with a stylesheet and layout manager.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.threerings.opengl.gui.Container
Container.ChildOp
 
Field Summary
protected  int _layer
          The "layer" in the window stack occupied by this window.
protected  boolean _modal
          Whether or not this window steals input from other windows further down the hierarchy.
protected  Window _parentWindow
          Used to associate this window with a parent window.
protected  Root _root
          The root node that connects us into the JME system.
protected  Component _savedFocus
          Stores a reference to our focus when this window is no longer the top-most window.
 
Fields inherited from class com.threerings.opengl.gui.Container
_children, _layout
 
Fields inherited from class com.threerings.opengl.gui.Component
_alpha, _backgrounds, _borders, _colors, _ctx, _cursor, _enabled, _height, _hover, _hoverable, _insets, _listeners, _parent, _preferredSize, _properties, _rect, _styleConfigs, _tipmouse, _tiptext, _tooltipStyle, _transferHandler, _valid, _visible, _width, _x, _y, DEFAULT, DISABLED, HOVER, STATE_COUNT, STATE_PCLASSES
 
Constructor Summary
Window(GlContext ctx, LayoutManager layout)
           
 
Method Summary
 void center()
          Positions this window in the center of the display.
 int compareTo(Window other)
           
 void dismiss()
          Detaches this window from the root node and removes it from the display.
protected  String getDefaultStyleConfig()
          Returns the name of the default config to be used for all instances of this component.
 int getLayer()
          Returns the layer occupied by this window.
 Window getParentWindow()
          Returne the parent window.
 Root getRoot()
          Returns the root node that manages this window.
protected  void gotFocus()
          Called when this window gets the focus after a window on the hierarchy has been removed.
 void invalidate()
          Marks this component as invalid and needing a relayout.
 boolean isAdded()
          Returns true if this component is added to a hierarchy of components that culminates in a top-level window.
 boolean isModal()
          Returns whether or not this window is modal.
 boolean isOverlay()
          Returns whether or not this window is an overlay, in which case its children will not receive input focus by default.
 void pack()
          Sizes this window to its preferred size.
 void pack(int whint, int hhint)
          Sizes this window to its preferred size, accounting for the specified width or height hints.
protected  void requestFocus(Component component)
          Requests that the specified component be given the input focus.
 void setBounds(int x, int y, int width, int height)
          Sets the bounds of this component in screen coordinates.
 void setLayer(int layer)
          Configures the "layer" occupied by this window.
 void setModal(boolean modal)
          Configures this window to be modal which causes it to "steal" all mouse and keyboard input while it is added to the interface hierarchy.
 void setParent(Container parent)
          Informs this component of its parent in the interface heirarchy.
 void setParentWindow(Window parentWindow)
          Set the parent window.
protected  void setRoot(Root root)
          Configures this window with its root node.
 boolean shouldShadeBehind()
          Returns whether this window should have shading applied beneath it.
 
Methods inherited from class com.threerings.opengl.gui.Container
add, add, add, add, applyOperation, computePreferredSize, getComponent, getComponentCount, getComponentIndex, getFirstDescendantFocus, getHitComponent, getLastDescendantFocus, getLayoutManager, getNextFocus, getPreviousFocus, layout, remove, remove, removeAll, renderComponent, replace, setAlpha, setEnabled, setHoverable, setLayoutManager, validate, wasAdded, wasRemoved
 
Methods inherited from class com.threerings.opengl.gui.Component
acceptsFocus, addListener, boundsToString, changeCursor, configUpdated, contains, createDefaultTooltipComponent, createDefaultTooltipComponent, createTooltipComponent, dispatchEvent, emitEvent, getAbsoluteX, getAbsoluteY, getAlpha, getBackground, getBorder, getBounds, getColor, getContext, getCursor, getFallbackState, getFocusTarget, getHeight, getInsets, getNextFocus, getParent, getPreferredSize, getPreviousFocus, getProperty, getState, getStateCount, getStatePseudoClass, getStyleConfigs, getTooltipText, getTooltipTimeout, getTooltipWindowStyle, getTransferHandler, getWidth, getWindow, getX, getY, hasFocus, intersectScissor, isEnabled, isHoverable, isShowing, isTooltipRelativeToMouse, isValid, isVisible, removeAllListeners, removeAllListeners, removeListener, render, renderBackground, renderBorder, requestFocus, scrollRectToVisible, scrollRectToVisible, setBackground, setCursor, setLocation, setPreferredSize, setPreferredSize, setProperty, setSize, setStyleConfig, setStyleConfig, setStyleConfig, setStyleConfigs, setTooltipRelativeToMouse, setTooltipText, setTransferHandler, setVisible, stateDidChange, updateCursor, updateFromStyleConfig, updateFromStyleConfig
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_root

protected Root _root
The root node that connects us into the JME system.


_modal

protected boolean _modal
Whether or not this window steals input from other windows further down the hierarchy.


_layer

protected int _layer
The "layer" in the window stack occupied by this window.


_savedFocus

protected Component _savedFocus
Stores a reference to our focus when this window is no longer the top-most window.


_parentWindow

protected Window _parentWindow
Used to associate this window with a parent window.

Constructor Detail

Window

public Window(GlContext ctx,
              LayoutManager layout)
Method Detail

pack

public void pack()
Sizes this window to its preferred size. This method does not change the window's coordinates.


pack

public void pack(int whint,
                 int hhint)
Sizes this window to its preferred size, accounting for the specified width or height hints. Specify -1 for a dimension to indicate that it is freely resizable and a non-negative hint for a dimension that should be no larger than a particular size. This method does not change the window's coordinates.


center

public void center()
Positions this window in the center of the display. This should be called after configuring the size of the window (using, for example, a call to pack()).


setModal

public void setModal(boolean modal)
Configures this window to be modal which causes it to "steal" all mouse and keyboard input while it is added to the interface hierarchy. Mouse movement and button press events that would normally go to other windows or to the default mouse target will instead be sent to the top-most modal window. Other events destined for other windows (key events and mouse entry and exit events) will not be dispatched.


isModal

public boolean isModal()
Returns whether or not this window is modal. See setModal(boolean) for more information on modality.


shouldShadeBehind

public boolean shouldShadeBehind()
Returns whether this window should have shading applied beneath it.


isOverlay

public boolean isOverlay()
Returns whether or not this window is an overlay, in which case its children will not receive input focus by default.


getRoot

public Root getRoot()
Returns the root node that manages this window.


getLayer

public int getLayer()
Returns the layer occupied by this window. See setLayer(int) for more details.


setLayer

public void setLayer(int layer)
Configures the "layer" occupied by this window. Windows normally stack one atop another with the most recently added window being highest in the stack. The layer configuration allows a window to be added above windows in a lower layer regardless of when it or other windows are added. All windows default to a layer of zero, windows with a higher layer will be "above" those with a lower layer. Windows in the same layer stack according to the order in which they are added.


dismiss

public void dismiss()
Detaches this window from the root node and removes it from the display.


compareTo

public int compareTo(Window other)
Specified by:
compareTo in interface Comparable<Window>

setParent

public void setParent(Container parent)
Description copied from class: Component
Informs this component of its parent in the interface heirarchy.

Overrides:
setParent in class Component

invalidate

public void invalidate()
Description copied from class: Component
Marks this component as invalid and needing a relayout. If the component is valid, its parent will also be marked as invalid.

Overrides:
invalidate in class Component

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
Description copied from class: Component
Sets the bounds of this component in screen coordinates.

Overrides:
setBounds in class Component
See Also:
Component.setLocation(int, int), Component.setSize(int, int)

isAdded

public boolean isAdded()
Description copied from class: Component
Returns true if this component is added to a hierarchy of components that culminates in a top-level window.

Overrides:
isAdded in class Component

setParentWindow

public void setParentWindow(Window parentWindow)
Set the parent window. If the parent window is removed from its root node, this window will also be removed.


getParentWindow

public Window getParentWindow()
Returne the parent window.


getDefaultStyleConfig

protected String getDefaultStyleConfig()
Description copied from class: Component
Returns the name of the default config to be used for all instances of this component. Derived classes will likely want to override this method and set up a default config for their type of component.

Overrides:
getDefaultStyleConfig in class Container

setRoot

protected void setRoot(Root root)
Configures this window with its root node. Do not call this method, it is called automatically when a window is added to the root node via a call to Root.addWindow(com.threerings.opengl.gui.Window).


requestFocus

protected void requestFocus(Component component)
Requests that the specified component be given the input focus.


gotFocus

protected void gotFocus()
Called when this window gets the focus after a window on the hierarchy has been removed.