1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_IDL_INC_GLOBALS_HXX
21 #define INCLUDED_IDL_INC_GLOBALS_HXX
26 struct SvGlobalHashNames
28 SvStringHashEntry
* MM_module
;
29 SvStringHashEntry
* MM_interface
;
30 SvStringHashEntry
* MM_shell
;
31 SvStringHashEntry
* MM_Toggle
;
32 SvStringHashEntry
* MM_AutoUpdate
;
33 SvStringHashEntry
* MM_Asynchron
;
34 SvStringHashEntry
* MM_RecordPerSet
;
35 SvStringHashEntry
* MM_RecordPerItem
;
36 SvStringHashEntry
* MM_NoRecord
;
37 SvStringHashEntry
* MM_RecordAbsolute
;
38 SvStringHashEntry
* MM_enum
;
39 SvStringHashEntry
* MM_UINT16
;
40 SvStringHashEntry
* MM_INT16
;
41 SvStringHashEntry
* MM_UINT32
;
42 SvStringHashEntry
* MM_INT32
;
43 SvStringHashEntry
* MM_BOOL
;
44 SvStringHashEntry
* MM_BYTE
;
45 SvStringHashEntry
* MM_float
;
46 SvStringHashEntry
* MM_double
;
47 SvStringHashEntry
* MM_item
;
48 SvStringHashEntry
* MM_import
;
49 SvStringHashEntry
* MM_SlotIdFile
;
50 SvStringHashEntry
* MM_include
;
51 SvStringHashEntry
* MM_ExecMethod
;
52 SvStringHashEntry
* MM_StateMethod
;
53 SvStringHashEntry
* MM_GroupId
;
54 SvStringHashEntry
* MM_define
;
55 SvStringHashEntry
* MM_MenuConfig
;
56 SvStringHashEntry
* MM_ToolBoxConfig
;
57 SvStringHashEntry
* MM_AccelConfig
;
58 SvStringHashEntry
* MM_FastCall
;
59 SvStringHashEntry
* MM_SbxObject
;
60 SvStringHashEntry
* MM_Container
;
61 SvStringHashEntry
* MM_ReadOnlyDoc
;
62 SvStringHashEntry
* MM_struct
;
63 SvStringHashEntry
* MM_DisableFlags
;
71 std::unique_ptr
<SvStringHashTable
> pHashTable
;
72 std::unique_ptr
<SvGlobalHashNames
> pGlobalNames
;
80 #define HASH_INLINE( Name ) \
81 inline SvStringHashEntry * SvHash_##Name() \
83 if( !GetIdlApp().pGlobalNames ) \
84 GetIdlApp().pGlobalNames.reset( new SvGlobalHashNames() ); \
85 return GetIdlApp().pGlobalNames->MM_##Name; \
89 HASH_INLINE(interface
)
92 HASH_INLINE(AutoUpdate
)
93 HASH_INLINE(Asynchron
)
94 HASH_INLINE(RecordPerItem
)
95 HASH_INLINE(RecordPerSet
)
97 HASH_INLINE(RecordAbsolute
)
107 HASH_INLINE(SlotIdFile
)
109 HASH_INLINE(ExecMethod
)
110 HASH_INLINE(StateMethod
)
115 HASH_INLINE(MenuConfig
)
116 HASH_INLINE(ToolBoxConfig
)
117 HASH_INLINE(AccelConfig
)
118 HASH_INLINE(FastCall
)
119 HASH_INLINE(SbxObject
)
120 HASH_INLINE(Container
)
121 HASH_INLINE(ReadOnlyDoc
)
123 HASH_INLINE(DisableFlags
)
126 #endif // INCLUDED_IDL_INC_GLOBALS_HXX
128 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */