Om  1.0.0
A universal framework for multimedia simulation
Classes | Public Member Functions | Static Public Attributes | List of all members
om::graphics::gui::objects::Slider Class Reference

A class that represents a sliding rectangular region that allows the user to modify a ranged value. More...

#include <omGraphicsGUISlider.h>

Inheritance diagram for om::graphics::gui::objects::Slider:
om::graphics::gui::objects::GUIObject om::gui::input::InputHandler

Classes

class  Delegate
 A class that contains function objects that recieve Slider events. More...
 

Public Member Functions

 Slider ()
 Create a new sizeless slider positioned at the origin of its coordinate system. More...
 
 Slider (const Rectangle &newRectangle)
 Create a new slider which occupies the specified rectangle and has the default range. More...
 
 Slider (const Rectangle &newRectangle, const Axis &newAxis, const AABB1f &newRange, Double newValue)
 Create a new slider which has the specified rectangle, major axis, range, and value. More...
 
Double getValue () const
 Return the current value for the slider. More...
 
void setValue (Double newValue)
 Set the current value for the slider. More...
 
const AABB1dgetRange () const
 Return an object that describes the minimum and maximum allowed values for the slider. More...
 
void setRange (const AABB1d &newRange)
 Set an object that describes the minimum and maximum allowed values for the slider. More...
 
Size getStepCount () const
 Return the total number of value steps there are for this slider. More...
 
void setStepCount (Size newNumSteps)
 Set the total number of value steps there are for this slider. More...
 
ValueCurve getValueCurve () const
 Return an object representing the curve that is used to map from slider positions to values. More...
 
void setValueCurve (ValueCurve newCurve)
 Set an object representing the curve that is used to map from slider positions to values. More...
 
const AxisgetAxis () const
 Return an object that describes the major axis that this slider moves along. More...
 
void setAxis (const Axis &newAxis)
 Set an object that describes the major axis that this slider moves along. More...
 
AABB2f getLocalSliderBounds () const
 Return the local bounding box for the slider's moving area. More...
 
BordergetSliderBorder ()
 Return a mutable object that describes the border for this slider's moving area. More...
 
const BordergetSliderBorder () const
 Return an object that describes the border for this slider's moving area. More...
 
void setSliderBorder (const Border &newSliderBorder)
 Set an object that describes the border for this slider's moving area. More...
 
Float getSliderSize () const
 Return the size of the slider's moveable area along the major axis of the slider in vertical screen units. More...
 
void setSliderSize (Float newSliderSize)
 Set the size of the slider's moveable area along the major axis of the slider in vertical screen units. More...
 
Bool getIsEnabled () const
 Return whether or not this slider is currently active. More...
 
void setIsEnabled (Bool newIsEnabled)
 Set whether or not this slider is currently active. More...
 
Bool getIsEditable () const
 Return whether or not this slider is able to be edited by the user. More...
 
void setIsEditable (Bool newIsEditable)
 Return whether or not this slider is able to be edited by the user. More...
 
Bool getIsGrabbed () const
 Return whether or not this slider is currently grabbed by the mouse. More...
 
const Color4f & getSliderColor () const
 Return the color used when rendering a slider's moving area. More...
 
void setSliderColor (const Color4f &newSliderColor)
 Set the color used when rendering a slider's moving area. More...
 
const Color4f & getSliderBorderColor () const
 Return the border color used when rendering a slider's moving area. More...
 
void setSliderBorderColor (const Color4f &newSliderBorderColor)
 Set the border color used when rendering a slider's moving area. More...
 
DelegategetDelegate ()
 Return a reference to the delegate which responds to events for this slider. More...
 
const DelegategetDelegate () const
 Return a reference to the delegate which responds to events for this slider. More...
 
void setDelegate (const Delegate &newDelegate)
 Return a reference to the delegate which responds to events for this slider. More...
 
virtual void update (Float dt)
 Update the current internal state of this slider 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...
 
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...
 
- 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 RectanglegetRectangle () const
 Return a reference to this GUI object's rectangle. More...
 
const Vector3fgetSize () const
 Return a reference to the 3D size of this object along each of its local axes. More...
 
const Vector2fgetSizeXY () 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...
 
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 Vector3fgetScale () const
 Return a reference to the 3D scaling factor of this object along each of its local axes. More...
 
const Vector2fgetScaleXY () 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 Vector3fgetPosition () const
 Return the position of this GUI object's origin relative to its parent's coordinate origin. More...
 
const Vector2fgetPositionXY () 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 Matrix3fgetRotation () 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...
 
OrigingetOrigin ()
 Return the alignment of the coordinate origin for this object. More...
 
const OrigingetOrigin () 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...
 
