xref: /aoo42x/main/sfx2/source/sidebar/Context.hxx (revision 22de8995)
1*22de8995SAndre Fischer /**************************************************************
2*22de8995SAndre Fischer  *
3*22de8995SAndre Fischer  * Licensed to the Apache Software Foundation (ASF) under one
4*22de8995SAndre Fischer  * or more contributor license agreements.  See the NOTICE file
5*22de8995SAndre Fischer  * distributed with this work for additional information
6*22de8995SAndre Fischer  * regarding copyright ownership.  The ASF licenses this file
7*22de8995SAndre Fischer  * to you under the Apache License, Version 2.0 (the
8*22de8995SAndre Fischer  * "License"); you may not use this file except in compliance
9*22de8995SAndre Fischer  * with the License.  You may obtain a copy of the License at
10*22de8995SAndre Fischer  *
11*22de8995SAndre Fischer  *   http://www.apache.org/licenses/LICENSE-2.0
12*22de8995SAndre Fischer  *
13*22de8995SAndre Fischer  * Unless required by applicable law or agreed to in writing,
14*22de8995SAndre Fischer  * software distributed under the License is distributed on an
15*22de8995SAndre Fischer  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*22de8995SAndre Fischer  * KIND, either express or implied.  See the License for the
17*22de8995SAndre Fischer  * specific language governing permissions and limitations
18*22de8995SAndre Fischer  * under the License.
19*22de8995SAndre Fischer  *
20*22de8995SAndre Fischer  *************************************************************/
21*22de8995SAndre Fischer 
22*22de8995SAndre Fischer #ifndef SFX_SIDEBAR_CONTEXT_HXX
23*22de8995SAndre Fischer #define SFX_SIDEBAR_CONTEXT_HXX
24*22de8995SAndre Fischer 
25*22de8995SAndre Fischer #include "rtl/ustring.hxx"
26*22de8995SAndre Fischer 
27*22de8995SAndre Fischer 
28*22de8995SAndre Fischer namespace sfx2 {
29*22de8995SAndre Fischer 
30*22de8995SAndre Fischer class Context
31*22de8995SAndre Fischer {
32*22de8995SAndre Fischer public:
33*22de8995SAndre Fischer     ::rtl::OUString msApplication;
34*22de8995SAndre Fischer     ::rtl::OUString msContext;
35*22de8995SAndre Fischer 
36*22de8995SAndre Fischer     Context (void);
37*22de8995SAndre Fischer     Context (
38*22de8995SAndre Fischer         const ::rtl::OUString& rsApplication,
39*22de8995SAndre Fischer         const ::rtl::OUString& rsContext);
40*22de8995SAndre Fischer 
41*22de8995SAndre Fischer     /** When two contexts are matched against each other then
42*22de8995SAndre Fischer         application or context name may have the wildcard value 'any'.
43*22de8995SAndre Fischer         In order to prefer matches without wildcards over matches with
44*22de8995SAndre Fischer         wildcards we introduce a integer evaluation for matches.
45*22de8995SAndre Fischer     */
46*22de8995SAndre Fischer     const static sal_Int32 NoMatch;
47*22de8995SAndre Fischer     const static sal_Int32 OptimalMatch;
48*22de8995SAndre Fischer 
49*22de8995SAndre Fischer     /** Return the numeric value that describes how good the match
50*22de8995SAndre Fischer         between two contexts is.
51*22de8995SAndre Fischer         Smaller values represent better matches.
52*22de8995SAndre Fischer     */
53*22de8995SAndre Fischer     sal_Int32 EvaluateMatch (const Context& rOther) const;
54*22de8995SAndre Fischer 
55*22de8995SAndre Fischer     /** Return the best match against the given list of contexts.
56*22de8995SAndre Fischer     */
57*22de8995SAndre Fischer     sal_Int32 EvaluateMatch (const ::std::vector<Context>& rOthers) const;
58*22de8995SAndre Fischer };
59*22de8995SAndre Fischer 
60*22de8995SAndre Fischer 
61*22de8995SAndre Fischer } // end of namespace sfx2
62*22de8995SAndre Fischer 
63*22de8995SAndre Fischer #endif
64