#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;}
|
1.2.17