26 #ifndef TGUI_TEXT_BOX_HPP
27 #define TGUI_TEXT_BOX_HPP
30 #include <TGUI/CopiedSharedPtr.hpp>
31 #include <TGUI/Widgets/Scrollbar.hpp>
32 #include <TGUI/Renderers/TextBoxRenderer.hpp>
33 #include <TGUI/Text.hpp>
50 typedef std::shared_ptr<TextBox>
Ptr;
51 typedef std::shared_ptr<const TextBox>
ConstPtr;
104 void setSize(
const Layout2d& size)
override;
114 void setText(
const String& text);
123 void addText(
const String& text);
140 void setDefaultText(
const String& text);
148 const String& getDefaultText()
const;
157 void setSelectedText(std::size_t selectionStartIndex, std::size_t selectionEndIndex);
166 String getSelectedText()
const;
179 std::size_t getSelectionStart()
const;
192 std::size_t getSelectionEnd()
const;
202 void setTextSize(
unsigned int size)
override;
214 void setMaximumCharacters(std::size_t maxChars = 0);
226 std::size_t getMaximumCharacters()
const;
236 void setCaretPosition(std::size_t charactersBeforeCaret);
246 std::size_t getCaretPosition()
const;
258 void setReadOnly(
bool readOnly =
true);
270 bool isReadOnly()
const;
317 std::size_t getLinesCount()
const;
328 void setFocused(
bool focused)
override;
342 void enableMonospacedFontOptimization(
bool enable =
true);
350 void setVerticalScrollbarValue(
unsigned int value);
358 unsigned int getVerticalScrollbarValue()
const;
366 void setHorizontalScrollbarValue(
unsigned int value);
374 unsigned int getHorizontalScrollbarValue()
const;
383 bool mouseOnWidget(
Vector2f pos)
const override;
388 void leftMousePressed(
Vector2f pos)
override;
393 void leftMouseReleased(
Vector2f pos)
override;
398 void mouseMoved(
Vector2f pos)
override;
403 void keyPressed(
const sf::Event::KeyEvent& event)
override;
408 void textEntered(char32_t key)
override;
413 bool mouseWheelScrolled(
float delta,
Vector2f pos)
override;
418 void mouseNoLongerOnWidget()
override;
423 void leftMouseButtonNoLongerDown()
override;
446 void selectText(
float posX,
float posY);
453 void deleteSelectedCharacters();
459 void rearrangeText(
bool keepSelection);
464 void updateScrollbars();
469 void updateSelectionTexts();
479 void draw(sf::RenderTarget& target, sf::RenderStates states)
const override;
494 void update(
Duration elapsedTime)
override;
500 void recalculatePositions();
506 void recalculateVisibleLines();
527 void rendererChanged(
const String& property)
override;
533 std::unique_ptr<DataIO::Node> save(SavingRenderersMap& renderers)
const override;
539 void load(
const std::unique_ptr<DataIO::Node>& node,
const LoadingRenderersMap& renderers)
override;
547 return std::make_shared<TextBox>(*
this);
555 Signal onSelectionChange = {
"SelectionChanged"};
562 unsigned int m_lineHeight = 24;
565 float m_maxLineWidth;
567 std::vector<String> m_lines;
570 std::size_t m_maxChars = 0;
573 std::size_t m_topLine = 1;
574 std::size_t m_visibleLines = 1;
583 bool m_caretVisible =
true;
585 Text m_textBeforeSelection;
586 Text m_textSelection1;
587 Text m_textSelection2;
588 Text m_textAfterSelection1;
589 Text m_textAfterSelection2;
592 std::vector<FloatRect> m_selectionRects;
601 bool m_possibleDoubleClick =
false;
603 bool m_readOnly =
false;
605 bool m_monospacedFontOptimizationEnabled =
false;
607 Sprite m_spriteBackground;
612 Color m_borderColorCached;
613 Color m_backgroundColorCached;
614 Color m_caretColorCached;
615 Color m_selectedTextBackgroundColorCached;
616 float m_caretWidthCached = 1;
626 #endif // TGUI_TEXT_BOX_HPP
Definition: CopiedSharedPtr.hpp:39
Signal to which the user can subscribe to get callbacks from.
Definition: Signal.hpp:216
Text box widget.
Definition: TextBox.hpp:46
Namespace that contains all TGUI functions and classes.
Definition: AbsoluteOrRelativeValue.hpp:35
Definition: TextBoxRenderer.hpp:36
Class to store the position or size of a widget.
Definition: Layout.hpp:258
Wrapper for colors.
Definition: Color.hpp:47
std::shared_ptr< const TextBox > ConstPtr
Shared constant widget pointer.
Definition: TextBox.hpp:51
Wrapper for durations.
Definition: Duration.hpp:48
Definition: Sprite.hpp:45
Wrapper class to store strings.
Definition: String.hpp:70
Widget::Ptr clone() const override
Makes a copy of the widget if you don't know its exact type.
Definition: TextBox.hpp:545
Definition: Outline.hpp:38
std::shared_ptr< TextBox > Ptr
Shared widget pointer.
Definition: TextBox.hpp:50