Working on getting textbox edit tool functional
This commit is contained in:
parent
262bf23bce
commit
0087048a02
43 changed files with 605 additions and 295 deletions
|
|
@ -3,23 +3,29 @@
|
|||
#include "DrawingProgramEditToolBase.hpp"
|
||||
#include <Helpers/SCollision.hpp>
|
||||
#include <any>
|
||||
#include "../../../RichTextUserInput.hpp"
|
||||
|
||||
class DrawingProgram;
|
||||
|
||||
class TextBoxEditTool : public DrawingProgramEditToolBase {
|
||||
public:
|
||||
TextBoxEditTool(DrawingProgram& initDrawP);
|
||||
TextBoxEditTool(DrawingProgram& initDrawP, CanvasComponentContainer::ObjInfo* initComp);
|
||||
|
||||
virtual void edit_start(EditTool& editTool,CanvasComponentContainer::ObjInfo* comp, std::any& prevData) override;
|
||||
virtual void commit_edit_updates(CanvasComponentContainer::ObjInfo* comp, std::any& prevData) override;
|
||||
virtual bool edit_update(CanvasComponentContainer::ObjInfo* comp) override;
|
||||
virtual void edit_gui(CanvasComponentContainer::ObjInfo* comp) override;
|
||||
virtual void right_click_popup_gui(CanvasComponentContainer::ObjInfo* comp, Vector2f popupPos) override;
|
||||
virtual void edit_start(EditTool& editTool, std::any& prevData) override;
|
||||
virtual void commit_edit_updates(std::any& prevData) override;
|
||||
virtual bool edit_update() override;
|
||||
virtual void edit_gui() override;
|
||||
virtual void right_click_popup_gui(Vector2f popupPos) override;
|
||||
|
||||
virtual void input_key_callback(CanvasComponentContainer::ObjInfo* comp, const InputManager::KeyCallbackArgs& key) override;
|
||||
virtual void input_mouse_button_on_canvas_callback(CanvasComponentContainer::ObjInfo* comp, const InputManager::MouseButtonCallbackArgs& button, bool isDraggingPoint) override;
|
||||
virtual void input_mouse_motion_callback(CanvasComponentContainer::ObjInfo* comp, const InputManager::MouseMotionCallbackArgs& motion, bool isDraggingPoint) override;
|
||||
virtual void input_paste_callback(const CustomEvents::PasteEventData& paste) override;
|
||||
virtual void input_text_key_callback(const InputManager::KeyCallbackArgs& key) override;
|
||||
virtual void input_text_callback(const InputManager::TextCallbackArgs& text) override;
|
||||
virtual void input_mouse_button_on_canvas_callback(const InputManager::MouseButtonCallbackArgs& button, bool isDraggingPoint) override;
|
||||
virtual void input_mouse_motion_callback(const InputManager::MouseMotionCallbackArgs& motion, bool isDraggingPoint) override;
|
||||
private:
|
||||
std::unique_ptr<RichTextUserInput> userInput;
|
||||
std::optional<unsigned> textboxID;
|
||||
|
||||
struct TextBoxEditToolAllData {
|
||||
TextBoxCanvasComponent::Data textboxData;
|
||||
RichText::TextData richText;
|
||||
|
|
@ -44,6 +50,9 @@ class TextBoxEditTool : public DrawingProgramEditToolBase {
|
|||
void hold_undo_data(const std::string& undoName, TextBoxCanvasComponent& a);
|
||||
void release_undo_data(const std::string& undoName);
|
||||
|
||||
void commit_update_func();
|
||||
void commit_update_and_layout_func();
|
||||
|
||||
std::unordered_map<std::string, std::pair<RichText::TextBox::Cursor, RichText::TextData>> undoHeldData;
|
||||
|
||||
std::shared_ptr<RichText::TextStyleModifier::ModifierMap> currentModsPtr = std::make_shared<RichText::TextStyleModifier::ModifierMap>();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue