Om
1.0.0
A universal framework for multimedia simulation
|
A class that splits a rectangle into one or more split views along an axis. More...
#include <omGraphicsGUISplitView.h>
Public Member Functions | |
SplitView () | |
Create a new split view with no width or height positioned at the origin. More... | |
SplitView (const Rectangle &newRectangle) | |
Create a new empty split view which occupies the specified rectangular region. More... | |
Size | getSplitCount () const |
Return the total number of splits that are part of this split view. More... | |
Size | getViewCount () const |
Return the total number of subviews that are part of this split view. More... | |
GUIObject * | getView (Index viewIndex) const |
Return a pointer to the subview object at the specified index in this split view. More... | |
Bool | setView (Index viewIndex, GUIObject *newView) |
Set the subview object at the specified index in this split view. More... | |
Bool | addView (GUIObject *newSubview) |
Add a new subview to this split view after the previous subviews. More... | |
void | removeView (Index viewIndex) |
Remove the subview at the specified index in this split view. More... | |
void | clearViews () |
Remove all subviews from the split view. More... | |
Float | getViewSize (Index viewIndex) const |
Return the local size along the split axis of the subview at the specified index. More... | |
Float | setViewSize (Index viewIndex, Float newSize) |
Set the local size along the split axis of the subview at the specified index. More... | |
const AABB1f & | getViewSizeRange (Index viewIndex) const |
Return the legal size range along the split axis of the subview at the specified index. More... | |
void | setViewSizeRange (Index viewIndex, const AABB1f &newSizeRange) |
Set the legal size range along the split axis of the subview at the specified index. More... | |
Float | getViewFlex (Index viewIndex) const |
Return the flexibility of the view at the specified index. More... | |
void | setViewFlex (Index viewIndex, Float newFlexibility) |
Set the local size along the split axis of the subview at the specified index. More... | |
const AABB2f & | getLocalViewBoundsXY (Index viewIndex) const |
Return the local bounding box of the subview at the specified index. More... | |
AABB3f | getLocalViewBounds (Index viewIndex) const |
Return the local bounding box of the subview at the specified index. More... | |
Float | getSplitSize () const |
Return the size of each split view divider along the split axis. More... | |
void | setSplitSize (Float newSplitSize) |
Set the size of each split view divider along the split axis. More... | |
const Axis & | getAxis () const |
Return an object that describes the axis that the view is split along. More... | |
void | setAxis (const Axis &newAxis) |
Set an object that describes the axis that the view is split along. More... | |
virtual Bool | setSize (const Vector3f &newSize) |
Set the 3D size of the split view along each of its local axes. More... | |
const Color4f & | getFocusColor () const |
Return the color for the split view's focus ring for the subview that currently has keyboard focus. More... | |
void | setFocusColor (const Color4f &newFocusColor) |
Set the color for the split view's focus ring for the subview that currently has keyboard focus. More... | |
Int | getFocusView () const |
Return the index of the subview that currently has focus, or -1 if there is none. More... | |
void | setFocusView (Index newFocus) |
Set the index of the subview that currently has focus. More... | |
virtual Bool | setFocus (Bool newHasFocus) |
Set whether or not this split 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 split view for the specified time interval in seconds. More... | |
virtual Bool | drawSelf (GUIRenderer &renderer, const AABB3f &parentBounds) const |
Draw this split 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 split view had focus. More... | |
virtual Bool | textEvent (const TextEvent &text) |
Handle the specified text input event that occured when this split view had focus. More... | |
virtual Bool | keyEvent (const KeyEvent &event) |
Handle the specified keyboard event for the entire split view. More... | |
virtual Bool | mouseMotionEvent (const MouseMotionEvent &event) |
Handle the specified mouse motion event for the entire split view. More... | |
virtual Bool | mouseButtonEvent (const MouseButtonEvent &event) |
Handle the specified mouse button event for the entire split view. More... | |
virtual Bool | mouseWheelEvent (const MouseWheelEvent &event) |
Handle the specified mouse wheel event for the entire split 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... | |
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... | |
virtual Bool | resizeForContent () |
Resize this object to fit tightly around its contents, if possible. 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 Axis | DEFAULT_AXIS |
The default axis that the split view is split along. More... | |
static const Float | DEFAULT_SPLIT_SIZE |
The default size of a split view's splitting divider. More... | |
static const Border | DEFAULT_BORDER |
The default border that is used for a split view. More... | |
static const Color4f | DEFAULT_BACKGROUND_COLOR |
The default background color that is used for a split view's area. More... | |
static const Color4f | DEFAULT_BORDER_COLOR |
The default border color that is used for a split view. More... | |
static const Color4f | DEFAULT_FOCUS_COLOR |
The default color that is used to highlight a text field's selected text. More... | |
A class that splits a rectangle into one or more split views along an axis.
om::graphics::gui::objects::SplitView::SplitView | ( | ) |
Create a new split view with no width or height positioned at the origin.
om::graphics::gui::objects::SplitView::SplitView | ( | const Rectangle & | newRectangle | ) |
Create a new empty split view which occupies the specified rectangular region.
|
inline |
Return the total number of splits that are part of this split view.
This number is one less than the number of views in the split view.
|
inline |
Return the total number of subviews that are part of this split view.
This number is one more than the number of splits in the split view.
Return a pointer to the subview object at the specified index in this split view.
Set the subview object at the specified index in this split view.
Add a new subview to this split view after the previous subviews.
The method returns whether or not the subview was successfully added.
void om::graphics::gui::objects::SplitView::removeView | ( | Index | viewIndex | ) |
Remove the subview at the specified index in this split view.
void om::graphics::gui::objects::SplitView::clearViews | ( | ) |
Remove all subviews from the split view.
Return the local size along the split axis of the subview at the specified index.
Set the local size along the split axis of the subview at the specified index.
The method returns the actual resulting size of the view.
|
inline |
Return the legal size range along the split axis of the subview at the specified index.
|
inline |
Set the legal size range along the split axis of the subview at the specified index.
Return the flexibility of the view at the specified index.
|
inline |
Set the local size along the split axis of the subview at the specified index.
|
inline |
Return the local bounding box of the subview at the specified index.
Return the local bounding box of the subview at the specified index.
|
inline |
Return the size of each split view divider along the split axis.
|
inline |
Set the size of each split view divider along the split axis.
|
inline |
Return an object that describes the axis that the view is split along.
|
inline |
Set an object that describes the axis that the view is split along.
Set the 3D size of the split view along each of its local axes.
Reimplemented from om::graphics::gui::objects::GUIObject.
|
inline |
Return the color for the split view's focus ring for the subview that currently has keyboard focus.
|
inline |
Set the color for the split view's focus ring for the subview that currently has keyboard focus.
|
inline |
Return the index of the subview that currently has focus, or -1 if there is none.
void om::graphics::gui::objects::SplitView::setFocusView | ( | Index | newFocus | ) |
Set the index of the subview that currently has focus.
Set whether or not this split 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 split 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 split view using the specified GUI renderer to the given parent coordinate system bounds.
The method returns whether or not the split view was successfully drawn.
Reimplemented from om::graphics::gui::objects::GUIObject.
Handle the specified GUI event that occured when this split view had focus.
Reimplemented from om::gui::input::InputHandler.
Handle the specified text input event that occured when this split view had focus.
Reimplemented from om::gui::input::InputHandler.
Handle the specified keyboard event for the entire split view.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse motion event for the entire split view.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse button event for the entire split view.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse wheel event for the entire split view.
Reimplemented from om::gui::input::InputHandler.
|
static |
The default axis that the split view is split along.
|
static |
The default size of a split view's splitting divider.
|
static |
The default border that is used for a split view.
|
static |
The default background color that is used for a split view's area.
|
static |
The default border color that is used for a split view.
|
static |
The default color that is used to highlight a text field's selected text.