Support Forum       G3D Web Page     
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
G3D::GuiDropDownList Class Reference

List box for viewing strings or GuiText. More...

Inherits G3D::GuiControl.

Public Member Functions

 GuiDropDownList (GuiContainer *parent, const GuiText &caption, const Pointer< int > &indexValue, const Array< GuiText > &listValue, const Pointer< Array< String > > &listValuePtr, const GuiControl::Callback &actionCallback, bool usePrefixTreeMenus)
 For use in creating compound controllers. More...
 
void append (const GuiText &c)
 
const GuiTextcaption () 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...
 
void clear ()
 Remove all values from the list. More...
 
const Rect2DclickRect () const
 Used by GuiContainers. More...
 
bool containsValue (const String &s) const
 True if the list contains this value. More...
 
virtual float defaultCaptionHeight () const
 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...
 
const GuiTextget (int i) const
 
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)
 
int numElements () const
 
const Rect2Drect () const
 
virtual void render (RenderDevice *rd, const shared_ptr< GuiTheme > &theme, bool ancestorsEnabled) const override
 Called by GuiPane. More...
 
void resize (int n)
 
int selectedIndex () const
 The index of the currently selected value; -1 if the list is empty. More...
 
const GuiTextselectedValue () const
 Returns the currently selected value. More...
 
void set (int i, const GuiText &v)
 
virtual void setCaption (const GuiText &caption)
 
virtual void setCaptionHeight (float c)
 
virtual void setCaptionWidth (float c)
 
virtual void setEnabled (bool e)
 
void setEventSource (GuiControl *c)
 
void setFocused (bool b)
 Grab or release keyboard focus. More...
 
void setHeight (float h)
 
void setList (const Array< GuiText > &c)
 
void setList (const Array< String > &c)
 
void setPosition (const Vector2 &v)
 
void setPosition (float x, float y)
 
virtual void setRect (const Rect2D &) override
 If you explicitly change the rectangle of a control, the containing pane may clip its borders. More...
 
void setSelectedIndex (int i)
 
void setSelectedValue (const String &s)
 Selects the first value whose text() is equal to s. More...
 
void setSize (const Vector2 &v)
 
void setSize (float x, float y)
 
void setVisible (bool b)
 
void setWidth (float w)
 
shared_ptr< GuiThemetheme () 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
 
GuiWindowwindow () const
 Get the window containing this control. More...
 

Protected Types

enum  {
  LEFT_CAPTION_WIDTH = 80,
  TOP_CAPTION_HEIGHT = 20
}
 

Protected Member Functions

void fireEvent (GEventType type)
 Fires an event. More...
 
shared_ptr< GuiMenumenu ()
 
virtual bool onEvent (const GEvent &event) override
 Events are only delivered (by GuiWindow) to a GuiControl when the control has the key focus. More...
 
void showMenu ()
 Makes the menu appear. More...
 

Protected Attributes

GuiControl::Callback m_actionCallback
 
GuiText m_caption
 
float m_captionHeight
 
float m_captionWidth
 
Rect2D m_clickRect
 Rect bounds used for mouse actions. More...
 
bool m_enabled
 
GuiControlm_eventSource
 Sent events should appear to be from this object, which is usually "this". More...
 
GuiWindowm_gui
 The window that ultimately contains this control. More...
 
Pointer< int > m_indexValue
 The index of the currently selected item. More...
 
Array< GuiTextm_listValue
 
Pointer< Array< String > > m_listValuePtr
 Reserved for future use: If m_listValuePtr is nullptr, use m_listValue (which is more fully featured anyway) More...
 
shared_ptr< GuiMenum_menu
 Pop-up list menu; call menu() to create this. More...
 
int m_myInt
 m_indexValue points to this if no external pointer was provided. More...
 
GuiContainerm_parent
 Parent pane. More...
 
Rect2D m_rect
 Rect bounds used for rendering and layout. More...
 
bool m_selecting
 True when the menu is open. More...
 
bool m_usePrefixTreeMenus
 
bool m_visible
 

Friends

class GuiPane
 
class GuiWindow
 

Detailed Description

List box for viewing strings or GuiText.

Fires a G3D::GuiEvent of type G3D::GEventType::GUI_ACTION on the containing window when the user selects a new value, GEventType::GUI_CANCEL when the user opens the dropdown and then clicks off or presses ESC.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
LEFT_CAPTION_WIDTH 
TOP_CAPTION_HEIGHT 

Constructor & Destructor Documentation

◆ GuiDropDownList()

G3D::GuiDropDownList::GuiDropDownList ( GuiContainer parent,
const GuiText caption,
const Pointer< int > &  indexValue,
const Array< GuiText > &  listValue,
const Pointer< Array< String > > &  listValuePtr,
const GuiControl::Callback actionCallback,
bool  usePrefixTreeMenus 
)

