ReactOS 0.4.16-dev-2284-g3529151
CSplitter.hpp
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Certificate Manager
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: CSortableHeader definition
5 * COPYRIGHT: Copyright 2025 Mark Jansen <mark.jansen@reactos.org>
6 */
7
9{
10 private:
11 CWindow m_Parent;
12 CWindow m_Left;
13 CWindow m_Right;
14
15 int m_splitterPos = 280;
16 const int m_splitterSize = 4;
17
18 public:
19 void
20 Init(CWindow parent, CWindow left, CWindow right)
21 {
23 m_Left = left;
24 m_Right = right;
25 }
26
27 void
29 {
30 RECT rc;
31 m_Parent.GetClientRect(&rc);
32
33 HDWP hdwp = BeginDeferWindowPos(2);
34
35 if (hdwp)
36 hdwp = m_Left.DeferWindowPos(
38 if (hdwp)
39 hdwp = m_Right.DeferWindowPos(
42 if (hdwp)
44 }
45
46 void
48 {
49 m_splitterPos = max(x, 120);
50 RECT rc;
51 m_Parent.GetClientRect(&rc);
52 ResizeWnd(rc.right - rc.left, rc.bottom - rc.top);
53 }
54
57 {
59 return TRUE;
60 }
61
64 {
65 if (LOWORD(lParam) == HTCLIENT)
66 {
67 POINT pt;
69 m_Parent.ScreenToClient(&pt);
70 if (pt.x >= m_splitterPos - m_splitterSize / 2 && pt.x <= m_splitterPos + m_splitterSize / 2)
71 {
73 bHandled = TRUE;
74 return TRUE;
75 }
76 }
77 bHandled = FALSE;
78 return FALSE;
79 }
80
83 {
85
87 {
88 m_Parent.SetCapture();
89
90 bHandled = TRUE;
91 return TRUE;
92 }
93
94 return TRUE;
95 }
96
99 {
100 if (GetCapture() == m_Parent.m_hWnd)
101 {
103 }
104 return TRUE;
105 }
106
107 LRESULT
109 {
110 if (GetCapture() == m_Parent.m_hWnd)
111 {
114 }
115 return TRUE;
116 }
117};
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define pt(x, y)
Definition: drawing.c:79
r parent
Definition: btrfs.c:3010
unsigned int BOOL
Definition: ntddk_ex.h:94
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLdouble GLdouble right
Definition: glext.h:10859
GLint left
Definition: glext.h:7726
LONG_PTR LPARAM
Definition: minwindef.h:175
LONG_PTR LRESULT
Definition: minwindef.h:176
UINT_PTR WPARAM
Definition: minwindef.h:174
unsigned int UINT
Definition: ndis.h:50
#define LOWORD(l)
Definition: pedump.c:82
LRESULT OnSetCursor(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CSplitter.hpp:63
CWindow m_Left
Definition: CSplitter.hpp:12
LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CSplitter.hpp:56
int m_splitterPos
Definition: CSplitter.hpp:15
LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CSplitter.hpp:98
LRESULT OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CSplitter.hpp:108
void ResizeWnd(int width, int height)
Definition: CSplitter.hpp:28
CWindow m_Parent
Definition: CSplitter.hpp:11
CWindow m_Right
Definition: CSplitter.hpp:13
void Init(CWindow parent, CWindow left, CWindow right)
Definition: CSplitter.hpp:20
void DragSplitter(INT x)
Definition: CSplitter.hpp:47
const int m_splitterSize
Definition: CSplitter.hpp:16
LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CSplitter.hpp:82
LONG right
Definition: windef.h:108
LONG bottom
Definition: windef.h:109
LONG top
Definition: windef.h:107
LONG left
Definition: windef.h:106
#define max(a, b)
Definition: svc.c:63
int32_t INT
Definition: typedefs.h:58
#define HIWORD(l)
Definition: typedefs.h:247
#define GET_X_LPARAM(lp)
Definition: windowsx.h:299
#define SWP_NOACTIVATE
Definition: winuser.h:1253
BOOL WINAPI ReleaseCapture(void)
Definition: message.c:2890
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
Definition: cursoricon.c:3064
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
HWND WINAPI GetCapture(void)
Definition: message.c:2881
BOOL WINAPI EndDeferWindowPos(_In_ HDWP)
#define HTCLIENT
Definition: winuser.h:2511
#define LoadCursor
Definition: winuser.h:5923
#define SWP_NOZORDER
Definition: winuser.h:1258
#define IDC_SIZEWE
Definition: winuser.h:702
HDWP WINAPI BeginDeferWindowPos(_In_ int)