Handle generic column width changes.
[wine] / programs / winhelp / winhelp.h
1 /*
2  * Help Viewer
3  *
4  * Copyright    1996 Ulrich Schmid
5  * Copyright    2002 Sylvain Petreolle <spetreolle@yahoo.fr>
6  *              2002 Eric Pouech
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21  */
22
23 #define MAX_LANGUAGE_NUMBER     255
24 #define MAX_PATHNAME_LEN        1024
25 #define MAX_STRING_LEN          255
26
27 #define INTERNAL_BORDER_WIDTH   5
28 #define POPUP_YDISTANCE         20
29 #define SHADOW_DX               10
30 #define SHADOW_DY               10
31 #define BUTTON_CX               6
32 #define BUTTON_CY               6
33
34 #ifndef RC_INVOKED
35
36 #include "hlpfile.h"
37 #include "macro.h"
38 #include "winhelp_res.h"
39
40 typedef struct tagHelpLinePart
41 {
42     RECT      rect;
43     enum {hlp_line_part_text, hlp_line_part_image}      cookie;
44     union
45     {
46         struct
47         {
48             LPCSTR      lpsText;
49             HFONT       hFont;
50             COLORREF    color;
51             WORD        wTextLen;
52             WORD        wUnderline; /* 0 None, 1 simple, 2 double, 3 dotted */
53         } text;
54         struct
55         {
56             HBITMAP     hBitmap;
57         } image;
58     } u;
59     HLPFILE_LINK        link;
60
61     struct tagHelpLinePart *next;
62 } WINHELP_LINE_PART;
63
64 typedef struct tagHelpLine
65 {
66     RECT                rect;
67     WINHELP_LINE_PART   first_part;
68     struct tagHelpLine* next;
69 } WINHELP_LINE;
70
71 typedef struct tagHelpButton
72 {
73     HWND                hWnd;
74
75     LPCSTR              lpszID;
76     LPCSTR              lpszName;
77     LPCSTR              lpszMacro;
78
79     WPARAM              wParam;
80
81     RECT                rect;
82
83     struct tagHelpButton*next;
84 } WINHELP_BUTTON;
85
86 typedef struct tagWinHelp
87 {
88     LPCSTR lpszName;
89
90     WINHELP_BUTTON*     first_button;
91     HLPFILE_PAGE*       page;
92     WINHELP_LINE*       first_line;
93
94     HWND                hMainWnd;
95     HWND                hButtonBoxWnd;
96     HWND                hTextWnd;
97     HWND                hShadowWnd;
98
99     HFONT*              fonts;
100     UINT                fonts_len;
101
102     HCURSOR             hArrowCur;
103     HCURSOR             hHandCur;
104
105     struct tagWinHelp*  next;
106 } WINHELP_WINDOW;
107
108 typedef struct
109 {
110     UINT                wVersion;
111     HANDLE              hInstance;
112     HWND                hPopupWnd;
113     UINT                wStringTableOffset;
114     WINHELP_WINDOW*     active_win;
115     WINHELP_WINDOW*     win_list;
116 } WINHELP_GLOBALS;
117
118 extern WINHELP_GLOBALS Globals;
119
120 BOOL WINHELP_CreateHelpWindowByHash(LPCSTR, LONG, LPCSTR, BOOL, HWND, LPPOINT, INT);
121 BOOL WINHELP_CreateHelpWindowByPage(HLPFILE_PAGE*, LPCSTR, BOOL, HWND, LPPOINT, INT);
122 INT  WINHELP_MessageBoxIDS(UINT, UINT, WORD);
123 INT  WINHELP_MessageBoxIDS_s(UINT, LPCSTR, UINT, WORD);
124
125 extern CHAR MAIN_WIN_CLASS_NAME[];
126 extern CHAR BUTTON_BOX_WIN_CLASS_NAME[];
127 extern CHAR TEXT_WIN_CLASS_NAME[];
128 extern CHAR SHADOW_WIN_CLASS_NAME[];
129 extern CHAR STRING_BUTTON[];
130 extern CHAR STRING_MENU_Xx[];
131 extern CHAR STRING_DIALOG_TEST[];
132 #endif
133
134 /* Buttons */
135 #define WH_FIRST_BUTTON     500