For use in creating compound controllers.

For everthing else use GuiPane::addDropDownList

Member Function Documentation

◆ append()

void G3D::GuiDropDownList::append ( const GuiText c)

◆ caption()

const GuiText& G3D::GuiControl::caption ( ) const
inherited

◆ captionHeight()

float G3D::GuiControl::captionHeight ( ) const
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.

◆ captionWidth()

float G3D::GuiControl::captionWidth ( ) const
inherited

For controls that have a caption outside the bounds of the control on the left, this is the size reserved for the caption.

◆ clear()

void G3D::GuiDropDownList::clear ( )

Remove all values from the list.

◆ clickRect()

const Rect2D& G3D::GuiControl::clickRect ( ) const
inlineinherited

Used by GuiContainers.

◆ containsValue()

bool G3D::GuiDropDownList::containsValue ( const String s) const

True if the list contains this value.

◆ defaultCaptionHeight()

virtual float G3D::GuiControl::defaultCaptionHeight ( ) const
inlinevirtualinherited

Default caption size for this control.

Reimplemented in G3D::GuiFunctionBox.

◆ defaultCaptionWidth()

virtual float G3D::GuiControl::defaultCaptionWidth ( ) const
inlinevirtualinherited

◆ enabled()

bool G3D::GuiControl::enabled ( ) const
inherited

◆ findControlUnderMouse()

virtual void G3D::GuiControl::findControlUnderMouse ( Vector2  mouse,
GuiControl *&  control 
)
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().

◆ fireEvent()

void G3D::GuiControl::fireEvent ( GEventType  type)
protectedinherited

Fires an event.

◆ focused()

bool G3D::GuiControl::focused ( ) const
inherited

◆ fromOSWindowCoords()

Vector2 G3D::GuiControl::fromOSWindowCoords ( const Vector2 v) const
inherited

Transforms v from OS window coordinates to this control's coordinates.

◆ get()

const GuiText& G3D::GuiDropDownList::get ( int  i) const
inline

◆ menu()

shared_ptr<GuiMenu> G3D::GuiDropDownList::menu ( )
protected

◆ mouseOver()

bool G3D::GuiControl::mouseOver ( ) const
inherited

◆ moveBy() [1/2]

void G3D::GuiControl::moveBy ( const Vector2 delta)
inherited

◆ moveBy() [2/2]

void G3D::GuiControl::moveBy ( float  dx,
float  dy 
)
inherited

◆ moveRightOf() [1/2]

void G3D::GuiControl::moveRightOf ( const GuiControl control,
const Vector2 offset 
)
inherited

If these two controls have the same parent, move this one immediately to the right of the argument.

Parameters
offsetMay be negative

Referenced by G3D::GuiControl::moveRightOf().

◆ moveRightOf() [2/2]

void G3D::GuiControl::moveRightOf ( const GuiControl control,
float  offsetX = 0.0f 
)
inlineinherited

◆ numElements()

int G3D::GuiDropDownList::numElements ( ) const
inline

◆ onEvent()

virtual bool G3D::GuiDropDownList::onEvent ( const GEvent event)
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.

◆ rect()

const Rect2D& G3D::GuiControl::rect ( ) const
inherited

◆ render()

virtual void G3D::GuiDropDownList::render ( RenderDevice rd,
const shared_ptr< GuiTheme > &  theme,
bool  ancestorsEnabled 
) const
overridevirtual

Called by GuiPane.

Implements G3D::GuiControl.

◆ resize()

void G3D::GuiDropDownList::resize ( int  n)
inline

◆ selectedIndex()

int G3D::GuiDropDownList::selectedIndex ( ) const
inline

The index of the currently selected value; -1 if the list is empty.

Referenced by resize().

◆ selectedValue()

const GuiText& G3D::GuiDropDownList::selectedValue ( ) const

Returns the currently selected value.

◆ set()

void G3D::GuiDropDownList::set ( int  i,
const GuiText v 
)
inline

◆ setCaption()

virtual void G3D::GuiControl::setCaption ( const GuiText caption)
virtualinherited

◆ setCaptionHeight()

virtual void G3D::GuiControl::setCaptionHeight ( float  c)
virtualinherited

◆ setCaptionWidth()

virtual void G3D::GuiControl::setCaptionWidth ( float  c)
virtualinherited

◆ setEnabled()

virtual void G3D::GuiControl::setEnabled ( bool  e)
virtualinherited

◆ setEventSource()

void G3D::GuiControl::setEventSource ( GuiControl c)
inlineinherited

◆ setFocused()

void G3D::GuiControl::setFocused ( bool  b)
inherited

Grab or release keyboard focus.

◆ setHeight()

void G3D::GuiControl::setHeight ( float  h)
inherited

