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