1 #ifndef __lib_gui_einput_h
2 #define __lib_gui_einput_h
4 #include <lib/gui/elabel.h>
5 #include <lib/python/connections.h>
9 class eInput: public eLabel
12 eInput(eWidget *parent);
14 PSignal0<void> changed;
26 void setContent(eInputContent *cnt);
30 ePtr<eInputContent> m_content;
31 int event(int event, void *data=0, void *data2=0);
34 class eInputContent: public iObject
37 /* management stuff */
38 void setInput(eInput *widget);
40 virtual void getDisplay(std::string &res, int &cursor)=0;
42 /* movement / user actions */
46 /* contents can define their own directions */
49 virtual void moveCursor(int dir)=0;
50 /* no movement keys except stuff like '.' or so*/
51 virtual int haveKey(int code)=0;
53 virtual int isValid()=0;
58 class eInputContentNumber: public eInputContent
60 DECLARE_REF(eInputContentNumber);
62 eInputContentNumber(int cur, int min, int max);
64 void getDisplay(std::string &res, int &cursor);
65 void moveCursor(int dir);
66 int haveKey(int code);
72 void insertDigit(int pos, int dig);