diff options
author | Michael Brauer <mib@openoffice.org> | 2002-02-27 08:30:44 +0000 |
---|---|---|
committer | Michael Brauer <mib@openoffice.org> | 2002-02-27 08:30:44 +0000 |
commit | 4b86a5896ebb982bd0114f7b2a83669f178ce7cf (patch) | |
tree | acf0865c48691ded4bb16af66a09095953ba38d0 /sw/source/core | |
parent | 401a46d3a4d04583c03d080e0bbecbcf51a86775 (diff) |
Header/Footer
Diffstat (limited to 'sw/source/core')
-rw-r--r-- | sw/source/core/access/accheaderfooter.cxx | 200 | ||||
-rw-r--r-- | sw/source/core/access/accheaderfooter.hxx | 124 |
2 files changed, 324 insertions, 0 deletions
diff --git a/sw/source/core/access/accheaderfooter.cxx b/sw/source/core/access/accheaderfooter.cxx new file mode 100644 index 000000000000..c05e0ed78a95 --- /dev/null +++ b/sw/source/core/access/accheaderfooter.cxx @@ -0,0 +1,200 @@ + /************************************************************************* + * + * $RCSfile: accheaderfooter.cxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: mib $ $Date: 2002-02-27 09:30:30 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifdef PRECOMPILED +#include "core_pch.hxx" +#endif + +#pragma hdrstop + +#ifndef _VOS_MUTEX_HXX_ //autogen +#include <vos/mutex.hxx> +#endif + +#ifndef _DRAFTS_COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLEROLE_HPP_ +#include <drafts/com/sun/star/accessibility/AccessibleRole.hpp> +#endif +#ifndef _DRAFTS_COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLESTATETYPE_HPP_ +#include <drafts/com/sun/star/accessibility/AccessibleStateType.hpp> +#endif + +#ifndef _UTL_ACCESSIBLESTATESETHELPER_HXX_ +#include <unotools/accessiblestatesethelper.hxx> +#endif +#ifndef _COM_SUN_STAR_UNO_RUNTIMEEXCEPTION_HPP_ +#include <com/sun/star/uno/RuntimeException.hpp> +#endif +#ifndef _SV_SVAPP_HXX //autogen +#include <vcl/svapp.hxx> +#endif +#ifndef _HFFRM_HXX +#include <hffrm.hxx> +#endif +#ifndef _PAGEFRM_HXX +#include <pagefrm.hxx> +#endif +#ifndef _PAGEDESC_HXX +#include <pagedesc.hxx> +#endif + +#ifndef _FLDBAS_HXX +#include <fldbas.hxx> +#endif +#ifndef _ACCHEADERFOOTER_HXX +#include "accheaderfooter.hxx" +#endif +#ifndef _ACCESS_HRC +#include "access.hrc" +#endif + +using namespace ::com::sun::star::lang; +using namespace ::com::sun::star::uno; +using namespace ::drafts::com::sun::star::accessibility; +using namespace ::rtl; + +const sal_Char sServiceNameHeader[] = "com.sun.star.text.AccessibleHeaderView"; +const sal_Char sServiceNameFooter[] = "com.sun.star.text.AccessibleFooterView"; +const sal_Char sImplementationName[] = "SwAccessibleHeaderFooter"; + +void SwAccessibleHeaderFooter::SetStates( + ::utl::AccessibleStateSetHelper& rStateSet ) +{ + SwAccessibleContext::SetStates( rStateSet ); + + // MULTISELECTABLE + rStateSet.AddState( AccessibleStateType::MULTISELECTABLE ); +} + +SwAccessibleHeaderFooter::SwAccessibleHeaderFooter( + SwAccessibleMap *pMap, + const SwHeaderFrm *pHdFrm ) : + SwAccessibleContext( pMap, AccessibleRole::HEADER, pHdFrm ) +{ + vos::OGuard aGuard(Application::GetSolarMutex()); + + OUString sArg( OUString::valueOf( (sal_Int32)pHdFrm->GetPhyPageNum() ) ); + SetName( GetResource( STR_ACCESS_HEADER_NAME, &sArg ) ); +} + +SwAccessibleHeaderFooter::SwAccessibleHeaderFooter( + SwAccessibleMap *pMap, + const SwFooterFrm *pFtFrm ) : + SwAccessibleContext( pMap, AccessibleRole::FOOTER, pFtFrm ) +{ + vos::OGuard aGuard(Application::GetSolarMutex()); + + OUString sArg( OUString::valueOf( (sal_Int32)pFtFrm->GetPhyPageNum() ) ); + SetName( GetResource( STR_ACCESS_FOOTER_NAME, &sArg ) ); +} + +SwAccessibleHeaderFooter::~SwAccessibleHeaderFooter() +{ +} + +OUString SAL_CALL SwAccessibleHeaderFooter::getAccessibleDescription (void) + throw (::com::sun::star::uno::RuntimeException) +{ + vos::OGuard aGuard(Application::GetSolarMutex()); + + CHECK_FOR_DEFUNC( XAccessibleContext ) + + sal_uInt16 nResId = AccessibleRole::HEADER == GetRole() + ? STR_ACCESS_HEADER_DESC + : STR_ACCESS_FOOTER_DESC ; + sal_uInt16 nPageNum = GetFrm()->GetVirtPageNum(); + sal_uInt32 nFmt = GetFrm()->FindPageFrm()->GetPageDesc() + ->GetNumType().GetNumberingType(); + if( SVX_NUM_NUMBER_NONE == nFmt ) + nFmt = SVX_NUM_ARABIC; + + OUString sArg( FormatNumber( nPageNum, nFmt ) ); + + return GetResource( nResId, &sArg ); +} + +OUString SAL_CALL SwAccessibleHeaderFooter::getImplementationName() + throw( RuntimeException ) +{ + return OUString(RTL_CONSTASCII_USTRINGPARAM(sImplementationName)); +} + +sal_Bool SAL_CALL SwAccessibleHeaderFooter::supportsService( + const ::rtl::OUString& sTestServiceName) + throw (::com::sun::star::uno::RuntimeException) +{ + if( AccessibleRole::HEADER == GetRole() ) + return sTestServiceName.equalsAsciiL( sServiceNameHeader, sizeof(sServiceNameHeader)-1 ); + else + return sTestServiceName.equalsAsciiL( sServiceNameFooter, sizeof(sServiceNameFooter)-1 ); + +} + +Sequence< OUString > SAL_CALL SwAccessibleHeaderFooter::getSupportedServiceNames() + throw( ::com::sun::star::uno::RuntimeException ) +{ + Sequence< OUString > aRet(1); + OUString* pArray = aRet.getArray(); + if( AccessibleRole::HEADER == GetRole() ) + pArray[0] = OUString( RTL_CONSTASCII_USTRINGPARAM(sServiceNameHeader) ); + else + pArray[0] = OUString( RTL_CONSTASCII_USTRINGPARAM(sServiceNameFooter) ); + return aRet; +} diff --git a/sw/source/core/access/accheaderfooter.hxx b/sw/source/core/access/accheaderfooter.hxx new file mode 100644 index 000000000000..5592ebc8efac --- /dev/null +++ b/sw/source/core/access/accheaderfooter.hxx @@ -0,0 +1,124 @@ +/************************************************************************* + * + * $RCSfile: accheaderfooter.hxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: mib $ $Date: 2002-02-27 09:30:44 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _ACCHEADERFOOTER_HXX +#define _ACCHEADERFOOTER_HXX + +#ifndef _ACCCONTEXT_HXX +#include "acccontext.hxx" +#endif + +#ifndef _COM_SUN_STAR_UNO_RUNTIMEEXCEPTION_HPP_ +#include <com/sun/star/uno/RuntimeException.hpp> +#endif + +class SwHeaderFrm; +class SwFooterFrm; + +class SwAccessibleHeaderFooter : public SwAccessibleContext +{ + +protected: + + // Set states for getAccessibleStateSet. + // This drived class additinaly sets MULTISELECTABLE(1) + virtual void SetStates( ::utl::AccessibleStateSetHelper& rStateSet ); + +public: + + SwAccessibleHeaderFooter( SwAccessibleMap *pMap, + const SwHeaderFrm *pHdFrm ); + SwAccessibleHeaderFooter( SwAccessibleMap *pMap, + const SwFooterFrm *pFtFrm ); + virtual ~SwAccessibleHeaderFooter(); + + + //===== XAccessibleContext ============================================== + + /// Return this object's description. + virtual ::rtl::OUString SAL_CALL + getAccessibleDescription (void) + throw (com::sun::star::uno::RuntimeException); + + //===== XServiceInfo ==================================================== + + /** Returns an identifier for the implementation of this object. + */ + virtual ::rtl::OUString SAL_CALL + getImplementationName (void) + throw (::com::sun::star::uno::RuntimeException); + + /** Return whether the specified service is supported by this class. + */ + virtual sal_Bool SAL_CALL + supportsService (const ::rtl::OUString& sServiceName) + throw (::com::sun::star::uno::RuntimeException); + + /** Returns a list of all supported services. In this case that is just + the AccessibleContext service. + */ + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL + getSupportedServiceNames (void) + throw (::com::sun::star::uno::RuntimeException); +}; + + +#endif + |