Om
1.0.0
A universal framework for multimedia simulation
|
A class that contains a collection of GUI objects positioned within a rectangular region. More...
#include <omGraphicsGUIObjectView.h>
Classes | |
class | Delegate |
A class that contains function objects that recieve ObjectView events. More... | |
Public Member Functions | |
ObjectView () | |
Create a new object view with no width or height positioned at the origin. More... | |
ObjectView (const Rectangle &newRectangle) | |
Create a new empty object view which occupies the specified rectangular region. More... | |
Size | getObjectCount () const |
Return the total number of GUIObjects that are part of this object view. More... | |
GUIObject * | getObject (Index objectIndex) const |
Return a pointer to the object at the specified index in this object view. More... | |
Bool | addObject (GUIObject *newObject) |
Add the specified object to this object view. More... | |
Bool | removeObject (const GUIObject *oldObject) |
Remove the specified object from this object view. More... | |
void | clearObjects () |
Remove all objects from this object view. More... | |
Bool | pickObject (const Vector2f &localPoint, Index &objectIndex) |
Determine the index of the object that overlaps the specified local point. More... | |
virtual Bool | resizeForContent () |
Resize this object view to fit tightly around its contents. More... | |
Int | getFocusObject () const |
Return the index of the object that currently has focus, or -1 if there is none. More... | |
void | setFocusObject (Index newFocus) |
Set the index of the object that currently has focus. More... | |
virtual Bool | setFocus (Bool newHasFocus) |
Set whether or not this object view currently has keyboard focus at its level in the GUI hierarchy. More... | |
virtual void | update (Float dt) |
Update the current internal state of this object view for the specified time interval in seconds. More... | |
virtual Bool | drawSelf (GUIRenderer &renderer, const AABB3f &parentBounds) const |
Draw this object view using the specified GUI renderer to the given parent coordinate system bounds. More... | |
virtual Bool | guiEvent (const GUIEvent &event) |
Handle the specified GUI event that occured when this object view had focus. More... | |
virtual Bool | textEvent (const TextEvent &event) |
Handle the specified text event that occured when this object view had focus. More... | |
virtual Bool | keyEvent (const KeyEvent &event) |
Handle the specified keyboard event for the entire object view. More... | |
virtual Bool | mouseMotionEvent (const MouseMotionEvent &event) |
Handle the specified mouse motion event for the entire object view. More... | |
virtual Bool | mouseButtonEvent (const MouseButtonEvent &event) |
Handle the specified mouse button event for the entire object view. More... | |
virtual Bool | mouseWheelEvent (const MouseWheelEvent &event) |
Handle the specified mouse wheel event for the entire object view. More... | |
Delegate & | getDelegate () |
Return a reference to the delegate which responds to events for this object view. More... | |
const Delegate & | getDelegate () const |
Return a reference to the delegate which responds to events for this object view. More... | |
void | setDelegate (const Delegate &newDelegate) |
Return a reference to the delegate which responds to events for this object view. More... | |
Public Member Functions inherited from om::graphics::gui::objects::GUIObject | |
GUIObject () | |
Create a default visible GUI object positioned at the origin (0,0) with 0 width and 0 height. More... | |
GUIObject (const RectangleStyle &newRectangleStyle) | |
Create a visible GUI object positioned at the origin (0,0) with 0 width and 0 height and the given rectangle style. More... | |
GUIObject (const Rectangle &newRectangle) | |
Create a visible GUI object that occupies the specified rectangle. More... | |
GUIObject (const Rectangle &newRectangle, const RectangleStyle &newRectangleStyle) | |
Create a visible GUI object that occupies the specified rectangle and rectangle style. More... | |
virtual | ~GUIObject () |
Destory the GUI object, releasing all internal resources. More... | |
const Rectangle & | getRectangle () const |
Return a reference to this GUI object's rectangle. More... | |
const Vector3f & | getSize () const |
Return a reference to the 3D size of this object along each of its local axes. More... | |
const Vector2f & | getSizeXY () const |
Return a reference to the 2D scaling factor of this object along each of its local axes. More... | |
virtual Bool | setSize (const Vector3f &newSize) |
Set the 3D size of this object along each of its local axes. More... | |
Bool | setSize (const Vector2f &newSizeXY) |
Set the 2D size of this object along the X and Y local axes. More... | |
Bool | setSize (Float newWidth, Float newHeight) |
Set the 2D size of this object along the X and Y local axes. More... | |
Bool | setSizeX (Float newWidth) |
Set the size of this object along the X axis. More... | |
Bool | setSizeY (Float newHeight) |
Set the size of this object along the Y axis. More... | |
Bool | setSizeZ (Float newDepth) |
Set the size of this object along the Z axis. More... | |
void | fillParent (const Vector3f &parentSize) |
Resize and resposition this object so that it fills the specified parent bounding box size. More... | |
const Vector3f & | getScale () const |
Return a reference to the 3D scaling factor of this object along each of its local axes. More... | |
const Vector2f & | getScaleXY () const |
Return a reference to the 2D scaling factor of this object along each of its local axes. More... | |
virtual Bool | setScale (const Vector3f &newScale) |
Set the 3D scaling factor of this object along each of its local axes. More... | |
Bool | setScale (const Vector2f &newScaleXY) |
Set the 2D scaling factor of this object along the X and Y local axes. More... | |
Bool | setScale (Float newScaleX, Float newScaleY) |
Set the 2D scaling factor of this object along the X and Y local axes. More... | |
Bool | setScale (Float newScale) |
Set the scaling factor of this object along all 3 axes. More... | |
const Vector3f & | getPosition () const |
Return the position of this GUI object's origin relative to its parent's coordinate origin. More... | |
const Vector2f & | getPositionXY () const |
Return the 2D position of this GUI object's origin relative to its parent's coordinate origin. More... | |
Bool | setPosition (const Vector2f &newPosition) |
Set the position of this GUI object's origin relative to its parent's coordinate origin. More... | |
virtual Bool | setPosition (const Vector3f &newPosition) |
Set the position of this GUI object's origin relative to its parent's coordinate origin. More... | |
const Matrix3f & | getRotation () const |
Return a 3x3 orthonormal matrix indicating the basis of this object's coordinate frame. More... | |
virtual Bool | setRotation (const Matrix3f &newRotation) |
Set a 3x3 orthonormal matrix indicating the basis of this object's coordinate frame. More... | |
Bool | setRotation (Float radians) |
Set the rotation of this GUI object to be along the Z-axis with a rotation specified in radians. More... | |
Bool | setRotationDegrees (Float degrees) |
Set the rotation of this GUI object to be along the Z-axis with a rotation specified in degrees. More... | |
Origin & | getOrigin () |
Return the alignment of the coordinate origin for this object. More... | |
const Origin & | getOrigin () const |
Return the alignment of the coordinate origin for this object. More... | |
virtual Bool | setOrigin (const Origin &newPositionOrigin) |
Set the alignment of the coordinate origin for this object. More... | |
void | setOrigin (Origin::XOrigin newXOrigin, Origin::YOrigin newYOrigin) |
Set the XY alignment of the coordinate origin for this object. More... | |
void | setOrigin (Origin::XOrigin newXOrigin, Origin::YOrigin newYOrigin, Origin::ZOrigin newZOrigin) |
Set the XYZ alignment of the coordinate origin for this object. More... | |
AABB2f | getBoundsInParent (const AABB2f &parentBounds) const |
Return the 2D bounding box of this object in the coordinate frame of the specified parent bounding box. More... | |
AABB3f | getBoundsInParent (const AABB3f &parentBounds) const |
Return the 3D bounding box of this object in the coordinate frame of the specified parent bounding box. More... | |
AABB2f | getLocalBoundsXY () const |
Return the 2D bounding box of this object in its local coordinate frame. More... | |
AABB3f | getLocalBounds () const |
Return the 3D bounding box of this object in its local coordinate frame. More... | |
Vector2f | getLocalCenterXY () const |
Return the 2D center of this object's rectangle in its local coordinate frame. More... | |
Vector3f | getLocalCenter () const |
Return the 3D center of this object's rectangle in its local coordinate frame. More... | |
Matrix4f | getTransformMatrix (const AABB3f &parentBounds) const |
Return the object-space-to-parent-space homogeneous transformation matrix for the given parent bounding box. More... | |
Vector2f | transformToLocal (const Vector2f &pointInParent, const AABB2f &parentBounds) const |
Transform a 3D point in the parent coordinate system into this object's coordinate system. More... | |
Vector3f | transformToLocal (const Vector3f &pointInParent, const AABB3f &parentBounds) const |
Transform a 3D point in the parent coordinate system into this object's coordinate system. More... | |
Vector2f | transformFromLocal (const Vector2f &localPoint, const AABB2f &parentBounds) const |
Transform a 2D point in this object's local coordinate system into its parent's coordinate system. More... | |
Vector3f | transformFromLocal (const Vector3f &localPoint, const AABB3f &parentBounds) const |
Transform a 3D point in this object's local coordinate system into its parent's coordinate system. More... | |
Vector2f | transformVectorToLocal (const Vector2f &vectorInParent) const |
Transform a 3D vector in the parent coordinate system into this object's coordinate system. More... | |
Vector3f | transformVectorToLocal (const Vector3f &vectorInParent) const |
Transform a 3D vector in the parent coordinate system into this object's coordinate system. More... | |
Vector2f | transformVectorFromLocal (const Vector2f &localVector) const |
Transform a 2D vector in this object's local coordinate system into its parent's coordinate system. More... | |
Vector3f | transformVectorFromLocal (const Vector3f &localVector) const |
Transform a 3D vector in this object's local coordinate system into its parent's coordinate system. More... | |
MouseButtonEvent | transformEventToLocal (const MouseButtonEvent &event, const AABB2f &parentBounds) const |
Transform a mouse button event in the parent coordinate system into this object's coordinate system. More... | |
MouseButtonEvent | transformEventFromLocal (const MouseButtonEvent &event, const AABB2f &parentBounds) const |
Transform a mouse button event in this object's local coordinate system into its parent's coordinate system. More... | |
MouseMotionEvent | transformEventToLocal (const MouseMotionEvent &event, const AABB2f &parentBounds) const |
Transform a mouse motion event in the parent coordinate system into this object's coordinate system. More... | |
MouseMotionEvent | transformEventFromLocal (const MouseMotionEvent &event, const AABB2f &parentBounds) const |
Transform a mouse motion event in this object's local coordinate system into its parent's coordinate system. More... | |
MouseWheelEvent | transformEventToLocal (const MouseWheelEvent &event, const AABB2f &parentBounds) const |
Transform a mouse wheel event in the parent coordinate system into this object's coordinate system. More... | |
MouseWheelEvent | transformEventFromLocal (const MouseWheelEvent &event, const AABB2f &parentBounds) const |
Transform a mouse wheel event in this object's local coordinate system into its parent's coordinate system. More... | |
virtual Bool | containsLocalPoint (const Vector2f &localPoint) const |
Return whether or not this GUI object contains the specified local 2D point within its local bounds. More... | |
virtual Bool | containsLocalPoint (const Vector3f &localPoint) const |
Return whether or not this GUI object contains the specified local 3D point within its local bounds. More... | |
AABB2f | getLocalContentBoundsXY () const |
Return the 2D bounding box for the object's rectangle inside area in its local coordinate frame. More... | |
virtual AABB3f | getLocalContentBounds () const |
Return the 3D bounding box for the object's rectangle inside area in its local coordinate frame. More... | |
GUIStyle * | getStyle () const |
Return a pointer to the style object to use when drawing this GUI object. More... | |
void | setStyle (GUIStyle *newStyle) |
Set a pointer to the style object to use when drawing this GUI object. More... | |
const RectangleStyle & | getRectangleStyle () const |
Return an object that describes the style of the main outside rectangle of this object. More... | |
virtual Bool | setRectangleStyle (const RectangleStyle &newRectangleStyle) |
Set an object that describes the style of the main outside rectangle of this object. More... | |
const Border & | getBorder () const |
Return an object that describes the border for this object's main rectangle. More... | |
virtual Bool | setBorder (const Border &newBorder) |
Set an object that describes the border for this object's main rectangle. More... | |
Float | getBorderWidth () const |
Return the width of this object's main rectangle border. More... | |
Bool | setBorderWidth (Float newWidth) |
Set the width of this object's main rectangle border. More... | |
Float | getBorderRadius () const |
Return the corner radius of this object's main rectangle border. More... | |
Bool | setBorderRadius (Float newRadius) |
Set the corner radius of this object's main rectangle border. More... | |
const Margin & | getBorderMargin () const |
Return an object that describes the padding between the exterior and interior of the object's main rectangle. More... | |
Bool | setBorderMargin (const Margin &newMargin) |
Set an object that describes the padding between the exterior and interior of the object's main rectangle. More... | |
const Color4f & | getBackgroundColor () const |
Return the background color for this object's main rectangle. More... | |
virtual Bool | setBackgroundColor (const Color4f &newBackgroundColor) |
Set the background color for this object's main rectangle. More... | |
const Color4f & | getBorderColor () const |
Return the border color used when rendering the object's main rectangle. More... | |
virtual Bool | setBorderColor (const Color4f &newBorderColor) |
Set the border color used when rendering the object's main rectangle. More... | |
const GUIObjectFlags & | getFlags () const |
Return a const reference to the flags for this GUI object. More... | |
Bool | flagIsSet (GUIObjectFlags::Flag flag) const |
Return whether or not the specified boolan flag is set for this GUI object. More... | |
virtual Bool | setFlags (const GUIObjectFlags &newFlags) |
Set the flags for this GUI object. More... | |
Bool | setFlag (GUIObjectFlags::Flag flag, Bool newIsSet=true) |
Set whether or not the specified boolan flag is set for this GUI object. More... | |
Bool | getIsVisible () const |
Return whether or not this GUI object should be drawn to the screen. More... | |
void | setIsVisible (Bool newIsVisible) |
Set whether or not this GUI object should be drawn to the screen. More... | |
Bool | hasFocus () const |
Return whether or not this GUI object currently has keyboard focus at its level in the GUI hierarchy. More... | |
Public Member Functions inherited from om::gui::input::InputHandler | |
virtual | ~InputHandler () |
Destroy an input handler. More... | |
Static Public Attributes | |
static const Border | DEFAULT_BORDER |
The default border that is used for an object view. More... | |
static const Color4f | DEFAULT_BACKGROUND_COLOR |
The default background color that is used for an object view's area. More... | |
static const Color4f | DEFAULT_BORDER_COLOR |
The default border color that is used for an object view. More... | |
A class that contains a collection of GUI objects positioned within a rectangular region.
A object view delegates UI actions to the objects that it contains, as well as maintains a sorted order for drawing objects based on their depth.
om::graphics::gui::objects::ObjectView::ObjectView | ( | ) |
Create a new object view with no width or height positioned at the origin.
om::graphics::gui::objects::ObjectView::ObjectView | ( | const Rectangle & | newRectangle | ) |
Create a new empty object view which occupies the specified rectangular region.
|
inline |
Return the total number of GUIObjects that are part of this object view.
Return a pointer to the object at the specified index in this object view.
Objects are stored in back-to-front sorted order, such that the object with index 0 is the furthest toward the back of the object ordering.
Add the specified object to this object view.
If the specified object pointer is NULL, the method fails and FALSE is returned. Otherwise, the object is inserted in the front-to-back order of the object view's objects and TRUE is returned.
Remove the specified object from this object view.
If the given object is part of this object view, the method removes it and returns TRUE. Otherwise, if the specified object is not found, the method doesn't modify the object view and FALSE is returned.
void om::graphics::gui::objects::ObjectView::clearObjects | ( | ) |
Remove all objects from this object view.
Bool om::graphics::gui::objects::ObjectView::pickObject | ( | const Vector2f & | localPoint, |
Index & | objectIndex | ||
) |
Determine the index of the object that overlaps the specified local point.
|
virtual |
Resize this object view to fit tightly around its contents.
Reimplemented from om::graphics::gui::objects::GUIObject.
|
inline |
Return the index of the object that currently has focus, or -1 if there is none.
void om::graphics::gui::objects::ObjectView::setFocusObject | ( | Index | newFocus | ) |
Set the index of the object that currently has focus.
Set whether or not this object view currently has keyboard focus at its level in the GUI hierarchy.
Reimplemented from om::graphics::gui::objects::GUIObject.
|
virtual |
Update the current internal state of this object view for the specified time interval in seconds.
This method recursively calls the update() methods for all child objects so that they are updated.
Reimplemented from om::graphics::gui::objects::GUIObject.
|
virtual |
Draw this object view using the specified GUI renderer to the given parent coordinate system bounds.
The method returns whether or not the object view was successfully drawn.
Reimplemented from om::graphics::gui::objects::GUIObject.
Handle the specified GUI event that occured when this object view had focus.
Reimplemented from om::gui::input::InputHandler.
Handle the specified text event that occured when this object view had focus.
Reimplemented from om::gui::input::InputHandler.
Handle the specified keyboard event for the entire object view.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse motion event for the entire object view.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse button event for the entire object view.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse wheel event for the entire object view.
Reimplemented from om::gui::input::InputHandler.
|
inline |
Return a reference to the delegate which responds to events for this object view.
|
inline |
Return a reference to the delegate which responds to events for this object view.
|
inline |
Return a reference to the delegate which responds to events for this object view.
|
static |
The default border that is used for an object view.
|
static |
The default background color that is used for an object view's area.
|
static |
The default border color that is used for an object view.