X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/16e1c26e4bfebd5960e9f4613da06c96556f5b4e..8964693920977ec8a494fea6b4aeac4bbc016b65:/lib/gui/einput.h diff --git a/lib/gui/einput.h b/lib/gui/einput.h index 76342df6..ae838978 100644 --- a/lib/gui/einput.h +++ b/lib/gui/einput.h @@ -1,12 +1,12 @@ #ifndef __lib_gui_einput_h #define __lib_gui_einput_h -#include +#include #include class eInputContent; -class eInput: public eLabel +class eInput: public eWidget { public: eInput(eWidget *parent); @@ -14,7 +14,12 @@ public: PSignal0 changed; int m_cursor; - + + enum { + INPUT_ACTIONS, + ASCII_ACTIONS + }; + enum InputActions { moveLeft, moveRight, @@ -22,16 +27,22 @@ public: moveEnd, deleteForward, deleteBackward, - toggleOverwrite + toggleOverwrite, + accept }; - + + enum AsciiActions { + gotAsciiCode + }; + void setContent(eInputContent *cnt); void setOverwriteMode(int o); - int getNumber(); + void setFont(gFont *font); protected: - int m_mode; + ePtr m_font; + int m_mode, m_have_focus; ePtr m_content; int event(int event, void *data=0, void *data2=0); }; @@ -62,31 +73,9 @@ public: virtual int haveKey(int code, int overwrite)=0; virtual int isValid()=0; + virtual void validate()=0; protected: eInput *m_input; }; -class eInputContentNumber: public eInputContent -{ - DECLARE_REF(eInputContentNumber); -public: - eInputContentNumber(int cur, int min, int max); - - void getDisplay(std::string &res, int &cursor); - void moveCursor(int dir); - int haveKey(int code, int overwrite); - void deleteChar(int dir); - int isValid(); - -private: - void recalcLen(); - - void insertDigit(int pos, int dig); - - int m_value; - int m_cursor, m_len; - - int m_min, m_max; -}; - #endif