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