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
|
/*
Miranda IM Help Plugin
Copyright (C) 2002 Richard Hughes, 2005-2007 H. Herkenrath
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 (Help-License.txt); if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __CONTEXTHELP_HELP_H__
#define __CONTEXTHELP_HELP_H__
// dlgboxsubclass.c
int InstallDialogBoxHook(void);
int RemoveDialogBoxHook(void);
// utils.c
#define CTLTYPE_UNKNOWN 0
#define CTLTYPE_DIALOG 1
#define CTLTYPE_BUTTON 2
#define CTLTYPE_CHECKBOX 3
#define CTLTYPE_RADIO 4
#define CTLTYPE_TEXT 5
#define CTLTYPE_IMAGE 6
#define CTLTYPE_EDIT 7
#define CTLTYPE_GROUP 8
#define CTLTYPE_COMBO 9
#define CTLTYPE_LIST 10
#define CTLTYPE_SPINEDIT 11
#define CTLTYPE_PROGRESS 12
#define CTLTYPE_SLIDER 13
#define CTLTYPE_LISTVIEW 14
#define CTLTYPE_TREEVIEW 15
#define CTLTYPE_DATETIME 16
#define CTLTYPE_IP 17
#define CTLTYPE_STATUSBAR 18
#define CTLTYPE_HYPERLINK 19
#define CTLTYPE_CLC 20
#define CTLTYPE_SCROLL 21
#define CTLTYPE_ANIMATION 22
#define CTLTYPE_HOTKEY 23
#define CTLTYPE_TABS 24
#define CTLTYPE_COLOUR 25
#define CTLTYPE_TOOLBAR 26
#define CTLTYPE_SIZEGRIP 27
extern const TCHAR *szControlTypeNames[];
int GetControlType(HWND hwndCtl);
HWND GetControlDialog(HWND hwndCtl);
int GetControlTitle(HWND hwndCtl, TCHAR *pszTitle, int cchTitle);
char *GetControlModuleName(HWND hwndCtl);
int GetControlID(HWND hwndCtl);
char *CreateDialogIdString(HWND hwndDlg);
struct ResizableCharBuffer {
char *sz;
int iEnd, cbAlloced;
};
void AppendCharToCharBuffer(struct ResizableCharBuffer *rcb, char c);
void AppendToCharBuffer(struct ResizableCharBuffer *rcb, const char *fmt, ...);
// helpdlg.c
#define M_CHANGEHELPCONTROL (WM_APP+0x100)
#define M_HELPLOADED (WM_APP+0x101)
#ifdef EDITOR
#define M_SAVECOMPLETE (WM_APP+0x102)
#endif
#define M_LOADHELP (WM_APP+0x103)
#define M_HELPLOADFAILED (WM_APP+0x104)
#define M_CLIPBOARDCOPY (WM_APP+0x105)
INT_PTR CALLBACK HelpDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK ShadowDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
// streaminout.c
void StreamInHtml(HWND hwndEdit, const char *szHtml, UINT codepage, COLORREF clrBkgrnd);
#ifdef EDITOR
char *StreamOutHtml(HWND hwndEdit);
#endif
#define TEXTSIZE_BIG 18 // in half points
#define TEXTSIZE_NORMAL 16
#define TEXTSIZE_SMALL 13
#ifndef EDITOR
void FreeHyperlinkData(void);
int IsHyperlink(LONG cpPos, LONG *pcpMin, LONG *pcpMax, char **ppszLink);
#endif
// datastore.c
void InitDialogCache(void);
void FreeDialogCache(void);
#define GCHF_DONTLOAD 1
int GetControlHelp(HWND hwndCtl, const char *pszDlgId, const char *pszModule, int ctrlId, TCHAR **ppszTitle, char **ppszText, int *pType, LCID *pLocaleID, UINT *pCodePage, BOOL *pIsRTL, DWORD flags);
#ifdef EDITOR
void SetControlHelp(const char *pszDlgId, const char *pszModule, int ctrlId, TCHAR *pszTitle, char *pszText, int type);
void SaveDialogCache(void);
#else
char *CreateControlIdentifier(const char *pszDlgId, const char *pszModule, int ctrlId, HWND hwndCtl);
#endif
void RegisterFileChange(void);
void CloseFileChange(void);
// options.c
void ReloadLangOptList(void);
void InitOptions(void);
void UninitOptions(void);
// helppack.c
void TrimStringSimple(char *str);
void TrimString(char *str);
BOOL IsEmpty(const char *str);
typedef struct {
TCHAR szLanguage[64];
LCID Locale;
WORD codepage;
char szAuthors[1024];
char szAuthorEmail[128];
char szLastModifiedUsing[64];
char szPluginsIncluded[4080];
char szVersion[21];
char szFLName[128];
FILETIME ftFileDate;
TCHAR szFileName[MAX_PATH]; /* just the file name itself */
BYTE flags; /* see HPIF_* flags */
} HELPPACK_INFO;
#define HPF_ENABLED 0x01 // pack is enabled
#define HPF_NOLOCALE 0x02 // pack has no valid locale
#define HPF_DEFAULT 0x04 // pack is english default
BOOL GetPackPath(TCHAR *pszPath, int nSize, BOOL fEnabledPacks, const TCHAR *pszFile);
typedef INT_PTR(CALLBACK *ENUM_PACKS_CALLBACK)(HELPPACK_INFO *pack, WPARAM wParam, LPARAM lParam);
BOOL EnumPacks(ENUM_PACKS_CALLBACK callback, const TCHAR *pszFilePattern, const char *pszFileVersionHeader, WPARAM wParam, LPARAM lParam);
BOOL IsPluginIncluded(const HELPPACK_INFO *pack, char *pszFileBaseName);
BOOL EnablePack(const HELPPACK_INFO *pack, const TCHAR *pszFilePattern);
void CorrectPacks(const TCHAR *pszFilePattern, const TCHAR *pszDefaultFile, BOOL fDisableAll);
#endif // __CONTEXTHELP_HELP_H__
|