#include <ndk++.h>
Inheritance diagram for NDK_XX::Edit:
Public Methods | |
Edit (Control *parent, int id, const string &text,int lines, int cols, int y, int x,int style=framed|editable|tabstop|notify) | |
~Edit () | |
Protected Methods | |
virtual int | edit (int key) |
This is the specialized driver for edition. | |
virtual int | add_or_insert_char (int key) |
virtual void | add_char (int key) |
In overwrite mode. | |
virtual void | insert_char (int key) |
In insert mode. | |
virtual void | refresh_text () |
Update the text we present on the viewport. | |
int | move_right () |
int | move_left () |
int | driver (int key) |
|
Edit Constructor See parameters for class Control Definition at line 618 of file ndk++.cc. Referenced by NDK_XX::Label::operator[]().
|
|
Definition at line 628 of file ndk++.cc. References NDK_XX::Control::has_frame(), and NDK_XX::Label::viewport.
|
|
In overwrite mode.
Definition at line 645 of file ndk++.cc. References NDK_XX::Label::cur_x, and NDK_XX::Label::text. Referenced by add_or_insert_char().
|
|
Definition at line 664 of file ndk++.cc. References add_char(), NDK_XX::Label::cur_x, NDK_XX::Control::get_ctrl_id(), insert_char(), NDK_XX::Label::max_len(), NDK_XX::Control::notify_enabled(), NDK_XX::Control::overwrite(), NDK_XX::Control::pParent, NDK_XX::Control::process_message(), refresh_text(), NDK_XX::Label::refresh_viewport(), NDK_XX::Label::text, TXT_CHANGED, NDK_XX::Label::viewport, and NDK_XX::Label::x_start. Referenced by edit().
00665 { 00666 if(!isprint(key)) 00667 return FALSE; 00668 00669 if(cur_x > -1 && cur_x < max_len()){ 00670 if(overwrite())add_char(key); 00671 else{ 00672 if(text.size()==max_len()){ 00673 beep(); 00674 return TRUE; 00675 } 00676 insert_char(key); 00677 } 00678 refresh_text(); 00679 if(++cur_x >= viewport->width()) 00680 x_start++; 00681 // send_to_log(text) << ":" << cur_x << endl; 00682 refresh_viewport(); 00683 if(notify_enabled()) 00684 process_message(pParent,TXT_CHANGED,get_ctrl_id(),0); 00685 } 00686 else beep(); 00687 return TRUE; 00688 } |
|
get a chance at processing the key, before parent does Reimplemented from NDK_XX::Control. Definition at line 636 of file ndk++.cc. References edit().
00637 { 00638 if(key==KEY_MOUSE) 00639 return false; 00640 return edit(key); 00641 } |
|
This is the specialized driver for edition.
Reimplemented in NDK_XX::EditNumber, NDK_XX::EditDate, and NDK_XX::EditDouble. Definition at line 692 of file ndk++.cc. References add_or_insert_char(), NDK_XX::Label::cur_x, NDK_XX::Control::get_ctrl_id(), KEY_ENTER, KEY_TAB, move_left(), move_right(), NDK_XX::Control::notify_enabled(), NDK_XX::Control::pParent, NDK_XX::Control::process_message(), refresh_text(), NDK_XX::Label::refresh_viewport(), NDK_XX::Label::text, TXT_CHANGED, and NDK_XX::Label::x_start. Referenced by driver().
00693 { 00694 switch(key) { 00695 case KEY_BACKSPACE: 00696 case KEY_DC: 00697 if(!text.empty()){ 00698 if(cur_x) cur_x--; 00699 if(x_start) x_start--; 00700 text.erase(cur_x,1); 00701 refresh_text(); 00702 refresh_viewport(); 00703 if(notify_enabled()) 00704 process_message(pParent,TXT_CHANGED,get_ctrl_id(),0); 00705 } 00706 else beep(); 00707 return TRUE; 00708 case KEY_LEFT: return move_left(); 00709 case KEY_RIGHT: return move_right(); 00710 case KEY_ENTER: beep(); return KEY_TAB; 00711 default: 00712 if(add_or_insert_char(key)) 00713 return TRUE; 00714 } 00715 return FALSE; 00716 } |
|
In insert mode.
Definition at line 655 of file ndk++.cc. References NDK_XX::Label::cur_x, NDK_XX::Label::max_len(), and NDK_XX::Label::text. Referenced by add_or_insert_char().
|
|
move_left and move_right: if arrow_is_tab == true, they return false, so the owner can process KEY_LEFT and KEY_RIGHT, and properly move to previous or next control. Reimplemented from NDK_XX::Control. Definition at line 737 of file ndk++.cc. References NDK_XX::Label::cur_x, refresh_text(), NDK_XX::Label::refresh_viewport(), and NDK_XX::Label::x_start. Referenced by edit().
00738 { 00739 int result = TRUE; 00740 if(cur_x){ 00741 if(--cur_x == x_start){ 00742 if(x_start) 00743 x_start--; 00744 refresh_text(); 00745 } 00746 refresh_viewport(); 00747 } 00748 else 00749 result = Label::move_left(); 00750 return result; 00751 } |
|
Reimplemented from NDK_XX::Control. Definition at line 720 of file ndk++.cc. References NDK_XX::Label::cur_x, NDK_XX::Label::max_len(), refresh_text(), NDK_XX::Label::refresh_viewport(), NDK_XX::Label::text, NDK_XX::Label::viewport, and NDK_XX::Label::x_start. Referenced by edit().
00721 { 00722 int result=TRUE; 00723 if(text.size() && cur_x < text.size() && cur_x < max_len()-1){ 00724 if(++cur_x >= viewport->width()){ 00725 x_start++; 00726 refresh_text(); 00727 } 00728 refresh_viewport(); 00729 } 00730 else 00731 result = Label::move_right(); 00732 return result; 00733 } |
|
Update the text we present on the viewport.
Reimplemented from NDK_XX::Label. Definition at line 576 of file ndk++.h. References NDK_XX::Button::default_choice, NDK_XX::Control::notify, NDK_XX::Control::tabstop, and NDK_XX::Control::title. Referenced by add_or_insert_char(), NDK_XX::EditDate::edit(), edit(), move_left(), and move_right().
00590 {default_choice=t_or_f;} |