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 select_behavior(bool move_to_end);
|
||||
|
||||
std::size_t line_count(bool text_lines) const;
|
||||
public:
|
||||
void draw_corner();
|
||||
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.
|
||||
*/
|
||||
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:
|
||||
//Overrides widget's virtual functions
|
||||
native_string_type _m_caption() const throw() override;
|
||||
|
||||
@ -1872,6 +1872,14 @@ namespace nana{ namespace widgets
|
||||
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()
|
||||
{
|
||||
impl_->cview->draw_corner(graph_);
|
||||
|
||||
@ -720,6 +720,26 @@ namespace drawerbase {
|
||||
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()
|
||||
auto textbox::_m_caption() const throw() -> native_string_type
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user