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 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_accessibility.hxx"
30 #include <accessibility/standard/vclxaccessiblepopupmenu.hxx>
31 
32 #include <com/sun/star/accessibility/AccessibleRole.hpp>
33 #include <vcl/svapp.hxx>
34 
35 using namespace ::com::sun::star::accessibility;
36 using namespace ::com::sun::star::uno;
37 using namespace ::comphelper;
38 
39 
40 // -----------------------------------------------------------------------------
41 // class VCLXAccessiblePopupMenu
42 // -----------------------------------------------------------------------------
43 
44 VCLXAccessiblePopupMenu::VCLXAccessiblePopupMenu( Menu* pMenu )
45 	:OAccessibleMenuComponent( pMenu )
46 {
47 }
48 
49 // -----------------------------------------------------------------------------
50 
51 VCLXAccessiblePopupMenu::~VCLXAccessiblePopupMenu()
52 {
53 }
54 
55 // -----------------------------------------------------------------------------
56 
57 sal_Bool VCLXAccessiblePopupMenu::IsFocused()
58 {
59     return !IsChildHighlighted();
60 }
61 
62 // -----------------------------------------------------------------------------
63 // XServiceInfo
64 // -----------------------------------------------------------------------------
65 
66 ::rtl::OUString VCLXAccessiblePopupMenu::getImplementationName() throw (RuntimeException)
67 {
68 	return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessiblePopupMenu" );
69 }
70 
71 // -----------------------------------------------------------------------------
72 
73 Sequence< ::rtl::OUString > VCLXAccessiblePopupMenu::getSupportedServiceNames() throw (RuntimeException)
74 {
75 	Sequence< ::rtl::OUString > aNames(1);
76 	aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessiblePopupMenu" );
77 	return aNames;
78 }
79 
80 // -----------------------------------------------------------------------------
81 // XAccessibleContext
82 // -----------------------------------------------------------------------------
83 
84 sal_Int32 VCLXAccessiblePopupMenu::getAccessibleIndexInParent(  ) throw (RuntimeException)
85 {
86 	OExternalLockGuard aGuard( this );
87 
88     return 0;
89 }
90 
91 // -----------------------------------------------------------------------------
92 
93 sal_Int16 VCLXAccessiblePopupMenu::getAccessibleRole(  ) throw (RuntimeException)
94 {
95 	OExternalLockGuard aGuard( this );
96 
97 	return AccessibleRole::POPUP_MENU;
98 }
99 
100 // -----------------------------------------------------------------------------
101 // XAccessibleExtendedComponent
102 // -----------------------------------------------------------------------------
103 
104 sal_Int32 VCLXAccessiblePopupMenu::getBackground(  ) throw (RuntimeException)
105 {
106 	OExternalLockGuard aGuard( this );
107 
108 	return Application::GetSettings().GetStyleSettings().GetMenuColor().GetColor();
109 }
110 
111 // -----------------------------------------------------------------------------
112