xref: /trunk/main/basctl/source/inc/accessibledialogcontrolshape.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef _BASCTL_ACCESSIBLEDIALOGCONTROLSHAPE_HXX_
29 #define _BASCTL_ACCESSIBLEDIALOGCONTROLSHAPE_HXX_
30 
31 #include <com/sun/star/accessibility/XAccessible.hpp>
32 #include <com/sun/star/lang/XServiceInfo.hpp>
33 #include <com/sun/star/beans/XPropertyChangeListener.hpp>
34 #include <comphelper/accessiblecomponenthelper.hxx>
35 #include <cppuhelper/implbase3.hxx>
36 #include <com/sun/star/beans/XPropertySet.hpp>
37 
38 #include <vector>
39 
40 class Window;
41 class DialogWindow;
42 class DlgEdObj;
43 class VCLExternalSolarLock;
44 
45 namespace utl {
46 class AccessibleStateSetHelper;
47 }
48 
49 
50 //  ----------------------------------------------------
51 //  class AccessibleDialogControlShape
52 //  ----------------------------------------------------
53 
54 typedef ::comphelper::OAccessibleExtendedComponentHelper    AccessibleExtendedComponentHelper_BASE;
55 
56 typedef ::cppu::ImplHelper3<
57     ::com::sun::star::accessibility::XAccessible,
58     ::com::sun::star::lang::XServiceInfo,
59     ::com::sun::star::beans::XPropertyChangeListener > AccessibleDialogControlShape_BASE;
60 
61 class AccessibleDialogControlShape :    public AccessibleExtendedComponentHelper_BASE,
62                                         public AccessibleDialogControlShape_BASE
63 {
64     friend class AccessibleDialogWindow;
65 
66 private:
67     VCLExternalSolarLock*   m_pExternalLock;
68     DialogWindow*           m_pDialogWindow;
69     DlgEdObj*               m_pDlgEdObj;
70     sal_Bool                m_bFocused;
71     sal_Bool                m_bSelected;
72 
73     ::com::sun::star::awt::Rectangle                                            m_aBounds;
74     ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >   m_xControlModel;
75 
76 protected:
77     sal_Bool                IsFocused();
78     sal_Bool                IsSelected();
79 
80     void                    SetFocused( sal_Bool bFocused );
81     void                    SetSelected( sal_Bool bSelected );
82 
83     ::com::sun::star::awt::Rectangle GetBounds();
84     void                    SetBounds( const ::com::sun::star::awt::Rectangle& aBounds );
85 
86     Window*                 GetWindow() const;
87 
88     ::rtl::OUString         GetModelStringProperty( const sal_Char* pPropertyName );
89 
90     virtual void            FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
91 
92     // OCommonAccessibleComponent
93     virtual ::com::sun::star::awt::Rectangle SAL_CALL   implGetBounds(  ) throw (::com::sun::star::uno::RuntimeException);
94 
95     // XComponent
96     virtual void SAL_CALL   disposing();
97 
98 public:
99     AccessibleDialogControlShape( DialogWindow* pDialogWindow, DlgEdObj* pDlgEdObj );
100     virtual ~AccessibleDialogControlShape();
101 
102     // XInterface
103     DECLARE_XINTERFACE()
104 
105     // XTypeProvider
106     DECLARE_XTYPEPROVIDER()
107 
108     // XEventListener
109     virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& rSource ) throw (::com::sun::star::uno::RuntimeException);
110 
111     // XPropertyChangeListener
112     virtual void SAL_CALL propertyChange( const ::com::sun::star::beans::PropertyChangeEvent& rEvent ) throw (::com::sun::star::uno::RuntimeException);
113 
114     // XServiceInfo
115     virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
116     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
117     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
118 
119     // XAccessible
120     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException);
121 
122     // XAccessibleContext
123     virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
124     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);
125     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
126     virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
127     virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
128     virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
129     virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
130     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
131     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
132     virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
133 
134     // XAccessibleComponent
135     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);
136     virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
137     virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
138     virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
139 
140     // XAccessibleExtendedComponent
141     virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont(  ) throw (::com::sun::star::uno::RuntimeException);
142     virtual ::rtl::OUString SAL_CALL getTitledBorderText(  ) throw (::com::sun::star::uno::RuntimeException);
143     virtual ::rtl::OUString SAL_CALL getToolTipText(  ) throw (::com::sun::star::uno::RuntimeException);
144 };
145 
146 
147 #endif // _BASCTL_ACCESSIBLEDIALOGCONTROLSHAPE_HXX_
148