CppunitTest_svgio: use CPPUNIT_TEST_FIXTURE()
[LibreOffice.git] / idl / inc / globals.hxx
blob0739d8757b32b0af32a73b2cd5d8de389c7d490c
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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
23 #include "hash.hxx"
24 #include <memory>
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;
65 SvGlobalHashNames();
68 class IdlDll
70 public:
71 std::unique_ptr<SvStringHashTable> pHashTable;
72 std::unique_ptr<SvGlobalHashNames> pGlobalNames;
74 IdlDll();
75 ~IdlDll();
78 IdlDll & GetIdlApp();
80 #define HASH_INLINE( Name ) \
81 inline SvStringHashEntry * SvHash_##Name() \
82 { \
83 if( !GetIdlApp().pGlobalNames ) \
84 GetIdlApp().pGlobalNames.reset( new SvGlobalHashNames() ); \
85 return GetIdlApp().pGlobalNames->MM_##Name; \
88 HASH_INLINE(module)
89 HASH_INLINE(interface)
90 HASH_INLINE(shell)
91 HASH_INLINE(Toggle)
92 HASH_INLINE(AutoUpdate)
93 HASH_INLINE(Asynchron)
94 HASH_INLINE(RecordPerItem)
95 HASH_INLINE(RecordPerSet)
96 HASH_INLINE(NoRecord)
97 HASH_INLINE(RecordAbsolute)
98 HASH_INLINE(enum)
99 HASH_INLINE(UINT16)
100 HASH_INLINE(INT16)
101 HASH_INLINE(UINT32)
102 HASH_INLINE(INT32)
103 HASH_INLINE(BOOL)
104 HASH_INLINE(BYTE)
105 HASH_INLINE(item)
106 HASH_INLINE(import)
107 HASH_INLINE(SlotIdFile)
108 HASH_INLINE(include)
109 HASH_INLINE(ExecMethod)
110 HASH_INLINE(StateMethod)
111 HASH_INLINE(GroupId)
112 HASH_INLINE(float)
113 HASH_INLINE(double)
114 HASH_INLINE(define)
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)
122 HASH_INLINE(struct)
123 HASH_INLINE(DisableFlags)
126 #endif // INCLUDED_IDL_INC_GLOBALS_HXX
128 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */