1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_framework.hxx"
26 
27 //_______________________________________________
28 // own includes
29 
30 #ifndef __FRAMEWORK_LOADENV_TARGETHELPER_HXX_
31 #include <loadenv/targethelper.hxx>
32 #endif
33 
34 //_______________________________________________
35 // namespace
36 
37 namespace framework{
38 
39 //_______________________________________________
40 // declarations
41 
42 /*-----------------------------------------------
43     05.08.2003 09:08
44 -----------------------------------------------*/
45 sal_Bool TargetHelper::matchSpecialTarget(const ::rtl::OUString& sCheckTarget  ,
46                                                 ESpecialTarget   eSpecialTarget)
47 {
48     switch(eSpecialTarget)
49     {
50         case E_SELF :
51             return (
52                     (!sCheckTarget.getLength()              ) ||
53                     (sCheckTarget.equals(SPECIALTARGET_SELF))
54                    );
55 
56         case E_PARENT :
57             return (sCheckTarget.equals(SPECIALTARGET_PARENT));
58 
59         case E_TOP :
60             return (sCheckTarget.equals(SPECIALTARGET_TOP));
61 
62         case E_BLANK :
63             return (sCheckTarget.equals(SPECIALTARGET_BLANK));
64 
65         case E_DEFAULT :
66             return (sCheckTarget.equals(SPECIALTARGET_DEFAULT));
67 
68         case E_BEAMER :
69             return (sCheckTarget.equals(SPECIALTARGET_BEAMER));
70 
71         case E_MENUBAR :
72             return (sCheckTarget.equals(SPECIALTARGET_MENUBAR));
73 
74         case E_HELPAGENT :
75             return (sCheckTarget.equals(SPECIALTARGET_HELPAGENT));
76 
77         case E_HELPTASK :
78             return (sCheckTarget.equals(SPECIALTARGET_HELPTASK));
79         default:
80             return sal_False;
81     }
82 
83     return sal_False;
84 }
85 
86 /*-----------------------------------------------
87     05.08.2003 09:17
88 -----------------------------------------------*/
89 sal_Bool TargetHelper::isValidNameForFrame(const ::rtl::OUString& sName)
90 {
91     // some special targets are realy special ones :-)
92     // E.g. the are realy used to locate one frame inside the frame tree.
93     if (
94         (!sName.getLength()                                 ) ||
95         (TargetHelper::matchSpecialTarget(sName, E_HELPTASK)) ||
96         (TargetHelper::matchSpecialTarget(sName, E_BEAMER)  )
97        )
98         return sal_True;
99 
100     // all other names must be checked more general
101     // special targets starts with a "_".
102     return (sName.indexOf('_') != 0);
103 }
104 
105 } // namespace framework
106