891d2dd871f12ede0f60724922114240ca6dc0c4
2 * PROJECT: PAINT for ReactOS
4 * FILE: base/applications/mspaint/scrollbox.cpp
5 * PURPOSE: Functionality surrounding the scroll box window class
6 * PROGRAMMERS: Benedikt Freisen
9 /* INCLUDES *********************************************************/
13 /* FUNCTIONS ********************************************************/
18 RECT clientRectScrollbox
;
19 RECT clientRectImageArea
;
21 scrollboxWindow
.GetClientRect(&clientRectScrollbox
);
22 imageArea
.GetClientRect(&clientRectImageArea
);
23 si
.cbSize
= sizeof(SCROLLINFO
);
24 si
.fMask
= SIF_PAGE
| SIF_RANGE
;
25 si
.nMax
= clientRectImageArea
.right
+ 6 - 1;
27 si
.nPage
= clientRectScrollbox
.right
;
28 scrollboxWindow
.SetScrollInfo(SB_HORZ
, &si
);
29 scrollboxWindow
.GetClientRect(&clientRectScrollbox
);
30 si
.nMax
= clientRectImageArea
.bottom
+ 6 - 1;
31 si
.nPage
= clientRectScrollbox
.bottom
;
32 scrollboxWindow
.SetScrollInfo(SB_VERT
, &si
);
33 scrlClientWindow
.MoveWindow(
34 -scrollboxWindow
.GetScrollPos(SB_HORZ
), -scrollboxWindow
.GetScrollPos(SB_VERT
),
35 max(clientRectImageArea
.right
+ 6, clientRectScrollbox
.right
),
36 max(clientRectImageArea
.bottom
+ 6, clientRectScrollbox
.bottom
), TRUE
);
39 LRESULT
CScrollboxWindow::OnSize(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
)
41 if (m_hWnd
== scrollboxWindow
.m_hWnd
)
48 LRESULT
CScrollboxWindow::OnHScroll(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
)
50 if (m_hWnd
== scrollboxWindow
.m_hWnd
)
53 si
.cbSize
= sizeof(SCROLLINFO
);
55 scrollboxWindow
.GetScrollInfo(SB_HORZ
, &si
);
56 switch (LOWORD(wParam
))
59 case SB_THUMBPOSITION
:
60 si
.nPos
= HIWORD(wParam
);
75 scrollboxWindow
.SetScrollInfo(SB_HORZ
, &si
);
76 scrlClientWindow
.MoveWindow(-scrollboxWindow
.GetScrollPos(SB_HORZ
),
77 -scrollboxWindow
.GetScrollPos(SB_VERT
), imageModel
.GetWidth() * toolsModel
.GetZoom() / 1000 + 6,
78 imageModel
.GetHeight() * toolsModel
.GetZoom() / 1000 + 6, TRUE
);
83 LRESULT
CScrollboxWindow::OnVScroll(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
)
85 if (m_hWnd
== scrollboxWindow
.m_hWnd
)
88 si
.cbSize
= sizeof(SCROLLINFO
);
90 scrollboxWindow
.GetScrollInfo(SB_VERT
, &si
);
91 switch (LOWORD(wParam
))
94 case SB_THUMBPOSITION
:
95 si
.nPos
= HIWORD(wParam
);
110 scrollboxWindow
.SetScrollInfo(SB_VERT
, &si
);
111 scrlClientWindow
.MoveWindow(-scrollboxWindow
.GetScrollPos(SB_HORZ
),
112 -scrollboxWindow
.GetScrollPos(SB_VERT
), imageModel
.GetWidth() * toolsModel
.GetZoom() / 1000 + 6,
113 imageModel
.GetHeight() * toolsModel
.GetZoom() / 1000 + 6, TRUE
);