Main Page   Class Hierarchy   Compound List   File List   Compound Members  

iaws.h

00001 #ifndef __IVARIA_AWS_H__
00002 #define __IVARIA_AWS_H__
00003 
00004 #include "csutil/scf.h"
00005 #include "csgeom/csrect.h"
00006 #include "csgeom/cspoint.h"
00007 #include "iutil/string.h"
00008 
00009 struct iAws;
00010 struct iAwsSlot;
00011 struct iAwsSink;
00012 struct iAwsSource;
00013 struct iAwsComponent;
00014 struct iAwsWindow;
00015 struct iAwsPrefManager;
00016 struct iAwsSinkManager;
00017 
00018 class  awsWindow;
00019 class  awsComponent;
00020 class  awsComponentNode;
00021 class  awsComponentFactory;
00022 
00023 struct  iGraphics2D;
00024 struct  iGraphics3D;
00025 struct  iEngine;
00026 struct  iTextureManager;
00027 struct  iObjectRegistry;
00028 struct  iTextureHandle;
00029 struct  iFontServer;
00030 struct  iFont;
00031 struct  iEvent;
00032 
00033 const   bool aws_debug=false;  // set to true to turn on debugging printf's
00034        
00035 
00036 SCF_VERSION (iAws, 0, 0, 1);
00037 
00038 struct iAws : public iBase
00039 {
00040 public:  
00042   virtual iAwsPrefManager *GetPrefMgr()=0;
00043 
00045   virtual iAwsSinkManager *GetSinkMgr()=0;
00046 
00048   virtual void             SetPrefMgr(iAwsPrefManager *pmgr)=0;
00049 
00051   virtual void RegisterComponentFactory(awsComponentFactory *factory, char *name)=0;
00052 
00054   virtual iAwsWindow *GetTopWindow()=0;
00055 
00057   virtual void       SetTopWindow(iAwsWindow *win)=0;
00058   
00060   virtual void       Print(iGraphics3D *g3d)=0;
00061   
00063   virtual void       Redraw()=0;
00064 
00066   virtual void       Mark(csRect &rect)=0;
00067 
00069   virtual void       Unmark(csRect &rect)=0;
00070 
00072   virtual void       InvalidateUpdateStore()=0;
00073 
00075   virtual void       CaptureMouse()=0;
00076 
00078   virtual void       ReleaseMouse()=0;
00079 
00081   virtual bool HandleEvent(iEvent&)=0;
00082   
00084   virtual void SetContext(iGraphics2D *g2d, iGraphics3D *g3d)=0;
00085 
00087   virtual void SetDefaultContext(iEngine* engine, iTextureManager* txtmgr)=0;
00088 
00090   virtual iGraphics2D *G2D()=0;
00091 
00093   virtual iGraphics3D *G3D()=0; 
00094   
00096   virtual iAwsWindow *CreateWindowFrom(char *defname)=0;
00097   
00098 };
00099 
00100 
00101 SCF_VERSION (iAwsPrefManager, 0, 0, 1);
00102 
00103 struct iAwsPrefManager : public iBase
00104 {
00105 public:
00106 
00108   virtual void Setup(iObjectRegistry *object_reg)=0;   
00109 
00111   virtual void Load(const char *def_file)=0;
00112 
00114   virtual unsigned long NameToId(char *name)=0;
00115     
00117   virtual bool SelectDefaultSkin(char *skin_name)=0;
00118 
00120   virtual bool LookupIntKey(char *name, int &val)=0; 
00121 
00123   virtual bool LookupIntKey(unsigned long id, int &val)=0; 
00124 
00126   virtual bool LookupStringKey(char *name, iString *&val)=0; 
00127 
00129   virtual bool LookupStringKey(unsigned long id, iString *&val)=0; 
00130 
00132   virtual bool LookupRectKey(char *name, csRect &rect)=0; 
00133 
00135   virtual bool LookupRectKey(unsigned long id, csRect &rect)=0; 
00136   
00138   virtual bool LookupRGBKey(char *name, unsigned char &red, unsigned char &green, unsigned char &blue)=0;
00139     
00141   virtual bool LookupRGBKey(unsigned long id, unsigned char &red, unsigned char &green, unsigned char &blue)=0;
00142 
00144   virtual bool LookupPointKey(char *name, csPoint &point)=0; 
00145 
00147   virtual bool LookupPointKey(unsigned long id, csPoint &point)=0; 
00148   
00150   virtual bool GetInt(awsComponentNode *node, char *name, int &val)=0;
00151 
00153   virtual bool GetRect(awsComponentNode *node, char *name, csRect &rect)=0;
00154 
00156   virtual bool GetString(awsComponentNode *node, char *name, iString *&val)=0;
00157   
00159   virtual awsComponentNode *FindWindowDef(char *name)=0;
00160   
00162   virtual void SetColor(int index, int color)=0; 
00163     
00165   virtual int  GetColor(int index)=0;
00166 
00168   virtual iFont *GetDefaultFont()=0;
00169 
00171   virtual iFont *GetFont(char *filename)=0;
00172 
00174   virtual iTextureHandle *GetTexture(char *name, char *filename=NULL)=0;
00175 
00177   virtual void SetTextureManager(iTextureManager *txtmgr)=0;
00178 
00180   virtual void SetFontServer(iFontServer *fntsvr)=0;
00181   
00183   virtual void SetWindowMgr(iAws *wmgr)=0;
00184     
00190   virtual void SetupPalette()=0;
00191 
00193   virtual void RegisterConstant(char *name, int value)=0;
00194 
00196   virtual bool ConstantExists(char *name)=0;
00197 
00199   virtual int  GetConstantValue(char *name)=0;
00200 
00201 };
00202 
00203 SCF_VERSION (iAwsSinkManager, 0, 0, 1);
00204 
00205 struct iAwsSinkManager : public iBase
00206 {
00208   virtual void RegisterSink(char *name, iAwsSink *sink)=0;
00209 
00211   virtual iAwsSink* FindSink(char *name)=0;
00212 
00214   virtual iAwsSink *CreateSink(void *parm)=0;
00215 };
00216 
00217 SCF_VERSION (iAwsSink, 0, 0, 1);
00218 
00219 struct iAwsSink : public iBase
00220 {
00222   virtual unsigned long GetTriggerID(char *name)=0;  
00223 
00225   virtual void HandleTrigger(int trigger_id, iAwsSource *source)=0;
00226 
00228   virtual void RegisterTrigger(char *name, void (*Trigger)(void *, iAwsSource *))=0;
00229 };
00230 
00231 
00232 SCF_VERSION (iAwsSource, 0, 0, 1);
00233 
00234 struct iAwsSource : public iBase
00235 {      
00237   virtual iAwsComponent *GetComponent()=0;
00238 
00240   virtual bool RegisterSlot(iAwsSlot *slot, unsigned long signal)=0;
00241 
00243   virtual bool UnregisterSlot(iAwsSlot *slot, unsigned long signal)=0;
00244 
00246   virtual void Broadcast(unsigned long signal)=0;
00247 };
00248 
00249 
00250 SCF_VERSION (iAwsSlot, 0, 0, 1);
00251 
00252 struct iAwsSlot : public iBase
00253 {
00254     
00258   virtual void Connect(iAwsSource *source, unsigned long signal, iAwsSink *sink, unsigned long trigger)=0;
00259   
00263   virtual void Disconnect(iAwsSource *source, unsigned long signal, iAwsSink *sink, unsigned long trigger)=0;
00264 
00267   virtual void Emit(iAwsSource &source, unsigned long signal)=0;
00268 };
00269 
00270 
00271 SCF_VERSION (iAwsComponent, 0, 0, 1);
00272 
00273 struct iAwsComponent : public iAwsSource
00274 {
00276     virtual bool Setup(iAws *wmgr, awsComponentNode *settings)=0;
00277    
00279     virtual bool HandleEvent(iEvent& Event)=0;
00280 
00282     virtual bool GetProperty(char *name, void **parm)=0;
00283 
00285     virtual bool SetProperty(char *name, void *parm)=0;
00286 
00288     virtual void Invalidate()=0;
00289 
00291     virtual void Invalidate(csRect area)=0;
00292 
00294     virtual csRect& Frame()=0;
00295 
00297     virtual char *Type()=0;
00298 
00300     virtual bool Overlaps(csRect &r)=0;
00301 
00303     virtual bool isHidden()=0;
00304 
00306     virtual void Hide()=0;
00307 
00309     virtual void Show()=0;
00310 
00312     virtual unsigned long GetID()=0;
00313 
00315     virtual void SetID(unsigned long _id)=0;
00316 
00318     virtual void MoveChildren(int delta_x, int delta_y)=0;
00319 
00321     virtual void AddChild(iAwsComponent* child, bool owner=true)=0;
00322 
00324     virtual void RemoveChild(iAwsComponent *child)=0;
00325 
00327     virtual int GetChildCount()=0;
00328 
00330     virtual iAwsComponent *GetChildAt(int i)=0;
00331     
00333     virtual bool HasChildren()=0;
00334 
00336     virtual void OnDraw(csRect clip)=0;
00337 
00339     virtual bool OnMouseDown(int button, int x, int y)=0;
00340     
00342     virtual bool OnMouseUp(int button, int x, int y)=0;
00343     
00345     virtual bool OnMouseMove(int button, int x, int y)=0;
00346 
00348     virtual bool OnMouseClick(int button, int x, int y)=0;
00349 
00351     virtual bool OnMouseDoubleClick(int button, int x, int y)=0;
00352 
00354     virtual bool OnMouseExit()=0;
00355 
00357     virtual bool OnMouseEnter()=0;
00358 
00360     virtual bool OnKeypress(int key, int modifiers)=0;
00361     
00363     virtual bool OnLostFocus()=0;
00364 
00366     virtual bool OnGainFocus()=0;
00367 };
00368 
00369 SCF_VERSION (iAwsWindow, 0, 0, 1);
00370 
00371 struct iAwsWindow : public iAwsComponent
00372 {
00374     virtual void SetRedrawTag(unsigned int tag)=0;
00375 
00377     virtual unsigned int RedrawTag()=0;
00378   
00380     virtual void Raise()=0;
00381 
00383     virtual void Lower()=0;
00384 
00386     virtual iAwsWindow *WindowAbove()=0;
00387 
00389     virtual iAwsWindow *WindowBelow()=0;
00390 
00392     virtual void SetWindowAbove(iAwsWindow *win)=0;
00393     
00395     virtual void SetWindowBelow(iAwsWindow *win)=0;
00396 
00398     virtual bool Setup(iAws *_wmgr, awsComponentNode *settings)=0;
00399 
00401     virtual void OnRaise()=0;
00402 
00404     virtual void OnLower()=0;
00405 };
00406 
00407 SCF_VERSION (iAwsComponentFactory, 0, 0, 1);
00408 
00409 struct iAwsComponentFactory : public iBase
00410 {
00412   virtual iAwsComponent *Create()=0;
00413 
00415   virtual void Register(char *type)=0;
00416 
00418   virtual void RegisterConstant(char *name, int value)=0;
00419 };
00420 
00421 
00422 #endif // __IVARIA_AWS_H__

Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000