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_ACCESSIBLETABBARPAGE_HXX_
25 #define ACCESSIBILITY_EXT_ACCESSIBLETABBARPAGE_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 AccessibleTabBarPage
45 	//	----------------------------------------------------
46 
47 	typedef ::cppu::ImplHelper2<
48 		::com::sun::star::accessibility::XAccessible,
49 		::com::sun::star::lang::XServiceInfo > AccessibleTabBarPage_BASE;
50 
51     class AccessibleTabBarPage :    public AccessibleTabBarBase,
52 									public AccessibleTabBarPage_BASE
53 	{
54 		friend class AccessibleTabBarPageList;
55 
56 	private:
57 		sal_uInt16				m_nPageId;
58 		sal_Bool				m_bEnabled;
59 		sal_Bool				m_bShowing;
60 		sal_Bool				m_bSelected;
61 		::rtl::OUString			m_sPageText;
62 
63 		::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >		m_xParent;
64 
65 	protected:
66 		sal_Bool				IsEnabled();
67 		sal_Bool				IsShowing();
68 		sal_Bool				IsSelected();
69 
70 		void					SetEnabled( sal_Bool bEnabled );
71 		void					SetShowing( sal_Bool bShowing );
72 		void					SetSelected( sal_Bool bSelected );
73 		void					SetPageText( const ::rtl::OUString& sPageText );
74 
GetPageId() const75 		sal_uInt16				GetPageId() const { return m_nPageId; }
76 
77 		virtual void			FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
78 
79 		// OCommonAccessibleComponent
80 		virtual ::com::sun::star::awt::Rectangle SAL_CALL	implGetBounds(  ) throw (::com::sun::star::uno::RuntimeException);
81 
82 		// XComponent
83 		virtual void SAL_CALL	disposing();
84 
85 	public:
86 		AccessibleTabBarPage( TabBar* pTabBar, sal_uInt16 nPageId,
87 							  const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent );
88 		virtual ~AccessibleTabBarPage();
89 
90 		// XInterface
91 		DECLARE_XINTERFACE()
92 
93 		// XTypeProvider
94 		DECLARE_XTYPEPROVIDER()
95 
96 		// XServiceInfo
97 		virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
98 		virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
99 		virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
100 
101 		// XAccessible
102 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException);
103 
104 		// XAccessibleContext
105 		virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
106 		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);
107 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
108 		virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
109 		virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
110 		virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
111 		virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
112 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
113 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
114 		virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
115 
116 		// XAccessibleComponent
117 		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);
118 		virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
119 		virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
120 		virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
121 
122 		// XAccessibleExtendedComponent
123 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont(	) throw (::com::sun::star::uno::RuntimeException);
124 		virtual ::rtl::OUString SAL_CALL getTitledBorderText(  ) throw (::com::sun::star::uno::RuntimeException);
125 		virtual ::rtl::OUString SAL_CALL getToolTipText(  ) throw (::com::sun::star::uno::RuntimeException);
126 	};
127 
128 //.........................................................................
129 }	// namespace accessibility
130 //.........................................................................
131 
132 #endif // ACCESSIBILITY_EXT_ACCESSIBLETABBARPAGE_HXX_
133 
134