summaryrefslogtreecommitdiff
path: root/plugins/TabSRMM/include/functions.h
blob: 49ae0f79ab04dbb91ca7b058cf75e32eabb52493 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
/*
 * astyle --force-indent=tab=4 --brackets=linux --indent-switches
 *		  --pad=oper --one-line=keep-blocks  --unpad=paren
 *
 * Miranda NG: the free IM client for Microsoft* Windows*
 *
 * Copyright 2000-2009 Miranda ICQ/IM project,
 * all portions of this codebase are copyrighted to the people
 * listed in contributors.txt.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * you should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * part of tabSRMM messaging plugin for Miranda.
 *
 * (C) 2005-2009 by silvercircle _at_ gmail _dot_ com and contributors
 *
 * $Id: functions.h 11636 2010-04-27 22:08:16Z silvercircle $
 *
 * Global function prototypes
 *
 */

#ifndef _TABSRMM_FUNCTIONS_H
#define _TABSRMM_FUNCTIONS_H

int 				Chat_PreShutdown			();
int 				Chat_ModulesLoaded			(WPARAM wp, LPARAM lp);
int					AvatarChanged				(WPARAM wParam, LPARAM lParam);
int					MyAvatarChanged				(WPARAM wParam, LPARAM lParam);
int 				IcoLibIconsChanged			(WPARAM wParam, LPARAM lParam);
int 				FontServiceFontsChanged		(WPARAM wParam, LPARAM lParam);
int 				SmileyAddOptionsChanged		(WPARAM wParam, LPARAM lParam);
int 				IEViewOptionsChanged		(WPARAM wParam, LPARAM lParam);
void 				RegisterFontServiceFonts	();
int 				ModPlus_PreShutdown			(WPARAM wparam, LPARAM lparam);
int 				ModPlus_Init				(WPARAM wparam, LPARAM lparam);
LONG_PTR CALLBACK 	HotkeyHandlerDlgProc		(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);


/*
 * nen / event popup stuff
 */

int			TSAPI	NEN_ReadOptions				(NEN_OPTIONS *options);
int			TSAPI	NEN_WriteOptions			(NEN_OPTIONS *options);
int			TSAPI	UpdateTrayMenu				(const TWindowData *dat, WORD wStatus, const char *szProto,
												 const TCHAR *szStatus, HANDLE hContact, DWORD fromEvent);
static int  TSAPI	PopupPreview				(NEN_OPTIONS *pluginOptions);
void        TSAPI	DeletePopupsForContact		(HANDLE hContact, DWORD dwMask);

/*
 * tray stuff
 */

void		TSAPI	CreateSystrayIcon			(int create);
void		TSAPI	FlashTrayIcon				(HICON hIcon);
void		TSAPI	UpdateTrayMenuState			(TWindowData *dat, BOOL bForced);
void        TSAPI	LoadFavoritesAndRecent		();
void        TSAPI	AddContactToFavorites		(HANDLE hContact, const TCHAR *szNickname, const char *szProto, TCHAR *szStatus,
												 WORD wStatus, HICON hIcon, BOOL mode, HMENU hMenu);
void        TSAPI	CreateTrayMenus				(int mode);
void        TSAPI	HandleMenuEntryFromhContact	(int iSelection);

/*
 * gneric msgwindow functions (creation, container management etc.)
 */

BOOL		TSAPI	IsUtfSendAvailable			(HANDLE hContact);
HWND		TSAPI	CreateNewTabForContact		(TContainerData *pContainer, HANDLE hContact, int isSend,
												 const char *pszInitialText, BOOL bActivateTAb, BOOL bPopupContainer, BOOL bWantPopup, HANDLE hdbEvent);
int			TSAPI	ActivateTabFromHWND			(HWND hwndTab, HWND hwnd);
void		TSAPI	FlashContainer				(TContainerData *pContainer, int iMode, int iNum);
void		TSAPI	CreateImageList				(BOOL bInitial);
TContainerData* TSAPI FindMatchingContainer(const TCHAR *szName, HANDLE hContact);
TContainerData* TSAPI CreateContainer		(const TCHAR *name, int iTemp, HANDLE hContactFrom);
TContainerData* TSAPI FindContainerByName	(const TCHAR *name);
int			TSAPI	GetTabIndexFromHWND			(HWND hwndTab, HWND hwnd);
int			TSAPI	GetTabItemFromMouse			(HWND hwndTab, POINT *pt);
int			TSAPI	ActivateTabFromHWND			(HWND hwndTab, HWND hwnd);
void 		TSAPI	AdjustTabClientRect			(TContainerData *pContainer, RECT *rc);
void 		TSAPI	ReflashContainer			(TContainerData *pContainer);
HMENU 		TSAPI 	BuildMCProtocolMenu			(HWND hwndDlg);

