Added an overload to getline to allow an offset from the beginning of the line.
Added a clear undo method. Added an overload to selected to get the selected bounds.
This commit is contained in:
parent
78c3527f10
commit
8e84383a7b
@ -1427,7 +1427,8 @@ namespace nana{ namespace widgets
|
|||||||
_handle_move_key(arg);
|
_handle_move_key(arg);
|
||||||
break;
|
break;
|
||||||
case keyboard::os_del:
|
case keyboard::os_del:
|
||||||
if (this->attr().editable)
|
// send delete to set_accept function
|
||||||
|
if (this->attr().editable && (!attributes_.pred_acceptive || attributes_.pred_acceptive(key)))
|
||||||
del();
|
del();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -1916,6 +1917,13 @@ namespace nana{ namespace widgets
|
|||||||
return (select_.a != select_.b);
|
return (select_.a != select_.b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool text_editor::selected(nana::upoint &a,nana::upoint &b) const
|
||||||
|
{
|
||||||
|
a = select_.a;
|
||||||
|
b = select_.b;
|
||||||
|
return selected();
|
||||||
|
}
|
||||||
|
|
||||||
void text_editor::set_end_caret()
|
void text_editor::set_end_caret()
|
||||||
{
|
{
|
||||||
bool new_sel_end = (select_.b != points_.caret);
|
bool new_sel_end = (select_.b != points_.caret);
|
||||||
|
|||||||
@ -318,6 +318,25 @@ namespace drawerbase {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool textbox::getline(std::size_t line_index,std::size_t start_point,std::string& text) const
|
||||||
|
{
|
||||||
|
internal_scope_guard lock;
|
||||||
|
auto editor = get_drawer_trigger().editor();
|
||||||
|
if(editor)
|
||||||
|
{
|
||||||
|
std::wstring line_text;
|
||||||
|
if(editor->getline(line_index,line_text))
|
||||||
|
{
|
||||||
|
if(line_text.length() >= start_point)
|
||||||
|
{
|
||||||
|
text = to_utf8(line_text.substr(start_point));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/// Gets the caret position
|
/// Gets the caret position
|
||||||
bool textbox::caret_pos(point& pos, bool text_coordinate) const
|
bool textbox::caret_pos(point& pos, bool text_coordinate) const
|
||||||
{
|
{
|
||||||
@ -451,6 +470,13 @@ namespace drawerbase {
|
|||||||
return (editor ? editor->selected() : false);
|
return (editor ? editor->selected() : false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool textbox::selected(nana::upoint &a,nana::upoint &b) const
|
||||||
|
{
|
||||||
|
internal_scope_guard lock;
|
||||||
|
auto editor = get_drawer_trigger().editor();
|
||||||
|
return (editor ? editor->selected(a,b) : false);
|
||||||
|
}
|
||||||
|
|
||||||
void textbox::select(bool yes)
|
void textbox::select(bool yes)
|
||||||
{
|
{
|
||||||
internal_scope_guard lock;
|
internal_scope_guard lock;
|
||||||
@ -517,6 +543,11 @@ namespace drawerbase {
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void textbox::clear_undo()
|
||||||
|
{
|
||||||
|
get_drawer_trigger().editor()->clear_undo();
|
||||||
|
}
|
||||||
|
|
||||||
void textbox::set_highlight(const std::string& name, const ::nana::color& fgcolor, const ::nana::color& bgcolor)
|
void textbox::set_highlight(const std::string& name, const ::nana::color& fgcolor, const ::nana::color& bgcolor)
|
||||||
{
|
{
|
||||||
internal_scope_guard lock;
|
internal_scope_guard lock;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user