Aether
SDL2 based UI Framework for NX
Public Member Functions | List of all members
Aether::DateTime Class Reference

The DateTime overlay is used to get the user to select a date/time. It must be passed a tm struct on creation which has it's value changed in place when closed (not updated when closed by pressing B!) More...

#include <DateTime.hpp>

Inheritance diagram for Aether::DateTime:
Aether::Overlay Aether::Screen Aether::Container Aether::Element

Public Member Functions

 DateTime (std::string s, struct tm &t, DTFlag d=DTFlag::DateTime)
 Construct a new Date Time object. Back/OK buttons have default text but can be changed using other functions. More...
 
bool handleEvent (InputEvent *e)
 Attempt to handle event. Whenever an event is handled, update max days for selected month. More...
 
void setBackLabel (std::string s)
 Set the back button label. More...
 
void setOKLabel (std::string s)
 Set the OK button label. More...
 
void setDayHint (std::string s)
 Set the day spinner hint. More...
 
void setMonthHint (std::string s)
 Set the month spinner hint. More...
 
void setYearHint (std::string s)
 Set the year spinner hint. More...
 
void setHourHint (std::string s)
 Set the hour spinner hint. More...
 
void setMinuteHint (std::string s)
 Set the minute spinner hint. More...
 
void setSecondHint (std::string s)
 Set the second spinner hint. More...
 
Colour getBackgroundColour ()
 Get the background colour. More...
 
void setBackgroundColour (Colour c)
 Set the background colour. More...
 
Colour getHighlightColour ()
 Get the highlight colour. More...
 
void setHighlightColour (Colour c)
 Set the highlight colour. More...
 
Colour getInactiveColour ()
 Get the inactive colour. More...
 
void setInactiveColour (Colour c)
 Set the inactive colour. More...
 
Colour getSeparatorColour ()
 Get the separator colour. More...
 
void setSeparatorColour (Colour c)
 Set the separator colour. More...
 
Colour getTextColour ()
 Get the text colour. More...
 
void setTextColour (Colour c)
 Set the text colour. More...
 
void setAllColours (Colour c1, Colour c2, Colour c3, Colour c4, Colour c5)
 Set all colours. More...
 
- Public Member Functions inherited from Aether::Overlay
 Overlay ()
 Construct a new Overlay object.
 
void close ()
 Mark overlay to be closed.
 
void reuse ()
 Mark overlay to be able to used (readded) again. More...
 
bool shouldClose ()
 Check if overlay is marked to be closed. More...
 
void render ()
 Draws background then renders overlay.
 
- Public Member Functions inherited from Aether::Screen
 Screen ()
 Constructs a new (empty) Screen object.
 
virtual void onLoad ()
 Invoked once when the screen is requested to be 'shown'. This method should set up all child elements.
 
virtual void onUnload ()
 Invoked once when the screen has been replaced by another screen. This method should tidy up all child elements.
 
void onButtonPress (Button btn, std::function< void()> func)
 Assigns a function to invoke when a button is pressed. More...
 
void onButtonRelease (Button btn, std::function< void()> func)
 Assigns a function to invoke when a button is released. More...
 
bool handleEvent (InputEvent *event)
 Attempts to handle the event if it is a button press/release. More...
 
- Public Member Functions inherited from Aether::Container
 Container (int x=0, int y=0, int w=100, int h=100)
 Construct a new Container object. More...
 
void setActive ()
 Re-highlight/focus the focused element.
 
void setInactive ()
 Removes focus from the focused element.
 
void addElement (Element *e)
 Adds new element a child. More...
 
bool removeElement (Element *e)
 Attempt to delete given child element. More...
 
void removeAllElements ()
 Deletes all children elements.
 
bool returnElement (Element *e)
 Attempt to remove the given child element. More...
 
void returnAllElements ()
 Removes (but does not delete) all children elements.
 
- Public Member Functions inherited from Aether::Element
 Element (int x=0, int y=0, int w=100, int h=100)
 Construct a new Element object. More...
 
int x ()
 Returns x-coordinate of element. More...
 
