add new methods to textbox for line count
This commit is contained in:
parent
33321d73de
commit
b5db21567f
@ -183,6 +183,8 @@ namespace nana{ namespace widgets
|
|||||||
|
|
||||||
void focus_behavior(text_focus_behavior);
|
void focus_behavior(text_focus_behavior);
|
||||||
void select_behavior(bool move_to_end);
|
void select_behavior(bool move_to_end);
|
||||||
|
|
||||||
|
std::size_t line_count(bool text_lines) const;
|
||||||
public:
|
public:
|
||||||
void draw_corner();
|
void draw_corner();
|
||||||
void render(bool focused);
|
void render(bool focused);
|
||||||
|
|||||||
@ -257,6 +257,17 @@ namespace nana
|
|||||||
* @param len The length of the queue. If this parameter is zero, the undo/redo is disabled.
|
* @param len The length of the queue. If this parameter is zero, the undo/redo is disabled.
|
||||||
*/
|
*/
|
||||||
void set_undo_queue_length(std::size_t len);
|
void set_undo_queue_length(std::size_t len);
|
||||||
|
|
||||||
|
/// Returns the number of lines that text are displayed in the screen.
|
||||||
|
/**
|
||||||
|
* The number of display lines may be not equal to the number of text lines when the textbox
|
||||||
|
* is line wrapped mode.
|
||||||
|
* @return the number of lines that text are displayed in the screen.
|
||||||
|
*/
|
||||||
|
std::size_t display_line_count() const;
|
||||||
|
|
||||||
|
/// Returns the number of text lines.
|
||||||
|
std::size_t text_line_count() const;
|
||||||
protected:
|
protected:
|
||||||
//Overrides widget's virtual functions
|
//Overrides widget's virtual functions
|
||||||
native_string_type _m_caption() const throw() override;
|
native_string_type _m_caption() const throw() override;
|
||||||
|
|||||||
@ -1872,6 +1872,14 @@ namespace nana{ namespace widgets
|
|||||||
select_.move_to_end = move_to_end;
|
select_.move_to_end = move_to_end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::size_t text_editor::line_count(bool text_lines) const
|
||||||
|
{
|
||||||
|
if (text_lines)
|
||||||
|
return textbase().lines();
|
||||||
|
|
||||||
|
return impl_->capacities.behavior->take_lines();
|
||||||
|
}
|
||||||
|
|
||||||
void text_editor::draw_corner()
|
void text_editor::draw_corner()
|
||||||
{
|
{
|
||||||
impl_->cview->draw_corner(graph_);
|
impl_->cview->draw_corner(graph_);
|
||||||
|
|||||||
@ -720,6 +720,26 @@ namespace drawerbase {
|
|||||||
editor->set_undo_queue_length(len);
|
editor->set_undo_queue_length(len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::size_t textbox::display_line_count() const
|
||||||
|
{
|
||||||
|
internal_scope_guard lock;
|
||||||
|
auto editor = get_drawer_trigger().editor();
|
||||||
|
if (editor)
|
||||||
|
return editor->line_count(false);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::size_t textbox::text_line_count() const
|
||||||
|
{
|
||||||
|
internal_scope_guard lock;
|
||||||
|
auto editor = get_drawer_trigger().editor();
|
||||||
|
if (editor)
|
||||||
|
return editor->line_count(true);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
//Override _m_caption for caption()
|
//Override _m_caption for caption()
|
||||||
auto textbox::_m_caption() const throw() -> native_string_type
|
auto textbox::_m_caption() const throw() -> native_string_type
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user