Om
1.0.0
A universal framework for multimedia simulation
|
A class that contains a 2D grid of rectangular cells that can contain child GUI objects. More...
#include <omGraphicsGUIGridView.h>
Public Member Functions | |
GridView () | |
Create a new grid view with no width or height and no rows or columns positioned at the origin. More... | |
Size | getRowCount () const |
Return the total number of rows there are in this grid view. More... | |
void | addRow (Float newSize, Float newFlex=Float(1)) |
Add a new row with the specified size and flexibility to the grid view, enlarging it by the new row's size. More... | |
Bool | insertRow (Index insertIndex, Float newSize, Float newFlex=Float(1)) |
Insert a new row with the specified size and flexibility in the grid view, enlarging it by the new row's size. More... | |
Bool | removeRow (Index rowIndex) |
Remove the row at the specified index from this grid view. More... | |
void | clearRows () |
Remove all of the rows from this grid view, but keep the columns. More... | |
Float | getRowSize (Index rowIndex) const |
Return the size of the row with the specified index in this grid view. More... | |
Bool | setRowSize (Index rowIndex, Float newSize) |
Set the size of the row with the specified index in this grid view. More... | |
const AABB1f & | getRowSizeRange (Index rowIndex) const |
Return the legal size range of the row at the specified index. More... | |
Bool | setRowSizeRange (Index rowIndex, const AABB1f &newSizeRange) |
Set the legal size range of the row at the specified index. More... | |
Float | getRowFlex (Index rowIndex) const |
Return the flexibility of the row with the specified index, between 0 and 1. More... | |
void | setRowFlex (Index rowIndex, Float newFlex) |
Set whether or not the row with the specified index can be resized automatically. More... | |
Size | getColumnCount () const |
Return the total number of columns there are in this grid view. More... | |
void | addColumn (Float newSize, Float newFlex=Float(1)) |
Add a new column with the specified size and flexibility to the grid view, enlarging it by the new column's size. More... | |
Bool | insertColumn (Index insertIndex, Float newSize, Float newFlex=Float(1)) |
Insert a new column with the specified size and flexibility in the grid view, enlarging it by the new column's size. More... | |
Bool | removeColumn (Index columnIndex) |
Remove the column at the specified index from this grid view. More... | |
void | clearColumns () |
Remove all of the columns from this grid view, but keep the rows. More... | |
Float | getColumnSize (Index columnIndex) const |
Return the size of the column with the specified index in this grid view. More... | |
Bool | setColumnSize (Index columnIndex, Float newSize) |
Set the size of the column with the specified index in this grid view. More... | |
const AABB1f & | getColumnSizeRange (Index columnIndex) const |
Return the legal size range of the column at the specified index. More... | |
Bool | setColumnSizeRange (Index columnIndex, const AABB1f &newSizeRange) |
Set the legal size range of the column at the specified index. More... | |
Float | getColumnFlex (Index columnIndex) const |
Return the flexibility of the column with the specified index, between 0 and 1. More... | |
void | setColumnFlex (Index columnIndex, Float newFlex) |
Set whether or not the column with the specified index can be resized automatically. More... | |
Size | getCellCount () const |
Return the total number of cells there are in this grid view. More... | |
GUIObject * | getCell (Index rowIndex, Index columnIndex) const |
Return a pointer to the object in the specified cell of this grid view, or NULL if it is empty. More... | |
Bool | setCell (Index rowIndex, Index columnIndex, GUIObject *newObject) |
Set a pointer to the object in the specified cell of this grid view. More... | |
Bool | clearCell (Index rowIndex, Index columnIndex) |
Remove the object from the specified cell of this grid view. More... | |
void | clearCells () |
Remove all objects from all cells of this grid view. More... | |
AABB2f | getLocalCellBoundsXY (Index rowIndex, Index columnIndex) const |
Return the view-local bounding box of the cell with the specified row and column indices. More... | |
virtual Bool | setSize (const Vector3f &newSize) |
Set the 3D size of the grid view along each of its local axes. More... | |
virtual Bool | resizeForContent () |
Resize this grid view to fit tightly around its contents. More... | |
Bool | getFocusCell (Index &rowIndex, Index &columnIndex) const |
Get the row and column index of the cell that currently has focus. More... | |
virtual Bool | setFocus (Bool newHasFocus) |
Set whether or not this grid 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 grid view for the specified time interval in seconds. More... | |
virtual Bool | drawSelf (GUIRenderer &renderer, const AABB3f &parentBounds) const |
Draw this grid 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 grid view had focus. More... | |
virtual Bool | textEvent (const TextEvent &event) |
Handle the specified text input event that occured when this grid view had focus. More... | |
virtual Bool | keyEvent (const KeyEvent &event) |
Handle the specified keyboard event for the entire grid view. More... | |
virtual Bool | mouseButtonEvent (const MouseButtonEvent &event) |
Handle the specified mouse button event for the entire grid view. More... | |
virtual Bool | mouseMotionEvent (const MouseMotionEvent &event) |
Handle the specified mouse motion event for the entire grid view. More... | |
virtual Bool | mouseWheelEvent (const MouseWheelEvent &event) |
Handle the specified mouse wheel event for the entire grid 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... | |
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 a grid view. More... | |
static const Color4f | DEFAULT_BACKGROUND_COLOR |
The default background color that is used for a grid view's area. More... | |
static const Color4f | DEFAULT_BORDER_COLOR |
The default border color that is used for a grid view. More... | |
A class that contains a 2D grid of rectangular cells that can contain child GUI objects.
A grid view is an optionally-bordered rectangular area whose content area (inside the border) is divided into a 2D grid of cells. Each cell can contain any number of child GUI objects.
om::graphics::gui::objects::GridView::GridView | ( | ) |
Create a new grid view with no width or height and no rows or columns positioned at the origin.
|
inline |
Return the total number of rows there are in this grid view.
Add a new row with the specified size and flexibility to the grid view, enlarging it by the new row's size.
Bool om::graphics::gui::objects::GridView::insertRow | ( | Index | insertIndex, |
Float | newSize, | ||
Float | newFlex = Float(1) |
||
) |
Insert a new row with the specified size and flexibility in the grid view, enlarging it by the new row's size.
Remove the row at the specified index from this grid view.
The grid view's total size is reduced to compensate for the change.
void om::graphics::gui::objects::GridView::clearRows | ( | ) |
Remove all of the rows from this grid view, but keep the columns.
The grid view's total size is reduced to compensate for the change.
Return the size of the row with the specified index in this grid view.
If the row or column index is invalid, 0 is returned. Otherwise, the size of the specified row is returned.
Set the size of the row with the specified index in this grid view.
Return the legal size range of the row at the specified index.
Bool om::graphics::gui::objects::GridView::setRowSizeRange | ( | Index | rowIndex, |
const AABB1f & | newSizeRange | ||
) |
Set the legal size range of the row at the specified index.
Return the flexibility of the row with the specified index, between 0 and 1.
The flexibility determines how resizable a row is.
Set whether or not the row with the specified index can be resized automatically.
The flexibility determines how resizable a row is.
If an invalid row index is specified, the method has no effect.
|
inline |
Return the total number of columns there are in this grid view.
Add a new column with the specified size and flexibility to the grid view, enlarging it by the new column's size.
Bool om::graphics::gui::objects::GridView::insertColumn | ( | Index | insertIndex, |
Float | newSize, | ||
Float | newFlex = Float(1) |
||
) |
Insert a new column with the specified size and flexibility in the grid view, enlarging it by the new column's size.
Remove the column at the specified index from this grid view.
The grid view's total size is reduced to compensate for the change.
void om::graphics::gui::objects::GridView::clearColumns | ( | ) |
Remove all of the columns from this grid view, but keep the rows.
The grid view's total size is reduced to compensate for the change.
Return the size of the column with the specified index in this grid view.
If the column or column index is invalid, 0 is returned. Otherwise, the size of the specified column is returned.
Set the size of the column with the specified index in this grid view.
|
inline |
Return the legal size range of the column at the specified index.
Bool om::graphics::gui::objects::GridView::setColumnSizeRange | ( | Index | columnIndex, |
const AABB1f & | newSizeRange | ||
) |
Set the legal size range of the column at the specified index.
Return the flexibility of the column with the specified index, between 0 and 1.
The flexibility determines how resizable a column is.
|
inline |
Set whether or not the column with the specified index can be resized automatically.
The flexibility determines how resizable a column is.
If an invalid column index is specified, the method has no effect.
|
inline |
Return the total number of cells there are in this grid view.
|
inline |
Return a pointer to the object in the specified cell of this grid view, or NULL if it is empty.
|
inline |
Set a pointer to the object in the specified cell of this grid view.
The method returns whether or not the operation was successful.
Remove the object from the specified cell of this grid view.
The method returns whether or not the operation was successful.
void om::graphics::gui::objects::GridView::clearCells | ( | ) |
Remove all objects from all cells of this grid view.
|
inline |
Return the view-local bounding box of the cell with the specified row and column indices.
Set the 3D size of the grid view along each of its local axes.
Reimplemented from om::graphics::gui::objects::GUIObject.
|
virtual |
Resize this grid view to fit tightly around its contents.
Reimplemented from om::graphics::gui::objects::GUIObject.
|
inline |
Get the row and column index of the cell that currently has focus.
Set whether or not this grid 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 grid 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 grid view using the specified GUI renderer to the given parent coordinate system bounds.
The method returns whether or not the grid view was successfully drawn.
Reimplemented from om::graphics::gui::objects::GUIObject.
Handle the specified GUI event that occured when this grid view had focus.
Reimplemented from om::gui::input::InputHandler.
Handle the specified text input event that occured when this grid view had focus.
Reimplemented from om::gui::input::InputHandler.
Handle the specified keyboard event for the entire grid view.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse button event for the entire grid view.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse motion event for the entire grid view.
Reimplemented from om::gui::input::InputHandler.
|
virtual |
Handle the specified mouse wheel event for the entire grid view.
Reimplemented from om::gui::input::InputHandler.
|
static |
The default border that is used for a grid view.
|
static |
The default background color that is used for a grid view's area.
|
static |
The default border color that is used for a grid view.