blob: e2febe9953243ac602170e9f256c688de570aee1 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __FRAMEWORK_TARGETHELPER_HXX_
#define __FRAMEWORK_TARGETHELPER_HXX_
//_______________________________________________
// own includes
#include <sal/types.h>
#include <rtl/ustring.hxx>
#include <targets.h>
//_______________________________________________
// namespace
namespace framework{
//_______________________________________________
// definitions
/** @short can be used to detect, if a target name (used e.g. for XFrame.findFrame())
has a special meaning or can be used as normal frame name (e.g. for XFrame.setName()).
@author as96863
*/
class TargetHelper
{
//___________________________________________
// const
public:
/** @short its used at the following interfaces to classify
target names.
*/
enum ESpecialTarget
{
E_NOT_SPECIAL ,
E_SELF ,
E_PARENT ,
E_TOP ,
E_BLANK ,
E_DEFAULT ,
E_BEAMER ,
E_MENUBAR ,
E_HELPAGENT ,
E_HELPTASK
};
//___________________________________________
// interface
public:
//___________________________________________
/** @short it checks the given unknown target name,
if it's the expected special one.
@note An empty target is similar to "_self"!
@param sCheckTarget
must be the unknwon target name, which should be checked.
@param eSpecialTarget
represent the expected target.
@return It returns <TRUE/> if <var>sCheckTarget</var> represent
the expected <var>eSpecialTarget</var> value; <FALSE/> otherwhise.
*/
static sal_Bool matchSpecialTarget(const ::rtl::OUString& sCheckTarget ,
ESpecialTarget eSpecialTarget);
//___________________________________________
/** @short it checks, if the given name can be used
to set it at a frame using XFrame.setName() method.
@descr Because we handle special targets in a hard coded way
(means we do not check the real name of a frame then)
such named frames will never be found!
And in case such special names can exists one times only
by definition inside the same frame tree (e.g. _beamer and
OFFICE_HELP_TASK) its not a good idea to allow anything here :-)
Of course we can't check unknwon names, which are not special ones.
But we decide, that it's not allowed to use "_" as first sign
(because we reserve this letter for our own purposes!)
and the value must not a well known special target.
@param sName
the new frame name, which sould be checked.
*/
static sal_Bool isValidNameForFrame(const ::rtl::OUString& sName);
};
} // namespace framework
#endif // #ifndef __FRAMEWORK_TARGETHELPER_HXX_