add textbox::set_undo_queue_length

a new method for setting the undo queue length
This commit is contained in:
Jinhao
2016-09-22 08:03:30 +08:00
parent 74e113b2cc
commit c916d0ace3
4 changed files with 28 additions and 0 deletions

View File

@@ -52,7 +52,15 @@ namespace nana{ namespace widgets
{
max_steps_ = maxs;
if (maxs && (commands_.size() >= maxs))
{
auto move = commands_.size() - pos_;
commands_.erase(commands_.begin(), commands_.begin() + (commands_.size() - maxs + 1));
pos_ = commands_.size() - std::min(move, commands_.size());
}
else if (0 == maxs)
{
clear();
}
}
std::size_t max_steps() const
@@ -258,6 +266,7 @@ namespace nana{ namespace widgets
void del();
void backspace(bool record_undo = true);
void undo(bool reverse);
void set_undo_queue_length(std::size_t len);
void move_ns(bool to_north); //Moves up and down
void move_left();
void move_right();

View File

@@ -228,6 +228,12 @@ namespace nana
/// E.g. Whether caret moves to left of selected content or moves to left of last position when left arrow key is pressed.
/// @param move_to_end determines whether to move caret to left of selected_content or to left of last position.
void select_behavior(bool move_to_end);
/// Sets the undo/redo queue length
/**
* @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);
protected:
//Overrides widget's virtual functions
native_string_type _m_caption() const throw() override;