Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

LgiInterfaces.h

00001 // \file
00003 #ifndef _LGI_INTERFACES_H_
00004 #define _LGI_INTERFACES_H_
00005 
00006 // Includes
00007 #include "GArray.h"
00008 
00009 // Fwd defs
00010 class GXmlTag;
00011 class GMouseHook;
00012 class GFont;
00013 class GRect;
00014 class GdcPt2;
00015 class GRegion;
00016 class GSurface;
00017 class GViewI;
00018 class GMessage;
00019 class GMouse;
00020 class GKey;
00021 class GWindow;
00022 class GViewFill;
00023 class GView;
00024 
00025 // Classes
00026 class GDomI
00027 {
00028 public:
00029     virtual ~GDomI() {}
00030 
00031     virtual bool GetValue(char *Var, GVariant &Value) = 0;
00032     virtual bool SetValue(char *Var, GVariant &Value) = 0;
00033 };
00034 
00035 class GStreamI : virtual public GDomI
00036 {
00037 public:
00038     virtual int Open(char *Str = 0, int Int = 0) = 0;
00039     virtual bool IsOpen() = 0;
00040     virtual int Close() = 0;
00041 
00042     virtual int64 GetSize() = 0;
00043     virtual int64 SetSize(int64 Size) = 0;
00044     virtual int64 GetPos() = 0;
00045     virtual int64 SetPos(int64 Pos) = 0;
00046     virtual int Read(void *Buffer, int Size, int Flags = 0) = 0;
00047     virtual int Write(void *Buffer, int Size, int Flags = 0) = 0;
00048     virtual GStreamI *Clone() = 0;
00049     // virtual int Print(char *Format, ...) = 0;
00050 };
00051 
00053 enum GSocketLogTypes
00054 {
00056     NET_LOG_NONE = 0,
00058     NET_LOG_HEX_DUMP = 1,
00060     NET_LOG_ALL_BYTES = 2
00061 };
00062 
00064 enum GSocketProp
00065 {
00067     GReadable,
00069     GWriteable,
00071     GAcceptable,
00073     GAsync,
00074     GException,
00075     GNoDelay,
00076 };
00077 
00080 class GSocketI : virtual public GStreamI
00081 {
00082 public:
00083     virtual ~GSocketI() {}
00084 
00086     virtual OsSocket Handle(OsSocket Set = INVALID_SOCKET) = 0;
00088     virtual bool WhatsMyIp
00089     (
00091         char *IpAddr
00092     ) = 0;
00094     virtual int WhatsMyPort() = 0;
00096     virtual bool GetRemoteIp(char *IpAddr) = 0;
00098     virtual bool IsReadable() = 0;
00100     virtual bool Cancel() = 0;
00102     virtual void Cancel(bool i) = 0;
00104     virtual int Is
00105     (
00107         GSocketProp p
00108     ) = 0;
00110     virtual void Is(GSocketProp p, int i) = 0;
00112     virtual void SetLogFile(char *FileName = 0, int Type = NET_LOG_HEX_DUMP) = 0;
00113 
00115     virtual bool Listen(int Port = 0) = 0;
00117     virtual bool Accept(GSocketI *c) = 0;
00118 
00120     virtual int Error() = 0;
00121 
00123     virtual void OnDisconnect() = 0;
00125     virtual void OnRead(char *Data, int Len) = 0;
00127     virtual void OnWrite(char *Data, int Len) = 0;
00129     virtual void OnError(int ErrorCode, char *ErrorDescription) = 0;
00131     virtual void OnInformation(char *Str) = 0;
00133     virtual int SetParameter(int Param, int Value) = 0;
00134 };
00135 
00136 class GAppI
00137 {
00138 public:
00140     virtual ~GAppI() {}
00141 
00142     virtual bool IsOk() = 0;
00143     
00145     virtual OsProcessId GetProcessId() = 0;
00146     
00148     virtual OsThreadId GetGuiThread() = 0;
00149 
00151     virtual void SetAppArgs(OsAppArguments &AppArgs) = 0;
00152     
00154     virtual OsAppArguments *GetAppArgs() = 0;
00155 
00157     virtual char *GetArgumentAt(int n) = 0;
00158     
00160     virtual bool Run
00161     (
00164         bool Loop = true
00165     ) = 0;
00166     
00168     virtual void OnCommandLine() = 0;
00169     
00171     virtual void OnReceiveFiles(GArray<char*> &Files) = 0;
00172     
00174     virtual void Exit
00175     (
00177         int Code = 0
00178     ) = 0;
00179     
00182     virtual bool GetOption
00183     (
00185         char *Option,
00187         GArray<char> &Buf
00188     ) = 0;
00189 
00192     virtual bool GetOption
00193     (
00195         char *Option,
00197         char *Dst = 0,
00199         int DstSize = 0
00200     ) = 0;
00201     
00203     virtual GXmlTag *GetConfig(char *Tag) = 0;
00204 
00206     virtual void SetConfig(GXmlTag *Tag) = 0;
00207     
00209     virtual GViewI *GetFocus() = 0;
00210     
00212     virtual bool GetFileMimeType
00213     (
00215         char *File,
00217         char *Mime,
00219         int BufLen
00220     ) = 0;
00221         
00223     virtual int32 GetMetric
00224     (
00226         int Metric
00227     ) = 0;
00228 
00230     virtual GMouseHook *GetMouseHook() = 0;
00231 };
00232 
00233 class GEventsI
00234 {
00235 public:
00236     virtual ~GEventsI() {}
00237 
00238     // Does this support scripting
00239     virtual bool OnScriptEvent(GViewI *Ctrl) = 0;
00240 
00241     // Events
00242     virtual int OnEvent(GMessage *Msg) = 0;
00243     virtual void OnMouseClick(GMouse &m) = 0;
00244     virtual void OnMouseEnter(GMouse &m) = 0;
00245     virtual void OnMouseExit(GMouse &m) = 0;
00246     virtual void OnMouseMove(GMouse &m) = 0;
00247     virtual void OnMouseWheel(double Lines) = 0;
00248     virtual bool OnKey(GKey &k) = 0;
00249     virtual void OnAttach() = 0;
00250     virtual void OnCreate() = 0;
00251     virtual void OnDestroy() = 0;
00252     virtual void OnFocus(bool f) = 0;
00253     virtual void OnPulse() = 0;
00254     virtual void OnPosChange() = 0;
00255     virtual bool OnRequestClose(bool OsShuttingDown) = 0;
00256     virtual int OnHitTest(int x, int y) = 0;
00257     virtual void OnChildrenChanged(GViewI *Wnd, bool Attaching) = 0;
00258     virtual void OnPaint(GSurface *pDC) = 0;
00259     virtual int OnNotify(GViewI *Ctrl, int Flags) = 0;
00260     virtual int OnCommand(int Cmd, int Event, OsView Wnd) = 0;
00261 };
00262 
00263 class GViewIterator
00264 {
00265 public:
00266     virtual GViewI *First() = 0;
00267     virtual GViewI *Last() = 0;
00268     virtual GViewI *Next() = 0;
00269     virtual GViewI *Prev() = 0;
00270     virtual int Length() = 0;
00271     virtual int IndexOf(GViewI *view) = 0;
00272     virtual GViewI *operator [](int Idx) = 0;
00273 };
00274 
00275 class GViewI : public GEventsI
00276 {
00277     friend class GView;
00278 
00279 public:
00280     // Handles
00281     virtual OsView Handle() = 0;
00282     virtual OsWindow WindowHandle() = 0;
00283 
00284     // Heirarchy
00285     virtual bool Attach(GViewI *p) = 0;
00286     virtual bool AttachChildren() = 0;
00287     virtual bool Detach() = 0;
00288     virtual bool IsAttached() = 0;
00289     virtual GWindow *GetWindow() = 0;
00290     virtual GViewI *GetParent() = 0;
00291     virtual void SetParent(GViewI *p) = 0;
00292     virtual void Quit(bool DontDelete = false) = 0;
00293     virtual bool AddView(GViewI *v, int Where = -1) = 0;
00294     virtual bool DelView(GViewI *v) = 0;
00295     virtual bool HasView(GViewI *v) = 0;
00296     virtual GViewIterator *IterateViews() = 0;
00297 
00298     // Threading
00299     virtual bool Lock(int TimeOut = -1) = 0;
00300     virtual void Unlock() = 0;
00301     virtual bool InThread() = 0;
00302 
00303     // Properties
00304     virtual bool Enabled() = 0;
00305     virtual void Enabled(bool e) = 0;
00306     virtual bool Visible() = 0;
00307     virtual void Visible(bool v) = 0;
00308     virtual bool Focus() = 0;
00309     virtual void Focus(bool f) = 0;
00310     virtual bool DropTarget() = 0;
00311     virtual bool DropTarget(bool t) = 0;
00312     virtual bool Sunken() = 0;
00313     virtual void Sunken(bool i) = 0;
00314     virtual bool Flat() = 0;
00315     virtual void Flat(bool i) = 0;
00316     virtual bool Raised() = 0;
00317     virtual void Raised(bool i) = 0;
00318     virtual GViewFill *GetBackgroundFill() = 0;
00319     virtual bool SetBackgroundFill(GViewFill *Fill) = 0;
00320     virtual bool Name(char *n) = 0;
00321     virtual char *Name() = 0;
00322     virtual bool NameW(char16 *n) = 0;
00323     virtual char16 *NameW() = 0;
00324     virtual GFont *GetFont() = 0;
00325     virtual void SetFont(GFont *Fnt, bool OwnIt = false) = 0;
00326     virtual GRect &GetPos() = 0;
00327     virtual GRect &GetClient() = 0;
00328     virtual bool SetPos(GRect &p, bool Repaint = false) = 0;
00329     virtual int X() = 0;
00330     virtual int Y() = 0;
00331     virtual GdcPt2 GetMinimumSize() = 0;
00332     virtual void SetMinimumSize(GdcPt2 Size) = 0;   
00333     virtual int GetId() = 0;
00334     virtual void SetId(int i) = 0;
00335     virtual bool GetTabStop() = 0;
00336     virtual void SetTabStop(bool b) = 0;
00337     virtual int Value() = 0;
00338     virtual void Value(int i) = 0;
00339 
00340     // Events
00341     virtual void SendNotify(int Data = 0) = 0;
00342     virtual GViewI *GetNotify() = 0;
00343     virtual void SetNotify(GViewI *n) = 0;
00344     virtual bool PostEvent(int Cmd, int a = 0, int b = 0) = 0;
00345 
00346     // Mouse
00347     virtual bool SetCursor(int Cursor) = 0;
00348     virtual bool Capture(bool c) = 0;
00349     virtual bool IsCapturing() = 0;
00350     virtual bool GetMouse(GMouse &m, bool ScreenCoords = false) = 0;
00351 
00352     // Helper
00353     virtual void MoveOnScreen() = 0;
00354     virtual void MoveToCenter() = 0;
00355     virtual void MoveToMouse() = 0;
00356     virtual GViewI *FindControl(OsView hnd) = 0;
00357     virtual GViewI *FindControl(int Id) = 0;
00358     virtual int GetCtrlValue(int Id) = 0;
00359     virtual void SetCtrlValue(int Id, int i) = 0;
00360     virtual char *GetCtrlName(int Id) = 0;
00361     virtual void SetCtrlName(int Id, char *s) = 0;
00362     virtual bool GetCtrlEnabled(int Id) = 0;
00363     virtual void SetCtrlEnabled(int Id, bool Enabled) = 0;
00364     virtual bool GetCtrlVisible(int Id) = 0;
00365     virtual void SetCtrlVisible(int Id, bool Visible) = 0;
00366     virtual bool Pour(GRegion &r) = 0;
00367 
00368     // Points
00369     virtual void PointToScreen(GdcPt2 &p) = 0;
00370     virtual void PointToView(GdcPt2 &p) = 0;
00371     virtual bool WindowVirtualOffset(GdcPt2 *Offset) = 0;   
00372     virtual GViewI *WindowFromPoint(int x, int y) = 0;
00373     virtual GdcPt2 &GetWindowBorderSize() = 0;
00374     virtual bool IsOver(GMouse &m) = 0;
00375 
00376     // Misc
00377     virtual bool Invalidate(GRect *r = 0, bool Repaint = false, bool NonClient = false) = 0;
00378     virtual bool Invalidate(GRegion *r, bool Repaint = false, bool NonClient = false) = 0;
00379     virtual void SetPulse(int Ms = -1) = 0;
00380 
00381 protected:
00382     virtual bool OnViewMouse(GView *v, GMouse &m) = 0;
00383     virtual bool OnViewKey(GView *v, GKey &k) = 0;
00384 };
00385 
00386 #endif

Generated on Tue May 2 10:24:43 2006 for Lgi by  doxygen 1.4.1