3 /////////////////////////////////////////////////////////////////////////////
5 // Copyright (c) 2002 Iain Murray, Inference Group, Cavendish, Cambridge.
7 /////////////////////////////////////////////////////////////////////////////
14 #define MAKEPOINTS(l) (*((POINTS FAR *) & (l)))
17 /////////////////////////////////////////////////////////////////////////////
19 CSplitter::CSplitter(CSplitterOwner
* pOwner
, int iPos
)
20 : m_SplitStatus(None
), m_iPos(iPos
), m_pOwner(pOwner
)
25 /////////////////////////////////////////////////////////////////////////////
27 HWND
CSplitter::Create(HWND hParent
)
29 return CWindowImpl
<CSplitter
>::Create(hParent
,NULL
,NULL
,WS_CHILD
| WS_VISIBLE
);
32 /////////////////////////////////////////////////////////////////////////////
34 void CSplitter::Move(int iPos
, int Width
)
37 MoveWindow(0, m_iPos
, Width
, GetSystemMetrics(SM_CYSIZEFRAME
), TRUE
);
40 /////////////////////////////////////////////////////////////////////////////
42 LRESULT
CSplitter::OnLButtonDown(UINT message
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
)
45 m_SplitStatus
= Sizing
;
50 /////////////////////////////////////////////////////////////////////////////
52 LRESULT
CSplitter::OnLButtonUp(UINT message
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
)
55 if( m_SplitStatus
== Sizing
)
63 /////////////////////////////////////////////////////////////////////////////
65 LRESULT
CSplitter::OnMouseMove(UINT message
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
)
68 POINTS Tmp
= MAKEPOINTS(lParam
);
72 MapWindowPoints( GetParent(), &MousePos
, 1);
74 if( m_SplitStatus
== Sizing
)
76 RECT ParentRect
, MyRect
;
77 ::GetWindowRect( GetParent(), &ParentRect
);
78 GetWindowRect(&MyRect
);
79 m_iPos
= MousePos
.y
- GetSystemMetrics(SM_CYSIZEFRAME
) / 2;
85 /////////////////////////////////////////////////////////////////////////////