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 #ifndef ACCESSIBILITY_EXT_ACCESSIBLETABBAR_HXX_
25 #define ACCESSIBILITY_EXT_ACCESSIBLETABBAR_HXX_
26 
27 #include <com/sun/star/accessibility/XAccessible.hpp>
28 #include <com/sun/star/lang/XServiceInfo.hpp>
29 #include <cppuhelper/implbase2.hxx>
30 #include "accessibility/extended/accessibletabbarbase.hxx"
31 
32 #include <vector>
33 
34 namespace utl {
35 class AccessibleStateSetHelper;
36 }
37 
38 //.........................................................................
39 namespace accessibility
40 {
41 //.........................................................................
42 
43 	//	----------------------------------------------------
44 	//	class AccessibleTabBar
45 	//	----------------------------------------------------
46 
47 	typedef ::cppu::ImplHelper2<
48 		::com::sun::star::accessibility::XAccessible,
49 		::com::sun::star::lang::XServiceInfo > AccessibleTabBar_BASE;
50 
51     class AccessibleTabBar :    public AccessibleTabBarBase,
52                                 public AccessibleTabBar_BASE
53 	{
54 	private:
55 		typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >	> AccessibleChildren;
56 
57 		AccessibleChildren		m_aAccessibleChildren;
58 
59 	protected:
60 		virtual void			ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
61 		virtual void			FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
62 
63         // OCommonAccessibleComponent
64 		virtual ::com::sun::star::awt::Rectangle SAL_CALL	implGetBounds(  ) throw (::com::sun::star::uno::RuntimeException);
65 
66 		// XComponent
67 		virtual void SAL_CALL	disposing();
68 
69 	public:
70 		AccessibleTabBar( TabBar* pTabBar );
71 		~AccessibleTabBar();
72 
73 		// XInterface
74 		DECLARE_XINTERFACE()
75 
76 		// XTypeProvider
77 		DECLARE_XTYPEPROVIDER()
78 
79 		// XServiceInfo
80 		virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
81 		virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
82 		virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
83 
84 		// XAccessible
85 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException);
86 
87 		// XAccessibleContext
88 		virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
89 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
90 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
91 		virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
92 		virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
93 		virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
94 		virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
95 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
96 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
97 		virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
98 
99 		// XAccessibleComponent
100 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
101 		virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
102 		virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
103 		virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
104 
105 		// XAccessibleExtendedComponent
106 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont(	) throw (::com::sun::star::uno::RuntimeException);
107 		virtual ::rtl::OUString SAL_CALL getTitledBorderText(  ) throw (::com::sun::star::uno::RuntimeException);
108 		virtual ::rtl::OUString SAL_CALL getToolTipText(  ) throw (::com::sun::star::uno::RuntimeException);
109 	};
110 
111 //.........................................................................
112 }	// namespace accessibility
113 //.........................................................................
114 
115 #endif // ACCESSIBILITY_EXT_ACCESSIBLETABBAR_HXX_
116 
117