Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

NDK_XX::NDKDlgEdit Class Reference

#include <ndk++.h>

Inheritance diagram for NDK_XX::NDKDlgEdit:

NDK_XX::NDKDlgLabel NDK_XX::NDKDlgControl List of all members.

Public Methods

 NDKDlgEdit (NDKDlgControl *parent, int id, const string &text,int lines, int cols, int y, int x,int style=framed|editable|tabstop|notify)
 ~NDKDlgEdit ()
int edit (int key)

Protected Methods

virtual int add_or_insert_char (int key)
virtual void add_char (int key)
virtual void insert_char (int key)
int driver (int key)

Constructor & Destructor Documentation

NDK_XX::NDKDlgEdit::NDKDlgEdit NDKDlgControl   parent,
int    id,
const string &    text,
int    lines,
int    cols,
int    y,
int    x,
int    style = framed|editable|tabstop|notify
 

Definition at line 761 of file ndk++.cc.

00765         :NDKDlgLabel(parent,id,title,lines,cols,y,x,style)
00766 {
00767 }

NDK_XX::NDKDlgEdit::~NDKDlgEdit  
 

Definition at line 770 of file ndk++.cc.

References NDK_XX::NDKDlgControl::has_frame(), and NDK_XX::NDKDlgLabel::viewport.

00771 {
00772     if(has_frame())
00773         delete viewport;
00774 }


Member Function Documentation

void NDK_XX::NDKDlgEdit::add_char int    key [protected, virtual]
 

Definition at line 787 of file ndk++.cc.

References NDK_XX::NDKDlgLabel::cur_x, NDK_XX::NDKDlgLabel::cur_y, NDK_XX::NDKDlgLabel::text, and NDK_XX::NDKDlgLabel::viewport.

Referenced by add_or_insert_char().

00788 {
00789     text+=key;
00790     viewport->addch(cur_y,cur_x,key);
00791 }

int NDK_XX::NDKDlgEdit::add_or_insert_char int    key [protected, virtual]
 

Definition at line 805 of file ndk++.cc.

References add_char(), NDK_XX::NDKDlgLabel::cur_x, NDK_XX::NDKDlgLabel::cur_y, NDK_XX::NDKDlgControl::get_ctrl_id(), insert_char(), NDK_XX::NDKDlgControl::notify_enabled(), NDK_XX::NDKDlgControl::overwrite(), NDK_XX::NDKDlgControl::pParent, NDK_XX::NDKDlgControl::process_message(), TXT_CHANGED, and NDK_XX::NDKDlgLabel::viewport.

Referenced by edit().

00806 {
00807     if(!isprint(key))
00808         return FALSE;
00809         
00810     if(cur_x > -1 && cur_x < viewport->width()){
00811         if(overwrite())add_char(key);
00812         else insert_char(key);
00813         viewport->move(cur_y,++cur_x);
00814         viewport->cursyncup();
00815         viewport->refresh();
00816         if(notify_enabled())
00817             process_message(pParent,TXT_CHANGED,get_ctrl_id(),0);
00818     }
00819     return TRUE;
00820 }

int NDK_XX::NDKDlgEdit::driver int    key [protected, virtual]
 

get a chance at processing the key, before parent does

Reimplemented from NDK_XX::NDKDlgLabel.

Definition at line 778 of file ndk++.cc.

References edit().

00779 {
00780     if(edit(key))
00781         return TRUE;
00782     return NDKDlgLabel::driver(key);
00783 }

int NDK_XX::NDKDlgEdit::edit int    key
 

Definition at line 824 of file ndk++.cc.

References add_or_insert_char(), NDK_XX::NDKDlgLabel::cur_x, NDK_XX::NDKDlgLabel::cur_y, NDK_XX::NDKDlgLabel::text, NDK_XX::NDKDlgLabel::viewport, and NDK_XX::NDKDlgLabel::visible_size().

Referenced by driver().

00825 {
00826 //  getyx(cur_y,cur_x);
00827 
00828     switch(key) {
00829         case KEY_BACKSPACE:
00830         case KEY_DC:
00831             if(cur_x){
00832                 text.erase(--cur_x,1);
00833                 viewport->delch(cur_y,cur_x);
00834                 viewport->move(cur_y,cur_x);
00835                 viewport->cursyncup();
00836                 viewport->refresh();
00837             }
00838             return TRUE;
00839         case KEY_LEFT:
00840             if(cur_x){
00841                 viewport->move(cur_y,--cur_x);
00842                 viewport->cursyncup();
00843                 viewport->refresh();
00844             }
00845             return TRUE;
00846         case KEY_RIGHT:
00847             if(cur_x < visible_size()){
00848                 viewport->move(cur_y,++cur_x);
00849                 viewport->cursyncup();
00850                 viewport->refresh();
00851             }
00852             return TRUE;
00853         default:
00854             if(add_or_insert_char(key)) 
00855                 return TRUE;
00856     }
00857     return FALSE;
00858 }

void NDK_XX::NDKDlgEdit::insert_char int    key [protected, virtual]
 

Definition at line 795 of file ndk++.cc.

References NDK_XX::NDKDlgLabel::cur_x, NDK_XX::NDKDlgLabel::cur_y, NDK_XX::NDKDlgLabel::max_len(), NDK_XX::NDKDlgLabel::text, and NDK_XX::NDKDlgLabel::viewport.

Referenced by add_or_insert_char().

00796 {
00797     if(text.size()+1 < max_len()){
00798         text.insert(cur_x,1,(char)key);
00799         viewport->insch(cur_y,cur_x,key);
00800     }
00801 }


The documentation for this class was generated from the following files:
Generated on Tue Aug 27 10:49:46 2002 by doxygen1.2.17