15fdc4257SSteve Yin /************************************************************************* 25fdc4257SSteve Yin * 35fdc4257SSteve Yin * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 45fdc4257SSteve Yin * 55fdc4257SSteve Yin * Copyright IBM Corporation 2010. 65fdc4257SSteve Yin * Copyright 2000, 2010 Oracle and/or its affiliates. 75fdc4257SSteve Yin * 85fdc4257SSteve Yin * OpenOffice.org - a multi-platform office productivity suite 95fdc4257SSteve Yin * 105fdc4257SSteve Yin * This file is part of OpenOffice.org. 115fdc4257SSteve Yin * 125fdc4257SSteve Yin * OpenOffice.org is free software: you can redistribute it and/or modify 135fdc4257SSteve Yin * it under the terms of the GNU Lesser General Public License version 3 145fdc4257SSteve Yin * only, as published by the Free Software Foundation. 155fdc4257SSteve Yin * 165fdc4257SSteve Yin * OpenOffice.org is distributed in the hope that it will be useful, 175fdc4257SSteve Yin * but WITHOUT ANY WARRANTY; without even the implied warranty of 185fdc4257SSteve Yin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 195fdc4257SSteve Yin * GNU Lesser General Public License version 3 for more details 205fdc4257SSteve Yin * (a copy is included in the LICENSE file that accompanied this code). 215fdc4257SSteve Yin * 225fdc4257SSteve Yin * You should have received a copy of the GNU Lesser General Public License 235fdc4257SSteve Yin * version 3 along with OpenOffice.org. If not, see 245fdc4257SSteve Yin * <http://www.openoffice.org/license.html> 255fdc4257SSteve Yin * for a copy of the LGPLv3 License. 265fdc4257SSteve Yin * 275fdc4257SSteve Yin ************************************************************************/ 285fdc4257SSteve Yin 295fdc4257SSteve Yin ////////////////////////////////////////////////////////////////////// 305fdc4257SSteve Yin // AccActionBase.h: interface for the CAccActionBase class. 315fdc4257SSteve Yin ////////////////////////////////////////////////////////////////////// 325fdc4257SSteve Yin 335fdc4257SSteve Yin #if !defined(AFX_ACCACTIONBASE_H__F87FAD24_D66E_4D22_9B24_3304A303DC84__INCLUDED_) 345fdc4257SSteve Yin #define AFX_ACCACTIONBASE_H__F87FAD24_D66E_4D22_9B24_3304A303DC84__INCLUDED_ 355fdc4257SSteve Yin 365fdc4257SSteve Yin #if _MSC_VER > 1000 375fdc4257SSteve Yin #pragma once 385fdc4257SSteve Yin #endif // _MSC_VER > 1000 395fdc4257SSteve Yin 405fdc4257SSteve Yin #define WNT 415fdc4257SSteve Yin 425fdc4257SSteve Yin #include <com/sun/star/uno/reference.hxx> 435fdc4257SSteve Yin #include <com/sun/star/accessibility/XAccessibleAction.hpp> 445fdc4257SSteve Yin #include "UNOXWrapper.h" 455fdc4257SSteve Yin 465fdc4257SSteve Yin class ATL_NO_VTABLE CAccActionBase : public CUNOXWrapper 475fdc4257SSteve Yin { 485fdc4257SSteve Yin public: 495fdc4257SSteve Yin CAccActionBase(); 505fdc4257SSteve Yin virtual ~CAccActionBase(); 515fdc4257SSteve Yin 525fdc4257SSteve Yin // IAccessibleAction 535fdc4257SSteve Yin public: 545fdc4257SSteve Yin // IAccessibleAction 555fdc4257SSteve Yin 565fdc4257SSteve Yin // Returns the number of action. 575fdc4257SSteve Yin STDMETHOD(nActions)(/*[out,retval]*/long* nActions); 585fdc4257SSteve Yin 595fdc4257SSteve Yin // Performs specified action on the object. 605fdc4257SSteve Yin STDMETHOD(doAction)(/* [in] */ long actionIndex); 615fdc4257SSteve Yin 625fdc4257SSteve Yin // Gets description of specified action. 635fdc4257SSteve Yin STDMETHOD(get_description)(long actionIndex,BSTR __RPC_FAR *description); 645fdc4257SSteve Yin 65*6fa810f3SSteve Yin // added , 2006/06/28, for driver 07/11 665fdc4257SSteve Yin // get the action name 675fdc4257SSteve Yin STDMETHOD(get_name)( long actionIndex, BSTR __RPC_FAR *name); 685fdc4257SSteve Yin 695fdc4257SSteve Yin // get the localized action Name 705fdc4257SSteve Yin STDMETHOD(get_localizedName)( long actionIndex, BSTR __RPC_FAR *localizedName); 715fdc4257SSteve Yin 725fdc4257SSteve Yin // Returns key binding object (if any) associated with specified action 735fdc4257SSteve Yin // key binding is string. 745fdc4257SSteve Yin // e.g. "alt+d" (like IAccessible::get_accKeyboardShortcut). 755fdc4257SSteve Yin STDMETHOD(get_keyBinding)( 765fdc4257SSteve Yin /* [in] */ long actionIndex, 775fdc4257SSteve Yin /* [in] */ long nMaxBinding, 785fdc4257SSteve Yin /* [length_is][length_is][size_is][size_is][out] */ BSTR __RPC_FAR *__RPC_FAR *keyBinding, 795fdc4257SSteve Yin /* [retval][out] */ long __RPC_FAR *nBinding); 805fdc4257SSteve Yin 815fdc4257SSteve Yin // Overide of IUNOXWrapper. 825fdc4257SSteve Yin STDMETHOD(put_XInterface)(long pXInterface); 835fdc4257SSteve Yin 845fdc4257SSteve Yin static void GetkeyBindingStrByXkeyBinding( const com::sun::star::uno::Sequence< com::sun::star::awt::KeyStroke > &keySet, OLECHAR* pString ); 855fdc4257SSteve Yin 865fdc4257SSteve Yin protected: 875fdc4257SSteve Yin 885fdc4257SSteve Yin static OLECHAR* getOLECHARFromKeyCode(long key); 895fdc4257SSteve Yin 905fdc4257SSteve Yin com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleAction> pRXAct; 915fdc4257SSteve Yin 925fdc4257SSteve Yin private: 935fdc4257SSteve Yin inline com::sun::star::accessibility::XAccessibleAction* GetXInterface() 945fdc4257SSteve Yin { 955fdc4257SSteve Yin return pRXAct.get(); 965fdc4257SSteve Yin } 975fdc4257SSteve Yin }; 985fdc4257SSteve Yin 995fdc4257SSteve Yin #endif // !defined(AFX_ACCACTIONBASE_H__F87FAD24_D66E_4D22_9B24_3304A303DC84__INCLUDED_) 100