00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CS_CSHINTS_H__
00021 #define __CS_CSHINTS_H__
00022
00031 #define CSWS_INTERNAL
00032 #include "csws.h"
00033 #include "cscomp.h"
00034 #include "csutil/csvector.h"
00035
00043 class csHint : public csComponent
00044 {
00046 csComponent *oldmo;
00047
00048 public:
00050 csHint (csComponent *iParent, const char *iText, iFont *Font = NULL,
00051 int iFontSize = -1);
00053 virtual ~csHint ();
00054
00056 virtual void Draw ();
00058 virtual bool PreHandleEvent (iEvent &Event);
00060 virtual void SetText (const char *iText);
00061 };
00062
00064 #define CSHINT_DEFAULT_TIMEOUT 3000
00065
00071 class csHintManager : public csVector
00072 {
00074 struct HintStore
00075 {
00077 csComponent *comp;
00079 char text [1];
00080 };
00081
00083 csApp *app;
00085 csTicks time;
00087 csTicks timeout;
00089 iFont *font;
00091 int fontsize;
00093 bool check;
00094
00095 public:
00097 csHintManager (csApp *iApp);
00099 virtual ~csHintManager ();
00101 virtual bool FreeItem (void* Item);
00103 virtual int Compare (void* Item1, void* Item2, int Mode) const;
00105 virtual int CompareKey (void* Item, const void* Key, int Mode) const;
00107 void Add (const char *iText, csComponent *iComp);
00109 void Remove (csComponent *iComp);
00111 void HandleEvent (iEvent &Event);
00113 void SetTimeout (csTicks iTimeout)
00114 { timeout = iTimeout; }
00116 void SetFont (iFont *iNewFont, int iSize);
00117
00118 private:
00120 static bool do_checkhint (csComponent *comp, void *data);
00121 };
00122
00125 #endif // __CS_CSHINTS_H__