GUIStylegetStyle () 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 RectangleStylegetRectangleStyle () 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 BordergetBorder () 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 MargingetBorderMargin () 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 GUIObjectFlagsgetFlags () 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...
 
virtual Bool setFocus (Bool newHasFocus)
 Set 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...
 
virtual Bool guiEvent (const GUIEvent &event)
 Handle the specified GUI event that occured when this object had focus. More...
 
virtual Bool textEvent (const TextEvent &event)
 Handle the specified text input event that occured when this object had focus. More...
 

Static Public Attributes

static const Axis DEFAULT_AXIS
 The default major axis that is used for a slider. More...
 
static const Float DEFAULT_SLIDER_SIZE
 The default size of a slider's moving area. More...
 
static const Border DEFAULT_BORDER
 The default border that is used for a slider. More...
 
static const Border DEFAULT_SLIDER_BORDER
 The default meter border that is used for a slider's moving area. More...
 
static const Color4f DEFAULT_BACKGROUND_COLOR
 The default background color that is used for a slider's area. More...
 
static const Color4f DEFAULT_BORDER_COLOR
 The default border color that is used for a slider's area. More...
 
static const Color4f DEFAULT_SLIDER_COLOR
 The default color that is used for a slider's moving area. More...
 
static const Color4f DEFAULT_SLIDER_BORDER_COLOR
 The default meter border color that is used for a slider's moving area. More...
 

Detailed Description

A class that represents a sliding rectangular region that allows the user to modify a ranged value.

Constructor & Destructor Documentation

om::graphics::gui::objects::Slider::Slider ( )

Create a new sizeless slider positioned at the origin of its coordinate system.

om::graphics::gui::objects::Slider::Slider ( const Rectangle newRectangle)

Create a new slider which occupies the specified rectangle and has the default range.

om::graphics::gui::objects::Slider::Slider ( const Rectangle newRectangle,
const Axis newAxis,
const AABB1f newRange,
Double  newValue 
)

Create a new slider which has the specified rectangle, major axis, range, and value.

Member Function Documentation

Double om::graphics::gui::objects::Slider::getValue ( ) const
inline

Return the current value for the slider.

void om::graphics::gui::objects::Slider::setValue ( Double  newValue)

Set the current value for the slider.

The new slider value is clamped to lie within the slider's valid range of values.

const AABB1d& om::graphics::gui::objects::Slider::getRange ( ) const
inline

Return an object that describes the minimum and maximum allowed values for the slider.

The range's minimum value is placed at the minimum coordinate of the slider's major axis, and the maximum value is placed at the maximum coordinate of the slider's major axis.

The minimum and maximum values do not have to be properly ordered - they can be reversed in order to reverse the effective direction of the slider.

void om::graphics::gui::objects::Slider::setRange ( const AABB1d newRange)

Set an object that describes the minimum and maximum allowed values for the slider.

The range's minimum value is placed at the minimum coordinate of the slider's major axis, and the maximum value is placed at the maximum coordinate of the slider's major axis.

The minimum and maximum values do not have to be properly ordered - they can be reversed in order to reverse the effective direction of the slider.

The slider's value is clamped so that is lies within the new range.

Size om::graphics::gui::objects::Slider::getStepCount ( ) const
inline

Return the total number of value steps there are for this slider.

This allows the user to quantize the slider's allowed values to a fixed number of evenly-spaced steps.

If this value is 0, the default, the slider's resolution is unquantized and can be used to represent any value in the valid range.

void om::graphics::gui::objects::Slider::setStepCount ( Size  newNumSteps)
inline

Set the total number of value steps there are for this slider.

This allows the user to quantize the slider's allowed values to a fixed number of evenly-spaced steps.

If this value is 0, the default, the slider's resolution is unquantized and can be used to represent any value in the valid range.

ValueCurve om::graphics::gui::objects::Slider::getValueCurve ( ) const
inline

Return an object representing the curve that is used to map from slider positions to values.

void om::graphics::gui::objects::Slider::setValueCurve ( ValueCurve  newCurve)
inline

Set an object representing the curve that is used to map from slider positions to values.

const Axis& om::graphics::gui::objects::Slider::getAxis ( ) const
inline

Return an object that describes the major axis that this slider moves along.

void om::graphics::gui::objects::Slider::setAxis ( const Axis newAxis)
inline

Set an object that describes the major axis that this slider moves along.

AABB2f om::graphics::gui::objects::Slider::getLocalSliderBounds ( ) const

Return the local bounding box for the slider's moving area.

Border& om::graphics::gui::objects::Slider::getSliderBorder ( )
inline

Return a mutable object that describes the border for this slider's moving area.

const Border& om::graphics::gui::objects::Slider::getSliderBorder ( ) const
inline

