|
FifeGUI 0.2.0
A C++ GUI library designed for games.
|
#include <textfield.hpp>
Public Member Functions | |
| void | adjustHeight () |
| void | adjustSize () override |
| void | draw (Graphics *graphics) override |
| unsigned int | getCaretPosition () const |
| virtual std::string | getText () const |
| bool | isEditable () const |
| void | keyPressed (KeyEvent &keyEvent) override |
| void | mouseDragged (MouseEvent &mouseEvent) override |
| void | mousePressed (MouseEvent &mouseEvent) override |
| TextField & | operator= (TextField &&)=delete |
| TextField & | operator= (TextField const &)=delete |
| void | resizeToContent () |
| void | resizeToContent (bool recursion) override |
| void | setCaretPosition (unsigned int position) |
| void | setEditable (bool editable) |
| virtual void | setText (std::string const &text) |
| TextField (std::string const &text) | |
| TextField (TextField &&)=delete | |
| TextField (TextField const &)=delete | |
| Public Member Functions inherited from fcn::Widget | |
| virtual void | _draw (Graphics *graphics) |
| virtual FocusHandler * | _getFocusHandler () |
| virtual std::list< FocusListener * > const & | _getFocusListeners () |
| virtual FocusHandler * | _getInternalFocusHandler () |
| virtual std::list< KeyListener * > const & | _getKeyListeners () |
| virtual std::list< MouseListener * > const & | _getMouseListeners () |
| virtual void | _logic () |
| virtual void | _setFocusHandler (FocusHandler *focusHandler) |
| virtual void | _setParent (Widget *parent) |
| void | adaptLayout () |
| virtual void | adaptLayout (bool top) |
| void | addActionListener (ActionListener *actionListener) |
| void | addDeathListener (DeathListener *deathListener) |
| void | addFocusListener (FocusListener *focusListener) |
| void | addKeyListener (KeyListener *keyListener) |
| void | addMouseListener (MouseListener *mouseListener) |
| void | addWidgetListener (WidgetListener *widgetListener) |
| virtual void | drawBorder (Graphics *graphics) |
| virtual void | drawOutline (Graphics *graphics) |
| virtual void | drawSelectionFrame (Graphics *graphics) |
| void | expandContent () |
| virtual void | expandContent (bool recursion) |
| virtual void | focusNext () |
| virtual void | focusPrevious () |
| virtual void | fontChanged () |
| virtual void | getAbsolutePosition (int &x, int &y) const |
| std::string const & | getActionEventId () const |
| Color const & | getBackgroundColor () const |
| Color const & | getBaseColor () const |
| Color const & | getBorderColor () const |
| unsigned int | getBorderSize () const |
| virtual Rectangle | getChildrenArea () |
| unsigned int | getChildrenCount () const |
| Rectangle const & | getDimension () const |
| Size const & | getFixedSize () const |
| Font * | getFont () const |
| Color const & | getForegroundColor () const |
| int | getHeight () const |
| std::string const & | getId () const |
| void | getLastPosition (int &x, int &y) const |
| int | getMarginBottom () const |
| int | getMarginLeft () const |
| int | getMarginRight () const |
| int | getMarginTop () const |
| Size const & | getMaxSize () const |
| Size const & | getMinSize () const |
| Color const & | getOutlineColor () const |
| unsigned int | getOutlineSize () const |
| unsigned int | getPaddingBottom () const |
| unsigned int | getPaddingLeft () const |
| unsigned int | getPaddingRight () const |
| unsigned int | getPaddingTop () const |
| virtual Widget * | getParent () const |
| Color const & | getSelectionColor () const |
| SelectionMode | getSelectionMode () const |
| virtual Widget * | getTop () const |
| unsigned int | getVisibleChildrenCount () const |
| Widget * | getWidgetAt (int x, int y) |
| virtual Widget * | getWidgetAt (int x, int y, Widget *exclude) |
| std::list< Widget * > | getWidgetsIn (Rectangle const &area) |
| virtual std::list< Widget * > | getWidgetsIn (Rectangle const &area, Widget *ignore) |
| int | getWidth () const |
| int | getX () const |
| int | getY () const |
| bool | isEnabled () const |
| bool | isFixedSize () const |
| bool | isFocusable () const |
| virtual bool | isFocused () const |
| bool | isHorizontalExpand () const |
| bool | isLastPositionSet () const |
| virtual bool | isLayouted () |
| virtual bool | isModalFocusable () const |
| virtual bool | isModalFocused () const |
| virtual bool | isModalMouseInputFocusable () const |
| virtual bool | isModalMouseInputFocused () const |
| bool | isSetVisible () const |
| bool | isTabInEnabled () const |
| bool | isTabOutEnabled () const |
| bool | isVerticalExpand () const |
| bool | isVisible () const |
| virtual void | logic () |
| virtual void | moveToBottom (Widget *widget) |
| virtual void | moveToTop (Widget *widget) |
| Widget & | operator= (Widget &&)=delete |
| Widget & | operator= (Widget const &)=delete |
| virtual void | releaseModalFocus () |
| virtual void | releaseModalMouseInputFocus () |
| void | removeActionListener (ActionListener *actionListener) |
| void | removeDeathListener (DeathListener *deathListener) |
| void | removeFocusListener (FocusListener *focusListener) |
| void | removeKeyListener (KeyListener *keyListener) |
| void | removeMouseListener (MouseListener *mouseListener) |
| void | removeWidgetListener (WidgetListener *widgetListener) |
| virtual void | requestFocus () |
| virtual void | requestModalFocus () |
| virtual void | requestModalMouseInputFocus () |
| virtual void | requestMoveToBottom () |
| virtual void | requestMoveToTop () |
| void | resizeToContent () |
| void | setActionEventId (std::string const &actionEventId) |
| virtual void | setBackgroundColor (Color const &color) |
| virtual void | setBaseColor (Color const &color) |
| virtual void | setBorderColor (Color const &color) |
| void | setBorderSize (unsigned int size) |
| void | setDimension (Rectangle const &dimension) |
| void | setEnabled (bool enabled) |
| void | setFixedSize (Size const &size) |
| void | setFocusable (bool focusable) |
| virtual void | setFont (Font *font) |
| virtual void | setForegroundColor (Color const &color) |
| void | setHeight (int height) |
| void | setHorizontalExpand (bool expand) |
| void | setId (std::string const &id) |
| void | setInternalFocusHandler (FocusHandler *internalFocusHandler) |
| void | setLastPosition (int x, int y) |
| void | setMargin (int margin) |
| void | setMarginBottom (int margin) |
| void | setMarginLeft (int margin) |
| void | setMarginRight (int margin) |
| void | setMarginTop (int margin) |
| void | setMaxSize (Size const &size) |
| void | setMinSize (Size const &size) |
| virtual void | setOutlineColor (Color const &color) |
| void | setOutlineSize (unsigned int size) |
| void | setPadding (unsigned int padding) |
| void | setPaddingBottom (unsigned int padding) |
| void | setPaddingLeft (unsigned int padding) |
| void | setPaddingRight (unsigned int padding) |
| void | setPaddingTop (unsigned int padding) |
| void | setPosition (int x, int y) |
| virtual void | setSelectionColor (Color const &color) |
| virtual void | setSelectionMode (SelectionMode mode) |
| void | setSize (int width, int height) |
| void | setTabInEnabled (bool enabled) |
| void | setTabOutEnabled (bool enabled) |
| void | setVerticalExpand (bool expand) |
| void | setVisible (bool visible) |
| void | setWidth (int width) |
| void | setX (int x) |
| void | setY (int y) |
| virtual void | showPart (Rectangle rectangle) |
| virtual void | showWidgetPart (Widget *widget, Rectangle area) |
| Widget () | |
| Widget (Widget &&)=delete | |
| Widget (Widget const &)=delete | |
| Public Member Functions inherited from fcn::MouseListener | |
| virtual void | mouseClicked (MouseEvent &mouseEvent) |
| virtual void | mouseEntered (MouseEvent &mouseEvent) |
| virtual void | mouseExited (MouseEvent &mouseEvent) |
| MouseListener (MouseListener &&)=default | |
| MouseListener (MouseListener const &)=default | |
| virtual void | mouseMoved (MouseEvent &mouseEvent) |
| virtual void | mouseReleased (MouseEvent &mouseEvent) |
| virtual void | mouseWheelMovedDown (MouseEvent &mouseEvent) |
| virtual void | mouseWheelMovedLeft (MouseEvent &mouseEvent) |
| virtual void | mouseWheelMovedRight (MouseEvent &mouseEvent) |
| virtual void | mouseWheelMovedUp (MouseEvent &mouseEvent) |
| MouseListener & | operator= (MouseListener &&)=default |
| MouseListener & | operator= (MouseListener const &)=default |
| Public Member Functions inherited from fcn::KeyListener | |
| KeyListener (KeyListener &&)=default | |
| KeyListener (KeyListener const &)=default | |
| virtual void | keyReleased (KeyEvent &keyEvent) |
| KeyListener & | operator= (KeyListener &&)=default |
| KeyListener & | operator= (KeyListener const &)=default |
Protected Member Functions | |
| void | adjustSizeImpl () |
| virtual void | drawCaret (Graphics *graphics, int x) |
| void | fixScroll () |
| Protected Member Functions inherited from fcn::Widget | |
| void | add (Widget *widget) |
| void | calculateSize () |
| void | distributeActionEvent () |
| void | distributeAncestorHiddenEvent (Widget *ancestor) |
| void | distributeAncestorMovedEvent (Widget *ancestor) |
| void | distributeAncestorShownEvent (Widget *ancestor) |
| void | distributeHiddenEvent () |
| void | distributeMovedEvent () |
| void | distributeResizedEvent () |
| void | distributeShownEvent () |
| virtual Widget * | findWidgetById (std::string const &id) |
| std::list< Widget * > const & | getChildren () const |
| virtual void | remove (Widget *widget) |
| virtual void | removeAllChildren () |
| void | resizeToChildren () |
| Protected Member Functions inherited from fcn::MouseListener | |
| MouseListener ()=default | |
| Protected Member Functions inherited from fcn::KeyListener | |
| KeyListener ()=default | |
Additional Inherited Members | |
| Public Types inherited from fcn::Widget | |
| enum class | SelectionMode : uint8_t { None = 0 , Border = 1 , Background = 2 } |
| Static Public Member Functions inherited from fcn::Widget | |
| static DeathListener * | _getGuiDeathListener () |
| static VisibilityEventHandler * | _getVisibilityEventHandler () |
| static void | _setGuiDeathListener (DeathListener *deathListener) |
| static void | _setVisibilityEventHandler (VisibilityEventHandler *visibilityEventHandler) |
| static void | setGlobalFont (Font *font) |
| static bool | widgetExists (Widget const *widget) |
| Static Protected Attributes inherited from fcn::Widget | |
| static DefaultFont | mDefaultFont |
| static Font * | mGlobalFont = nullptr |
| static DeathListener * | mGuiDeathListener = nullptr |
| static VisibilityEventHandler * | mVisibilityEventHandler = nullptr |
| static std::list< Widget * > | mWidgetInstances |
A single-line text input field.
Definition at line 25 of file textfield.hpp.
| fcn::TextField::TextField | ( | ) |
Definition at line 19 of file textfield.cpp.
|
explicit |
Constructor.
The text field will be automatically resized to fit the text.
| text | The default text of the text field. |
Definition at line 29 of file textfield.cpp.
References fcn::Widget::addKeyListener(), fcn::Widget::addMouseListener(), adjustSizeImpl(), mStringEditor, mText, and fcn::Widget::setFocusable().
|
override |
Definition at line 39 of file textfield.cpp.
| void fcn::TextField::adjustHeight | ( | ) |
Adjusts the height of the text field to fit caption.
Definition at line 182 of file textfield.cpp.
References fcn::Widget::getFont(), fcn::Widget::getHeight(), and fcn::Widget::setHeight().
Referenced by adjustSizeImpl().
|
overridevirtual |
Adjusts the size of the text field to fit the text.
Reimplemented from fcn::Widget.
Definition at line 168 of file textfield.cpp.
References adjustSizeImpl().
|
protected |
Adjusts the size of the button to fit the caption.
The public adjustSize() method serves as a virtual entry point for polymorphism, while this adjustSizeImpl() method contains the concrete implementation of the resizing logic.
Definition at line 173 of file textfield.cpp.
References adjustHeight(), fixScroll(), fcn::Widget::getFont(), mText, fcn::Widget::setWidth(), and fcn::Rectangle::width.
Referenced by adjustSize(), resizeToContent(), and TextField().
|
overridevirtual |
Draws the widget.
The call to draw is initiated by the widget's parent. The graphics object is set up so that all drawing is relative to the widget, i.e coordinate (0,0) is the top left corner of the widget. It is not possible to draw outside of a widget's dimension. If a widget has children, the parent's draw function will always be called before the children's draw functions are called.
NOTE: A widget with children won't draw its children unless the children area given by Widget::getChildrenArea returns a none empty rectangle inside the widgets dimension. The children area is considered relative to the widget's position.
| Graphics & Rendering | A graphics object to draw with. |
Implements fcn::Widget.
Definition at line 50 of file textfield.cpp.
References fcn::Color::a, drawCaret(), fcn::Graphics::drawLine(), fcn::Graphics::drawRectangle(), fcn::Graphics::drawText(), fcn::Graphics::fillRectangle(), fcn::Widget::getBackgroundColor(), fcn::Widget::getBaseColor(), fcn::Widget::getFont(), fcn::Widget::getForegroundColor(), fcn::Widget::getHeight(), fcn::Widget::getSelectionColor(), fcn::Widget::getWidth(), isEditable(), fcn::Widget::isFocused(), mText, mXScroll, fcn::Graphics::popClipArea(), fcn::Graphics::pushClipArea(), fcn::Graphics::setColor(), and fcn::Graphics::setFont().
|
protectedvirtual |
Draws the caret.
Overloaded this method if you want to change the style of the caret.
| Graphics & Rendering | the Graphics object to draw with. |
| x | the caret's x-position. |
Definition at line 97 of file textfield.cpp.
References fcn::Graphics::drawLine(), fcn::Graphics::getCurrentClipArea(), fcn::Widget::getForegroundColor(), fcn::Rectangle::height, and fcn::Graphics::setColor().
Referenced by draw().
|
protected |
Scrolls the text horizontally so that the caret shows if needed.
The method is used any time a user types in the text field so the caret always will be shown.
Definition at line 187 of file textfield.cpp.
References fcn::Widget::getFont(), fcn::Widget::getWidth(), fcn::Widget::isFocused(), mText, and mXScroll.
Referenced by adjustSizeImpl(), fcn::PasswordField::keyPressed(), keyPressed(), and mousePressed().
| unsigned int fcn::TextField::getCaretPosition | ( | ) | const |
Gets the caret position.
As there is only one line of text in a text field the position is the caret's x coordinate.
Definition at line 207 of file textfield.cpp.
References mText.
Referenced by fcn::PasswordField::keyPressed(), and keyPressed().
|
virtual |
Gets the text of the text field.
Reimplemented in fcn::PasswordField.
Definition at line 212 of file textfield.cpp.
References mText.
Referenced by keyPressed().
| bool fcn::TextField::isEditable | ( | ) | const |
Checks if the text field is editable.
Definition at line 217 of file textfield.cpp.
References mEditable.
Referenced by draw().
|
overridevirtual |
Called if a key is pressed when the widget has keyboard focus.
If a key is held down the widget will generate multiple key presses.
| keyEvent | Describes the event. |
Reimplemented from fcn::KeyListener.
Definition at line 123 of file textfield.cpp.
References fcn::InputEvent::consume(), fcn::Widget::distributeActionEvent(), fcn::UTF8StringEditor::eraseChar(), fixScroll(), getCaretPosition(), fcn::KeyEvent::getKey(), getText(), fcn::Key::getValue(), fcn::UTF8StringEditor::insertChar(), fcn::Key::isCharacter(), mText, fcn::UTF8StringEditor::nextChar(), fcn::UTF8StringEditor::prevChar(), and setCaretPosition().
|
overridevirtual |
Called when the mouse has moved and the mouse has previously been pressed on the widget.
| mouseEvent | Describes the event. |
Reimplemented from fcn::MouseListener.
Definition at line 118 of file textfield.cpp.
References fcn::InputEvent::consume().
|
overridevirtual |
Called when a mouse button has been pressed on the widget area.
NOTE: A mouse press is NOT equal to a mouse click. Use mouseClickMessage to check for mouse clicks.
| mouseEvent | Describes the event. |
Reimplemented from fcn::MouseListener.
Definition at line 110 of file textfield.cpp.
References fixScroll(), fcn::MouseEvent::getButton(), fcn::Widget::getFont(), fcn::MouseEvent::getX(), fcn::MouseEvent::getY(), mText, and mXScroll.
|
inline |
Resizes the widget's size to fit the content exactly, calls recursively all childs.
This is a convenience wrapper that calls resizeToContent(true).
Definition at line 1417 of file widget.hpp.
|
overridevirtual |
Resize this widget to fit its content.
| recursion | If true, perform the resize operation recursively on children. |
Reimplemented from fcn::Widget.
Definition at line 162 of file textfield.cpp.
References adjustSizeImpl().
| void fcn::TextField::setCaretPosition | ( | unsigned int | position | ) |
Sets the caret position.
As there is only one line of text in a text field the position is the caret's x coordinate.
| position | The caret position. |
Definition at line 202 of file textfield.cpp.
References mText.
Referenced by keyPressed().
| void fcn::TextField::setEditable | ( | bool | editable | ) |
Sets the text field to be editable or not.
A text field is editable by default.
| editable | True if the text field should be editable, false otherwise. |
Definition at line 222 of file textfield.cpp.
References mEditable.
|
virtual |
Sets the text of the text field.
| text | The text of the text field. |
Reimplemented in fcn::PasswordField.
Definition at line 45 of file textfield.cpp.
References mText.
|
protected |
True if the text field is editable, false otherwise.
Definition at line 155 of file textfield.hpp.
Referenced by isEditable(), fcn::PasswordField::keyPressed(), and setEditable().
|
protected |
String editor for UTF8 support.
Definition at line 172 of file textfield.hpp.
Referenced by TextField().
|
protected |
Holds the text of the text field.
Definition at line 160 of file textfield.hpp.
Referenced by adjustSizeImpl(), draw(), fixScroll(), getCaretPosition(), getText(), fcn::PasswordField::keyPressed(), keyPressed(), mousePressed(), setCaretPosition(), fcn::PasswordField::setText(), setText(), and TextField().
|
protected |
Holds the amount scrolled in x.
If a user types more characters than the text field can display, due to the text field being to small, the text needs to scroll in order to show the last type character.
Definition at line 167 of file textfield.hpp.
Referenced by draw(), fixScroll(), and mousePressed().