int y ()
 Returns y-coordinate of element. More...
 
int w ()
 Returns width of element. More...
 
int h ()
 Returns height of element. More...
 
virtual void setX (int x)
 Set x-coordinate of element. More...
 
virtual void setY (int y)
 Set y-coordinate of element. More...
 
virtual void setW (int w)
 Set width of element. More...
 
virtual void setH (int h)
 Set height of element. More...
 
virtual void setXY (int x, int y)
 Set co-ordinates of element. More...
 
virtual void setWH (int w, int h)
 Set size of element. More...
 
virtual void setXYWH (int x, int y, int w, int h)
 Setter size and co-ordinates of element. More...
 
Elementparent ()
 Returns the parent element of this element. More...
 
void setParent (Element *p)
 Set the parent element of this element. More...
 
bool isVisible ()
 Check if current element is visible on-screen. More...
 
bool hidden ()
 Check if current element is hidden. More...
 
void setHidden (bool b)
 Set whether element is hidden or not. More...
 
bool selected ()
 Check if current element is selected. More...
 
virtual void setSelected (bool b)
 Set whether element is selected or not. More...
 
bool selectable ()
 Check if current element is selectable. More...
 
void setSelectable (bool b)
 Set whether element is selectable or not. More...
 
bool touchable ()
 Check if current element is touch responsive. More...
 
void setTouchable (bool b)
 Set whether element is touch responsive or not. More...
 
bool highlighted ()
 Check if current element is highlighted. More...
 
void setHighlighted (bool b)
 Set whether element is highlighted or not. More...
 
bool hasHighlighted ()
 Check if current element has highlighted children element. More...
 
void setHasHighlighted (bool b)
 Set whether element has highlighted children element or not. More...
 
bool hasSelectable ()
 Check if current element has selectable children element. More...
 
void setHasSelectable (bool b)
 Set whether element has selectable children element or not. More...
 
bool hasSelected ()
 Check if current element has selected children element. More...
 
void setHasSelected (bool b)
 Set whether element has selected children element or not. More...
 
void setFocused (Element *e)
 Sets current element as unfocused and instead focuses a sub-element. More...
 
void setFocussed (Element *e)
 Sets current element as unfocused and instead focuses a sub-element. More...
 
Elementfocused ()
 Returns the currently focused element. More...
 
Elementfocussed ()
 Returns the currently focused element. More...
 
std::function< void()> onPressFunc ()
 Returns function invoked when the element is pressed. More...
 
void onPress (std::function< void()> f)
 Sets the function to invoked when the element is pressed. More...
 
virtual void update (unsigned int dt)
 Update is passed time since last frame (for animations) More...
 
virtual DrawablerenderHighlightBG ()
 Renders the highlight background. More...
 
virtual DrawablerenderHighlight ()
 Renders the highlight border. More...
 
virtual DrawablerenderSelection ()
 Renders the selection overlay. More...
 
virtual ~Element ()
 Destroy the Element object.
 

Additional Inherited Members

- Protected Member Functions inherited from Aether::Container
void addElementAt (Element *e, size_t i)
 
- Protected Member Functions inherited from Aether::Element
void renderHighlightTextures ()
 Renders cached highlight textures.
 
void renderSelectionTexture ()
 Renders cached selection texture.
 
void addElementAt (Element *e, size_t i)
 Add element at given index in vector. More...
 
- Protected Attributes inherited from Aether::Element
Elementparent_
 Pointer to parent element, if there is one.
 
std::vector< Element * > children
 Vector of child elements (used to call their methods)
 
Elementfocused_
 Children element which is highlighted/focused (to regain focus on activation)
 
- Static Protected Attributes inherited from Aether::Element
static Colour hiBGColour
 Background colour if element is highlighted.
 
static Colour hiBorderColour
 Border colour if element is highlighted.
 
static Colour selColour
 Selected colour if element is highlighted.
 
static unsigned int hiSize
 Size of highlight border.
 
static DrawablehiBGTex
 Highlight background texture.
 
static DrawablehiBorderTex
 Highlight border texture.
 
static DrawableselTex
 Selection texture.
 
static Rendererrenderer
 
static bool isTouch
 Indicator on whether the touch is "active" (i.e. hide highlighting) or not.
 

Detailed Description

The DateTime overlay is used to get the user to select a date/time. It must be passed a tm struct on creation which has it's value changed in place when closed (not updated when closed by pressing B!)

Note
Expect a segfault if the tm struct is deleted by the time this overlay is closed!

Constructor & Destructor Documentation

◆ DateTime()

Aether::DateTime::DateTime ( std::string  s,
struct tm &  t,
DTFlag  d = DTFlag::DateTime 
)

Construct a new Date Time object. Back/OK buttons have default text but can be changed using other functions.

Parameters
stitle
treference for time struct to update
dpickers to show (shows complete date and time by default)

Member Function Documentation

◆ getBackgroundColour()

Colour Aether::DateTime::getBackgroundColour ( )

Get the background colour.

Returns
background colour

◆ getHighlightColour()

Colour Aether::DateTime::getHighlightColour ( )

Get the highlight colour.

Returns
highlight colour

◆ getInactiveColour()

Colour Aether::DateTime::getInactiveColour ( )

Get the inactive colour.

Returns
inactive colour

◆ getSeparatorColour()

Colour Aether::DateTime::getSeparatorColour ( )

Get the separator colour.

Returns
separator colour

◆ getTextColour()

Colour Aether::DateTime::getTextColour ( )

Get the text colour.

Returns
text colour

◆ handleEvent()

bool Aether::DateTime::handleEvent ( InputEvent e)
virtual

Attempt to handle event. Whenever an event is handled, update max days for selected month.

Parameters
eevent to attempt handle
Returns
true if event was handled
false otherwise

Reimplemented from Aether::Container.

◆ setAllColours()

void Aether::DateTime::setAllColours ( Colour  c1,
Colour  c2,
Colour  c3,
Colour  c4,
Colour  c5 
)

Set all colours.

Parameters
c1new background colour
c2new highlight colour
c3new inactive colour
c4new separator colour
c5new text colour

◆ setBackgroundColour()

void Aether::DateTime::setBackgroundColour ( Colour  c)

Set the background colour.

Parameters
cnew background colour

◆ setBackLabel()

void Aether::DateTime::setBackLabel ( std::string  s)

Set the back button label.

Parameters
snew back label

◆ setDayHint()

void Aether::DateTime::setDayHint ( std::string  s)

Set the day spinner hint.

Parameters
snew day hint string

◆ setHighlightColour()

void Aether::DateTime::setHighlightColour ( Colour  c)

Set the highlight colour.

Parameters
cnew highlight colour

◆ setHourHint()

void Aether::DateTime::setHourHint ( std::string  s)

Set the hour spinner hint.

Parameters
snew hour hint string

◆ setInactiveColour()

void Aether::DateTime::setInactiveColour ( Colour  c)

Set the inactive colour.

Parameters
cnew inactive colour

◆ setMinuteHint()

void Aether::DateTime::setMinuteHint ( std::string  s)

Set the minute spinner hint.

Parameters
snew minute hint string

◆ setMonthHint()

void Aether::DateTime::setMonthHint ( std::string  s)

Set the month spinner hint.

Parameters
snew month hint string

◆ setOKLabel()

void Aether::DateTime::setOKLabel ( std::string  s)

Set the OK button label.

Parameters
snew OK label

◆ setSecondHint()

void Aether::DateTime::setSecondHint ( std::string  s)

Set the second spinner hint.

Parameters
snew second hint string

◆ setSeparatorColour()

void Aether::DateTime::setSeparatorColour ( Colour  c)

Set the separator colour.

Parameters
cnew separator colour

◆ setTextColour()

void Aether::DateTime::setTextColour ( Colour  c)

Set the text colour.

Parameters
cnew text colour

◆ setYearHint()

void Aether::DateTime::setYearHint ( std::string  s)

Set the year spinner hint.

Parameters
snew year hint string

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