Return an object that describes the border for this slider's moving area.

void om::graphics::gui::objects::Slider::setSliderBorder ( const Border newSliderBorder)
inline

Set an object that describes the border for this slider's moving area.

Float om::graphics::gui::objects::Slider::getSliderSize ( ) const
inline

Return the size of the slider's moveable area along the major axis of the slider in vertical screen units.

void om::graphics::gui::objects::Slider::setSliderSize ( Float  newSliderSize)
inline

Set the size of the slider's moveable area along the major axis of the slider in vertical screen units.

Bool om::graphics::gui::objects::Slider::getIsEnabled ( ) const
inline

Return whether or not this slider is currently active.

void om::graphics::gui::objects::Slider::setIsEnabled ( Bool  newIsEnabled)
inline

Set whether or not this slider is currently active.

Bool om::graphics::gui::objects::Slider::getIsEditable ( ) const
inline

Return whether or not this slider is able to be edited by the user.

void om::graphics::gui::objects::Slider::setIsEditable ( Bool  newIsEditable)
inline

Return whether or not this slider is able to be edited by the user.

Bool om::graphics::gui::objects::Slider::getIsGrabbed ( ) const
inline

Return whether or not this slider is currently grabbed by the mouse.

const Color4f& om::graphics::gui::objects::Slider::getSliderColor ( ) const
inline

Return the color used when rendering a slider's moving area.

void om::graphics::gui::objects::Slider::setSliderColor ( const Color4f &  newSliderColor)
inline

Set the color used when rendering a slider's moving area.

const Color4f& om::graphics::gui::objects::Slider::getSliderBorderColor ( ) const
inline

Return the border color used when rendering a slider's moving area.

void om::graphics::gui::objects::Slider::setSliderBorderColor ( const Color4f &  newSliderBorderColor)
inline

Set the border color used when rendering a slider's moving area.

Delegate& om::graphics::gui::objects::Slider::getDelegate ( )
inline

Return a reference to the delegate which responds to events for this slider.

const Delegate& om::graphics::gui::objects::Slider::getDelegate ( ) const
inline

Return a reference to the delegate which responds to events for this slider.

void om::graphics::gui::objects::Slider::setDelegate ( const Delegate newDelegate)
inline

Return a reference to the delegate which responds to events for this slider.

virtual void om::graphics::gui::objects::Slider::update ( Float  dt)
virtual

Update the current internal state of this slider for the specified time interval in seconds.

Reimplemented from om::graphics::gui::objects::GUIObject.

virtual Bool om::graphics::gui::objects::Slider::drawSelf ( GUIRenderer renderer,
const AABB3f parentBounds 
) const
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.

virtual Bool om::graphics::gui::objects::Slider::keyEvent ( const KeyEvent event)
virtual

Handle the specified keyboard event that occured when this object had focus.

Reimplemented from om::gui::input::InputHandler.

virtual Bool om::graphics::gui::objects::Slider::mouseMotionEvent ( const MouseMotionEvent event)
virtual

Handle the specified mouse motion event that occurred.

Reimplemented from om::gui::input::InputHandler.

virtual Bool om::graphics::gui::objects::Slider::mouseButtonEvent ( const MouseButtonEvent event)
virtual

Handle the specified mouse button event that occurred.

Reimplemented from om::gui::input::InputHandler.

virtual Bool om::graphics::gui::objects::Slider::mouseWheelEvent ( const MouseWheelEvent event)
virtual

Handle the specified mouse wheel event that occurred.

Reimplemented from om::gui::input::InputHandler.

Member Data Documentation

const Axis om::graphics::gui::objects::Slider::DEFAULT_AXIS
static

The default major axis that is used for a slider.

const Float om::graphics::gui::objects::Slider::DEFAULT_SLIDER_SIZE
static

The default size of a slider's moving area.

const Border om::graphics::gui::objects::Slider::DEFAULT_BORDER
static

The default border that is used for a slider.

const Border om::graphics::gui::objects::Slider::DEFAULT_SLIDER_BORDER
static

The default meter border that is used for a slider's moving area.

const Color4f om::graphics::gui::objects::Slider::DEFAULT_BACKGROUND_COLOR
static

The default background color that is used for a slider's area.

const Color4f om::graphics::gui::objects::Slider::DEFAULT_BORDER_COLOR
static

The default border color that is used for a slider's area.

const Color4f om::graphics::gui::objects::Slider::DEFAULT_SLIDER_COLOR
static

The default color that is used for a slider's moving area.

const Color4f om::graphics::gui::objects::Slider::DEFAULT_SLIDER_BORDER_COLOR
static

The default meter border color that is used for a slider's moving area.


The documentation for this class was generated from the following file: