add textbox:indexByPos and :lineY methods
This commit is contained in:
@@ -37,7 +37,9 @@ namespace gui {
|
||||
virtual void scrolled(int value) override;
|
||||
virtual void setScrollable(bool flag);
|
||||
void listenInterval(float interval, OnTimeOut callback, int repeat=-1);
|
||||
virtual glm::vec2 getContentOffset() override {return glm::vec2(0.0f, scroll);};
|
||||
virtual glm::vec2 getContentOffset() const override {
|
||||
return glm::vec2(0.0f, scroll);
|
||||
};
|
||||
virtual void setSize(const glm::vec2& size) override;
|
||||
virtual int getScrollStep() const;
|
||||
virtual void setScrollStep(int step);
|
||||
|
||||
@@ -671,6 +671,11 @@ int TextBox::calcIndexAt(int x, int y) const {
|
||||
);
|
||||
}
|
||||
|
||||
int TextBox::getLineYOffset(int line) const {
|
||||
if (rawTextCache.fontId == 0) return 0;
|
||||
return label->getLineYOffset(line) + getContentOffset().y;
|
||||
}
|
||||
|
||||
static inline std::wstring get_alphabet(wchar_t c) {
|
||||
std::wstring alphabet {c};
|
||||
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || c == '_') {
|
||||
|
||||
@@ -74,7 +74,6 @@ namespace gui {
|
||||
|
||||
size_t normalizeIndex(int index);
|
||||
|
||||
int calcIndexAt(int x, int y) const;
|
||||
void setTextOffset(uint x);
|
||||
bool eraseSelected();
|
||||
void resetSelection();
|
||||
@@ -186,6 +185,9 @@ namespace gui {
|
||||
/// @return line position in text
|
||||
virtual size_t getLinePos(uint line) const;
|
||||
|
||||
int calcIndexAt(int x, int y) const;
|
||||
int getLineYOffset(int line) const;
|
||||
|
||||
/// @brief Check text with validator set with setTextValidator
|
||||
/// @return true if text is valid
|
||||
virtual bool validate();
|
||||
|
||||
@@ -267,7 +267,7 @@ namespace gui {
|
||||
virtual glm::vec4 calcColor() const;
|
||||
|
||||
/// @brief Get inner content offset. Used for scroll
|
||||
virtual glm::vec2 getContentOffset() {return glm::vec2(0.0f);};
|
||||
virtual glm::vec2 getContentOffset() const {return glm::vec2(0.0f);};
|
||||
/// @brief Calculate screen position of the element
|
||||
virtual glm::vec2 calcPos() const;
|
||||
virtual void setPos(const glm::vec2& pos);
|
||||
|
||||
Reference in New Issue
Block a user