LibreOffice Module vcl (master) 1
EnumContext.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
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 .
18 */
19#ifndef INCLUDED_VCL_ENUMCONTEXT_HXX
20#define INCLUDED_VCL_ENUMCONTEXT_HXX
21
22#include <vcl/dllapi.h>
23
24#include <rtl/ustring.hxx>
25
26
27namespace vcl {
28
30{
31public:
32 enum class Application
33 {
34 Writer,
35 WriterGlobal,
36 WriterWeb,
37 WriterXML,
38 WriterForm,
39 WriterReport,
40 Calc,
41 Chart,
42 Draw,
43 Impress,
44 Formula,
45 Base,
46
47 // For your convenience to avoid duplicate code in the common
48 // case that Draw and Impress use identical context configurations.
50
51 // Also for your convenience for the different variants of Writer documents.
52 WriterVariants,
53
54 // Used only by deck or panel descriptors. Matches any
55 // application.
56 Any,
57
58 // Use this only in special circumstances. One might be the
59 // wish to disable a deck or panel during debugging.
60 NONE,
61
62 LAST = Application::NONE
63 };
64 enum class Context
65 {
66 ThreeDObject,
67 Annotation,
68 Auditing,
69 Axis,
70 Cell,
71 Chart,
72 ChartElements,
73 Draw,
74 DrawFontwork,
76 DrawPage,
78 EditCell,
79 ErrorBar,
80 Form,
81 Frame,
82 Graphic,
83 Grid,
84 HandoutPage,
86 Math,
87 Media,
88 MultiObject,
89 NotesPage,
90 OLE,
92 Pivot,
93 Printpreview,
94 Series,
95 SlidesorterPage,
96 Table,
97 Text,
99 Trendline,
100 Sparkline,
101
102 // Default context of an application. Do we need this?
103 Default,
104
105 // Used only by deck or panel descriptors. Matches any context.
106 Any,
107
108 // Special context name that is only used when a deck would
109 // otherwise be empty.
110 Empty,
111
112 Unknown,
113
114 LAST = Unknown
115 };
116
117 EnumContext();
119 const Application eApplication,
120 const Context eContext);
121
129 sal_Int32 GetCombinedContext_DI() const;
130
131 Application GetApplication_DI() const;
132
133 bool operator == (const EnumContext& rOther) const;
134 bool operator != (const EnumContext& rOther) const;
135
141 const static sal_Int32 NoMatch;
142
143 static Application GetApplicationEnum (const OUString& rsApplicationName);
144 static const OUString& GetApplicationName (const Application eApplication);
145
146 static Context GetContextEnum (const OUString& rsContextName);
147 static const OUString& GetContextName (const Context eContext);
148
149private:
152
153 static void ProvideApplicationContainers();
154 static void ProvideContextContainers();
155 static void AddEntry (const OUString& rsName, const Application eApplication);
156 static void AddEntry (const OUString& rsName, const Context eContext);
157};
158
159
160#define CombinedEnumContext(a,e) ((static_cast<sal_uInt16>(::vcl::EnumContext::a)<<16)\
161 | static_cast<sal_uInt16>(::vcl::EnumContext::e))
162
163} // end of namespace vcl
164
165#endif
166
167/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Base class used mainly for the LibreOffice Desktop class.
Definition: svapp.hxx:237
static const sal_Int32 NoMatch
When two contexts are matched against each other, then application or context name may have the wildc...
Application meApplication
#define VCL_DLLPUBLIC
Definition: dllapi.h:29
NONE
Unknown
Empty
void DrawLine(OutputDevice &rDev, const basegfx::B2DPoint &rP1, const basegfx::B2DPoint &rP2, sal_uInt32 nWidth, SvxBorderLineStyle nDashing)
Base
MasterPage
bool operator==(const ItalicMatrix &a, const ItalicMatrix &b)
Definition: vclenum.hxx:175
bool operator!=(const ItalicMatrix &a, const ItalicMatrix &b)
Definition: vclenum.hxx:180