Files
libreoffice/chart2/source/controller/inc/ObjectHierarchy.hxx

115 lines
3.7 KiB
C++
Raw Normal View History

2010-10-27 12:43:08 +01:00
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_CHART2_SOURCE_CONTROLLER_INC_OBJECTHIERARCHY_HXX
#define INCLUDED_CHART2_SOURCE_CONTROLLER_INC_OBJECTHIERARCHY_HXX
#include "ObjectIdentifier.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 ObjectIdentifier tOID;
typedef ::std::vector< tOID > 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,
CWS-TOOLING: integrate CWS chartuseability01 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
2009-09-11 16:06:18 +00:00
bool bFlattenDiagram = false,
bool bOrderingForElementSelector = false );
~ObjectHierarchy();
static tOID getRootNodeOID();
static bool isRootNode( const tOID& rOID );
/// equal to getChildren( getRootNodeOID())
tChildContainer getTopLevelChildren() const;
bool hasChildren( const tOID& rParent ) const;
tChildContainer getChildren( const tOID& rParent ) const;
tChildContainer getSiblings( const tOID& rNode ) const;
/// The result is empty, if the node cannot be found in the tree
tOID getParent( const tOID& rNode ) const;
/// @returns -1, if no parent can be determined
sal_Int32 getIndexInParent( const tOID& rNode ) const;
private:
::std::auto_ptr< impl::ImplObjectHierarchy > m_apImpl;
};
class ObjectKeyNavigation
{
public:
explicit ObjectKeyNavigation( const ObjectHierarchy::tOID & rCurrentOID,
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::tOID getCurrentSelection() const;
private:
void setCurrentSelection( const ObjectHierarchy::tOID& rOID );
bool first();
bool last();
bool next();
bool previous();
bool up();
bool down();
bool veryFirst();
bool veryLast();
ObjectHierarchy::tOID m_aCurrentOID;
::com::sun::star::uno::Reference<
::com::sun::star::chart2::XChartDocument > m_xChartDocument;
ExplicitValueProvider * m_pExplicitValueProvider;
bool m_bStepDownInDiagram;
};
} // namespace chart
// INCLUDED_CHART2_SOURCE_CONTROLLER_INC_OBJECTHIERARCHY_HXX
#endif
2010-10-27 12:43:08 +01:00
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */