#ifndef __TXTWND_HPP #define __TXTWND_HPP #include "misc.hpp" #include "region.hpp" struct Window; //special "windows" #define WND_TOP ((Window*)1) #define WND_BOTTOM ((Window*)2) //predefined styles #define WS_VISIBLE 0x00010000L #define WS_CLIPCHILDREN 0x00020000L #define WS_CLIPSIBLINGS 0x00040000L #define WS_DISABLED 0x00080000L //ownerparent relationship Window *WinQueryWindowOwner(const Window *wnd); Bool WinSetWindowOwner(Window *wnd, Window *newOwner); Window *WinQueryWindowParent(const Window *wnd); Bool WinSetWindowParent(Window *wnd, Window *newParent); Bool WinIsChild(const Window *parent, const Window *child); Bool WinIsOwnee(const Window *owner, const Window *ownee); //window enumeration struct ChildEnum; ChildEnum *WinBeginEnum(const Window *parent); Window *WinQueryNextWindow(ChildEnum *ce); void WinEndEnum(ChildEnum *ce); //enable/disable/style Bool WinIsWindowVisible(const Window *wnd); Bool WinIsWindowEnabled(const Window *wnd); uint32 WinQueryWindowStyle(const Window *wnd); Bool WinSetWindowStyle(Window *wnd, uint32 s); Bool WinSetWindowStyleBits(Window *wnd, uint32 bits, uint32 mask); typedef void (*SetStyleHook_f)(const Window*, uint32 oldStyle, uint32 newStyle); SetStyleHook_f WinSetSetStyleHook(SetStyleHook_f pfn); //window ID uint16 WinQueryWindowID(const Window *wnd); Bool WinSetWindowID(Window *wnd, uint16 ID); Window *WinWindowFromID(const Window *wnd, uint16 ID); //user data uint32 WinQueryWindowUserData(const Window *wnd); Bool WinSetWindowUserData(Window *wnd, uint32 ud); #define SWP_MOVE 0x0001 #define SWP_SIZE 0x0002 #define SWP_HIDE 0x0004 #define SWP_SHOW 0x0008 #define SWP_ZORDER 0x0010 struct SWP { int flags; int cx,cy; int x,y; Window *behind; Window *wnd; }; Bool WinSetWindowPos(Window *wnd, Window *behind, int x, int y, int cx, int cy, int flags); Bool WinQueryWindowRect(const Window *wnd, FRect *prect); Bool WinMapWindowPoints(const Window *from, const Window *to, FPoint *p, int points); Bool WinMapWindowRects(const Window *from, const Window *to, FRect *r, int rects); Window *WinWindowFromPoint(const Window *topWindow, const FPoint *p); typedef void (*SWPHook_f)(const SWP *swp); SWPHook_f WinSetSWPHook(SWPHook_f pfn); Bool WinInvalidateRect(Window *wnd, const FRect *rect, Bool includeChildren); Bool WinValidateRect(Window *wnd, const FRect *rect, Bool includeChildren); Bool WinEnableWindowUpdate(Window *wnd, Bool visible); Bool WinQueryWindowUpdateRegion(Window *wnd, Region *r); Bool WinQueryWindowUpdateRect(Window *wnd, FRect *r); Bool WinQueryWindowClipRegion(Window *wnd, Region *r); Window *WinQueryInvalidWindow(); Window *WinCreateWindow(Window *parent, int x, int y, int cx, int cy, Window *behind, Window *owner, uint32 style, uint16 id, uint32 userData ); Bool WinDestroyWindow(Window *wnd); Bool WinIsWindow(const Window *wnd); typedef void (*DestroyHook_f)(const Window*); DestroyHook_f WinSetPreDestroyHook(DestroyHook_f pfn); DestroyHook_f WinSetPostDestroyHook(DestroyHook_f pfn); #endif