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