blob: ee6db80097fb7c3fb75658b788259474a3ec6dce (
plain)
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
|
/////////////////////////////////////////////////////////////////////////////
//
#define USERNAME_LEN 50
class CDropTarget;
typedef struct _DockOpt
{
HWND hwndLeft;
HWND hwndRight;
}
DockOpt;
struct ThumbInfo
{
public: // TODO: make private
HWND hwnd;
TCHAR ptszName[ USERNAME_LEN ];
HANDLE hContact;
int iIcon;
CDropTarget * dropTarget;
DockOpt dockOpt;
BOOL fTipActive;
BOOL fTipTimerActive;
POINT ptTipSt;
BYTE btAlpha;
MyBitmap bmpContent;
POINT ptPos;
SIZE szSize;
public:
ThumbInfo();
~ThumbInfo();
void GetThumbRect (RECT *rc);
void PositionThumb (short nX, short nY);
void PositionThumbWorker (short nX, short nY, POINT *rcNewPos);
void ResizeThumb ();
void RefreshContactIcon (int iIcon);
void RefreshContactStatus (int idStatus);
void DeleteContactPos ();
void OnLButtonDown (short nX, short nY);
void OnLButtonUp ();
void OnMouseMove (short nX, short nY, WPARAM wParam);
void ThumbSelect (BOOL bMouse);
void ThumbDeselect (BOOL bMouse);
void SetThumbOpacity (BYTE btAlpha);
void KillTip ();
void UpdateContent ();
void PopUpMessageDialog ();
void OnTimer (BYTE idTimer);
};
void UndockThumbs ( ThumbInfo *pThumb1, ThumbInfo *pThumb2 );
void DockThumbs ( ThumbInfo *pThumbLeft, ThumbInfo *pThumbRight, BOOL bMoveLeft );
class ThumbList: public LIST<ThumbInfo>
{
public:
ThumbList();
~ThumbList();
ThumbInfo* AddThumb (HWND hwnd, TCHAR *ptszName, HANDLE hContact);
void RemoveThumb (ThumbInfo *pThumb);
ThumbInfo* FindThumb (HWND hwnd);
ThumbInfo* FindThumbByContact (HANDLE hContact);
private:
static int cmp(const ThumbInfo *p1, const ThumbInfo *p2);
};
extern ThumbList thumbList;
|