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;
27 void setContent(eInputContent *cnt);
31 ePtr<eInputContent> m_content;
32 int event(int event, void *data=0, void *data2=0);
35 class eInputContent: public iObject
38 /* management stuff */
39 void setInput(eInput *widget);
41 virtual void getDisplay(std::string &res, int &cursor)=0;
43 /* movement / user actions */
47 /* contents can define their own directions */
50 virtual void moveCursor(int dir)=0;
53 deleteForward, deleteBackward
55 virtual void deleteChar(int dir)=0;
57 /* no movement keys except stuff like '.' or so*/
58 virtual int haveKey(int code)=0;
60 virtual int isValid()=0;
65 class eInputContentNumber: public eInputContent
67 DECLARE_REF(eInputContentNumber);
69 eInputContentNumber(int cur, int min, int max);
71 void getDisplay(std::string &res, int &cursor);
72 void moveCursor(int dir);
73 int haveKey(int code);
74 void deleteChar(int dir);
80 void insertDigit(int pos, int dig);