00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CSILINE_H__
00021 #define __CSILINE_H__
00022
00023 #include "cscomp.h"
00024
00026 enum csInputLineFrameStyle
00027 {
00029 csifsNone,
00031 csifsThinRect,
00033 csifsThickRect
00034 };
00035
00037 #define CSIL_DEFAULTLENGTH 256
00038
00039 class csTicksr;
00040
00051 class csInputLine : public csComponent
00052 {
00054 csInputLineFrameStyle FrameStyle;
00056 int maxlen;
00058 int firstchar;
00060 int cursorpos;
00062 csRect cursorrect;
00064 bool cursorvis;
00066 int selstart, selend;
00068 bool insert;
00070 int textx, texty;
00072 csTicksr *timer;
00073
00074 public:
00076 csInputLine (csComponent *iParent, int iMaxLen = CSIL_DEFAULTLENGTH,
00077 csInputLineFrameStyle iFrameStyle = csifsThickRect);
00078
00080 virtual void SetText (const char *iText);
00081
00083 virtual void Draw ();
00084
00086 virtual bool HandleEvent (iEvent &Event);
00087
00089 virtual void SetState (int mask, bool enable);
00090
00092 void SetSelection (int iStart, int iEnd);
00093
00095 void SetCursorPos (int NewPos, bool ExtendSel);
00096
00098 virtual void SuggestSize (int &w, int &h);
00099
00101 virtual bool IsValidPos (int NewPos);
00102
00104 virtual bool IsValidChar (char iChar);
00105
00107 virtual bool IsValidString (const char *iText);
00108
00110 void DeleteSelection ();
00111
00112 protected:
00114 int GetCharX (int iNum);
00116 void SetTextExt (const char *iText);
00117 };
00118
00119 #endif // __CSILINE_H__