xref: /AOO41X/main/scp2/inc/macros.inc (revision 707d5dc664797078217e150426c37e27bd92d5cc)
1*707d5dc6SAndrew Rist/**************************************************************
2*707d5dc6SAndrew Rist *
3*707d5dc6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*707d5dc6SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5*707d5dc6SAndrew Rist * distributed with this work for additional information
6*707d5dc6SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7*707d5dc6SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*707d5dc6SAndrew Rist * "License"); you may not use this file except in compliance
9*707d5dc6SAndrew Rist * with the License.  You may obtain a copy of the License at
10*707d5dc6SAndrew Rist *
11*707d5dc6SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*707d5dc6SAndrew Rist *
13*707d5dc6SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*707d5dc6SAndrew Rist * software distributed under the License is distributed on an
15*707d5dc6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*707d5dc6SAndrew Rist * KIND, either express or implied.  See the License for the
17*707d5dc6SAndrew Rist * specific language governing permissions and limitations
18*707d5dc6SAndrew Rist * under the License.
19*707d5dc6SAndrew Rist *
20*707d5dc6SAndrew Rist *************************************************************/
21*707d5dc6SAndrew Rist
22cdf0e10cSrcweir#ifndef MACROS_INC
23cdf0e10cSrcweir#define MACROS_INC
24cdf0e10cSrcweir/* =====================================================
25cdf0e10cSrcweir * global helper macros
26cdf0e10cSrcweir * =====================================================*/
27cdf0e10cSrcweir
28cdf0e10cSrcweir#define DOSTRING( x )                           #x
29cdf0e10cSrcweir#define STRING( x )                             DOSTRING( x )
30cdf0e10cSrcweir#define DOCONCAT2( x, y )                       x##y
31cdf0e10cSrcweir#define CONCAT2( x, y)                          DOCONCAT2(x,y)
32cdf0e10cSrcweir#define DOCONCAT3( x, y, z )                    x##y##z
33cdf0e10cSrcweir#define CONCAT3( x, y, z )                      DOCONCAT3(x,y,z)
34cdf0e10cSrcweir#define DOCONCAT4( x, y, z, a )                 x##y##z##a
35cdf0e10cSrcweir#define CONCAT4( x, y, z, a )                   DOCONCAT4(x,y,z,a)
36cdf0e10cSrcweir#define DOCONCAT5( x, y, z, a, b )              x##y##z##a##b
37cdf0e10cSrcweir#define CONCAT5( x, y, z, a, b )                DOCONCAT5(x,y,z,a,b)
38cdf0e10cSrcweir#define DOCONCAT6( x, y, z, a, b, c )           x##y##z##a##b##c
39cdf0e10cSrcweir#define CONCAT6( x, y, z, a, b, c )             DOCONCAT6(x,y,z,a,b,c)
40cdf0e10cSrcweir#define DOCONCAT7( x, y, z, a, b, c, u)         x##y##z##a##b##c##u
41cdf0e10cSrcweir#define CONCAT7( x, y, z, a, b, c, u)           DOCONCAT7(x,y,z,a,b,c,u)
42cdf0e10cSrcweir#define DOCONCAT8( x, y, z, a, b, c, u, v)      x##y##z##a##b##c##u##v
43cdf0e10cSrcweir#define CONCAT8( x, y, z, a, b, c, u, v)        DOCONCAT8(x,y,z,a,b,c,u,v)
44cdf0e10cSrcweir#define DOCONCAT9( x, y, z, a, b, c, u, v, w)   x##y##z##a##b##c##u##v##w
45cdf0e10cSrcweir#define CONCAT9( x, y, z, a, b, c, u, v, w)     DOCONCAT9(x,y,z,a,b,c,u,v,w)
46cdf0e10cSrcweir
47cdf0e10cSrcweir#define MOD_NAME_DESC(id) \
48cdf0e10cSrcweir        ALL_LANG(Name,STR_NAME_##id); \
49cdf0e10cSrcweir        ALL_LANG(Description,STR_DESC_##id)
50cdf0e10cSrcweir
51cdf0e10cSrcweir#define MOD_NAME_DESC_ON_DESELECT(id) \
52cdf0e10cSrcweir        MOD_NAME_DESC(id); \
53cdf0e10cSrcweir        ALL_LANG(OnDeselect,STR_DESELECT_##id)
54cdf0e10cSrcweir
55cdf0e10cSrcweir#define REG_VALUE_LNG(id) \
56cdf0e10cSrcweir        ALL_LANG(Value,STR_REG_VAL_##id);
57cdf0e10cSrcweir
58cdf0e10cSrcweir#define FOLDERITEM_NAME_LNG(id) \
59cdf0e10cSrcweir        ALL_LANG(Name,STR_FI_NAME_##id);
60cdf0e10cSrcweir
61cdf0e10cSrcweir#define ALL_LANG_STR_KEY(ident) \
62cdf0e10cSrcweir        ALL_LANG(Key,ident)
63cdf0e10cSrcweir
64cdf0e10cSrcweir#define ALL_LANG_STR_KEY_LNG(ident) \
65cdf0e10cSrcweir        ALL_LANG(Key,STR_KEY_##ident)
66cdf0e10cSrcweir
67cdf0e10cSrcweir#define ALL_LANG_STR_VALUE_LNG(ident) \
68cdf0e10cSrcweir        ALL_LANG(Value,STR_VALUE_##ident)
69cdf0e10cSrcweir
70cdf0e10cSrcweir#define ALL_LANG_VALUE(vident) \
71cdf0e10cSrcweir        ALL_LANG(Value,vident)
72cdf0e10cSrcweir
73cdf0e10cSrcweir#define ALL_LANG_KEY(vident) \
74cdf0e10cSrcweir        ALL_LANG(Key,vident)
75cdf0e10cSrcweir
76cdf0e10cSrcweir
77cdf0e10cSrcweir#ifdef UNX
78cdf0e10cSrcweir    #ifdef MACOSX
79cdf0e10cSrcweir        #define UNXSUFFIX .dylib
80cdf0e10cSrcweir    #else
81cdf0e10cSrcweir        #define UNXSUFFIX .so
82cdf0e10cSrcweir    #endif
83cdf0e10cSrcweir#endif
84cdf0e10cSrcweir
85cdf0e10cSrcweir#ifdef UNX
86cdf0e10cSrcweir    #define LIBNAME(name)                     STRING(CONCAT4(lib,name,DLLPOSTFIX,UNXSUFFIX))
87cdf0e10cSrcweir    #define FILTER_LIBNAME(name)              LIBNAME(name)
88cdf0e10cSrcweir    #define EXENAME(name)                     STRING(name)
89cdf0e10cSrcweir    #define PROFILENAME(name)                 STRING(CONCAT2(name,rc))
90cdf0e10cSrcweir    #define SPECIAL_NAME(name)                STRING(CONCAT3(lib,name,UNXSUFFIX))
91cdf0e10cSrcweir    #define SPECIAL_COMPONENT_LIB_NAME(name)  STRING(CONCAT2(name,UNXSUFFIX))
92cdf0e10cSrcweir#else
93cdf0e10cSrcweir    #define LIBNAME(name)                     STRING(CONCAT3(name,DLLPOSTFIX,.dll))
94cdf0e10cSrcweir    #define FILTER_LIBNAME(name)              LIBNAME(name)
95cdf0e10cSrcweir    #define EXENAME(name)                     STRING(CONCAT2(name,.exe))
96cdf0e10cSrcweir    #define PROFILENAME(name)                 STRING(CONCAT2(name,.ini))
97cdf0e10cSrcweir    #define SPECIAL_NAME(name)                STRING(CONCAT2(name,.dll))
98cdf0e10cSrcweir    #define SPECIAL_COMPONENT_LIB_NAME(name)  STRING(CONCAT2(name,.dll))
99cdf0e10cSrcweir#endif
100cdf0e10cSrcweir
101cdf0e10cSrcweir#define RESFILENAME(name,lang)                STRING(CONCAT3(name,lang,.res))
102cdf0e10cSrcweir#define SHORTRESFILENAME(name,lang)           STRING(CONCAT3(name,lang,.res))
103cdf0e10cSrcweir#define READMETXTFILENAME(name,lang,ext)      STRING(CONCAT4(name,lang,.,ext))
104cdf0e10cSrcweir#define READMEFILENAME(name,lang)             STRING(CONCAT2(name,lang))
105cdf0e10cSrcweir#define HELPFILENAME(name,endung)             STRING(CONCAT3(name,.,endung))
106cdf0e10cSrcweir#define EXTRAFILENAME(name,lang)              STRING(CONCAT3(name,lang,.zip))
107cdf0e10cSrcweir#define CONFIGLANGFILENAME(name,lang,ext)     STRING(CONCAT4(name,lang,.,ext))
108cdf0e10cSrcweir
109cdf0e10cSrcweir#if defined WNT
110cdf0e10cSrcweir#define SCP2_OOO_BIN_DIR gid_Brand_Dir_Program
111cdf0e10cSrcweir#else
112cdf0e10cSrcweir#define SCP2_OOO_BIN_DIR gid_Dir_Program
113cdf0e10cSrcweir#endif
114cdf0e10cSrcweir
115cdf0e10cSrcweir#define BIN_FILE_BODY \
116cdf0e10cSrcweir        UnixRights   = 555
117cdf0e10cSrcweir
118cdf0e10cSrcweir#define TXT_FILE_BODY \
119cdf0e10cSrcweir        UnixRights   = 444
120cdf0e10cSrcweir
121cdf0e10cSrcweir#define USER_FILE_BODY \
122cdf0e10cSrcweir        UnixRights   = 644
123cdf0e10cSrcweir
124cdf0e10cSrcweir#define PACKED_TXT_FILE_BODY \
125cdf0e10cSrcweir        TXT_FILE_BODY; \
126cdf0e10cSrcweir        Styles = (PACKED)
127cdf0e10cSrcweir
128cdf0e10cSrcweir#define PACKED_TXT_FILE_BODY_PATCH \
129cdf0e10cSrcweir        TXT_FILE_BODY; \
130cdf0e10cSrcweir        Styles = (PACKED,PATCH)
131cdf0e10cSrcweir
132cdf0e10cSrcweir#define ARCHIVE_TXT_FILE_BODY \
133cdf0e10cSrcweir        TXT_FILE_BODY; \
134cdf0e10cSrcweir        Styles = (ARCHIVE)
135cdf0e10cSrcweir
136cdf0e10cSrcweir#define ARCHIVE_TXT_FILE_BODY_PATCH \
137cdf0e10cSrcweir        TXT_FILE_BODY; \
138cdf0e10cSrcweir        Styles = (ARCHIVE,PATCH)
139cdf0e10cSrcweir
140cdf0e10cSrcweir#define ARCHIVE_SUBST_FILE_BODY \
141cdf0e10cSrcweir        TXT_FILE_BODY; \
142cdf0e10cSrcweir        Styles = (ARCHIVE,SUBSTITUTE)
143cdf0e10cSrcweir
144cdf0e10cSrcweir#define ARCHIVE_SUBST_FILE_BODY_PATCH \
145cdf0e10cSrcweir        TXT_FILE_BODY; \
146cdf0e10cSrcweir        Styles = (ARCHIVE,SUBSTITUTE,PATCH)
147cdf0e10cSrcweir
148cdf0e10cSrcweir#define PACKED_LIB_FILE_BODY \
149cdf0e10cSrcweir        TXT_FILE_BODY; \
150cdf0e10cSrcweir        Styles = (PACKED); \
151cdf0e10cSrcweir        Dir    = SCP2_OOO_BIN_DIR
152cdf0e10cSrcweir
153cdf0e10cSrcweir#define PACKED_LIB_FILE_BODY_PATCH \
154cdf0e10cSrcweir        TXT_FILE_BODY; \
155cdf0e10cSrcweir        Styles = (PACKED,PATCH); \
156cdf0e10cSrcweir        Dir    = SCP2_OOO_BIN_DIR
157cdf0e10cSrcweir
158cdf0e10cSrcweir#define PACKED_FILTER_FILE_BODY \
159cdf0e10cSrcweir        TXT_FILE_BODY; \
160cdf0e10cSrcweir        Styles = (PACKED); \
161cdf0e10cSrcweir        Dir    = gid_Dir_Filter
162cdf0e10cSrcweir
163cdf0e10cSrcweir#define PACKED_FILTER_FILE_BODY_PATCH \
164cdf0e10cSrcweir        TXT_FILE_BODY; \
165cdf0e10cSrcweir        Styles = (PACKED,PATCH); \
166cdf0e10cSrcweir        Dir    = gid_Dir_Filter
167cdf0e10cSrcweir
168cdf0e10cSrcweir#define STD_LIB_FILE(id,name) \
169cdf0e10cSrcweir    File id \
170cdf0e10cSrcweir        Name   = LIBNAME(name); \
171cdf0e10cSrcweir        PACKED_LIB_FILE_BODY; \
172cdf0e10cSrcweir    End
173cdf0e10cSrcweir
174cdf0e10cSrcweir#define STD_LIB_FILE_PATCH(id,name) \
175cdf0e10cSrcweir    File id \
176cdf0e10cSrcweir        Name   = LIBNAME(name); \
177cdf0e10cSrcweir        PACKED_LIB_FILE_BODY_PATCH; \
178cdf0e10cSrcweir    End
179cdf0e10cSrcweir
180cdf0e10cSrcweir#define SPECIAL_LIB_FILE(id,name) \
181cdf0e10cSrcweir    File id \
182cdf0e10cSrcweir        Name    = SPECIAL_NAME(name); \
183cdf0e10cSrcweir        PACKED_LIB_FILE_BODY; \
184cdf0e10cSrcweir    End
185cdf0e10cSrcweir
186cdf0e10cSrcweir#define SPECIAL_LIB_FILE_PATCH(id,name) \
187cdf0e10cSrcweir    File id \
188cdf0e10cSrcweir        Name    = SPECIAL_NAME(name); \
189cdf0e10cSrcweir        PACKED_LIB_FILE_BODY_PATCH; \
190cdf0e10cSrcweir    End
191cdf0e10cSrcweir
192cdf0e10cSrcweir#define STD_RES_FILE(id,name) \
193cdf0e10cSrcweir    File id \
194cdf0e10cSrcweir        TXT_FILE_BODY; \
195cdf0e10cSrcweir        RESFILE_ALL_LANG(name); \
196cdf0e10cSrcweir        Dir     = gid_Dir_Resource; \
197cdf0e10cSrcweir        Styles  = (PACKED); \
198cdf0e10cSrcweir    End
199cdf0e10cSrcweir
200cdf0e10cSrcweir#define BRAND_RES_FILE(id,name) \
201cdf0e10cSrcweir    File id \
202cdf0e10cSrcweir        TXT_FILE_BODY; \
203cdf0e10cSrcweir        RESFILE_ALL_LANG(name); \
204cdf0e10cSrcweir        Dir     = gid_Brand_Dir_Resource; \
205cdf0e10cSrcweir        Styles  = (PACKED); \
206cdf0e10cSrcweir    End
207cdf0e10cSrcweir
208cdf0e10cSrcweir#define STD_RES_FILE_PATCH(id,name) \
209cdf0e10cSrcweir    File id \
210cdf0e10cSrcweir        TXT_FILE_BODY; \
211cdf0e10cSrcweir        RESFILE_ALL_LANG(name); \
212cdf0e10cSrcweir        Dir     = gid_Dir_Resource; \
213cdf0e10cSrcweir        Styles  = (PACKED,PATCH); \
214cdf0e10cSrcweir    End
215cdf0e10cSrcweir
216cdf0e10cSrcweir#define STD_RES_FILE_ONLY_PATCH(id,name) \
217cdf0e10cSrcweir    File id \
218cdf0e10cSrcweir        TXT_FILE_BODY; \
219cdf0e10cSrcweir        RESFILE_ALL_LANG(name); \
220cdf0e10cSrcweir        Dir     = gid_Dir_Resource; \
221cdf0e10cSrcweir        Styles  = (PACKED,PATCH,PATCH_ONLY); \
222cdf0e10cSrcweir    End
223cdf0e10cSrcweir
224cdf0e10cSrcweir#define STD_FILTER_FILE(id,name) \
225cdf0e10cSrcweir    File id \
226cdf0e10cSrcweir        PACKED_LIB_FILE_BODY; \
227cdf0e10cSrcweir        Name = FILTER_LIBNAME(name); \
228cdf0e10cSrcweir    End
229cdf0e10cSrcweir
230cdf0e10cSrcweir#define STD_FILTER_FILE_PATCH(id,name) \
231cdf0e10cSrcweir    File id \
232cdf0e10cSrcweir        PACKED_LIB_FILE_BODY_PATCH; \
233cdf0e10cSrcweir        Name = FILTER_LIBNAME(name); \
234cdf0e10cSrcweir    End
235cdf0e10cSrcweir
236cdf0e10cSrcweir#define STD_FONTUNX_FILE(id,name,fontname) \
237cdf0e10cSrcweir    File id \
238cdf0e10cSrcweir        TXT_FILE_BODY; \
239cdf0e10cSrcweir        Dir       = gid_Dir_Fonts_Truetype; \
240cdf0e10cSrcweir        Styles    = (PACKED, FONT_WARN_IF_EXISTS); \
241cdf0e10cSrcweir        Name      = STRING(name) ; \
242cdf0e10cSrcweir    End
243cdf0e10cSrcweir
244cdf0e10cSrcweir#define STD_FONTWIN_FILE(id,name,fontname) \
245cdf0e10cSrcweir    File id \
246cdf0e10cSrcweir        TXT_FILE_BODY; \
247cdf0e10cSrcweir        Dir      = PREDEFINED_OSSYSTEMFONTDIR; \
248cdf0e10cSrcweir        Styles   = (PACKED,FONT,DONT_DELETE,FONT_WARN_IF_EXISTS); \
249cdf0e10cSrcweir        Name     = STRING(name) ; \
250cdf0e10cSrcweir        FontName = STRING(fontname) ; \
251cdf0e10cSrcweir        NetDir   = gid_Dir_Winfonts; \
252cdf0e10cSrcweir    End
253cdf0e10cSrcweir
254cdf0e10cSrcweir#ifdef UNX
255cdf0e10cSrcweir#define STD_FONT_FILE(id,name,fontname) \
256cdf0e10cSrcweir    File id \
257cdf0e10cSrcweir        TXT_FILE_BODY; \
258cdf0e10cSrcweir        Dir       = gid_Dir_Fonts_Truetype; \
259cdf0e10cSrcweir        Styles    = (PACKED, FONT_WARN_IF_EXISTS); \
260cdf0e10cSrcweir        Name      = STRING(name) ; \
261cdf0e10cSrcweir    End
262cdf0e10cSrcweir#endif
263cdf0e10cSrcweir
264cdf0e10cSrcweir#ifdef UNX
265cdf0e10cSrcweir#define STD_FONT_FILE_DUO(id,name,unxfontname,winfontname) \
266cdf0e10cSrcweir    File id \
267cdf0e10cSrcweir        TXT_FILE_BODY; \
268cdf0e10cSrcweir        Dir       = gid_Dir_Fonts_Truetype; \
269cdf0e10cSrcweir        Styles    = (PACKED, FONT_WARN_IF_EXISTS); \
270cdf0e10cSrcweir        Name      = STRING(name) ; \
271cdf0e10cSrcweir    End
272cdf0e10cSrcweir#endif
273cdf0e10cSrcweir
274cdf0e10cSrcweir#ifdef WNT
275cdf0e10cSrcweir#define STD_FONT_FILE(id,name,fontname) \
276cdf0e10cSrcweir    File id \
277cdf0e10cSrcweir        TXT_FILE_BODY; \
278cdf0e10cSrcweir        Dir      = PREDEFINED_OSSYSTEMFONTDIR; \
279cdf0e10cSrcweir        Styles   = (PACKED,FONT,DONT_DELETE,FONT_WARN_IF_EXISTS); \
280cdf0e10cSrcweir        Name     = STRING(name) ; \
281cdf0e10cSrcweir        FontName = STRING(fontname) ; \
282cdf0e10cSrcweir        NetDir   = gid_Dir_Winfonts; \
283cdf0e10cSrcweir    End
284cdf0e10cSrcweir#endif
285cdf0e10cSrcweir
286cdf0e10cSrcweir#ifdef WNT
287cdf0e10cSrcweir#define STD_FONT_FILE_DUO(id,name,unxfontname,winfontname) \
288cdf0e10cSrcweir    File id \
289cdf0e10cSrcweir        TXT_FILE_BODY; \
290cdf0e10cSrcweir        Dir      = PREDEFINED_OSSYSTEMFONTDIR; \
291cdf0e10cSrcweir        Styles   = (PACKED,FONT,DONT_DELETE,FONT_WARN_IF_EXISTS); \
292cdf0e10cSrcweir        Name     = STRING(name) ; \
293cdf0e10cSrcweir        FontName = STRING(winfontname) ; \
294cdf0e10cSrcweir        NetDir   = gid_Dir_Winfonts; \
295cdf0e10cSrcweir    End
296cdf0e10cSrcweir#endif
297cdf0e10cSrcweir
298cdf0e10cSrcweir#define STD_JAR_FILE(id,name) \
299cdf0e10cSrcweir    File id \
300cdf0e10cSrcweir        TXT_FILE_BODY; \
301cdf0e10cSrcweir        Name     = STRING(CONCAT2(name,.jar)); \
302cdf0e10cSrcweir        Dir      = gid_Dir_Classes; \
303cdf0e10cSrcweir        Styles   = (PACKED,DONT_OVERWRITE); \
304cdf0e10cSrcweir    End
305cdf0e10cSrcweir
306cdf0e10cSrcweir#define STD_JAR_FILE_PATCH(id,name) \
307cdf0e10cSrcweir    File id \
308cdf0e10cSrcweir        TXT_FILE_BODY; \
309cdf0e10cSrcweir        Name     = STRING(CONCAT2(name,.jar)); \
310cdf0e10cSrcweir        Dir      = gid_Dir_Classes; \
311cdf0e10cSrcweir        Styles   = (PACKED,DONT_OVERWRITE,PATCH); \
312cdf0e10cSrcweir    End
313cdf0e10cSrcweir
314cdf0e10cSrcweir#define JARFILENAME(name) STRING(CONCAT2(name,.jar))
315cdf0e10cSrcweir
316cdf0e10cSrcweir#define PACKED_SHELLNEW_FILE_BODY \
317cdf0e10cSrcweir        TXT_FILE_BODY; \
318cdf0e10cSrcweir        Styles = (PACKED,WORKSTATION, OVERWRITE); \
319cdf0e10cSrcweir        Dir    = PREDEFINED_OSSHELLNEWDIR; \
320cdf0e10cSrcweir        NetDir = gid_Dir_Shellnew
321cdf0e10cSrcweir
322cdf0e10cSrcweir#define STD_SHELLNEW_FILE(id,name) \
323cdf0e10cSrcweir    File id \
324cdf0e10cSrcweir        PACKED_SHELLNEW_FILE_BODY; \
325cdf0e10cSrcweir        Name      = STRING(name) ; \
326cdf0e10cSrcweir    End
327cdf0e10cSrcweir
328cdf0e10cSrcweir#define SPECIAL_COMPONENT_LIB_FILE(id,name) \
329cdf0e10cSrcweir    File id \
330cdf0e10cSrcweir        Name     = SPECIAL_COMPONENT_LIB_NAME(name); \
331cdf0e10cSrcweir        PACKED_LIB_FILE_BODY; \
332cdf0e10cSrcweir    End
333cdf0e10cSrcweir
334cdf0e10cSrcweir#define SPECIAL_COMPONENT_LIB_FILE_PATCH(id,name) \
335cdf0e10cSrcweir    File id \
336cdf0e10cSrcweir        Name     = SPECIAL_COMPONENT_LIB_NAME(name); \
337cdf0e10cSrcweir        PACKED_LIB_FILE_BODY_PATCH; \
338cdf0e10cSrcweir    End
339cdf0e10cSrcweir
340cdf0e10cSrcweir#define WINW4WFILTERFILENAME(name) STRING(CONCAT2(name,f32w.dll))
341cdf0e10cSrcweir
342cdf0e10cSrcweir#define STD_WIN_W4WFILTER_FILE(id,name) \
343cdf0e10cSrcweir    File id \
344cdf0e10cSrcweir        PACKED_FILTER_FILE_BODY; \
345cdf0e10cSrcweir        Name            = WINW4WFILTERFILENAME(name);  \
346cdf0e10cSrcweir    End
347cdf0e10cSrcweir
348cdf0e10cSrcweir#define SOLSW4WFILTERFILENAME(name) STRING(CONCAT2(w4w, name))
349cdf0e10cSrcweir
350cdf0e10cSrcweir#define STD_SOLS_W4WFILTER_FILE(id,name) \
351cdf0e10cSrcweir    File id \
352cdf0e10cSrcweir        BIN_FILE_BODY; \
353cdf0e10cSrcweir        Styles = (PACKED); \
354cdf0e10cSrcweir        Dir = gid_Dir_Filter; \
355cdf0e10cSrcweir        Name = SOLSW4WFILTERFILENAME(name); \
356cdf0e10cSrcweir    End
357cdf0e10cSrcweir
358cdf0e10cSrcweir#define SPECIAL_NO_WARNING_IF_NOT_EXISTS_FILE(id,name) \
359cdf0e10cSrcweir    File id \
360cdf0e10cSrcweir        TXT_FILE_BODY; \
361cdf0e10cSrcweir        Name = LIBNAME(name); \
362cdf0e10cSrcweir        Dir = SCP2_OOO_BIN_DIR; \
363cdf0e10cSrcweir        Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS); \
364cdf0e10cSrcweir    End
365cdf0e10cSrcweir
366cdf0e10cSrcweir// ---------------------------------------
367cdf0e10cSrcweir#define CONDITIONAL_MODULE_ENTRY(name,modid) \
368cdf0e10cSrcweir    Module gid_Module_Root_Reg_##name \
369cdf0e10cSrcweir	ParentID = modid; \
370cdf0e10cSrcweir	Name = STRING(CONCAT2(gid_Module_Root_,name)); \
371cdf0e10cSrcweir	Description = STRING(CONCAT2(gid_Module_Root_,name)); \
372cdf0e10cSrcweir	Default = YES; \
373cdf0e10cSrcweir	Styles = (HIDDEN_ROOT); \
374cdf0e10cSrcweirEnd
375cdf0e10cSrcweir
376cdf0e10cSrcweir#define REGISTRY_ENTRY_OPEN_WITH(name,cond,doc_type,modid,key) \
377cdf0e10cSrcweir    RegistryItem gid_Regitem_OpenOffice_##cond##_OpenWith_##doc_type \
378cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
379cdf0e10cSrcweir        ModuleID = modid; \
380cdf0e10cSrcweir        Subkey = STRING(CONCAT3(.,key,\OpenWithProgIDs)); \
381cdf0e10cSrcweir        Name = STRING(CONCAT2(OpenOffice.org.,name)); \
382cdf0e10cSrcweir        Value = " "; \
383cdf0e10cSrcweir    End
384cdf0e10cSrcweir
385cdf0e10cSrcweir#define REGISTRY_ENTRY_OPEN_WITH_TMPL(name,cond,doc_type,modid,key) \
386cdf0e10cSrcweir    RegistryItem gid_Regitem_OpenOffice_##cond##_OpenWith_##doc_type \
387cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
388cdf0e10cSrcweir        ModuleID = modid; \
389cdf0e10cSrcweir        Subkey = STRING(CONCAT3(.,key,\OpenWithProgIDs)); \
390cdf0e10cSrcweir        Name = STRING(CONCAT2(OpenOffice.org.,name)); \
391cdf0e10cSrcweir        Value = " "; \
392cdf0e10cSrcweir    End
393cdf0e10cSrcweir
394cdf0e10cSrcweir#define CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \
395cdf0e10cSrcweir    RegistryItem gid_Regitem__##name \
396cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
397cdf0e10cSrcweir        ModuleID = gid_Module_Root_Reg_##name; \
398cdf0e10cSrcweir        Subkey = STRING(CONCAT2(.,key)); \
399cdf0e10cSrcweir        Value = STRING(CONCAT2(OpenOffice.org.,name)); \
400cdf0e10cSrcweir        ComponentCondition = STRING(CONCAT3(REGISTER_,cond,=1)); \
401cdf0e10cSrcweir    End
402cdf0e10cSrcweir
403cdf0e10cSrcweir#define REGISTRY_ENTRY_DOC(name,modid,disp_name) \
404cdf0e10cSrcweir    RegistryItem CONCAT2(gid_Regitem_Openoffice_,name) \
405cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
406cdf0e10cSrcweir        ModuleID = modid; \
407cdf0e10cSrcweir        Subkey = STRING(CONCAT2(OpenOffice.org.,name)); \
408cdf0e10cSrcweir        REG_VALUE_LNG(disp_name) \
409cdf0e10cSrcweir    End
410cdf0e10cSrcweir
411cdf0e10cSrcweir#define REGISTRY_ENTRY_ICON(name,modid,icon_id) \
412cdf0e10cSrcweir    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Defaulticon) \
413cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
414cdf0e10cSrcweir        ModuleID = modid; \
415cdf0e10cSrcweir        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\DefaultIcon)); \
416cdf0e10cSrcweir        Value = "<progpath>\program\soffice.exe," STRING(icon_id); \
417cdf0e10cSrcweir    End
418cdf0e10cSrcweir
419cdf0e10cSrcweir#define REGISTRY_ENTRY_SHELL(name,default,modid) \
420cdf0e10cSrcweir    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell) \
421cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
422cdf0e10cSrcweir        ModuleID = modid; \
423cdf0e10cSrcweir        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell)); \
424cdf0e10cSrcweir        Value = STRING(default); \
425cdf0e10cSrcweir    End
426cdf0e10cSrcweir
427cdf0e10cSrcweir#define REGISTRY_ENTRY_NEW_CMD(name,modid,app) \
428cdf0e10cSrcweir    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_New) \
429cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
430cdf0e10cSrcweir        ModuleID = modid; \
431cdf0e10cSrcweir        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\new)); \
432cdf0e10cSrcweir        REG_VALUE_LNG(NEW) \
433cdf0e10cSrcweir    End \
434cdf0e10cSrcweir    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_New_Command) \
435cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
436cdf0e10cSrcweir        ModuleID = modid; \
437cdf0e10cSrcweir        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\new\command)); \
438cdf0e10cSrcweir        Value = "\"<progpath>\program\\" STRING(app) "\" -n \"%1\""; \
439cdf0e10cSrcweir    End
440cdf0e10cSrcweir
441cdf0e10cSrcweir#define REGISTRY_ENTRY_OPEN_CMD(name,modid,app) \
442cdf0e10cSrcweir    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_Open_Command) \
443cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
444cdf0e10cSrcweir        ModuleID = modid; \
445cdf0e10cSrcweir        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\open\command)); \
446cdf0e10cSrcweir        Value = "\"<progpath>\program\\" STRING(app) "\" -o \"%1\""; \
447cdf0e10cSrcweir    End
448cdf0e10cSrcweir
449cdf0e10cSrcweir#define REGISTRY_ENTRY_PRINT_CMD(name,modid,app) \
450cdf0e10cSrcweir    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_Print_Command) \
451cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
452cdf0e10cSrcweir        ModuleID = modid; \
453cdf0e10cSrcweir        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\print\command)); \
454cdf0e10cSrcweir        Value = "\"<progpath>\program\\" STRING(app) "\" -p \"%1\""; \
455cdf0e10cSrcweir    End
456cdf0e10cSrcweir
457cdf0e10cSrcweir#define REGISTRY_ENTRY_PRINTTO_CMD(name,modid,app) \
458cdf0e10cSrcweir    RegistryItem CONCAT3(gid_Regitem_Openoffice_,name,_Shell_Printto_Command) \
459cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \
460cdf0e10cSrcweir        ModuleID = modid; \
461cdf0e10cSrcweir        Subkey = STRING(CONCAT3(OpenOffice.org.,name,\shell\printto\command)); \
462cdf0e10cSrcweir        Value = "\"<progpath>\program\\" STRING(app) "\" -pt \"%2\" \"%1\""; \
463cdf0e10cSrcweir    End
464cdf0e10cSrcweir
465cdf0e10cSrcweir#define REGISTRY_ENTRY_CAPABILITIES(name,modid,key,doc_type) \
466cdf0e10cSrcweir    RegistryItem CONCAT2(gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_,name) \
467cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; \
468cdf0e10cSrcweir        ModuleID = modid; \
469cdf0e10cSrcweir        Subkey = STRING(Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations); \
470cdf0e10cSrcweir        Name = STRING(CONCAT2(.,key)); \
471cdf0e10cSrcweir        Value = STRING(CONCAT2(OpenOffice.org.,name)); \
472cdf0e10cSrcweir        Styles = (); \
473cdf0e10cSrcweir    End
474cdf0e10cSrcweir
475cdf0e10cSrcweir#define REGISTRY_ENTRY_TEMPLATE_CAPABILITIES(name,modid,key,doc_type) \
476cdf0e10cSrcweir    RegistryItem CONCAT2(gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabilities_FileAssociations_,name) \
477cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; \
478cdf0e10cSrcweir        ModuleID = modid; \
479cdf0e10cSrcweir        Subkey = STRING(Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations); \
480cdf0e10cSrcweir        Name = STRING(CONCAT2(.,key)); \
481cdf0e10cSrcweir        Value = STRING(CONCAT2(OpenOffice.org.,name)); \
482cdf0e10cSrcweir        Styles = (); \
483cdf0e10cSrcweir    End
484cdf0e10cSrcweir
485cdf0e10cSrcweir#define CONDITIONAL_REGISTER_DOC_EXTENSION(name,modid,key,cond,disp_name,icon_id,app,default,doc_type) \
486cdf0e10cSrcweir    CONDITIONAL_MODULE_ENTRY(name,modid) \
487cdf0e10cSrcweir    REGISTRY_ENTRY_OPEN_WITH(name,cond,doc_type,modid,key) \
488cdf0e10cSrcweir    CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \
489cdf0e10cSrcweir    REGISTRY_ENTRY_DOC(name,modid,disp_name) \
490cdf0e10cSrcweir    REGISTRY_ENTRY_ICON(name,modid,icon_id) \
491cdf0e10cSrcweir    REGISTRY_ENTRY_SHELL(name,default,modid) \
492cdf0e10cSrcweir    REGISTRY_ENTRY_NEW_CMD(name,modid,app) \
493cdf0e10cSrcweir    REGISTRY_ENTRY_OPEN_CMD(name,modid,app) \
494cdf0e10cSrcweir    REGISTRY_ENTRY_PRINT_CMD(name,modid,app) \
495cdf0e10cSrcweir    REGISTRY_ENTRY_PRINTTO_CMD(name,modid,app) \
496cdf0e10cSrcweir    REGISTRY_ENTRY_CAPABILITIES(name,modid,key,doc_type) \
497cdf0e10cSrcweir
498cdf0e10cSrcweir#define CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION(name,modid,key,cond,disp_name,icon_id,app,default,doc_type) \
499cdf0e10cSrcweir    CONDITIONAL_MODULE_ENTRY(name,modid) \
500cdf0e10cSrcweir    REGISTRY_ENTRY_OPEN_WITH_TMPL(name,cond,doc_type,modid,key) \
501cdf0e10cSrcweir    CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \
502cdf0e10cSrcweir    REGISTRY_ENTRY_DOC(name,modid,disp_name) \
503cdf0e10cSrcweir    REGISTRY_ENTRY_ICON(name,modid,icon_id) \
504cdf0e10cSrcweir    REGISTRY_ENTRY_SHELL(name,default,modid) \
505cdf0e10cSrcweir    REGISTRY_ENTRY_NEW_CMD(name,modid,app) \
506cdf0e10cSrcweir    REGISTRY_ENTRY_OPEN_CMD(name,modid,app) \
507cdf0e10cSrcweir    REGISTRY_ENTRY_PRINT_CMD(name,modid,app) \
508cdf0e10cSrcweir    REGISTRY_ENTRY_PRINTTO_CMD(name,modid,app) \
509cdf0e10cSrcweir    REGISTRY_ENTRY_TEMPLATE_CAPABILITIES(name,modid,key,doc_type) \
510cdf0e10cSrcweir
511cdf0e10cSrcweir// ---------------------------------------
512cdf0e10cSrcweir
513cdf0e10cSrcweir#define REGISTER_PROPERTY_HANDLER_FOR_EXTENSION(extension) \
514cdf0e10cSrcweir    RegistryItem CONCAT2(gid_Regitem_Software_Microsoft_Windows_CurrentVersion_PropertySystem_PropertyHandlers_,extension) \
515cdf0e10cSrcweir        ParentID = PREDEFINED_HKEY_LOCAL_MACHINE; \
516cdf0e10cSrcweir        ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; \
517cdf0e10cSrcweir        ComponentCondition = "VersionNT >= 600"; \
518cdf0e10cSrcweir        Styles = (X64); \
519cdf0e10cSrcweir        Subkey = STRING(CONCAT2(SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\.,extension)); \
520cdf0e10cSrcweir        Value = "{AE424E85-F6DF-4910-A6A9-438797986431}"; \
521cdf0e10cSrcweir        Val64 = "{AE424E85-F6DF-4910-A6A9-438797986431}"; \
522cdf0e10cSrcweir    End
523cdf0e10cSrcweir
524cdf0e10cSrcweir// ---------------------------------------
525cdf0e10cSrcweir
526cdf0e10cSrcweir#if defined WNT
527cdf0e10cSrcweir#define SCP2_URE_DL_DIR gid_Dir_Ure_Bin
528cdf0e10cSrcweir#define SCP2_URE_DL_NORMAL(n) n ".dll"
529cdf0e10cSrcweir#define SCP2_URE_DL_BARE(n) n ".dll"
530cdf0e10cSrcweir#define SCP2_URE_DL_VER(n, v) n v ".dll"
531cdf0e10cSrcweir#define SCP2_URE_DL_COMID_VER(n, v) n v STRING(COMID) ".dll"
532cdf0e10cSrcweir#define SCP2_URE_DL_UNO_VER(n, v) n v ".dll"
533cdf0e10cSrcweir#define SCP2_URE_DL_UNO_COMID_VER(n, v) n v STRING(COMID) ".dll"
534cdf0e10cSrcweir#define SCP2_URE_SHARE_DIR gid_Dir_Common_Ure
535cdf0e10cSrcweir#if defined _STLP_DEBUG
536cdf0e10cSrcweir#define SCP2_STDLP_DEBUG "d"
537cdf0e10cSrcweir#else
538cdf0e10cSrcweir#define SCP2_STDLP_DEBUG ""
539cdf0e10cSrcweir#endif
540cdf0e10cSrcweir#else
541cdf0e10cSrcweir#define SCP2_URE_DL_DIR gid_Dir_Ure_Lib
542cdf0e10cSrcweir#define SCP2_URE_DL_NORMAL(n) "lib" n STRING(UNXSUFFIX)
543cdf0e10cSrcweir#define SCP2_URE_DL_BARE(n) n STRING(UNXSUFFIX)
544cdf0e10cSrcweir#define SCP2_URE_DL_VER(n, v) "lib" n STRING(UNXSUFFIX) "." v
545cdf0e10cSrcweir#define SCP2_URE_DL_COMID_VER(n, v) \
546cdf0e10cSrcweir    "lib" n STRING(COMID) STRING(UNXSUFFIX) "." v
547cdf0e10cSrcweir#define SCP2_URE_DL_UNO_VER(n, v) "libuno_" n STRING(UNXSUFFIX) "." v
548cdf0e10cSrcweir#define SCP2_URE_DL_UNO_NORMAL(n) "libuno_" n STRING(UNXSUFFIX)
549cdf0e10cSrcweir#define SCP2_URE_DL_UNO_COMID_VER(n, v)	\
550cdf0e10cSrcweir    "libuno_" n STRING(COMID) STRING(UNXSUFFIX) "." v
551cdf0e10cSrcweir#define SCP2_URE_DL_UNO_COMID_NORMAL(n)	\
552cdf0e10cSrcweir    "libuno_" n STRING(COMID) STRING(UNXSUFFIX)
553cdf0e10cSrcweir#define SCP2_URE_SHARE_DIR gid_Dir_Ure_Share
554cdf0e10cSrcweir#endif
555cdf0e10cSrcweir#if defined MACOSX
556cdf0e10cSrcweir#define SCP2_URE_JDL_NORMAL(n) "lib" n ".jnilib"
557cdf0e10cSrcweir#else
558cdf0e10cSrcweir#define SCP2_URE_JDL_NORMAL(n) SCP2_URE_DL_NORMAL(n)
559cdf0e10cSrcweir#endif
560cdf0e10cSrcweir
561cdf0e10cSrcweir#include <langmacros.inc>
562cdf0e10cSrcweir
563cdf0e10cSrcweir
564cdf0e10cSrcweir#endif // MACROS_INC
565cdf0e10cSrcweir
566