LibreOffice Module sfx2 (master)
1
sfx2
source
sidebar
Context.cxx
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
#include <
sfx2/sidebar/Context.hxx
>
20
#include <utility>
21
22
23
constexpr
OUStringLiteral
AnyApplicationName
=
u
"any"
;
24
constexpr
OUStringLiteral
AnyContextName
=
u
"any"
;
25
26
namespace
sfx2::sidebar
{
27
28
const
sal_Int32
Context::NoMatch
= 4;
29
const
sal_Int32
Context::ApplicationWildcardMatch
= 1;
30
const
sal_Int32
Context::ContextWildcardMatch
= 2;
31
const
sal_Int32
Context::OptimalMatch
= 0;
// Neither application nor context name is "any".
32
33
Context::Context
()
34
: msApplication(
AnyApplicationName
),
35
msContext(
AnyContextName
)
36
{
37
}
38
39
Context::Context
(
40
OUString sApplication,
41
OUString sContext)
42
: msApplication(
std
::move(sApplication)),
43
msContext(
std
::move(sContext))
44
{
45
}
46
47
sal_Int32
Context::EvaluateMatch
(
48
const
Context
& rOther)
const
49
{
50
const
bool
bApplicationNameIsAny (rOther.
msApplication
==
AnyApplicationName
);
51
if
(rOther.
msApplication
==
msApplication
|| bApplicationNameIsAny)
52
{
53
// Application name matches.
54
const
bool
bContextNameIsAny (rOther.
msContext
==
AnyContextName
);
55
if
(rOther.
msContext
==
msContext
|| bContextNameIsAny)
56
{
57
// Context name matches.
58
return
(bApplicationNameIsAny ?
ApplicationWildcardMatch
: 0)
59
+ (bContextNameIsAny ?
ContextWildcardMatch
: 0);
60
}
61
}
62
return
NoMatch
;
63
}
64
65
bool
Context::operator==
(
const
Context
& rOther)
const
66
{
67
return
msApplication
== rOther.
msApplication
68
&&
msContext
== rOther.
msContext
;
69
}
70
71
bool
Context::operator!=
(
const
Context
& rOther)
const
72
{
73
return
(
msApplication
!= rOther.
msApplication
)
74
|| (
msContext
!= rOther.
msContext
);
75
}
76
77
}
// end of namespace sfx2::sidebar
78
79
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
AnyApplicationName
constexpr OUStringLiteral AnyApplicationName
Definition:
Context.cxx:23
AnyContextName
constexpr OUStringLiteral AnyContextName
Definition:
Context.cxx:24
Context.hxx
sfx2::sidebar::Context
Definition:
Context.hxx:28
sfx2::sidebar::Context::operator!=
bool operator!=(const Context &rOther) const
Definition:
Context.cxx:71
sfx2::sidebar::Context::ContextWildcardMatch
static const sal_Int32 ContextWildcardMatch
Definition:
Context.hxx:44
sfx2::sidebar::Context::operator==
bool operator==(const Context &rOther) const
Definition:
Context.cxx:65
sfx2::sidebar::Context::msApplication
OUString msApplication
Definition:
Context.hxx:30
sfx2::sidebar::Context::ApplicationWildcardMatch
static const sal_Int32 ApplicationWildcardMatch
Definition:
Context.hxx:43
sfx2::sidebar::Context::NoMatch
static const sal_Int32 NoMatch
When two contexts are matched against each other, then application or context name may have the wildc...
Definition:
Context.hxx:41
sfx2::sidebar::Context::msContext
OUString msContext
Definition:
Context.hxx:31
sfx2::sidebar::Context::Context
Context()
Definition:
Context.cxx:33
sfx2::sidebar::Context::EvaluateMatch
sal_Int32 EvaluateMatch(const Context &rOther) const
Return the numeric value that describes how good the match between two contexts is.
Definition:
Context.cxx:47
sfx2::sidebar::Context::OptimalMatch
static const sal_Int32 OptimalMatch
Definition:
Context.hxx:42
u
float u
sfx2::sidebar
Definition:
appdata.hxx:56
std
Generated on Sun Jul 30 2023 04:34:00 for LibreOffice Module sfx2 (master) by
1.9.3