| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 | #ifndef _ROOTWND_H#define _ROOTWND_H#include "api_window.h"#include <bfc/wasabi_std.h>#include <bfc/dispatch.h>#include <api/wnd/cursor.h>class ifc_canvas;class api_region;class TimerClient;class ifc_dependent;class GuiObject;class FindObjectCallback;class Cursor;class Accessible;class Canvas;// only these methods are safe across dll boundaries// this is the pointer you find in the GWL_USERDATA of a windowclass DragInterface;class NOVTABLE RootWndI : public ifc_window {protected:  RootWndI() {}	// protect constructorpublic:  virtual OSWINDOWHANDLE getOsWindowHandle()=0;  virtual OSMODULEHANDLE getOsModuleHandle()=0;  virtual void performBatchProcesses()=0;  virtual TimerClient *getTimerClient()=0;  virtual const wchar_t *getRootWndName()=0;  virtual const wchar_t *getId()=0;  virtual int init(ifc_window *parent, int nochild)=0;  virtual int isInited()=0;  virtual int isPostOnInit()=0;  virtual int setVirtual(int i)=0;  virtual int isClickThrough()=0;  virtual int onMouseMove(int x, int y)=0;  virtual int onLeftButtonUp(int x, int y)=0;  virtual int onRightButtonUp(int x, int y)=0;  virtual int onLeftButtonDown(int x, int y)=0;    virtual int onRightButtonDown(int x, int y)=0;  virtual int onLeftButtonDblClk(int x, int y)=0;  virtual int onRightButtonDblClk(int x, int y)=0;  virtual DragInterface *getDragInterface()=0;  virtual int getCursorType(int x, int y)=0;  virtual OSCURSORHANDLE getCustomCursor(int x, int y)=0;  virtual ifc_window *rootWndFromPoint(POINT *pt)=0;  virtual void getClientRect(RECT *r)=0;  virtual void getNonClientRect(RECT *rect)=0;  virtual void getWindowRect(RECT *r)=0;  virtual void setVisible(int show)=0;  virtual void setCloaked(int cloak)=0;  virtual void onSetVisible(int show)=0;  virtual int isVisible(int within=0)=0;  virtual void *getInterface(GUID interface_guid)=0;  virtual void invalidate()=0;  virtual void invalidateRect(RECT *r)=0;  virtual void invalidateRgn(api_region *r)=0;  virtual void invalidateFrom(ifc_window *who)=0;  virtual void invalidateRectFrom(RECT *r, ifc_window *who)=0;  virtual void invalidateRgnFrom(api_region *r, ifc_window *who)=0;  virtual void validate()=0;  virtual void validateRect(RECT *r)=0;  virtual void validateRgn(api_region *reg)=0;  virtual void onChildInvalidate(api_region *r, ifc_window *who)=0;  virtual int rootwnd_paintTree(ifc_canvas *canvas, api_region *r)=0;  virtual int paint (Canvas *canvas, api_region *r)=0;  virtual Canvas *getFrameBuffer()=0;  virtual ifc_window *getParent()=0;  virtual ifc_window *getRootParent()=0;  virtual ifc_window *getDesktopParent()=0;  virtual void setParent(ifc_window *parent)=0;  virtual int onSiblingInvalidateRgn(api_region *r, ifc_window *who, int who_idx, int my_idx)=0;  virtual int wantSiblingInvalidations()=0;  virtual int cascadeRepaintFrom(ifc_window *who, int pack=1)=0;  virtual int cascadeRepaintRgnFrom(api_region *reg, ifc_window *who, int pack=1)=0;  virtual int cascadeRepaintRectFrom(RECT *r, ifc_window *who, int pack=1)=0;  virtual int cascadeRepaint(int pack=1)=0;  virtual int cascadeRepaintRgn(api_region *reg, int pack=1)=0;  virtual int cascadeRepaintRect(RECT *r, int pack=1)=0;  virtual void repaint()=0;  virtual void setClickThrough(int ct)=0;  virtual ifc_window *getBaseTextureWindow()=0;  virtual void rootwnd_renderBaseTexture(ifc_canvas *c, const RECT *r, int alpha=255)=0;#if defined (_WIN64)  virtual int childNotify(ifc_window* child, int msg, int p1, int p2) = 0;#else  virtual int childNotify(ifc_window *child, int msg, intptr_t p1, intptr_t p2)=0;#endif  virtual int getPreferences(int what)=0;  virtual void setPreferences(int what, int v)=0;  virtual api_region *getRegion()=0;  virtual int getRegionOp()=0;  virtual void setRegionOp(int op)=0;  virtual int isRectRgn()=0;  virtual void setRectRgn(int rrgn)=0;  virtual void invalidateWindowRegion()=0;  virtual api_region *getComposedRegion()=0;  virtual api_region *getSubtractorRegion()=0;  virtual void setStartHidden(int sh)=0;  virtual double getRenderRatio()=0;  virtual void setRenderRatio(double r)=0;  virtual void setRatioLinked(int l)=0;  virtual int handleRatio()=0;  virtual void resize(int x, int y, int w, int h, int wantcb=1)=0;  virtual void move(int x, int y)=0;  virtual void notifyDeferredMove(int x, int y)=0;  virtual void getPosition(POINT *pt)=0;  virtual ifc_window *getForwardWnd()=0;  virtual void registerRootWndChild(ifc_window *child)=0;  virtual void unregisterRootWndChild(ifc_window *child)=0;  virtual ifc_window *findRootWndChild(int x, int y, int only_virtuals=0)=0;  virtual ifc_window *enumRootWndChildren(int _enum)=0;  virtual int getNumRootWndChildren()=0;  virtual int isVirtual()=0;  virtual void bringVirtualToFront(ifc_window *w)=0;  virtual void bringVirtualToBack(ifc_window *w)=0;  virtual void bringVirtualAbove(ifc_window *w, ifc_window *b)=0;  virtual void bringVirtualBelow(ifc_window *w, ifc_window *b)=0;  virtual int checkDoubleClick(int button, int x, int y)=0;    virtual void onCancelCapture()=0;  virtual void cancelCapture()=0;  virtual void clientToScreen(int *x, int *y)=0;   virtual void screenToClient(int *x, int *y)=0;   virtual void setVirtualChildCapture(ifc_window *child)=0;  virtual ifc_window *getVirtualChildCapture()=0;  virtual int ptInRegion(int x, int y)=0;  virtual int onActivate()=0;  virtual void activate()=0;  virtual int onDeactivate()=0;  virtual int isActive()=0;  virtual int handleTransparency()=0;  virtual int handleDesktopAlpha()=0;  virtual int getNotifyId()=0;  virtual void setEnabled(int en)=0;  virtual int isEnabled(int within=0)=0;  virtual int onEnable(int e)=0;  virtual int getPaintingAlpha()=0;   virtual void getAlpha(int *active=NULL, int *inactive=NULL)=0;   virtual void setAlpha(int activealpha, int inactivealpha=-1)=0;   virtual void setTip(const wchar_t *tip)=0;  virtual int runModal()=0;  virtual void endModal(int retcode)=0;  virtual int wantAutoContextMenu()=0;  virtual int wantActivation()=0;  virtual void bringToFront()=0;  virtual void bringToBack()=0;  virtual void setFocus()=0;  virtual int gotFocus()=0;  virtual ifc_window *getNextVirtualFocus(ifc_window *w)=0;  virtual void setVirtualChildFocus(ifc_window *w)=0;  virtual void setVirtualTabOrder(ifc_window *w, int a)=0;  virtual int getVirtualTabOrder(ifc_window *w)=0;  virtual int wantFocus()=0;  virtual void setTabOrder(int a)=0;  virtual int getTabOrder()=0;  virtual ifc_window *getTab(int what=TAB_GETCURRENT)=0;  virtual void setAutoTabOrder()=0;  virtual void setVirtualAutoTabOrder(ifc_window *w)=0;  virtual ifc_window *getCurVirtualChildFocus()=0;  virtual void onSetRootFocus(ifc_window *w)=0;  virtual int onAcceleratorEvent(const wchar_t *name)=0;  virtual int onChar(unsigned int c)=0;  virtual int onKeyDown(int keycode)=0;  virtual int onKeyUp(int keycode)=0;  virtual int onSysKeyDown(int keyCode, int keyData)=0;  virtual int onSysKeyUp(int keyCode, int keyData)=0;  virtual int onKillFocus()=0;  virtual int onGetFocus()=0;  virtual ifc_dependent *rootwnd_getDependencyPtr()=0;  virtual void addMinMaxEnforcer(ifc_window *w)=0;  virtual void removeMinMaxEnforcer(ifc_window *w)=0;  virtual ifc_window *enumMinMaxEnforcer(int n)=0;  virtual int getNumMinMaxEnforcers()=0;  virtual void signalMinMaxEnforcerChanged()=0;  virtual int onAction(const wchar_t *action, const wchar_t *param=NULL, int x=-1, int y=-1, intptr_t p1=0, intptr_t p2=0, void *data=NULL, size_t datalen=0, ifc_window *source=NULL)=0;  virtual void setRenderBaseTexture(int r)=0;  virtual int getRenderBaseTexture()=0;  virtual GuiObject *getGuiObject()=0; // not guaranteed non null  virtual int getFlag(int flag)=0;  virtual int triggerEvent(int event, intptr_t p1, intptr_t p2)=0;  virtual int allowDeactivation()=0;  virtual void setAllowDeactivation(int allow)=0;  virtual ifc_window *findWindow(const wchar_t *id)=0;  virtual ifc_window *findWindowByInterface(GUID interface_guid)=0;  virtual ifc_window *findWindowByCallback(FindObjectCallback *cb)=0;  virtual ifc_window *findWindowChain(FindObjectCallback *cb, ifc_window *wcaller)=0;  virtual void focusNext()=0;  virtual void focusPrevious()=0;  virtual void setWindowTitle(const wchar_t *title) = 0;  virtual ifc_window *enumTab(int i)=0;  virtual int getNumTabs()=0;  virtual int getFocusOnClick()=0;  virtual void setFocusOnClick(int i)=0;  virtual void setNoDoubleClicks(int no)=0;  virtual void setNoLeftClicks(int no)=0;  virtual void setNoRightClicks(int no)=0;  virtual void setNoMouseMoves(int no)=0;  virtual void setNoContextMenus(int no)=0;  virtual int wantDoubleClicks()=0;  virtual int wantLeftClicks()=0;  virtual int wantRightClicks()=0;  virtual int wantMouseMoves()=0;  virtual int wantContextMenus()=0;  virtual void setDefaultCursor(Cursor *c)=0;  virtual Accessible *getAccessibleObject(int createifnotexist=1)=0;  virtual int accessibility_getState()=0;#ifdef EXPERIMENTAL_INDEPENDENT_AOT  virtual void setAlwaysOnTop(int i)=0;  virtual int getAlwaysOnTop()=0;#endif#ifndef WA3COMPATIBILITY  virtual void setDropTarget(void *dt)=0;  virtual void *getDropTarget()=0;#endif  virtual int isMinimized()=0;  virtual void maximize(int axis=MAXIMIZE_WIDTH|MAXIMIZE_HEIGHT)=0;  virtual void restore(int what=RESTORE_X|RESTORE_Y|RESTORE_WIDTH|RESTORE_HEIGHT)=0;  virtual int getRestoredRect(RECT *r)=0;protected:  RECVS_DISPATCH;};#endif
 |