00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CSHINTS_H__
00021 #define __CSHINTS_H__
00022
00023 #define CSWS_INTERNAL
00024 #include "csws.h"
00025 #include "cscomp.h"
00026 #include "csutil/csvector.h"
00027
00035 class csHint : public csComponent
00036 {
00038 csComponent *oldmo;
00039
00040 public:
00042 csHint (csComponent *iParent, const char *iText, iFont *Font = NULL,
00043 int iFontSize = -1);
00045 virtual ~csHint ();
00046
00048 virtual void Draw ();
00050 virtual bool PreHandleEvent (iEvent &Event);
00052 virtual void SetText (const char *iText);
00053 };
00054
00056 #define CSHINT_DEFAULT_TIMEOUT 3000
00057
00063 class csHintManager : public csVector
00064 {
00065
00066 struct HintStore
00067 {
00068
00069 csComponent *comp;
00070
00071 char text [1];
00072 };
00073
00075 csApp *app;
00077 csTicks time;
00079 csTicks timeout;
00081 iFont *font;
00083 int fontsize;
00085 bool check;
00086
00087 public:
00089 csHintManager (csApp *iApp);
00091 virtual ~csHintManager ();
00093 virtual bool FreeItem (csSome Item);
00095 virtual int Compare (csSome Item1, csSome Item2, int Mode) const;
00097 virtual int CompareKey (csSome Item, csConstSome Key, int Mode) const;
00099 void Add (const char *iText, csComponent *iComp);
00101 void Remove (csComponent *iComp);
00103 void HandleEvent (iEvent &Event);
00105 void SetTimeout (csTicks iTimeout)
00106 { timeout = iTimeout; }
00108 void SetFont (iFont *iNewFont, int iSize);
00109
00110 private:
00111
00112 static bool do_checkhint (csComponent *comp, void *data);
00113 };
00114
00115 #endif // __CSHINTS_H__