1#ifndef __SWINDOW_I__H__
2#define __SWINDOW_I__H__
5#include <interface/sstring-i.h>
6#include <interface/SAnimation-i.h>
7#include <interface/SRender-i.h>
8#include <interface/SMatrix-i.h>
13typedef struct ILayout ILayout;
14typedef struct ILayoutParam ILayoutParam;
15typedef struct IWindow IWindow;
22 UM_SOUI_BEGIN = (WM_USER + 10950),
30 SPYMSG_BASE = UM_SOUI_BEGIN + 50,
31 SPYMSG_SETSPY = SPYMSG_BASE,
38typedef BOOL (*FunSwndProc)(IWindow *pSwnd, UINT uMsg, WPARAM wp, LPARAM lp, LRESULT *pbHandled);
41#define INTERFACE IWindow
42DECLARE_INTERFACE_(IWindow, IObject)
44 DEF_OBJ_BASE(IWindow, Window)
45#include <interface/SobjectApi.h>
55 STDMETHOD_(HRESULT, QueryInterface)(THIS_ REFGUID id,
IObjRef * *ppRet) PURE;
69 STDMETHOD_(
void, SetContainer)(THIS_
ISwndContainer * pContainer) PURE;
75 STDMETHOD_(SWND, GetSwnd)(CTHIS) SCONST PURE;
81 STDMETHOD_(ILayout *, GetLayout)(THIS) PURE;
87 STDMETHOD_(ILayoutParam *, GetLayoutParam)(CTHIS) SCONST PURE;
95 STDMETHOD_(BOOL, SetLayoutParam)(THIS_ ILayoutParam * pLayoutParam) PURE;
101 STDMETHOD_(BOOL, IsFloat)(CTHIS) SCONST PURE;
107 STDMETHOD_(BOOL, IsDisplay)(CTHIS) SCONST PURE;
113 STDMETHOD_(BOOL, IsMsgTransparent)(CTHIS) SCONST PURE;
120 STDMETHOD_(BOOL, IsClipClient)(CTHIS) SCONST PURE;
128 STDMETHOD_(
void, SetToolTipText)(THIS_ LPCTSTR pszText) PURE;
136 STDMETHOD_(
void, SetToolTipTextU8)(THIS_ LPCSTR pszText) PURE;
142 STDMETHOD_(BOOL, IsChecked)(CTHIS) SCONST PURE;
149 STDMETHOD_(
void, SetCheck)(THIS_ BOOL bCheck) PURE;
155 STDMETHOD_(BOOL, IsDisabled)(CTHIS_ BOOL bCheckParent) SCONST PURE;
163 STDMETHOD_(
void, EnableWindow)(THIS_ BOOL bEnable, BOOL bUpdate) PURE;
169 STDMETHOD_(BOOL, IsVisible)(CTHIS_ BOOL bCheckParent) SCONST PURE;
177 STDMETHOD_(
void, SetVisible)(THIS_ BOOL bVisible, BOOL bUpdate) PURE;
183 STDMETHOD_(ULONG_PTR, GetUserData)(CTHIS) SCONST PURE;
190 STDMETHOD_(ULONG_PTR, SetUserData)(THIS_ ULONG_PTR uData) PURE;
197 STDMETHOD_(
void, DoColorize)(THIS_ COLORREF cr) PURE;
203 STDMETHOD_(COLORREF, GetColorizeColor)(CTHIS) SCONST PURE;
213 STDMETHOD_(LRESULT, SSendMessage)
214 (THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL * pbMsgHandled) PURE;
223 STDMETHOD_(
void, SDispatchMessage)(THIS_ UINT uMsg, WPARAM wParam DEF_VAL(0), LPARAM lParam DEF_VAL(0)) PURE;
229 STDMETHOD_(BOOL, IsFocusable)(CTHIS) SCONST PURE;
235 STDMETHOD_(BOOL, IsFocused)(CTHIS) SCONST PURE;
241 STDMETHOD_(
void, SetFocus)(THIS) PURE;
247 STDMETHOD_(
void, KillFocus)(THIS) PURE;
253 STDMETHOD_(
void, Invalidate)(THIS) PURE;
261 STDMETHOD_(
void, InvalidateRect)(THIS_ LPCRECT lprect) PURE;
267 STDMETHOD_(
void, LockUpdate)(THIS) PURE;
273 STDMETHOD_(
void, UnlockUpdate)(THIS) PURE;
279 STDMETHOD_(BOOL, IsUpdateLocked)(CTHIS_ BOOL bCheckParent DEF_VAL(FALSE)) SCONST PURE;
288 STDMETHOD_(
void, Update)(THIS_ BOOL bForce DEF_VAL(FALSE)) PURE;
297 STDMETHOD_(
void, SetWindowRgn)(THIS_
IRegionS * pRgn, BOOL bRedraw) PURE;
303 STDMETHOD_(
IRegionS *, GetWindowRgn)(CTHIS) SCONST PURE;
312 STDMETHOD_(
void, SetWindowPath)(THIS_ IPathS * pPath, BOOL bRedraw) PURE;
318 STDMETHOD_(IPathS *, GetWindowPath)(CTHIS) SCONST PURE;
332 STDMETHOD_(
void, Move2)(THIS_
int x,
int y,
int cx DEF_VAL(-1),
int cy DEF_VAL(-1)) PURE;
340 STDMETHOD_(
void, Move)(THIS_ LPCRECT prect) PURE;
347 STDMETHOD_(
void, GetWindowRect)(CTHIS_ LPRECT prect) SCONST PURE;
354 STDMETHOD_(
void, GetClientRect)(CTHIS_ LPRECT prect) SCONST PURE;
361 STDMETHOD_(
void, GetVisibleRect)(CTHIS_ LPRECT prect) SCONST PURE;
368 STDMETHOD_(BOOL, IsContainPoint)(CTHIS_ POINT pt, BOOL bClientOnly) SCONST PURE;
376 STDMETHOD_(SWND, SwndFromPoint)(CTHIS_ POINT * pt, BOOL bIncludeMsgTransparent DEF_VAL(FALSE)) SCONST PURE;
384 STDMETHOD_(BOOL, SetTimer)(THIS_
char id, UINT uElapse) PURE;
391 STDMETHOD_(BOOL, KillTimer)(THIS_
char id) PURE;
397 STDMETHOD_(SWND, GetCapture)(CTHIS) SCONST PURE;
403 STDMETHOD_(SWND, SetCapture)(THIS) PURE;
409 STDMETHOD_(BOOL, ReleaseCapture)(THIS) PURE;
416 STDMETHOD_(
void, SetAnimation)(THIS_ IAnimation * animation) PURE;
424 STDMETHOD_(
void, StartAnimation)(THIS_ IAnimation * animation) PURE;
430 STDMETHOD_(IAnimation *, GetAnimation)(CTHIS) SCONST PURE;
436 STDMETHOD_(
void, ClearAnimation)(THIS) PURE;
443 STDMETHOD_(
void, SetAlpha)(THIS_ BYTE byAlpha) PURE;
449 STDMETHOD_(BYTE, GetAlpha)(CTHIS) SCONST PURE;
456 STDMETHOD_(
void, SetMatrix)(THIS_
const IMatrix *mtx) PURE;
461 STDMETHOD_(
void, GetMatrix)(CTHIS_ IMatrix * mtx) SCONST PURE;
467 STDMETHOD_(
int, GetScale)(CTHIS) SCONST PURE;
473 STDMETHOD_(
void, RequestRelayout)(THIS) PURE;
479 STDMETHOD_(
void, UpdateLayout)(THIS) PURE;
485 STDMETHOD_(
void, UpdateChildrenPosition)(THIS) PURE;
491 STDMETHOD_(BOOL, IsLayoutDirty)(CTHIS) SCONST PURE;
497 STDMETHOD_(UINT, OnGetDlgCode)(CTHIS) SCONST PURE;
503 STDMETHOD_(IWindow *, GetIRoot)(CTHIS) SCONST PURE;
509 STDMETHOD_(IWindow *, GetIParent)(CTHIS) SCONST PURE;
516 STDMETHOD_(IWindow *, GetIWindow)(CTHIS_
int uCode) SCONST PURE;
524 STDMETHOD_(IWindow *, GetIChild)(CTHIS_
int iChild) SCONST PURE;
530 STDMETHOD_(UINT, GetChildrenCount)(CTHIS) SCONST PURE;
537 STDMETHOD_(BOOL, IsDescendant)(CTHIS_
const IWindow *pTest) SCONST PURE;
544 STDMETHOD_(
void, SetIOwner)(THIS_ IWindow * pOwner) PURE;
550 STDMETHOD_(IWindow *, GetIOwner)(CTHIS) SCONST PURE;
557 STDMETHOD_(
void, BringWindowToTop)(THIS) PURE;
567 STDMETHOD_(BOOL, AdjustIZOrder)(THIS_ IWindow * pInsertAfter) PURE;
578 STDMETHOD_(
void, InsertIChild)(THIS_ IWindow * pNewChild, IWindow * pInsertAfter) PURE;
588 STDMETHOD_(BOOL, RemoveIChild)(THIS_ IWindow * pChild) PURE;
598 STDMETHOD_(BOOL, CreateChildrenFromXml)(THIS_ LPCWSTR pszXml) PURE;
608 STDMETHOD_(BOOL, CreateChildrenFromResId)(THIS_ LPCTSTR pszResId) PURE;
616 STDMETHOD_(IWindow *, FindIChildByID)(THIS_
int nId) PURE;
624 STDMETHOD_(IWindow *, FindIChildByName)(THIS_ LPCWSTR pszName) PURE;
632 STDMETHOD_(IWindow *, FindIChildByNameA)(THIS_ LPCSTR pszName) PURE;
642 STDMETHOD_(BOOL, DestroyIChild)(THIS_ IWindow * pChild) PURE;
648 STDMETHOD_(
void, DestroyAllChildren)(THIS) PURE;
654 STDMETHOD_(BOOL, Destroy)(THIS) PURE;
661 STDMETHOD_(IWindow *, GetNextLayoutIChild)(CTHIS_
const IWindow *pCurChild) SCONST PURE;
671 STDMETHOD_(
void, GetChildrenLayoutRect)(CTHIS_ RECT * prc) SCONST PURE;
682 STDMETHOD_(
void, GetDesiredSize)(THIS_ SIZE * pSize,
int nParentWid,
int nParentHei) PURE;
688 STDMETHOD_(COLORREF, GetBkgndColor)(CTHIS) SCONST PURE;
696 STDMETHOD_(
void, SetWindowText)(THIS_ LPCTSTR lpszText) PURE;
704 STDMETHOD_(
void, SetWindowTextU8)(THIS_ LPCSTR lpszText) PURE;
713 STDMETHOD_(
int, GetWindowText)(THIS_ TCHAR * pBuf,
int nBufLen, BOOL bRawText) PURE;
715 STDMETHOD_(
int, GetWindowTextU8)(THIS_ IStringA * pStr, BOOL bRawText) PURE;
721 STDMETHOD_(DWORD, GetState)(CTHIS) SCONST PURE;
730 STDMETHOD_(DWORD, ModifyState)(THIS_ DWORD dwStateAdd, DWORD dwStateRemove, BOOL bUpdate DEF_VAL(FALSE)) PURE;
739 STDMETHOD_(IWindow *, GetISelectedSiblingInGroup)(THIS) PURE;
747 STDMETHOD_(IWindow *, GetISelectedChildInGroup)(THIS) PURE;
754 STDMETHOD_(BOOL, IsSiblingsAutoGroupped)(CTHIS) SCONST PURE;
765 STDMETHOD_(BOOL, CreateCaret)(THIS_ HBITMAP pBmp,
int nWid,
int nHeight) PURE;
772 STDMETHOD_(
void, ShowCaret)(THIS_ BOOL bShow) PURE;
780 STDMETHOD_(
void, SetCaretPos)(THIS_
int x,
int y) PURE;
787 STDMETHOD_(
void, SetEventMute)(THIS_ BOOL bMute) PURE;
795 STDMETHOD_(BOOL, SubscribeEvent)(THIS_ DWORD evtId,
const IEvtSlot *pSlot) PURE;
803 STDMETHOD_(BOOL, UnsubscribeEvent)(THIS_ DWORD evtId,
const IEvtSlot *pSlot) PURE;
811 STDMETHOD_(BOOL, AddEvent)(THIS_ DWORD dwEventID, LPCWSTR pszEventHandlerName) PURE;
818 STDMETHOD_(BOOL, RemoveEvent)(THIS_ DWORD dwEventID) PURE;
824 STDMETHOD_(BOOL, FireEvent)(THIS_ IEvtArgs * evt) PURE;
833 STDMETHOD_(BOOL, FireCommand)(THIS) PURE;
843 STDMETHOD_(BOOL, FireCtxMenu)(THIS_ POINT pt) PURE;
856 STDMETHOD_(BOOL, SwndProc)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT * lResult) PURE;
866 STDMETHOD_(
void, SetSwndProc)(THIS_ FunSwndProc swndProc) PURE;
875 STDMETHOD_(HWND, GetHostHwnd)(THIS) PURE;
884 STDMETHOD_(ITimelineHandlersMgr *, GetTimelineHandlersMgr)(THIS) PURE;
893 STDMETHOD_(BOOL, IsVideoCanvas)(CTHIS) SCONST PURE;
895 STDMETHOD_(BOOL, RegisterDragDrop)(THIS_ IDropTarget * pDragTarget) PURE;
896 STDMETHOD_(BOOL, UnregisterDragDrop)(THIS) PURE;
Interface for reference counting.
SOUI Window Container Interface.