1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir #ifndef __FRAMEWORK_TARGETHELPER_HXX_ 29*cdf0e10cSrcweir #define __FRAMEWORK_TARGETHELPER_HXX_ 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir //_______________________________________________ 32*cdf0e10cSrcweir // own includes 33*cdf0e10cSrcweir 34*cdf0e10cSrcweir #include <sal/types.h> 35*cdf0e10cSrcweir #include <rtl/ustring.hxx> 36*cdf0e10cSrcweir #include <targets.h> 37*cdf0e10cSrcweir //_______________________________________________ 38*cdf0e10cSrcweir // namespace 39*cdf0e10cSrcweir 40*cdf0e10cSrcweir namespace framework{ 41*cdf0e10cSrcweir 42*cdf0e10cSrcweir //_______________________________________________ 43*cdf0e10cSrcweir // definitions 44*cdf0e10cSrcweir 45*cdf0e10cSrcweir /** @short can be used to detect, if a target name (used e.g. for XFrame.findFrame()) 46*cdf0e10cSrcweir has a special meaning or can be used as normal frame name (e.g. for XFrame.setName()). 47*cdf0e10cSrcweir 48*cdf0e10cSrcweir @author as96863 49*cdf0e10cSrcweir */ 50*cdf0e10cSrcweir class TargetHelper 51*cdf0e10cSrcweir { 52*cdf0e10cSrcweir //___________________________________________ 53*cdf0e10cSrcweir // const 54*cdf0e10cSrcweir 55*cdf0e10cSrcweir public: 56*cdf0e10cSrcweir 57*cdf0e10cSrcweir /** @short its used at the following interfaces to classify 58*cdf0e10cSrcweir target names. 59*cdf0e10cSrcweir */ 60*cdf0e10cSrcweir enum ESpecialTarget 61*cdf0e10cSrcweir { 62*cdf0e10cSrcweir E_NOT_SPECIAL , 63*cdf0e10cSrcweir E_SELF , 64*cdf0e10cSrcweir E_PARENT , 65*cdf0e10cSrcweir E_TOP , 66*cdf0e10cSrcweir E_BLANK , 67*cdf0e10cSrcweir E_DEFAULT , 68*cdf0e10cSrcweir E_BEAMER , 69*cdf0e10cSrcweir E_MENUBAR , 70*cdf0e10cSrcweir E_HELPAGENT , 71*cdf0e10cSrcweir E_HELPTASK 72*cdf0e10cSrcweir }; 73*cdf0e10cSrcweir 74*cdf0e10cSrcweir //___________________________________________ 75*cdf0e10cSrcweir // interface 76*cdf0e10cSrcweir 77*cdf0e10cSrcweir public: 78*cdf0e10cSrcweir 79*cdf0e10cSrcweir //___________________________________________ 80*cdf0e10cSrcweir 81*cdf0e10cSrcweir /** @short it checks the given unknown target name, 82*cdf0e10cSrcweir if it's the expected special one. 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir @note An empty target is similar to "_self"! 85*cdf0e10cSrcweir 86*cdf0e10cSrcweir @param sCheckTarget 87*cdf0e10cSrcweir must be the unknwon target name, which should be checked. 88*cdf0e10cSrcweir 89*cdf0e10cSrcweir @param eSpecialTarget 90*cdf0e10cSrcweir represent the expected target. 91*cdf0e10cSrcweir 92*cdf0e10cSrcweir @return It returns <TRUE/> if <var>sCheckTarget</var> represent 93*cdf0e10cSrcweir the expected <var>eSpecialTarget</var> value; <FALSE/> otherwhise. 94*cdf0e10cSrcweir */ 95*cdf0e10cSrcweir static sal_Bool matchSpecialTarget(const ::rtl::OUString& sCheckTarget , 96*cdf0e10cSrcweir ESpecialTarget eSpecialTarget); 97*cdf0e10cSrcweir 98*cdf0e10cSrcweir //___________________________________________ 99*cdf0e10cSrcweir 100*cdf0e10cSrcweir /** @short it checks, if the given name can be used 101*cdf0e10cSrcweir to set it at a frame using XFrame.setName() method. 102*cdf0e10cSrcweir 103*cdf0e10cSrcweir @descr Because we handle special targets in a hard coded way 104*cdf0e10cSrcweir (means we do not check the real name of a frame then) 105*cdf0e10cSrcweir such named frames will never be found! 106*cdf0e10cSrcweir 107*cdf0e10cSrcweir And in case such special names can exists one times only 108*cdf0e10cSrcweir by definition inside the same frame tree (e.g. _beamer and 109*cdf0e10cSrcweir OFFICE_HELP_TASK) its not a good idea to allow anything here :-) 110*cdf0e10cSrcweir 111*cdf0e10cSrcweir Of course we can't check unknwon names, which are not special ones. 112*cdf0e10cSrcweir But we decide, that it's not allowed to use "_" as first sign 113*cdf0e10cSrcweir (because we reserve this letter for our own purposes!) 114*cdf0e10cSrcweir and the value must not a well known special target. 115*cdf0e10cSrcweir 116*cdf0e10cSrcweir @param sName 117*cdf0e10cSrcweir the new frame name, which sould be checked. 118*cdf0e10cSrcweir */ 119*cdf0e10cSrcweir static sal_Bool isValidNameForFrame(const ::rtl::OUString& sName); 120*cdf0e10cSrcweir }; 121*cdf0e10cSrcweir 122*cdf0e10cSrcweir } // namespace framework 123*cdf0e10cSrcweir 124*cdf0e10cSrcweir #endif // #ifndef __FRAMEWORK_TARGETHELPER_HXX_ 125