textbox& textbox::border(bool has_border) { if(get_drawer_trigger().border(has_border)) { auto editor = get_drawer_trigger().editor(); if(editor) API::refresh_window(handle()); } return *this; }
void textbox::store(std::string file, nana::unicode encoding) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->textbase().store(std::move(file), true, encoding); }
void textbox::select_behavior(bool move_to_end) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->select_behavior(move_to_end); }
unsigned progress::value(unsigned val) { internal_scope_guard isg; if(API::empty_window(this->handle()) == false) return get_drawer_trigger().value(val); return 0; }
void textbox::set_accept(std::function<bool(wchar_t)> fn) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if(editor) editor->set_accept(std::move(fn)); }
void textbox::load(const nana::char_t* file) { internal_scope_guard isg; auto editor = get_drawer_trigger().editor(); if(editor) editor->load(static_cast<std::string>(nana::charset(file)).c_str()); }
void textbox::load(std::string file) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor && editor->load(file.data())) API::update_window(handle()); }
void textbox::focus_behavior(text_focus_behavior behavior) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->focus_behavior(behavior); }
textbox& textbox::mask(nana::char_t ch) { auto editor = get_drawer_trigger().editor(); if(editor && editor->mask(ch)) API::refresh_window(handle()); return *this; }
//Override _m_typeface for changing the caret void textbox::_m_typeface(const nana::paint::font& font) { widget::_m_typeface(font); auto editor = get_drawer_trigger().editor(); if(editor) editor->reset_caret_height(); }
void textbox::copy() const { internal_scope_guard isg; auto editor = get_drawer_trigger().editor(); if(editor) editor->copy(); }
void textbox::erase_keyword(const std::string& kw) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->erase_keyword(to_wstring(kw)); }
void textbox::erase_highlight(const std::string& name) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->erase_highlight(name); }
void textbox::set_highlight(const std::string& name, const ::nana::color& fgcolor, const ::nana::color& bgcolor) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->set_highlight(name, fgcolor, bgcolor); }
void textbox::set_undo_queue_length(std::size_t len) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->set_undo_queue_length(len); }
void textbox::store(std::string file) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->textbase().store(std::move(file), false, nana::unicode::utf8); //3rd parameter is just for syntax, it will be ignored }
void textbox::store(const nana::char_t* file, nana::unicode encoding) const { internal_scope_guard isg; auto editor = get_drawer_trigger().editor(); if(editor) editor->textbase().store(static_cast<std::string>(nana::charset(file)).c_str(), encoding); }
textbox& textbox::editable(bool able) { auto editor = get_drawer_trigger().editor(); if(editor) editor->editable(able); return *this; }
textbox& textbox::multi_lines(bool ml) { auto editor = get_drawer_trigger().editor(); if(editor && editor->multi_lines(ml)) API::update_window(handle()); return *this; }
void textbox::select(bool yes) { internal_scope_guard isg; auto editor = get_drawer_trigger().editor(); if(editor && editor->select(yes)) API::refresh_window(*this); }
textbox& textbox::tip_string(const nana::string& str) { internal_scope_guard isg; auto editor = get_drawer_trigger().editor(); if(editor && editor->tip_string(str)) API::refresh_window(handle()); return *this; }
/// Enables/disables the textbox to indent a line. Idents a new line when it is created by pressing enter. /// @param generator generates text for identing a line. If it is empty, textbox indents the line according to last line. textbox& textbox::indention(bool enb, std::function<std::string()> generator) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->indent(enb, generator); return *this; }
textbox& textbox::mask(wchar_t ch) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if(editor && editor->mask(ch)) API::refresh_window(handle()); return *this; }
textbox& textbox::enable_caret() { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) editor->editable(editor->attr().editable, true); return *this; }
textbox& textbox::editable(bool able) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if(editor) editor->editable(able, false); return *this; }
textbox& textbox::tip_string(std::string str) { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if(editor && editor->tip_string(std::move(str))) API::refresh_window(handle()); return *this; }
void picture::set_gradual_background(const ::nana::color& from, const ::nana::color& to, bool horizontal) { auto & bground = get_drawer_trigger().impl_->gradual_bground; bground.gradual_from = from; bground.gradual_to = to; bground.horizontal = horizontal; API::refresh_window(*this); }
rectangle textbox::text_area() const { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) return editor->text_area(false); return{}; }
std::vector<upoint> textbox::text_position() const { internal_scope_guard lock; auto editor = get_drawer_trigger().editor(); if (editor) return editor->text_position(); return{}; }
std::string textbox::filename() const { internal_scope_guard isg; auto editor = get_drawer_trigger().editor(); if(editor) return editor->textbase().filename(); return std::string(); }