1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
// For licensing and usage information, read docs/winui_license.txt
// MASTER
//****************************************************************************
/* Written by Mike Haaland <mhaaland@hypertech.com> */
#ifndef SPLITTER_H
#define SPLITTER_H
#if !defined(MAX)
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#endif
#include "resource.h"
#include "winui.h"
#define SPLITTER_WIDTH 4
#define MIN_VIEW_WIDTH 10
enum eSplitterHits
{
SPLITTER_HITNOTHING = 0,
SPLITTER_HITITEM
};
typedef struct horzSplitter
{
HWND m_hWnd;
HWND m_hWndLeft;
HWND m_hWndRight;
RECT m_limitRect;
RECT m_dragRect;
void (*m_func)(HWND hWnd, LPRECT lpRect);
} HZSPLITTER, *LPHZSPLITTER;
/* Splitter routines */
void OnMouseMove(HWND hWnd, UINT nFlags, POINTS p);
void OnLButtonDown(HWND hWnd, UINT nFlags, POINTS p);
void OnLButtonUp(HWND hWnd, UINT nFlags, POINTS p);
void OnSizeSplitter(HWND hWnd);
void AddSplitter(HWND hWnd, HWND hWndLeft, HWND hWndRight, void (*func)(HWND hWnd,LPRECT lpRect));
void RecalcSplitters(void);
void AdjustSplitter2Rect(HWND hWnd, LPRECT lpRect);
void AdjustSplitter1Rect(HWND hWnd, LPRECT lpRect);
BOOL InitSplitters(void);
void SplittersExit(void);
int GetSplitterCount(void);
extern int *nSplitterOffset;
typedef struct
{
double dPosition;
int nSplitterWindow;
int nLeftWindow;
int nRightWindow;
void (*pfnAdjust)(HWND hWnd,LPRECT lpRect);
} SPLITTERINFO;
#ifdef MESS
const SPLITTERINFO g_splitterInfo[] =
{
{ 0.15, IDC_SPLITTER, IDC_TREE, IDC_LIST, AdjustSplitter1Rect },
{ 0.8, IDC_SPLITTER2, IDC_LIST, IDC_SWTAB, AdjustSplitter1Rect },
{ 0.9, IDC_SPLITTER3, IDC_SWTAB, IDC_SSFRAME, AdjustSplitter2Rect },
{ -1 }
};
#else
const SPLITTERINFO g_splitterInfo[] =
{
{ 0.25, IDC_SPLITTER, IDC_TREE, IDC_LIST, AdjustSplitter1Rect },
{ 0.5, IDC_SPLITTER2, IDC_LIST, IDC_SSFRAME, AdjustSplitter2Rect },
{ -1 }
};
#endif
//extern const SPLITTERINFO g_splitterInfo[];
#endif /* SPLITTER_H */
|