summaryrefslogtreecommitdiff
path: root/plugins/TabSRMM/src/functions.h
blob: c090228b0716decfebc87ee86ed9aea659c57544 (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
/*
 * 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 (c) 2000-09 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
 *
 * Global function prototypes
 *
 */

#ifndef _TABSRMM_FUNCTIONS_H
#define _TABSRMM_FUNCTIONS_H

int  AvatarChanged(WPARAM wParam, LPARAM lParam);
int  MyAvatarChanged(WPARAM wParam, LPARAM lParam);
int  IconsChanged(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);
int  ModPlus_PreShutdown(WPARAM wparam, LPARAM lparam);
int  ModPlus_Init(WPARAM wparam, LPARAM lparam);

void RegisterFontServiceFonts();

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);
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);
HWND  TSAPI GetHWNDFromTabIndex(HWND hwndTab, int idx);
int   TSAPI GetTabItemFromMouse(HWND hwndTab, POINT *pt);
void  TSAPI CloseOtherTabs(HWND hwndTab, TWindowData &dat);
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 CloseAllContainers();
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();
void  TSAPI SetAeroMargins(TContainerData *pContainer);
int   TABSRMM_FireEvent(HANDLE hContact, HWND hwnd, unsigned int type, unsigned int subType);

INT_PTR MessageWindowOpened(WPARAM wParam, LPARAM lParam);

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_PTR CALLBACK DlgProcContainer(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);

int DbEventIsForMsgWindow(DBEVENTINFO *dbei);

int   TSAPI InitOptions(void);
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 UnloadTSButtonModule();

/*
 * debugging support
 */

int   _DebugPopup(HANDLE hContact, const TCHAR *fmt, ...);
int   _DebugMessage(HWND hwndDlg, 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();
void  TN_TypingMessage(HANDLE hContact, int iMode);

// 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 */