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 sf::String& text);
123 void addText(
const sf::String& text);
132 const sf::String& getText()
const;
141 sf::String getSelectedText()
const;
151 void setTextSize(
unsigned int size);
160 unsigned int getTextSize()
const;
172 void setMaximumCharacters(std::size_t maxChars = 0);
184 std::size_t getMaximumCharacters()
const;
195 void setCaretPosition(std::size_t charactersBeforeCaret);
206 std::size_t getCaretPosition()
const;
218 void setReadOnly(
bool readOnly =
true);
230 bool isReadOnly()
const;
232 #ifndef TGUI_REMOVE_DEPRECATED_CODE 233 TGUI_DEPRECATED(
"Use setHorizontalScrollbarPolicy instead") void setHorizontalScrollbarPresent(
bool present);
254 TGUI_DEPRECATED("Use getHorizontalScrollbarPolicy instead")
bool isHorizontalScrollbarPresent() const;
267 TGUI_DEPRECATED("Use setVerticalScrollbarPolicy instead")
void setVerticalScrollbarPresent(
bool present);
278 TGUI_DEPRECATED("Use getVerticalScrollbarPolicy instead")
bool isVerticalScrollbarPresent() const;
325 std::size_t getLinesCount()
const;
336 void setFocused(
bool focused)
override;
350 void enableMonospacedFontOptimization(
bool enable =
true);
359 bool mouseOnWidget(
Vector2f pos)
const override;
364 void leftMousePressed(
Vector2f pos)
override;
369 void leftMouseReleased(
Vector2f pos)
override;
374 void mouseMoved(
Vector2f pos)
override;
379 void keyPressed(
const sf::Event::KeyEvent& event)
override;
384 void textEntered(std::uint32_t Key)
override;
389 bool mouseWheelScrolled(
float delta,
Vector2f pos)
override;
394 void mouseNoLongerOnWidget()
override;
399 void mouseNoLongerDown()
override;
409 sf::Vector2<std::size_t> findCaretPosition(
Vector2f position)
const;
416 std::pair<std::size_t, std::size_t> findTextSelectionPositions()
const;
423 void selectText(
float posX,
float posY);
430 void deleteSelectedCharacters();
436 void rearrangeText(
bool keepSelection);
441 void updateScrollbars();
446 void updateSelectionTexts();
456 void draw(sf::RenderTarget& target, sf::RenderStates states)
const override;
471 void update(sf::Time elapsedTime)
override;
477 void recalculatePositions();
483 void recalculateVisibleLines();
495 Signal& getSignal(std::string signalName)
override;
504 void rendererChanged(
const std::string& property)
override;
510 std::unique_ptr<DataIO::Node> save(SavingRenderersMap& renderers)
const override;
516 void load(
const std::unique_ptr<DataIO::Node>& node,
const LoadingRenderersMap& renderers)
override;
524 return std::make_shared<TextBox>(*this);
531 SignalString onTextChange = {
"TextChanged"};
538 unsigned int m_textSize = 18;
539 unsigned int m_lineHeight = 24;
542 float m_maxLineWidth;
544 std::vector<sf::String> m_lines;
547 std::size_t m_maxChars = 0;
550 std::size_t m_topLine = 1;
551 std::size_t m_visibleLines = 1;
554 sf::Vector2<std::size_t> m_selStart;
555 sf::Vector2<std::size_t> m_selEnd;
559 bool m_caretVisible =
true;
561 Text m_textBeforeSelection;
562 Text m_textSelection1;
563 Text m_textSelection2;
564 Text m_textAfterSelection1;
565 Text m_textAfterSelection2;
567 std::vector<FloatRect> m_selectionRects;
576 bool m_possibleDoubleClick =
false;
578 bool m_readOnly =
false;
580 bool m_monospacedFontOptimizationEnabled =
false;
582 Sprite m_spriteBackground;
587 Color m_borderColorCached;
588 Color m_backgroundColorCached;
589 Color m_caretColorCached;
590 Color m_selectedTextBackgroundColorCached;
591 float m_caretWidthCached = 1;
601 #endif // TGUI_TEXT_BOX_HPP Namespace that contains all TGUI functions and classes.
Definition: AbsoluteOrRelativeValue.hpp:36
Definition: Sprite.hpp:43
Wrapper for colors.
Definition: Color.hpp:47
Class to store the position or size of a widget.
Definition: Layout.hpp:245
Definition: Vector2f.hpp:37
Text box widget.
Definition: TextBox.hpp:46
std::shared_ptr< TextBox > Ptr
Shared widget pointer.
Definition: TextBox.hpp:50
Signal to which the user can subscribe to get callbacks from.
Definition: Signal.hpp:59
Widget::Ptr clone() const override
Makes a copy of the widget if you don't know its exact type.
Definition: TextBox.hpp:522
Definition: CopiedSharedPtr.hpp:39
Definition: Outline.hpp:38
std::shared_ptr< const TextBox > ConstPtr
Shared constant widget pointer.
Definition: TextBox.hpp:51
Definition: TextBoxRenderer.hpp:36