12 template<
class T, INT GrowthRate = 10>
33 return (
INT)
self->OnRemoveItem(reinterpret_cast<T*>(
ptr));
39 return self->OnCompareItems(reinterpret_cast<T*>(p1), reinterpret_cast<T*>(p2));
50 INT_PTR t = (reinterpret_cast<INT_PTR>(p2) - reinterpret_cast<INT_PTR>(p1));
157 :
CUiRect(horz, vert, horz, vert)
268 currentRect = parentRect;
273 currentRect.
right = currentRect.
left + szCurrent.
cx;
276 currentRect.
left = parentRect.
left + (szParent.
cx - szCurrent.
cx) / 2;
277 currentRect.
right = currentRect.
left + szCurrent.
cx;
280 currentRect.
left = currentRect.
right - szCurrent.
cx;
289 currentRect.
bottom = currentRect.
top + szCurrent.
cy;
292 currentRect.
top = parentRect.
top + (szParent.
cy - szCurrent.
cy) / 2;
293 currentRect.
bottom = currentRect.
top + szCurrent.
cy;
296 currentRect.
top = currentRect.
bottom - szCurrent.
cy;
302 *newRect = currentRect;
402 box->ComputeContentBounds(
rect);
415 count +=
box->CountSizableChildren();
431 rect.right = preferredWidth;
432 rect.bottom = preferredHeight;
441 hDwp =
box->OnParentSize(
rect, hDwp);
449 template<
class T = CWindow>
502 TabOrderList.
Add(T::m_hWnd);
525 public CWindowImpl<CUiSplitPanel>
613 rect.right = preferredWidth;
614 rect.bottom = preferredHeight;
641 else if (growth.
cy < 0)
668 else if (growth.
cx < 0)
CUiMeasure(MeasureType type, INT value)
virtual BOOL OnRemoveItem(CUiPrimitive *ptr)
void WINAPI DPA_DestroyCallback(HDPA hdpa, PFNDPAENUMCALLBACK enumProc, LPVOID lParam)
INT IndexOf(T *ptr) const
HDWP WINAPI BeginDeferWindowPos(_In_ int)
HDPA WINAPI DPA_Create(INT nGrow)
virtual VOID ComputeMinimalSize(SIZE *size)
BOOL WINAPI IsWindow(_In_opt_ HWND)
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
GLdouble GLdouble GLdouble r
static const INT THICKNESS
virtual DWORD_PTR CountSizableChildren()
GLuint GLuint GLsizei count
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd)
INT Search(T *item, INT iStart, UINT uFlags)
#define WS_EX_TRANSPARENT
virtual BOOL OnRemoveItem(T *ptr)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
BOOL WINAPI DestroyWindow(_In_ HWND)
virtual VOID ComputeContentBounds(RECT *rect)
virtual HDWP OnParentSize(RECT parentRect, HDWP hDwp)
static const WCHAR szText[]
INT ComputeMeasure(INT parent, INT content)
static CUiMeasure FitParent()
BOOL WINAPI EndDeferWindowPos(_In_ HDWP)
HWND WINAPI GetCapture(void)
GLenum GLuint GLenum GLsizei length
CUiAlignment m_HorizontalAlignment
virtual DWORD_PTR CountSizableChildren()
#define DPA_GetPtrCount(hdpa)
virtual DWORD_PTR CountSizableChildren()
virtual HDWP OnParentSize(RECT parentRect, HDWP hDwp)
INT Insert(INT at, T *ptr)
CUiRect(INT l, INT t, INT r, INT b)
virtual VOID ComputeMinimalSize(SIZE *size)
virtual VOID ComputeRect(RECT parentRect, RECT currentRect, RECT *newRect)
virtual VOID AppendTabOrderWindow(int Direction, ATL::CSimpleArray< HWND > &TabOrderList)
GLboolean GLboolean GLboolean b
HDWP WINAPI DeferWindowPos(_In_ HDWP, _In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
virtual VOID ComputeMinimalSize(SIZE *size)
static CUiMeasure Percent(INT percent)
int WINAPI GetWindowTextLengthW(_In_ HWND)
BOOL WINAPI DPA_DeleteAllPtrs(HDPA hdpa)
VOID GetWindowTextW(ATL::CStringW &szText)
INT WINAPI DPA_GetPtrIndex(HDPA hdpa, LPCVOID p)
CUiMargin(INT horz, INT vert)
virtual HDWP OnParentSize(RECT parentRect, HDWP hDwp)
virtual VOID ComputeMinimalSize(SIZE *size)
BOOL ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT &theResult, DWORD dwMapId)
INT WINAPI DPA_InsertPtr(HDPA hdpa, INT i, LPVOID p)
BOOL WINAPI DPA_Sort(HDPA hdpa, PFNDPACOMPARE pfnCompare, LPARAM lParam)
static INT CALLBACK s_OnCompareItems(PVOID p1, PVOID p2, LPARAM lParam)
GLsizei const GLfloat * value
VOID WINAPI DPA_EnumCallback(HDPA hdpa, PFNDPAENUMCALLBACK enumProc, LPVOID lParam)
CUiAlignment m_VerticalAlignment
static INT CALLBACK s_OnRemoveItem(PVOID ptr, PVOID context)
HWND WINAPI GetParent(_In_ HWND)
HWND WINAPI SetCapture(_In_ HWND hWnd)
static CUiMeasure FitContent()
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
virtual INT OnCompareItems(T *p1, T *p2)
virtual VOID ComputeContentBounds(RECT *rect)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
CUiCollection & Children()
BOOL WINAPI ReleaseCapture(void)
LPVOID WINAPI DPA_DeletePtr(HDPA hdpa, INT i)
static CUiMeasure Fixed(INT pixels)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
virtual VOID ComputeContentBounds(RECT *rect)
GLdouble GLdouble GLdouble GLdouble top
GLuint GLuint GLsizei GLenum type
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)
virtual DWORD_PTR CountSizableChildren()
virtual HDWP OnParentSize(RECT parentRect, HDWP hDwp)
INT WINAPI DPA_Search(HDPA hdpa, LPVOID pFind, INT nStart, PFNDPACOMPARE pfnCompare, LPARAM lParam, UINT uOptions)
virtual VOID ComputeContentBounds(RECT *rect)
BOOL WINAPI DPA_SetPtr(HDPA hdpa, INT i, LPVOID p)