TContainerData* TSAPI AppendToContainerList(TContainerData *pContainer);
TContainerData* TSAPI RemoveContainerFromList(TContainerData *pContainer);

void        TSAPI	DeleteContainer				(int iIndex);
void		TSAPI	RenameContainer				(int iIndex, const TCHAR *newName);
int			TSAPI	GetContainerNameForContact	(HANDLE hContact, TCHAR *szName, int iNameLen);
HMENU		TSAPI	BuildContainerMenu			();
void		TSAPI	BuildCodePageList			();
void		TSAPI	PreTranslateDates			();
void		TSAPI	ApplyContainerSetting		(TContainerData *pContainer, DWORD flags, UINT mode, bool fForceResize);
void		TSAPI	BroadCastContainer			(const TContainerData *pContainer, UINT message, WPARAM wParam, LPARAM lParam, BYTE iType = 0);
void		TSAPI	GetDefaultContainerTitleFormat();
INT_PTR     MessageWindowOpened(WPARAM wParam, LPARAM lParam);
void		TSAPI	SetAeroMargins				(TContainerData *pContainer);
int         		TABSRMM_FireEvent			(HANDLE hContact, HWND hwnd, unsigned int type, unsigned int subType);

LRESULT CALLBACK IEViewSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK HPPKFSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

/*
 * skinning engine
 */
void		TSAPI	DrawAlpha					(HDC hdcwnd, PRECT rc, DWORD basecolor, int alpha, DWORD basecolor2,
												 BYTE transparent, BYTE FLG_GRADIENT, BYTE FLG_CORNER, DWORD BORDERSTYLE, CImageItem *imageItem);
// the cached message log icons

void		TSAPI	CacheMsgLogIcons			();
void		TSAPI	CacheLogFonts				();
void 		TSAPI	InitAPI						();
void		TSAPI	LoadIconTheme				();
int			TSAPI	LoadFromIconLib				();
int 		TSAPI	SetupIconLibConfig			();
void		TSAPI	RTF_CTableInit				();

INT_PTR CALLBACK DlgProcMessage(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);

int			TSAPI	InitOptions					(void);
INT_PTR 	CALLBACK DlgProcContainer			(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
int			TSAPI	DbEventIsShown				(TWindowData *dat, DBEVENTINFO *dbei);
void		TSAPI	StreamInEvents				(HWND hwndDlg,HANDLE hDbEventFirst,int count,int fAppend, DBEVENTINFO *dbei_s);
void		TSAPI	LoadLogfont					(int i,LOGFONTA *lf,COLORREF *colour, char *szModule);


// custom tab control

void		TSAPI	ReloadTabConfig				();
void		TSAPI	FreeTabConfig				();
int			TSAPI	RegisterTabCtrlClass		(void);

// buttons

int			TSAPI	LoadTSButtonModule			(void);
int			TSAPI	UnloadTSButtonModule		();


/*
 * debugging support
 */

int         _DebugTraceW(const wchar_t *fmt, ...);
int         _DebugTraceA(const char *fmt, ...);
int         _DebugPopup(HANDLE hContact, const TCHAR *fmt, ...);
int         _DebugMessage(HWND hwndDlg, struct TWindowData *dat, const char *fmt, ...);

// themes

const TCHAR* TSAPI	GetThemeFileName			(int iMode);
void 		TSAPI	LoadLogfontFromINI			(int i, char *szKey, LOGFONTA *lf, COLORREF *colour, const char *szIniFilename);
int			TSAPI	CheckThemeVersion			(const TCHAR *szIniFilename);
void		TSAPI	WriteThemeToINI				(const TCHAR *szIniFilename, TWindowData *dat);
void		TSAPI	ReadThemeFromINI			(const TCHAR *szIniFilename, TContainerData *dat, int noAdvanced, DWORD dwFlags);

// compatibility

// user prefs

int			TSAPI	LoadLocalFlags				(HWND hwnd, TWindowData *dat);

//TypingNotify
int			TN_ModuleInit						();
int			TN_OptionsInitialize				(WPARAM wParam, LPARAM lParam);
int			TN_ModuleDeInit						();
int			TN_TypingMessage					(WPARAM wParam, LPARAM lParam);

// mod plus

int			ChangeClientIconInStatusBar			(const TWindowData *dat);

// hotkeys

LRESULT 	ProcessHotkeysByMsgFilter			(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, UINT_PTR ctrlId);

void 		TSAPI	DrawMenuItem				(DRAWITEMSTRUCT *dis, HICON hIcon, DWORD dwIdle);

/*
 * dialog procedures
 */

INT_PTR 	CALLBACK SelectContainerDlgProc		(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
INT_PTR 	CALLBACK DlgProcContainerOptions	(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
INT_PTR 	CALLBACK DlgProcAbout				(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);


#endif /* _TABSRMM_FUNCTIONS_H */