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;
28 void setContent(eInputContent *cnt);
30 void setOverwriteMode(int o);
35 ePtr<eInputContent> m_content;
36 int event(int event, void *data=0, void *data2=0);
39 class eInputContent: public iObject
42 /* management stuff */
43 void setInput(eInput *widget);
45 virtual void getDisplay(std::string &res, int &cursor)=0;
47 /* movement / user actions */
51 /* contents can define their own directions */
54 virtual void moveCursor(int dir)=0;
57 deleteForward, deleteBackward
59 virtual void deleteChar(int dir)=0;
61 /* no movement keys except stuff like '.' or so*/
62 virtual int haveKey(int code, int overwrite)=0;
64 virtual int isValid()=0;
69 class eInputContentNumber: public eInputContent
71 DECLARE_REF(eInputContentNumber);
73 eInputContentNumber(int cur, int min, int max);
75 void getDisplay(std::string &res, int &cursor);
76 void moveCursor(int dir);
77 int haveKey(int code, int overwrite);
78 void deleteChar(int dir);
84 void insertDigit(int pos, int dig);