◆ setList() [1/2]

void G3D::GuiDropDownList::setList ( const Array< GuiText > &  c)

◆ setList() [2/2]

void G3D::GuiDropDownList::setList ( const Array< String > &  c)

◆ setPosition() [1/2]

void G3D::GuiControl::setPosition ( const Vector2 v)
inherited

◆ setPosition() [2/2]

void G3D::GuiControl::setPosition ( float  x,
float  y 
)
inherited

◆ setRect()

virtual void G3D::GuiDropDownList::setRect ( const Rect2D rect)
overridevirtual

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 from G3D::GuiControl.

◆ setSelectedIndex()

void G3D::GuiDropDownList::setSelectedIndex ( int  i)
inline

◆ setSelectedValue()

void G3D::GuiDropDownList::setSelectedValue ( const String s)

Selects the first value whose text() is equal to s.

If not found, leaves the index unchanged.

◆ setSize() [1/2]

void G3D::GuiControl::setSize ( const Vector2 v)
inherited

◆ setSize() [2/2]

void G3D::GuiControl::setSize ( float  x,
float  y 
)
inherited

◆ setVisible()

void G3D::GuiControl::setVisible ( bool  b)
inherited

◆ setWidth()

void G3D::GuiControl::setWidth ( float  w)
inherited

◆ showMenu()

void G3D::GuiDropDownList::showMenu ( )
protected

Makes the menu appear.

◆ theme()

shared_ptr<GuiTheme> G3D::GuiControl::theme ( ) const
inherited

◆ toolStyle()

virtual bool G3D::GuiControl::toolStyle ( ) const
inlinevirtualinherited

Return true if this is in tool button style.

Reimplemented in G3D::GuiRadioButton, G3D::GuiButton, and G3D::GuiCheckBox.

◆ toOSWindowCoords() [1/2]

Vector2 G3D::GuiControl::toOSWindowCoords ( const Vector2 v) const
inherited

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().

◆ toOSWindowCoords() [2/2]

Rect2D G3D::GuiControl::toOSWindowCoords ( const Rect2D r) const
inlineinherited

◆ visible()

bool G3D::GuiControl::visible ( ) const
inherited

◆ window()

GuiWindow* G3D::GuiControl::window ( ) const
inherited

Get the window containing this control.

Friends And Related Function Documentation

◆ GuiPane

friend class GuiPane
friend

◆ GuiWindow

friend class GuiWindow
friend

Member Data Documentation

◆ m_actionCallback

GuiControl::Callback G3D::GuiDropDownList::m_actionCallback
protected

◆ m_caption

GuiText G3D::GuiControl::m_caption
protectedinherited

◆ m_captionHeight

float G3D::GuiControl::m_captionHeight
protectedinherited

◆ m_captionWidth

float G3D::GuiControl::m_captionWidth
protectedinherited

◆ m_clickRect

Rect2D G3D::GuiControl::m_clickRect
protectedinherited

Rect bounds used for mouse actions.

Updated by setRect.

Referenced by G3D::GuiControl::clickRect().

◆ m_enabled

bool G3D::GuiControl::m_enabled
protectedinherited

◆ m_eventSource

GuiControl* G3D::GuiControl::m_eventSource
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().

◆ m_gui

GuiWindow* G3D::GuiControl::m_gui
protectedinherited

The window that ultimately contains this control.

◆ m_indexValue

Pointer<int> G3D::GuiDropDownList::m_indexValue
protected

The index of the currently selected item.

Referenced by resize(), selectedIndex(), and setSelectedIndex().

◆ m_listValue

Array<GuiText> G3D::GuiDropDownList::m_listValue
protected

◆ m_listValuePtr

Pointer< Array<String> > G3D::GuiDropDownList::m_listValuePtr
protected

Reserved for future use: If m_listValuePtr is nullptr, use m_listValue (which is more fully featured anyway)

◆ m_menu

shared_ptr<GuiMenu> G3D::GuiDropDownList::m_menu
protected

Pop-up list menu; call menu() to create this.

Referenced by resize(), and set().

◆ m_myInt

int G3D::GuiDropDownList::m_myInt
protected

m_indexValue points to this if no external pointer was provided.

◆ m_parent

GuiContainer* G3D::GuiControl::m_parent
protectedinherited

Parent pane.

◆ m_rect

Rect2D G3D::GuiControl::m_rect
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().

◆ m_selecting

bool G3D::GuiDropDownList::m_selecting
protected

True when the menu is open.

◆ m_usePrefixTreeMenus

bool G3D::GuiDropDownList::m_usePrefixTreeMenus
protected

◆ m_visible

bool G3D::GuiControl::m_visible
protectedinherited

documentation generated on Wed Nov 24 2021 08:01:56 using doxygen 1.8.15