2009-09-07 17:26:44 +0200 iha r275906 : CWS-TOOLING: rebase CWS chartuseability01 to trunk@275801 (milestone: DEV300:m57) 2009-08-27 13:48:16 +0200 iha r275481 : #7049# listbox to select chart elements 2009-08-27 11:54:53 +0200 iha r275464 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-26 16:49:58 +0200 iha r275435 : #i102820# added missing case 'floor' 2009-08-26 15:33:51 +0200 iha r275427 : #i102820# make 'insert legend' work properly 2009-08-25 16:35:00 +0200 ufi r275369 : i104087 2009-08-25 15:12:17 +0200 iha r275360 : #i104087# 'Object Properties' -> 'Format Selection' 2009-08-25 15:11:31 +0200 iha r275359 : #i104087# 'Object Properties' -> 'Format Selection' 2009-08-25 15:11:15 +0200 iha r275358 : #i104087# 'Object Properties' -> 'Format Selection' 2009-08-25 11:57:43 +0200 iha r275344 : #i104087# changed behavior of insert menu 2009-08-18 12:53:54 +0200 oc r275093 : #i104082,104086,104089# multiple changes because of changed chartUI 2009-08-10 16:46:17 +0200 ufi r274824 : i104083 i104087 i104090 2009-08-07 14:04:34 +0200 iha r274763 : #7049# listbox to select chart elements 2009-08-07 13:06:05 +0200 iha r274760 : #7049# listbox to select chart elements 2009-08-07 13:05:06 +0200 iha r274759 : #7049# listbox to select chart elements 2009-08-07 12:32:31 +0200 iha r274756 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-07 12:31:54 +0200 iha r274755 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-06 19:00:48 +0200 iha r274742 : #i103593# make insert menu behavior selection dependent 2009-08-06 19:00:14 +0200 iha r274741 : #i103593# make insert menu behavior selection dependent 2009-08-06 15:34:01 +0200 iha r274731 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-06 14:39:20 +0200 iha r274728 : #i86146# ease adding R-squared value with an equation 2009-08-06 14:37:02 +0200 iha r274727 : #i86146# ease adding R-squared value with an equation 2009-08-06 13:37:54 +0200 iha r274724 : #i86146# ease adding R-squared value with an equation 2009-08-06 13:37:15 +0200 iha r274723 : #i86146# ease adding R-squared value with an equation 2009-08-06 13:04:27 +0200 iha r274722 : #i103593# make insert menu behavior selection dependent 2009-08-06 13:03:35 +0200 iha r274721 : #i103593# make insert menu behavior selection dependent 2009-08-05 18:26:31 +0200 iha r274693 : #i104033# inconsistent wording 'error indicator' <-> 'error bar' 2009-08-05 16:51:45 +0200 iha r274688 : #i104028# rename font tabpage 'Characters'->'Font' 2009-08-05 16:30:21 +0200 iha r274685 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-05 15:34:11 +0200 iha r274680 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-05 15:32:43 +0200 iha r274679 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-05 15:31:26 +0200 iha r274678 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-05 15:17:51 +0200 iha r274676 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-05 15:16:22 +0200 iha r274675 : #i58163# #i69422# #i102820# enhance chart context menu 2009-08-05 14:58:59 +0200 iha r274674 : #7049# listbox to select chart elements 2009-08-05 14:33:54 +0200 iha r274669 : #7049# listbox to select chart elements 2009-08-05 14:22:17 +0200 iha r274665 : #7049# listbox to select chart elements 2009-08-05 13:21:05 +0200 iha r274656 : #i102820# offer insertion of several elements in context menu also if nothing is selected 2009-08-05 11:56:06 +0200 iha r274647 : #7049# listbox to select chart elements 2009-08-05 11:43:40 +0200 iha r274645 : #7049# listbox to select chart elements 2009-07-24 19:46:50 +0200 iha r274318 : #i58163# #i69422# #i102820# enhance chart context menu 2009-07-24 16:23:13 +0200 iha r274313 : #i58163# #i69422# #i102820# enhance chart context menu 2009-07-24 16:13:22 +0200 iha r274311 : #i58163# #i69422# #i102820# enhance chart context menu
122 lines
3.8 KiB
C++
122 lines
3.8 KiB
C++
/*************************************************************************
|
|
*
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* Copyright 2008 by Sun Microsystems, Inc.
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* $RCSfile: ObjectHierarchy.hxx,v $
|
|
* $Revision: 1.3 $
|
|
*
|
|
* This file is part of OpenOffice.org.
|
|
*
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
* only, as published by the Free Software Foundation.
|
|
*
|
|
* OpenOffice.org 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 version 3 for more details
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
* <http://www.openoffice.org/license.html>
|
|
* for a copy of the LGPLv3 License.
|
|
*
|
|
************************************************************************/
|
|
#ifndef CHART2_OBJECTHIERARCHY_HXX
|
|
#define CHART2_OBJECTHIERARCHY_HXX
|
|
|
|
#include <rtl/ustring.hxx>
|
|
#include <com/sun/star/chart2/XChartDocument.hpp>
|
|
#include <com/sun/star/awt/KeyEvent.hpp>
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
namespace chart
|
|
{
|
|
|
|
class ExplicitValueProvider;
|
|
|
|
namespace impl
|
|
{
|
|
class ImplObjectHierarchy;
|
|
}
|
|
|
|
class ObjectHierarchy
|
|
{
|
|
public:
|
|
typedef ::rtl::OUString tCID;
|
|
typedef ::std::vector< tCID > tChildContainer;
|
|
|
|
/** @param bFlattenDiagram
|
|
If <TRUE/>, the content of the diaram (data series, wall, floor,
|
|
etc.) is treated as being at the same level as the diagram. (This is
|
|
used for keyboard navigation).
|
|
*/
|
|
explicit ObjectHierarchy(
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::chart2::XChartDocument > & xChartDocument,
|
|
ExplicitValueProvider * pExplicitValueProvider = 0,
|
|
bool bFlattenDiagram = false,
|
|
bool bOrderingForElementSelector = false );
|
|
~ObjectHierarchy();
|
|
|
|
static tCID getRootNodeCID();
|
|
static bool isRootNode( const tCID & rCID );
|
|
|
|
/// equal to getChildren( getRootNodeCID())
|
|
tChildContainer getTopLevelChildren() const;
|
|
bool hasChildren( const tCID & rParent ) const;
|
|
tChildContainer getChildren( const tCID & rParent ) const;
|
|
|
|
tChildContainer getSiblings( const tCID & rNode ) const;
|
|
|
|
/// The result is empty, if the node cannot be found in the tree
|
|
tCID getParent( const tCID & rNode ) const;
|
|
/// @returns -1, if no parent can be determined
|
|
sal_Int32 getIndexInParent( const tCID & rNode ) const;
|
|
|
|
private:
|
|
|
|
::std::auto_ptr< impl::ImplObjectHierarchy > m_apImpl;
|
|
};
|
|
|
|
class ObjectKeyNavigation
|
|
{
|
|
public:
|
|
explicit ObjectKeyNavigation( const ObjectHierarchy::tCID & rCurrentCID,
|
|
const ::com::sun::star::uno::Reference<
|
|
::com::sun::star::chart2::XChartDocument > & xChartDocument,
|
|
ExplicitValueProvider * pExplicitValueProvider = 0 );
|
|
|
|
bool handleKeyEvent( const ::com::sun::star::awt::KeyEvent & rEvent );
|
|
ObjectHierarchy::tCID getCurrentSelection() const;
|
|
|
|
private:
|
|
void setCurrentSelection( const ObjectHierarchy::tCID & rCID );
|
|
bool first();
|
|
bool last();
|
|
bool next();
|
|
bool previous();
|
|
bool up();
|
|
bool down();
|
|
bool veryFirst();
|
|
bool veryLast();
|
|
|
|
ObjectHierarchy::tCID m_aCurrentCID;
|
|
::com::sun::star::uno::Reference<
|
|
::com::sun::star::chart2::XChartDocument > m_xChartDocument;
|
|
ExplicitValueProvider * m_pExplicitValueProvider;
|
|
bool m_bStepDownInDiagram;
|
|
};
|
|
|
|
} // namespace chart
|
|
|
|
// CHART2_OBJECTHIERARCHY_HXX
|
|
#endif
|