Support Forum G3D Web Page |
Displays a Spline<float> with editable control points. More...
Inherits G3D::GuiControl.
Public Member Functions | |
bool | canChangeNumPoints () const |
const GuiText & | caption () const |
float | captionHeight () const |
For controls that have a caption outside the bounds of the control on the top or bottom, this is the size reserved for the caption. More... | |
float | captionWidth () const |
For controls that have a caption outside the bounds of the control on the left, this is the size reserved for the caption. More... | |
const Rect2D & | clickRect () const |
Used by GuiContainers. More... | |
virtual float | defaultCaptionHeight () const override |
Default caption size for this control. More... | |
virtual float | defaultCaptionWidth () const |
bool | enabled () const |
virtual void | findControlUnderMouse (Vector2 mouse, GuiControl *&control) |
Return the enabled, visible control containing the mouse. More... | |
bool | focused () const |
Vector2 | fromOSWindowCoords (const Vector2 &v) const |
Transforms v from OS window coordinates to this control's coordinates. More... | |
bool | mouseOver () const |
void | moveBy (const Vector2 &delta) |
void | moveBy (float dx, float dy) |
void | moveRightOf (const GuiControl *control, const Vector2 &offset) |
If these two controls have the same parent, move this one immediately to the right of the argument. More... | |
void | moveRightOf (const GuiControl *control, float offsetX=0.0f) |
const Rect2D & | rect () const |
void | setCanChangeNumPoints (bool b) |
virtual void | setCaption (const GuiText &caption) |
virtual void | setCaptionHeight (float c) |
virtual void | setCaptionWidth (float c) |
void | setControlPointColor (const Color4 &c) |
void | setCurveColor (const Color4 &c) |
virtual void | setEnabled (bool e) |
void | setEventSource (GuiControl *c) |
void | setFocused (bool b) |
Grab or release keyboard focus. More... | |
void | setGridColor (const Color4 &c) |
void | setHeight (float h) |
void | setPosition (const Vector2 &v) |
void | setPosition (float x, float y) |
virtual void | setRect (const Rect2D &rect) |
If you explicitly change the rectangle of a control, the containing pane may clip its borders. More... | |
void | setSize (const Vector2 &v) |
void | setSize (float x, float y) |
void | setTimeBounds (float minTime, float maxTime) |
Default to [0, 1]. More... | |
void | setValueBounds (float minVal, float maxVal) |
Setting these automatically clamps all spline points to the legal range. More... | |
void | setVisible (bool b) |
void | setWidth (float w) |
shared_ptr< GuiTheme > | theme () const |
virtual bool | toolStyle () const |
Return true if this is in tool button style. More... | |
Vector2 | toOSWindowCoords (const Vector2 &v) const |
Returns the coordinates of v, which is in the coordinate system of this object, relative to the OSWindow on which it will be rendered. More... | |
Rect2D | toOSWindowCoords (const Rect2D &r) const |
bool | visible () const |
GuiWindow * | window () const |
Get the window containing this control. More... | |
Protected Types | |
enum | { LEFT_CAPTION_WIDTH = 80, TOP_CAPTION_HEIGHT = 20 } |
enum | { NONE = -1 } |
Protected Member Functions | |
GuiFunctionBox (GuiContainer *parent, const GuiText &text, Spline< float > *spline) | |
void | clampTimes (int i=NONE) |
Ensures that all spline time samples are monotonically increasing and within bounds. More... | |
void | clampValues () |
Ensure that spline values fit the legal range. More... | |
Vector2 | controlPointLocation (int i) const |
Returns the pixel position at which this control point will render. More... | |
void | drawBackground (RenderDevice *rd, const shared_ptr< GuiTheme > &skin) const |
void | drawControlPoints (RenderDevice *rd, const shared_ptr< GuiTheme > &skin) const |
void | drawSpline (RenderDevice *rd, const shared_ptr< GuiTheme > &skin) const |
void | fireEvent (GEventType type) |
Fires an event. More... | |
int | getNearestControlPoint (const Vector2 &pixelLoc) |
Returns the control point nearest this location, creating it if there is no nearby control point. More... | |
virtual bool | onEvent (const GEvent &event) override |
Events are only delivered (by GuiWindow) to a GuiControl when the control has the key focus. More... | |
virtual void | render (RenderDevice *rd, const shared_ptr< GuiTheme > &theme, bool ancestorsEnabled) const override |
Only methods on theme may be called from this method by default. More... | |
Protected Attributes | |
Rect2D | m_bounds |
Rendering client bounds updated by every render. More... | |
bool | m_canChangeNumPoints |
GuiText | m_caption |
float | m_captionHeight |
float | m_captionWidth |
Rect2D | m_clickRect |
Rect bounds used for mouse actions. More... | |
Rect2D | m_clipBounds |
Bounds for mouse clicks and scissor region, updated by every render. More... | |
Color4 | m_controlColor |
bool | m_drag |
True if dragging m_selected. More... | |
bool | m_enabled |
GuiControl * | m_eventSource |
Sent events should appear to be from this object, which is usually "this". More... | |
Color4 | m_gridColor |
GuiWindow * | m_gui |
The window that ultimately contains this control. More... | |
float | m_maxTime |
float | m_maxValue |
float | m_minTime |
float | m_minValue |
Vector2 | m_mouseStart |
Mouse position when drag began. More... | |
GuiContainer * | m_parent |
Parent pane. More... | |
Rect2D | m_rect |
Rect bounds used for rendering and layout. More... | |
Vector2 | m_scale |
Derivative of (time, control) per pixel, computed during rendering. More... | |
int | m_selected |
Index of the currently selected control point, NONE if no selection. More... | |
Spline< float > * | m_spline |
Color4 | m_splineColor |
float | m_timeStart |
m_spline->time[m_selected] when drag began More... | |
float | m_valueStart |
m_spline->control[m_selected] when drag began More... | |
bool | m_visible |
Friends | |
class | GuiPane |
Displays a Spline<float> with editable control points.
|
protected |
|
inline |
|
inherited |
Referenced by G3D::GuiPane::addDropDownList(), G3D::GuiPane::addMultiLineTextBox(), and G3D::GuiPane::addTextBox().
|
inherited |
For controls that have a caption outside the bounds of the control on the top or bottom, this is the size reserved for the caption.
|
inherited |
For controls that have a caption outside the bounds of the control on the left, this is the size reserved for the caption.
|
protected |
Ensures that all spline time samples are monotonically increasing and within bounds.
Works outwards from element i.
Referenced by setTimeBounds(), and setValueBounds().
|
protected |
Ensure that spline values fit the legal range.
Referenced by setValueBounds().
|
inlineinherited |
Used by GuiContainers.
|
protected |
Returns the pixel position at which this control point will render.
|
overridevirtual |
Default caption size for this control.
Reimplemented from G3D::GuiControl.
|
inlinevirtualinherited |
|
protected |
|
protected |
|
protected |
|
inherited |
Referenced by G3D::GuiNumberBox< int >::render().
|
inlinevirtualinherited |
Return the enabled, visible control containing the mouse.
The default implementation returns itself if the mouse is within its bounds. GuiContainers should override this to iterate through children. Since only one (non-overlapping) child will write to control, it is sufficient to call this on all children without testing to see if one already wrote to control.
Reimplemented in G3D::GuiNumberBox< Value >, G3D::GuiNumberBox< float >, G3D::GuiNumberBox< int >, G3D::GuiTextureBox, G3D::GuiPane, G3D::GuiScrollPane, G3D::GuiFrameBox, and G3D::GuiTabPane.
Referenced by G3D::GuiNumberBox< int >::findControlUnderMouse().
|
protectedinherited |
Fires an event.
|
inherited |
Transforms v from OS window coordinates to this control's coordinates.
|
protected |
Returns the control point nearest this location, creating it if there is no nearby control point.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
If these two controls have the same parent, move this one immediately to the right of the argument.
offset | May be negative |
Referenced by G3D::GuiControl::moveRightOf().
|
inlineinherited |
|
overrideprotectedvirtual |
Events are only delivered (by GuiWindow) to a GuiControl when the control has the key focus.
If the control does not consume the event, the event is delivered to each of its GUI parents in order, back to the window's root pane.
Key focus is transferred during a mouse down event.
Reimplemented from G3D::GuiControl.
|
inherited |
|
overrideprotectedvirtual |
Only methods on theme may be called from this method by default.
To make arbitrary RenderDevice calls, wrap them in GuiTheme::pauseRendering ... GuiTheme::resumeRendering.
Implements G3D::GuiControl.
|
inline |
|
virtualinherited |
Reimplemented in G3D::GuiNumberBox< Value >, G3D::GuiNumberBox< float >, G3D::GuiNumberBox< int >, G3D::GuiTextureBox, and G3D::GuiPane.
Referenced by G3D::GuiNumberBox< int >::setCaption().
|
virtualinherited |
|
virtualinherited |
|
inline |
|
inline |
|
virtualinherited |
Reimplemented in G3D::GuiNumberBox< Value >, G3D::GuiNumberBox< float >, G3D::GuiNumberBox< int >, and G3D::GuiFrameBox.
Referenced by G3D::GuiNumberBox< int >::setEnabled().
|
inlineinherited |
|
inherited |
Grab or release keyboard focus.
|
inline |
|
inherited |
|
inherited |
|
inherited |
|
virtualinherited |
If you explicitly change the rectangle of a control, the containing pane may clip its borders.
Call pack() on the containing pane (or window) to resize that container appropriately.
Reimplemented in G3D::GuiNumberBox< Value >, G3D::GuiNumberBox< float >, G3D::GuiNumberBox< int >, G3D::GuiTextureBox, G3D::GuiPane, G3D::GuiTextBox, G3D::GuiDropDownList, G3D::GuiScrollPane, G3D::GuiTabPane, G3D::GuiContainer, G3D::GuiFrameBox, G3D::GuiRadioButton, and G3D::GuiCheckBox.
|
inherited |
Referenced by G3D::GuiPane::addRadioButton().
|
inherited |
|
inline |
Default to [0, 1].
|
inline |
Setting these automatically clamps all spline points to the legal range.
|
inherited |
|
inherited |
|
inherited |
|
inlinevirtualinherited |
Return true if this is in tool button style.
Reimplemented in G3D::GuiRadioButton, G3D::GuiButton, and G3D::GuiCheckBox.
Returns the coordinates of v, which is in the coordinate system of this object, relative to the OSWindow on which it will be rendered.
Referenced by G3D::GuiControl::toOSWindowCoords().
|
inherited |
|
inherited |
Get the window containing this control.
|
friend |
|
protected |
Rendering client bounds updated by every render.
|
protected |
Referenced by canChangeNumPoints(), and setCanChangeNumPoints().
|
protectedinherited |
Referenced by G3D::GuiNumberBox< int >::render().
|
protectedinherited |
|
protectedinherited |
Referenced by G3D::GuiNumberBox< int >::setRect().
|
protectedinherited |
|
protected |
Bounds for mouse clicks and scissor region, updated by every render.
|
protected |
Referenced by setControlPointColor().
|
protected |
True if dragging m_selected.
|
protectedinherited |
|
protectedinherited |
Sent events should appear to be from this object, which is usually "this".
Other controls can set the event source to create compound controls that seem atomic from the outside.
Referenced by G3D::GuiSlider< int >::GuiSlider(), G3D::GuiNumberBox< Value >::MyTextBox::MyTextBox(), and G3D::GuiControl::setEventSource().
|
protected |
Referenced by setGridColor().
|
protectedinherited |
The window that ultimately contains this control.
|
protected |
Referenced by setTimeBounds().
|
protected |
Referenced by setValueBounds().
|
protected |
Referenced by setTimeBounds().
|
protected |
Referenced by setValueBounds().
|
protected |
Mouse position when drag began.
|
protectedinherited |
Parent pane.
|
protectedinherited |
Rect bounds used for rendering and layout.
Relative to the enclosing pane's clientRect.
Referenced by G3D::GuiControl::findControlUnderMouse(), G3D::GuiNumberBox< int >::render(), G3D::GuiNumberBox< int >::setCaption(), and G3D::GuiNumberBox< int >::setRect().
|
protected |
Derivative of (time, control) per pixel, computed during rendering.
|
protected |
Index of the currently selected control point, NONE if no selection.
Referenced by setTimeBounds().
|
protected |
|
protected |
Referenced by setCurveColor().
|
protected |
m_spline->time[m_selected] when drag began
|
protected |
m_spline->control[m_selected] when drag began
|
protectedinherited |