add a method to return textbox caret position
This commit is contained in:
@@ -2359,7 +2359,7 @@ namespace nana{ namespace widgets
|
||||
}
|
||||
}
|
||||
|
||||
nana::upoint text_editor::mouse_caret(const point& scrpos) //From screen position
|
||||
upoint text_editor::mouse_caret(const point& scrpos) //From screen position
|
||||
{
|
||||
points_.caret = behavior_->screen_to_caret(scrpos);
|
||||
|
||||
@@ -2370,11 +2370,16 @@ namespace nana{ namespace widgets
|
||||
return points_.caret;
|
||||
}
|
||||
|
||||
nana::upoint text_editor::caret() const
|
||||
upoint text_editor::caret() const
|
||||
{
|
||||
return points_.caret;
|
||||
}
|
||||
|
||||
point text_editor::caret_screen_pos() const
|
||||
{
|
||||
return behavior_->caret_to_screen(points_.caret);
|
||||
}
|
||||
|
||||
bool text_editor::scroll(bool upwards, bool vert)
|
||||
{
|
||||
if(vert && attributes_.vscroll)
|
||||
|
||||
@@ -294,6 +294,26 @@ namespace drawerbase {
|
||||
return (editor ? editor->getline(line_index, text) : false);
|
||||
}
|
||||
|
||||
/// Gets the caret position
|
||||
bool textbox::caret_pos(point& pos, bool text_coordinate) const
|
||||
{
|
||||
internal_scope_guard lock;
|
||||
auto editor = get_drawer_trigger().editor();
|
||||
|
||||
auto scr_pos = editor->caret_screen_pos();
|
||||
|
||||
if (text_coordinate)
|
||||
{
|
||||
auto upos = editor->caret();
|
||||
pos.x = static_cast<int>(upos.x);
|
||||
pos.y = static_cast<int>(upos.y);
|
||||
}
|
||||
else
|
||||
pos = scr_pos;
|
||||
|
||||
return editor->hit_text_area(scr_pos);
|
||||
}
|
||||
|
||||
textbox& textbox::append(const nana::string& text, bool at_caret)
|
||||
{
|
||||
internal_scope_guard lock;
|
||||
|
||||
Reference in New Issue
Block a user