Working on getting textbox edit tool functional

This commit is contained in:
Yousef Khadadeh 2026-04-04 17:52:43 +03:00
parent 262bf23bce
commit 0087048a02
43 changed files with 605 additions and 295 deletions

View file

@ -1,19 +1,24 @@
#pragma once
#include "CustomEvents.hpp"
#include "RichText/TextBox.hpp"
#include "UndoManager.hpp"
#include "InputManager.hpp"
class RichTextUserInput {
public:
RichTextUserInput(const std::shared_ptr<RichText::TextBox>& initTextBox, const std::shared_ptr<RichText::TextBox::Cursor>& initCursor, const std::shared_ptr<RichText::TextStyleModifier::ModifierMap>& initModMap, const std::function<void()>& initOnTextEdit);
void input_key_callback(InputManager& input, const InputManager::KeyCallbackArgs& key);
RichTextUserInput(const std::shared_ptr<RichText::TextBox>& initTextBox, const std::shared_ptr<RichText::TextBox::Cursor>& initCursor, const std::shared_ptr<RichText::TextStyleModifier::ModifierMap>& initModMap);
struct Changes {
bool textEdited = false;
bool cursorChanged = false;
};
Changes input_key_callback(InputManager& input, const InputManager::KeyCallbackArgs& key);
bool input_paste_callback(const CustomEvents::PasteEventData& paste);
void add_text_to_textbox(const std::string& inputText);
private:
void do_textbox_operation_with_undo(const std::function<void()>& func);
void add_textbox_undo(const RichText::TextBox::Cursor& prevCursor, const RichText::TextData& prevRichText);
private:
std::shared_ptr<RichText::TextBox> textBox;
std::shared_ptr<RichText::TextBox::Cursor> cursor;
std::shared_ptr<RichText::TextStyleModifier::ModifierMap> modMap;
UndoManager textboxUndo;
std::function<void()> onTextEdit;
};