blob: 50ad3f01fb62ac4bbebda25e8d535b6a0b5d9505 [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef _CHART_CONTROLLER_HXX
#define _CHART_CONTROLLER_HXX
#include "LifeTime.hxx"
#include "ServiceMacros.hxx"
#include "CommandDispatchContainer.hxx"
#include "SelectionHelper.hxx"
// header for enum SdrDragMode
#include <svx/svdtypes.hxx>
// header for class Timer
#include <vcl/timer.hxx>
// header for class MouseEvent
#include <vcl/event.hxx>
#include <cppuhelper/implbase12.hxx>
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/document/XUndoManager.hpp>
#include <com/sun/star/frame/XController.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/view/XSelectionSupplier.hpp>
#include <com/sun/star/ui/XContextMenuInterception.hpp>
#include <com/sun/star/uno/XWeak.hpp>
#include <com/sun/star/util/XCloseListener.hpp>
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/util/XModifyListener.hpp>
#include <com/sun/star/util/XModeChangeListener.hpp>
#include <com/sun/star/awt/Point.hpp>
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/util/XURLTransformer.hpp>
#include <com/sun/star/frame/XLayoutManagerListener.hpp>
#include <com/sun/star/frame/XLayoutManagerEventBroadcaster.hpp>
#include <memory>
#include <boost/shared_ptr.hpp>
#include <set>
class SdrModel;
namespace svt
{
class AcceleratorExecute;
}
class DropTargetHelper;
namespace com { namespace sun { namespace star {
namespace graphic {
class XGraphic;
}
}}}
//.............................................................................
namespace chart
{
//.............................................................................
class UndoGuard;
enum ChartDrawMode { CHARTDRAW_INSERT, CHARTDRAW_SELECT };
class WindowController
{
public:
virtual ~WindowController() {};
virtual void PrePaint()=0;
virtual void execute_Paint( const Rectangle& rRect )=0;
virtual void execute_MouseButtonDown( const MouseEvent& rMEvt )=0;
virtual void execute_MouseMove( const MouseEvent& rMEvt )=0;
virtual void execute_Tracking( const TrackingEvent& rTEvt )=0;
virtual void execute_MouseButtonUp( const MouseEvent& rMEvt )=0;
virtual void execute_Resize()=0;
virtual void execute_Activate()=0;
virtual void execute_Deactivate()=0;
virtual void execute_GetFocus()=0;
virtual void execute_LoseFocus()=0;
virtual void execute_Command( const CommandEvent& rCEvt )=0;
virtual bool execute_KeyInput( const KeyEvent& rKEvt )=0;
/** get help text to be shown in a quick help
@param aAtLogicPosition the position in logic coordinates (of the
window) of the mouse cursor to determine for
which object help is requested.
@param bIsBalloonHelp determines whether to return the long text version
(balloon help) or the shorter one (quick help).
@param rOutQuickHelpText is filled with the quick help text
@param rOutEqualRect is filled with a rectangle that denotes the region
in which the quick help does not change.
@return </sal_True>, if a quick help should be shown.
*/
virtual bool requestQuickHelp(
::Point aAtLogicPosition, bool bIsBalloonHelp,
::rtl::OUString & rOutQuickHelpText, ::com::sun::star::awt::Rectangle & rOutEqualRect ) = 0;
virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible() = 0;
};
class ChartWindow;
class DrawModelWrapper;
class DrawViewWrapper;
class ViewElementListProvider;
class ReferenceSizeProvider;
class ChartController : public ::cppu::WeakImplHelper12 <
::com::sun::star::frame::XController //comprehends XComponent (required interface)
,::com::sun::star::frame::XDispatchProvider //(required interface)
,::com::sun::star::view::XSelectionSupplier //(optional interface)
,::com::sun::star::ui::XContextMenuInterception //(optional interface)
,::com::sun::star::util::XCloseListener //(needed for communication with XModel)
,::com::sun::star::lang::XServiceInfo
// ,public ::com::sun::star::uno::XWeak // implemented by WeakImplHelper(optional interface)
// ,public ::com::sun::star::uno::XInterface // implemented by WeakImplHelper(optional interface)
// ,public ::com::sun::star::lang::XTypeProvider // implemented by WeakImplHelper
,::com::sun::star::frame::XDispatch
,::com::sun::star::awt::XWindow //this is the Window Controller part of this Controller, that will be given to a Frame via setComponent
,::com::sun::star::lang::XMultiServiceFactory
,::com::sun::star::util::XModifyListener
,::com::sun::star::util::XModeChangeListener
,::com::sun::star::frame::XLayoutManagerListener
>
, public WindowController
{
friend class DrawCommandDispatch;
friend class ShapeController;
public:
//no default constructor
ChartController(::com::sun::star::uno::Reference<
::com::sun::star::uno::XComponentContext > const & xContext);
virtual ~ChartController();
//-----------------------------------------------------------------
// ::com::sun::star::lang::XServiceInfo
//-----------------------------------------------------------------
APPHELPER_XSERVICEINFO_DECL()
APPHELPER_SERVICE_FACTORY_HELPER(ChartController)
//-----------------------------------------------------------------
// ::com::sun::star::frame::XController (required interface)
//-----------------------------------------------------------------
virtual void SAL_CALL
attachFrame( const ::com::sun::star::uno::Reference<
::com::sun::star::frame::XFrame > & xFrame )
throw (::com::sun::star::uno::RuntimeException);
virtual sal_Bool SAL_CALL
attachModel( const ::com::sun::star::uno::Reference<
::com::sun::star::frame::XModel > & xModel )
throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > SAL_CALL
getFrame() throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > SAL_CALL
getModel() throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Any SAL_CALL
getViewData() throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
restoreViewData( const ::com::sun::star::uno::Any& rValue )
throw (::com::sun::star::uno::RuntimeException);
virtual sal_Bool SAL_CALL
suspend( sal_Bool bSuspend )
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::lang::XComponent (base of XController)
//-----------------------------------------------------------------
virtual void SAL_CALL
dispose() throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
addEventListener( const ::com::sun::star::uno::Reference<
::com::sun::star::lang::XEventListener > & xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
removeEventListener( const ::com::sun::star::uno::Reference<
::com::sun::star::lang::XEventListener > & xListener )
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::frame::XDispatchProvider (required interface)
//-----------------------------------------------------------------
virtual ::com::sun::star::uno::Reference<
::com::sun::star::frame::XDispatch> SAL_CALL
queryDispatch( const ::com::sun::star::util::URL& rURL
, const rtl::OUString& rTargetFrameName
, sal_Int32 nSearchFlags)
throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Sequence<
::com::sun::star::uno::Reference<
::com::sun::star::frame::XDispatch > > SAL_CALL
queryDispatches( const ::com::sun::star::uno::Sequence<
::com::sun::star::frame::DispatchDescriptor > & xDescripts)
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::view::XSelectionSupplier (optional interface)
//-----------------------------------------------------------------
virtual sal_Bool SAL_CALL
select( const ::com::sun::star::uno::Any& rSelection )
throw ( com::sun::star::lang::IllegalArgumentException );
virtual ::com::sun::star::uno::Any SAL_CALL
getSelection() throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
addSelectionChangeListener( const ::com::sun::star::uno::Reference<
com::sun::star::view::XSelectionChangeListener > & xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
removeSelectionChangeListener( const ::com::sun::star::uno::Reference<
com::sun::star::view::XSelectionChangeListener > & xListener )
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::ui::XContextMenuInterception (optional interface)
//-----------------------------------------------------------------
virtual void SAL_CALL
registerContextMenuInterceptor( const ::com::sun::star::uno::Reference<
::com::sun::star::ui::XContextMenuInterceptor > & xInterceptor)
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
releaseContextMenuInterceptor( const ::com::sun::star::uno::Reference<
::com::sun::star::ui::XContextMenuInterceptor > & xInterceptor)
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//additional interfaces
//-----------------------------------------------------------------
// ::com::sun::star::util::XCloseListener
//-----------------------------------------------------------------
virtual void SAL_CALL
queryClosing( const ::com::sun::star::lang::EventObject& Source
, sal_Bool GetsOwnership )
throw (::com::sun::star::util::CloseVetoException
, ::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
notifyClosing( const ::com::sun::star::lang::EventObject& Source )
throw (::com::sun::star::uno::RuntimeException);
//-------------------------------------------------------------------------------------
// ::com::sun::star::util::XEventListener (base of XCloseListener and XModifyListener)
//-------------------------------------------------------------------------------------
virtual void SAL_CALL
disposing( const ::com::sun::star::lang::EventObject& Source )
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::frame::XDispatch
//-----------------------------------------------------------------
virtual void SAL_CALL
dispatch( const ::com::sun::star::util::URL& aURL
, const ::com::sun::star::uno::Sequence<
::com::sun::star::beans::PropertyValue >& aArgs )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
addStatusListener( const ::com::sun::star::uno::Reference<
::com::sun::star::frame::XStatusListener >& xControl
, const ::com::sun::star::util::URL& aURL )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
removeStatusListener( const ::com::sun::star::uno::Reference<
::com::sun::star::frame::XStatusListener >& xControl
, const ::com::sun::star::util::URL& aURL )
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::awt::XWindow
//-----------------------------------------------------------------
virtual void SAL_CALL
setPosSize( sal_Int32 X, sal_Int32 Y
, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags )
throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::awt::Rectangle SAL_CALL
getPosSize()
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
setVisible( sal_Bool Visible )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
setEnable( sal_Bool Enable )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
setFocus() throw (::com::sun::star::uno::RuntimeException);
//----------------
virtual void SAL_CALL
addWindowListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XWindowListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
removeWindowListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XWindowListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
addFocusListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XFocusListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
removeFocusListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XFocusListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
addKeyListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XKeyListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
removeKeyListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XKeyListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
addMouseListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XMouseListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
removeMouseListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XMouseListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
addMouseMotionListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XMouseMotionListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
removeMouseMotionListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XMouseMotionListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
addPaintListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XPaintListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL
removePaintListener( const ::com::sun::star::uno::Reference<
::com::sun::star::awt::XPaintListener >& xListener )
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::lang XMultiServiceFactory
//-----------------------------------------------------------------
virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
createInstance( const ::rtl::OUString& aServiceSpecifier )
throw (::com::sun::star::uno::Exception,
::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
createInstanceWithArguments( const ::rtl::OUString& ServiceSpecifier,
const ::com::sun::star::uno::Sequence<
::com::sun::star::uno::Any >& Arguments )
throw (::com::sun::star::uno::Exception,
::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
getAvailableServiceNames()
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::util::XModifyListener
//-----------------------------------------------------------------
virtual void SAL_CALL modified(
const ::com::sun::star::lang::EventObject& aEvent )
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::util::XModeChangeListener
//-----------------------------------------------------------------
virtual void SAL_CALL modeChanged(
const ::com::sun::star::util::ModeChangeEvent& _rSource )
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// ::com::sun::star::frame::XLayoutManagerListener
//-----------------------------------------------------------------
virtual void SAL_CALL layoutEvent(
const ::com::sun::star::lang::EventObject& aSource,
::sal_Int16 eLayoutEvent,
const ::com::sun::star::uno::Any& aInfo )
throw (::com::sun::star::uno::RuntimeException);
//-----------------------------------------------------------------
// chart2::WindowController
//-----------------------------------------------------------------
virtual void PrePaint();
virtual void execute_Paint( const Rectangle& rRect );
virtual void execute_MouseButtonDown( const MouseEvent& rMEvt );
virtual void execute_MouseMove( const MouseEvent& rMEvt );
virtual void execute_Tracking( const TrackingEvent& rTEvt );
virtual void execute_MouseButtonUp( const MouseEvent& rMEvt );
virtual void execute_Resize();
virtual void execute_Activate();
virtual void execute_Deactivate();
virtual void execute_GetFocus();
virtual void execute_LoseFocus();
virtual void execute_Command( const CommandEvent& rCEvt );
virtual bool execute_KeyInput( const KeyEvent& rKEvt );
virtual bool requestQuickHelp(
::Point aAtLogicPosition, bool bIsBalloonHelp,
::rtl::OUString & rOutQuickHelpText, ::com::sun::star::awt::Rectangle & rOutEqualRect );
virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
//-----------------------------------------------------------------
//-----------------------------------------------------------------
static bool isObjectDeleteable( const ::com::sun::star::uno::Any& rSelection );
void setDrawMode( ChartDrawMode eMode ) { m_eDrawMode = eMode; }
ChartDrawMode getDrawMode() const { return m_eDrawMode; }
bool isShapeContext() const;
DECL_LINK( NotifyUndoActionHdl, SdrUndoAction* );
public:
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//private
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//-----------------------------------------------------------------
private:
DrawModelWrapper* GetDrawModelWrapper();
DrawViewWrapper* GetDrawViewWrapper();
private:
class TheModelRef;
friend class ChartController::TheModelRef;
class RefCountable
{
public:
RefCountable();
virtual ~RefCountable();
void acquire();
void release();
private:
sal_Int32 volatile m_nRefCount;
};
class TheModel : public RefCountable
{
public:
TheModel( const ::com::sun::star::uno::Reference<
::com::sun::star::frame::XModel > & xModel );
virtual ~TheModel();
void SetOwnerShip( sal_Bool bGetsOwnership );
void addListener( ChartController* pController );
void removeListener( ChartController* pController );
void tryTermination();
::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >
getModel() { return m_xModel;}
private:
::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > m_xModel;
::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseable > m_xCloseable;
//the ownership between model and controller is not clear at first
//each controller might consider himself as owner of the model first
sal_Bool volatile m_bOwnership;
//with a XCloseable::close call and during XCloseListener::queryClosing
//the ownership can be regulated more explicit,
//if so the ownership is considered to be well known
sal_Bool volatile m_bOwnershipIsWellKnown;
};
class TheModelRef
{
public:
TheModelRef( TheModel* pTheModel, ::osl::Mutex& rMutex );
TheModelRef( const TheModelRef& rTheModel, ::osl::Mutex& rMutex );
TheModelRef& operator=(ChartController::TheModel* pTheModel);
TheModelRef& operator=(const TheModelRef& rTheModel);
virtual ~TheModelRef();
sal_Bool is() const;
TheModel* operator->() const { return m_pTheModel; }
private:
TheModel* m_pTheModel;
::osl::Mutex& m_rModelMutex;
};
private:
mutable ::apphelper::LifeTimeManager m_aLifeTimeManager;
mutable ::osl::Mutex m_aControllerMutex;
sal_Bool volatile m_bSuspended;
sal_Bool volatile m_bCanClose;
::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> m_xCC;
//model
::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame;
mutable ::osl::Mutex m_aModelMutex;
TheModelRef m_aModel;
//view
ChartWindow* m_pChartWindow;
::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > m_xViewWindow;
::com::sun::star::uno::Reference<
::com::sun::star::uno::XInterface > m_xChartView;
::boost::shared_ptr< DrawModelWrapper > m_pDrawModelWrapper;
DrawViewWrapper* m_pDrawViewWrapper;
Selection m_aSelection;
SdrDragMode m_eDragMode;
Timer m_aDoubleClickTimer;
bool volatile m_bWaitingForDoubleClick;
bool volatile m_bWaitingForMouseUp;
bool volatile m_bConnectingToView;
::com::sun::star::uno::Reference< ::com::sun::star::document::XUndoManager > m_xUndoManager;
::std::auto_ptr< UndoGuard > m_pTextActionUndoGuard;
/// needed for dispatching URLs in FeatureStateEvents
mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer > m_xURLTransformer;
::std::auto_ptr< ::svt::AcceleratorExecute > m_apAccelExecute;
CommandDispatchContainer m_aDispatchContainer;
::std::auto_ptr< DropTargetHelper > m_apDropTargetHelper;
::com::sun::star::uno::Reference<
::com::sun::star::frame::XLayoutManagerEventBroadcaster >
m_xLayoutManagerEventBroadcaster;
ChartDrawMode m_eDrawMode;
private:
//private methods
sal_Bool impl_isDisposedOrSuspended() const;
::std::auto_ptr< ReferenceSizeProvider > impl_createReferenceSizeProvider();
void impl_adaptDataSeriesAutoResize();
void impl_createDrawViewController();
void impl_deleteDrawViewController();
//executeDispatch methods
void SAL_CALL executeDispatch_ObjectProperties();
void SAL_CALL executeDispatch_FormatObject( const ::rtl::OUString& rDispatchCommand );
void SAL_CALL executeDlg_ObjectProperties( const ::rtl::OUString& rObjectCID );
bool executeDlg_ObjectProperties_withoutUndoGuard( const ::rtl::OUString& rObjectCID, bool bOkClickOnUnchangedDialogSouldBeRatedAsSuccessAlso );
void SAL_CALL executeDispatch_ChartType();
void executeDispatch_InsertTitles();
void executeDispatch_InsertLegend();
void executeDispatch_DeleteLegend();
void executeDispatch_OpenLegendDialog();
void executeDispatch_InsertAxes();
void executeDispatch_InsertGrid();
void executeDispatch_InsertMenu_DataLabels();
void executeDispatch_InsertMenu_YErrorBars();
void executeDispatch_InsertMenu_Trendlines();
void executeDispatch_InsertMenu_MeanValues();
void executeDispatch_InsertMeanValue();
void executeDispatch_InsertTrendline();
void executeDispatch_InsertTrendlineEquation( bool bInsertR2=false );
void executeDispatch_InsertYErrorBars();
void executeDispatch_InsertR2Value();
void executeDispatch_DeleteR2Value();
void executeDispatch_DeleteMeanValue();
void executeDispatch_DeleteTrendline();
void executeDispatch_DeleteTrendlineEquation();
void executeDispatch_DeleteYErrorBars();
void executeDispatch_InsertDataLabels();
void executeDispatch_InsertDataLabel();
void executeDispatch_DeleteDataLabels();
void executeDispatch_DeleteDataLabel();
void executeDispatch_ResetAllDataPoints();
void executeDispatch_ResetDataPoint();
void executeDispatch_InsertAxis();
void executeDispatch_InsertAxisTitle();
void executeDispatch_InsertMajorGrid();
void executeDispatch_InsertMinorGrid();
void executeDispatch_DeleteAxis();
void executeDispatch_DeleteMajorGrid();
void executeDispatch_DeleteMinorGrid();
void SAL_CALL executeDispatch_InsertSpecialCharacter();
void SAL_CALL executeDispatch_EditText( const Point* pMousePixel = NULL );
void SAL_CALL executeDispatch_SourceData();
void SAL_CALL executeDispatch_MoveSeries( sal_Bool bForward );
void StartTextEdit( const Point* pMousePixel = NULL );
bool EndTextEdit();
void SAL_CALL executeDispatch_View3D();
void SAL_CALL executeDispatch_PositionAndSize();
void executeDispatch_EditData();
void executeDispatch_NewArrangement();
void executeDispatch_ScaleText();
void executeDispatch_Paste();
void executeDispatch_Copy();
void executeDispatch_Cut();
bool executeDispatch_Delete();
void executeDispatch_ToggleLegend();
void executeDispatch_ToggleGridHorizontal();
void impl_ShapeControllerDispatch( const ::com::sun::star::util::URL& rURL,
const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rArgs );
//
DECL_LINK( DoubleClickWaitingHdl, void* );
void execute_DoubleClick( const Point* pMousePixel = NULL );
void startDoubleClickWaiting();
void stopDoubleClickWaiting();
void impl_selectObjectAndNotiy();
void impl_notifySelectionChangeListeners();
void impl_invalidateAccessible();
void impl_initializeAccessible();
void impl_initializeAccessible( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XInitialization >& xInit );
//sets the model member to null if it equals the parameter
//returns true if successful
bool impl_releaseThisModel( const ::com::sun::star::uno::Reference<
::com::sun::star::uno::XInterface > & xModel );
enum eMoveOrResizeType
{
MOVE_OBJECT,
CENTERED_RESIZE_OBJECT
};
/// @return </sal_True>, if resize/move was successful
bool impl_moveOrResizeObject(
const ::rtl::OUString & rCID, eMoveOrResizeType eType, double fAmountLogicX, double fAmountLogicY );
bool impl_DragDataPoint( const ::rtl::OUString & rCID, double fOffset );
::std::set< ::rtl::OUString > impl_getAvailableCommands();
/** Creates a helper accesibility class that must be initialized via XInitialization. For
parameters see
The returned object should not be used directly. Instead a proxy object
should use this helper to retrieve its children and add them to its own
children.
*/
::com::sun::star::uno::Reference<
::com::sun::star::accessibility::XAccessibleContext >
impl_createAccessibleTextContext();
void impl_PasteGraphic( ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > & xGraphic,
const ::Point & aPosition );
void impl_PasteShapes( SdrModel* pModel );
void impl_PasteStringAsTextShape( const ::rtl::OUString& rString, const ::com::sun::star::awt::Point& rPosition );
void impl_SetMousePointer( const MouseEvent & rEvent );
void impl_ClearSelection();
void impl_switchDiagramPositioningToExcludingPositioning();
};
//.............................................................................
} // namespace chart
//.............................................................................
#endif