diff options
author | Ocke Janssen <oj@openoffice.org> | 2002-04-09 06:23:58 +0000 |
---|---|---|
committer | Ocke Janssen <oj@openoffice.org> | 2002-04-09 06:23:58 +0000 |
commit | ba683899affb61651406ce429c86f5ce408aa8fa (patch) | |
tree | cf096932a256fafc3d10346f94c52e3b23494771 /svtools | |
parent | fe158dd5e80cf39337ca21ddc10c6fec08e4bb47 (diff) |
#98286# new impl for BrowseBox
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/brwbox/brwimpl.hxx | 114 | ||||
-rw-r--r-- | svtools/source/brwbox/editbrowsebox2.cxx | 113 |
2 files changed, 227 insertions, 0 deletions
diff --git a/svtools/source/brwbox/brwimpl.hxx b/svtools/source/brwbox/brwimpl.hxx new file mode 100644 index 000000000000..881a992e4d1c --- /dev/null +++ b/svtools/source/brwbox/brwimpl.hxx @@ -0,0 +1,114 @@ +/************************************************************************* + * + * $RCSfile: brwimpl.hxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: oj $ $Date: 2002-04-09 07:23:51 $ + * + * 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 _SVTOOLS_BRWIMPL_HXX +#define _SVTOOLS_BRWIMPL_HXX + +#ifndef _SVTOOLS_ACCESSIBLEBROWSEBOX_HXX +#include "AccessibleBrowseBox.hxx" +#endif +#ifndef _SVTOOLS_ACCESSIBLEBROWSEBOXHEADERCELL_HXX +#include "AccessibleBrowseBoxHeaderCell.hxx" +#endif +#include <map> +#include <functional> + +namespace svt +{ + class BrowseBoxImpl + { + // member + public: + typedef ::std::map< sal_Int32,AccessibleBrowseBoxHeaderCell*> THeaderCellMap; + struct THeaderCellMapFunctorDispose : ::std::unary_function<THeaderCellMap::value_type,void> + { + inline void operator()(const THeaderCellMap::value_type& _aType) + { + _aType.second->dispose(); + } + }; + + AccessibleBrowseBox* m_pAccessible; + THeaderCellMap m_aColHeaderCellMap; + THeaderCellMap m_aRowHeaderCellMap; + public: + BrowseBoxImpl() : m_pAccessible(NULL) + { + } + + + /** commitTableEvent commit the event at all listeners of the table + @param nEventId + the event id + @param rNewValue + the new value + @param rOldValue + the old value + */ + inline void commitTableEvent(sal_Int16 nEventId, + const ::com::sun::star::uno::Any& rNewValue, + const ::com::sun::star::uno::Any& rOldValue) + { + m_pAccessible->commitTableEvent(nEventId,rNewValue,rOldValue); + } + }; +} + +#endif // _SVTOOLS_BRWIMPL_HXX diff --git a/svtools/source/brwbox/editbrowsebox2.cxx b/svtools/source/brwbox/editbrowsebox2.cxx new file mode 100644 index 000000000000..7d466a776d0c --- /dev/null +++ b/svtools/source/brwbox/editbrowsebox2.cxx @@ -0,0 +1,113 @@ +/************************************************************************* + * + * $RCSfile: editbrowsebox2.cxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: oj $ $Date: 2002-04-09 07:23:58 $ + * + * 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 _SVTOOLS_EDITBROWSEBOX_HXX_ +#include "editbrowsebox.hxx" +#endif +#ifndef _DRAFTS_COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_HPP_ +#include <drafts/com/sun/star/accessibility/XAccessible.hpp> +#endif + +namespace svt +{ + using namespace drafts::com::sun::star::accessibility; + using namespace com::sun::star::uno; + +// ----------------------------------------------------------------------------- +Reference< XAccessible > EditBrowseBox::CreateAccessibleCell( sal_Int32 nRow, sal_uInt16 nColumnId ) +{ + Reference< XAccessible > xRet; + if ( nRow == GetCurRow() && IsEditing() ) + { + //! TODO need extra class which handles the controller as a child + CellController* pController = GetController(nRow, nColumnId); + if ( pController ) + xRet = pController->GetWindow().GetAccessible(); + } + else + xRet = BrowseBox::CreateAccessibleCell( nRow, nColumnId ); + return xRet; +} +// ----------------------------------------------------------------------------- +sal_Int32 EditBrowseBox::GetAccessibleControlCount() const +{ + return GetRowCount() * (ColCount()-1); +} +// ----------------------------------------------------------------------------- + +Reference< XAccessible > EditBrowseBox::CreateAccessibleControl( sal_Int32 _nIndex ) +{ + sal_uInt16 nColCount = ColCount()-1; + sal_uInt16 nColID = _nIndex % nColCount; + sal_Int32 nRow = _nIndex / nColCount; + + return CreateAccessibleCell(nRow, nColID+1); +} +// ----------------------------------------------------------------------------- +Reference<XAccessible > EditBrowseBox::CreateAccessibleRowHeader( sal_Int32 _nRow ) +{ + return BrowseBox::CreateAccessibleRowHeader( _nRow ); +} +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +} // namespace svt +// ----------------------------------------------------------------------------- + + |