Om
1.0.0
A universal framework for multimedia simulation
|
A GUI object that displays a series of GUI objects within a wrapping content area. More...
#include <omGraphicsGUIListView.h>
Public Member Functions | |
ListView () | |
Create a new list empty view positioned at the origin of its coordinate system. More... | |
ListView (const Rectangle &newRectangle) | |
Create a new empty list view which occupies the specified rectangular region. More... | |
Size | getObjectCount () const |
Return the number of child objects that are part of this list view. More... | |
GUIObject * | getObject (Index objectIndex) const |
Return a pointer to the child object at the specified index. More... | |
Bool | addObject (GUIObject *newObject) |
Add a new child object to the end of the list and return whether or not the operation succeeded. More... | |
Bool | insertObject (Index insertIndex, GUIObject *newObject) |
Insert a child object at the specified index and return whether or not the operation succeeded. More... | |
Bool | removeObject (Index objectIndex) |
Remove the object at the specified index in this list view. More... | |
void | clearObjects () |
Remove all child objects from this list view. More... | |
void | updateList () |
Update the list view based on the current state of the child objects. More... | |
const AABB2f & | getLocalObjectBoundsXY (Index objectIndex) const |
Return the 2D local bounding box of the child object at the specified index. More... | |
AABB3f | getLocalObjectBounds (Index objectIndex) const |
Return the 3D local bounding box of the child object at the specified index. More... | |
Bool | pickObject (const Vector2f &localPosition, Index &objectIndex) const |
Determine if the specified local position is over any child object and get the object's index. More... | |
const TextLayout & | getLayout () const |
Return an object that describes the layout axis and direction of this list view. More... | |
void | setLayout (const TextLayout &newLayout) |
Set an object that describes the layout axis and direction of this list view. More... | |
const Origin & | getAlignment () const |
Return an object that describes how this list view's objects are aligned within its content area. More... | |
void | setAlignment (const Origin &newAlignment) |
Set an object that describes how this list view's objects are aligned within its content area. More... | |
const Vector2f & | getPadding () const |
Return a vector for the padding in each direction between the list view objects. More... | |
void | setPadding (const Vector2f &newPadding) |
Set a vector for the padding in each direction between the list view objects. More... | |
void | setPadding (Float newPadding) |
Set the padding in both directions between the list view objects. More... | |
Bool | getWrapIsEnabled () const |
Return whether or not wrapping is currently enabled in this list view. More... | |
void | setWrapIsEnabled (Bool newWrapIsEnabled) |
Set whether or not wrapping is currently enabled in this list view. More... | |
virtual Bool | setSize (const Vector3f &newSize) |
Set the 3D size of this list view along each of its local axes. More... | |
virtual Bool | resizeForContent () |
Resize this list view to fit tightly around its contents. More... | |
virtual Bool | setBorder (const Border &newBorder) |
Set an object that describes this list view's border. More... | |
virtual Bool | setFocus (Bool newHasFocus) |
Set whether or not this list view currently has keyboard focus at its level in the GUI hierarchy. More... | |
virtual Bool | guiEvent (const GUIEvent &event) |
Handle the specified GUI event that occured when this list view had focus. More... | |
virtual Bool | textEvent (const TextEvent &text) |
Handle the specified text input event that occured when this object had focus. More... | |
virtual Bool | keyEvent (const KeyEvent &event) |
Handle the specified keyboard event that occured when this object had focus. More... | |
virtual Bool | mouseMotionEvent (const MouseMotionEvent &event) |
Handle the specified mouse motion event that occurred. More... | |
virtual Bool | mouseButtonEvent (const MouseButtonEvent &event) |
Handle the specified mouse button event that occurred. More... | |
virtual Bool | mouseWheelEvent (const MouseWheelEvent &event) |
Handle the specified mouse wheel event that occurred. More... | |
virtual void | update (Float dt) |
Update the current internal state of this list view for the specified time interval in seconds. More... | |
virtual Bool | drawSelf (GUIRenderer &renderer, const AABB3f &parentBounds) const |
Draw this object using the specified GUI renderer to the given parent coordinate system bounds. 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... | |
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... | |
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 a list view. More... | |
static const Color4f | DEFAULT_BACKGROUND_COLOR |
The default background color that is used for a list view's area. More... | |
static const Color4f | DEFAULT_BORDER_COLOR |
The default border color that is used for a list view. More... | |
static const TextLayout | DEFAULT_LAYOUT |
The default layout that is used for a list view's objects within its content area. More... | |
static const Origin | DEFAULT_ALIGNMENT |
The default alignment that is used for a list view's objects within its content area. More... | |
static const Vector2f | DEFAULT_OBJECT_PADDING |
The default padding around objects in this list view along each dimension. More... | |
static const Size | DEFAULT_MAX_OBJECTS_PER_LINE |
The default maximum number of child objects that should be displayed per line in a list view. More... | |
A GUI object that displays a series of GUI objects within a wrapping content area.
om::graphics::gui::objects::ListView::ListView | ( | ) |
Create a new list empty view positioned at the origin of its coordinate system.
om::graphics::gui::objects::ListView::ListView | ( | const Rectangle & | newRectangle | ) |
Create a new empty list view which occupies the specified rectangular region.
|
inline |
Return the number of child objects that are part of this list view.
Return a pointer to the child object at the specified index.
Add a new child object to the end of the list and return whether or not the operation succeeded.
Bool om::graphics::gui::objects::ListView::insertObject | ( | Index | insertIndex, |
GUIObject * | newObject | ||
) |
Insert a child object at the specified index and return whether or not the operation succeeded.
Remove the object at the specified index in this list view.
The method returns whether or not the object was able to be removed.
void om::graphics::gui::objects::ListView::clearObjects | ( | ) |
Remove all child objects from this list view.
void om::graphics::gui::objects::ListView::updateList | ( | ) |
Update the list view based on the current state of the child objects.
|
inline |
Return the 2D local bounding box of the child object at the specified index.
This is the bounding box that the child object will be placed relative to. It will be at least as large as the object but can be larger if there are other objects in the same line with larger size.
Return the 3D local bounding box of the child object at the specified index.
This is the bounding box that the child object will be placed relative to. It will be at least as large as the object but can be larger if there are other objects in the same line with larger size.
Bool om::graphics::gui::objects::ListView::pickObject | ( | const Vector2f & | localPosition, |
Index & | objectIndex | ||
) | const |
Determine if the specified local position is over any child object and get the object's index.
|
inline |
Return an object that describes the layout axis and direction of this list view.
void om::graphics::gui::objects::ListView::setLayout | ( | const TextLayout & | newLayout | ) |
Set an object that describes the layout axis and direction of this list view.
|
inline |
Return an object that describes how this list view's objects are aligned within its content area.
void om::graphics::gui::objects::ListView::setAlignment | ( | const Origin & | newAlignment | ) |
Set an object that describes how this list view's objects are aligned within its content area.
|
inline |
Return a vector for the padding in each direction between the list view objects.
void om::graphics::gui::objects::ListView::setPadding | ( | const Vector2f & | newPadding | ) |
Set a vector for the padding in each direction between the list view objects.
|
inline |
Set the padding in both directions between the list view objects.
|
inline |
Return whether or not wrapping is currently enabled in this list view.
void om::graphics::gui::objects::ListView::setWrapIsEnabled | ( | Bool | newWrapIsEnabled | ) |
Set whether or not wrapping is currently enabled in this list view.
Set the 3D size of this list view along each of its local axes.
Reimplemented from om::graphics::gui::objects::GUIObject.
|
virtual |
Resize this list view to fit tightly around its contents.
Reimplemented from om::graphics::gui::objects::GUIObject.
Set an object that describes this list view's border.
Reimplemented from om::graphics::gui::objects::GUIObject.
Set whether or not this list view currently has keyboard focus at its level in the GUI hierarchy.
Reimplemented from om::graphics::gui::objects::GUIObject.
Handle the specified GUI event that occured when this list view had focus.
Reimplemented from om::gui::input::InputHandler.
Handle the specified text input event that occured when this object had focus.
Reimplemented from om::gui::input::InputHandler.
Handle the specified keyboard event that occured when this object had focus.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse motion event that occurred.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse button event that occurred.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse wheel event that occurred.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Update the current internal state of this list 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 using the specified GUI renderer to the given parent coordinate system bounds.
The method returns whether or not the object was successfully drawn.
The default implementation draws nothing and returns TRUE.
Reimplemented from om::graphics::gui::objects::GUIObject.
|
static |
The default border that is used for a list view.
|
static |
The default background color that is used for a list view's area.
|
static |
The default border color that is used for a list view.
|
static |
The default layout that is used for a list view's objects within its content area.
|
static |
The default alignment that is used for a list view's objects within its content area.
|
static |
The default padding around objects in this list view along each dimension.
|
static |
The default maximum number of child objects that should be displayed per line in a list view.