improve text input
This commit is contained in:
@@ -1,22 +1,44 @@
|
||||
#pragma once
|
||||
#include "node_border.h"
|
||||
#include "node_text.h"
|
||||
#include "shape.h"
|
||||
|
||||
class NodeTextInput : public NodeBorder
|
||||
{
|
||||
public:
|
||||
float timer = 0;
|
||||
NodeText* m_text;
|
||||
NodeBorder* m_cursor;
|
||||
NodeBorder* m_border;
|
||||
std::string m_string;
|
||||
public:
|
||||
enum class TextAlign
|
||||
{
|
||||
Begin,
|
||||
Center,
|
||||
End,
|
||||
};
|
||||
|
||||
TextMesh m_text_mesh;
|
||||
std::string m_text;
|
||||
std::string m_font = "arial";
|
||||
glm::vec4 m_color{ 1, 1, 1, 1 };
|
||||
int m_font_size = 11;
|
||||
kFont font_id;
|
||||
bool m_multiline = false;
|
||||
bool m_cursor_visible = false;
|
||||
glm::vec2 m_off;
|
||||
TextAlign m_text_align_v = TextAlign::Center;
|
||||
TextAlign m_text_align_h = TextAlign::Begin;
|
||||
|
||||
std::function<void(NodeTextInput*target)> on_return;
|
||||
|
||||
virtual Node* clone_instantiate() const override;
|
||||
virtual void clone_finalize(Node* dest) const override;
|
||||
virtual void init() override;
|
||||
virtual void clone_copy(Node* dest) const override;
|
||||
virtual void on_tick(float dt) override;
|
||||
virtual kEventResult handle_event(Event* e) override;
|
||||
virtual void destroy() override;
|
||||
void init_controls();
|
||||
virtual void parse_attributes(kAttribute ka, const tinyxml2::XMLAttribute* attr) override;
|
||||
virtual void draw() override;
|
||||
virtual void create() override;
|
||||
virtual void handle_resize(glm::vec2 old_size, glm::vec2 new_size, float zoom) override;
|
||||
|
||||
void set_text(const std::string& s);
|
||||
void set_text_format(const char* fmt, ...);
|
||||
void update_layout();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user