LibreOffice Module chart2 (master) 1
ChartController.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19#pragma once
20
21#include <LifeTime.hxx>
23#include "SelectionHelper.hxx"
24
25#include <svx/svdtypes.hxx>
26#include <vcl/timer.hxx>
27
31
32#include <com/sun/star/frame/XDispatchProvider.hpp>
33#include <com/sun/star/ui/XContextMenuInterception.hpp>
34#include <com/sun/star/util/XModeChangeListener.hpp>
35#include <com/sun/star/util/XCloseListener.hpp>
36#include <com/sun/star/util/XModifyListener.hpp>
37#include <com/sun/star/frame/XController2.hpp>
38#include <com/sun/star/frame/XLayoutManagerListener.hpp>
39#include <com/sun/star/lang/XServiceInfo.hpp>
40#include <com/sun/star/lang/XMultiServiceFactory.hpp>
41
42#include <memory>
43#include <string_view>
44
45namespace com::sun::star::accessibility { class XAccessible; }
46namespace com::sun::star::accessibility { class XAccessibleContext; }
47namespace com::sun::star::awt { class XFocusListener; }
48namespace com::sun::star::awt { class XKeyListener; }
49namespace com::sun::star::awt { class XMouseListener; }
50namespace com::sun::star::awt { class XMouseMotionListener; }
51namespace com::sun::star::awt { class XPaintListener; }
52namespace com::sun::star::awt { class XWindow; }
53namespace com::sun::star::awt { class XWindowListener; }
54namespace com::sun::star::awt { struct Point; }
55namespace com::sun::star::document { class XUndoManager; }
56namespace com::sun::star::frame { class XDispatch; }
57namespace com::sun::star::frame { class XLayoutManagerEventBroadcaster; }
58namespace com::sun::star::graphic { class XGraphic; }
59namespace com::sun::star::lang { class XInitialization; }
60namespace com::sun::star::uno { class XComponentContext; }
61namespace com::sun::star::util { class XCloseable; }
62namespace com::sun::star::view { class XSelectionSupplier; }
63
64
65class SdrModel;
66
67namespace svt
68{
69 class AcceleratorExecute;
70}
71
72namespace svx::sidebar {
74}
75
76namespace weld {
77 class Window;
78}
79
80class DropTargetHelper;
81
82namespace chart
83{
84
85class UndoGuard;
86class ChartView;
87class ChartWindow;
88class DrawModelWrapper;
89class DrawViewWrapper;
90class ReferenceSizeProvider;
91class ViewElementListProvider;
92class Diagram;
93
95
96
97class ChartController final : public ::cppu::WeakImplHelper <
98 css::frame::XController2 //comprehends XComponent (css::frame::XController is required interface)
99 ,css::frame::XDispatchProvider //(required interface)
100 ,css::view::XSelectionSupplier //(optional interface)
101 ,css::ui::XContextMenuInterception //(optional interface)
102 ,css::util::XCloseListener //(needed for communication with XModel)
103 ,css::lang::XServiceInfo
104 ,css::frame::XDispatch
105 ,css::awt::XWindow //this is the Window Controller part of this Controller, that will be given to a Frame via setComponent
106 ,css::lang::XMultiServiceFactory
107 ,css::util::XModifyListener
108 ,css::util::XModeChangeListener
109 ,css::frame::XLayoutManagerListener
110 >
111{
112public:
113 ChartController() = delete;
114 explicit ChartController(css::uno::Reference< css::uno::XComponentContext > xContext);
115 virtual ~ChartController() override;
116
117 OUString GetContextName();
118
119 // css::lang::XServiceInfo
120 virtual OUString SAL_CALL getImplementationName() override;
121 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
122 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
123
124 // css::frame::XController (required interface)
125 virtual void SAL_CALL
126 attachFrame( const css::uno::Reference< css::frame::XFrame > & xFrame ) override;
127
128 virtual sal_Bool SAL_CALL
129 attachModel( const css::uno::Reference< css::frame::XModel > & xModel ) override;
130
131 virtual css::uno::Reference< css::frame::XFrame > SAL_CALL
132 getFrame() override;
133
134 virtual css::uno::Reference< css::frame::XModel > SAL_CALL
135 getModel() override;
136
137 virtual css::uno::Any SAL_CALL
138 getViewData() override;
139
140 virtual void SAL_CALL
141 restoreViewData( const css::uno::Any& rValue ) override;
142
143 virtual sal_Bool SAL_CALL
144 suspend( sal_Bool bSuspend ) override;
145
146 // css::frame::XController2
147 virtual css::uno::Reference<css::awt::XWindow> SAL_CALL getComponentWindow() override;
148 virtual OUString SAL_CALL getViewControllerName() override;
149 virtual css::uno::Sequence<css::beans::PropertyValue> SAL_CALL getCreationArguments() override;
150 virtual css::uno::Reference<css::ui::XSidebarProvider> SAL_CALL getSidebar() override;
151
152 // css::lang::XComponent (base of XController)
153 virtual void SAL_CALL
154 dispose() override;
155
156 virtual void SAL_CALL
157 addEventListener( const css::uno::Reference< css::lang::XEventListener > & xListener ) override;
158
159 virtual void SAL_CALL
160 removeEventListener( const css::uno::Reference< css::lang::XEventListener > & xListener ) override;
161
162 // css::frame::XDispatchProvider (required interface)
163 virtual css::uno::Reference< css::frame::XDispatch> SAL_CALL
164 queryDispatch( const css::util::URL& rURL
165 , const OUString& rTargetFrameName
166 , sal_Int32 nSearchFlags) override;
167
168 virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL
169 queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor > & xDescripts) override;
170
171 // css::view::XSelectionSupplier (optional interface)
172 virtual sal_Bool SAL_CALL
173 select( const css::uno::Any& rSelection ) override;
174
175 virtual css::uno::Any SAL_CALL
176 getSelection() override;
177
178 virtual void SAL_CALL
179 addSelectionChangeListener( const css::uno::Reference< css::view::XSelectionChangeListener > & xListener ) override;
180
181 virtual void SAL_CALL
182 removeSelectionChangeListener( const css::uno::Reference< css::view::XSelectionChangeListener > & xListener ) override;
183
184 // css::ui::XContextMenuInterception (optional interface)
185 virtual void SAL_CALL
186 registerContextMenuInterceptor( const css::uno::Reference< css::ui::XContextMenuInterceptor > & xInterceptor) override;
187
188 virtual void SAL_CALL
189 releaseContextMenuInterceptor( const css::uno::Reference< css::ui::XContextMenuInterceptor > & xInterceptor) override;
190
191 //additional interfaces
192
193 // css::util::XCloseListener
194 virtual void SAL_CALL
195 queryClosing( const css::lang::EventObject& Source
196 , sal_Bool GetsOwnership ) override;
197
198 virtual void SAL_CALL
199 notifyClosing( const css::lang::EventObject& Source ) override;
200
201 // css::util::XEventListener (base of XCloseListener and XModifyListener)
202 virtual void SAL_CALL
203 disposing( const css::lang::EventObject& Source ) override;
204
205 // css::frame::XDispatch
206
207 virtual void SAL_CALL
208 dispatch( const css::util::URL& aURL
209 , const css::uno::Sequence< css::beans::PropertyValue >& aArgs ) override;
210
211 virtual void SAL_CALL
212 addStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xControl
213 , const css::util::URL& aURL ) override;
214
215 virtual void SAL_CALL
216 removeStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xControl
217 , const css::util::URL& aURL ) override;
218
219 // css::awt::XWindow
220 virtual void SAL_CALL
221 setPosSize( sal_Int32 X, sal_Int32 Y
222 , sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags ) override;
223
224 virtual css::awt::Rectangle SAL_CALL
225 getPosSize() override;
226
227 virtual void SAL_CALL
228 setVisible( sal_Bool Visible ) override;
229
230 virtual void SAL_CALL
231 setEnable( sal_Bool Enable ) override;
232
233 virtual void SAL_CALL
234 setFocus() override;
235
236 virtual void SAL_CALL
237 addWindowListener( const css::uno::Reference< css::awt::XWindowListener >& xListener ) override;
238
239 virtual void SAL_CALL
240 removeWindowListener( const css::uno::Reference< css::awt::XWindowListener >& xListener ) override;
241
242 virtual void SAL_CALL
243 addFocusListener( const css::uno::Reference< css::awt::XFocusListener >& xListener ) override;
244
245 virtual void SAL_CALL
246 removeFocusListener( const css::uno::Reference< css::awt::XFocusListener >& xListener ) override;
247
248 virtual void SAL_CALL
249 addKeyListener( const css::uno::Reference< css::awt::XKeyListener >& xListener ) override;
250
251 virtual void SAL_CALL
252 removeKeyListener( const css::uno::Reference< css::awt::XKeyListener >& xListener ) override;
253
254 virtual void SAL_CALL
255 addMouseListener( const css::uno::Reference< css::awt::XMouseListener >& xListener ) override;
256
257 virtual void SAL_CALL
258 removeMouseListener( const css::uno::Reference< css::awt::XMouseListener >& xListener ) override;
259
260 virtual void SAL_CALL
261 addMouseMotionListener( const css::uno::Reference< css::awt::XMouseMotionListener >& xListener ) override;
262
263 virtual void SAL_CALL
264 removeMouseMotionListener( const css::uno::Reference< css::awt::XMouseMotionListener >& xListener ) override;
265
266 virtual void SAL_CALL
267 addPaintListener( const css::uno::Reference< css::awt::XPaintListener >& xListener ) override;
268
269 virtual void SAL_CALL
270 removePaintListener( const css::uno::Reference< css::awt::XPaintListener >& xListener ) override;
271
272 // css::lang XMultiServiceFactory
273 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
274 createInstance( const OUString& aServiceSpecifier ) override;
275 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
276 createInstanceWithArguments( const OUString& ServiceSpecifier,
277 const css::uno::Sequence<
278 css::uno::Any >& Arguments ) override;
279 virtual css::uno::Sequence< OUString > SAL_CALL
280 getAvailableServiceNames() override;
281
282 // css::util::XModifyListener
283 virtual void SAL_CALL modified(
284 const css::lang::EventObject& aEvent ) override;
285
286 // css::util::XModeChangeListener
287 virtual void SAL_CALL modeChanged(
288 const css::util::ModeChangeEvent& _rSource ) override;
289
290 // css::frame::XLayoutManagerListener
291 virtual void SAL_CALL layoutEvent(
292 const css::lang::EventObject& aSource,
293 ::sal_Int16 eLayoutEvent,
294 const css::uno::Any& aInfo ) override;
295
296 // WindowController stuff
297 void PrePaint();
298 void execute_Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect);
299 void execute_MouseButtonDown( const MouseEvent& rMEvt );
300 void execute_MouseMove( const MouseEvent& rMEvt );
301 void execute_MouseButtonUp( const MouseEvent& rMEvt );
302 void execute_Resize();
303 void execute_Command( const CommandEvent& rCEvt );
304 bool execute_KeyInput( const KeyEvent& rKEvt );
305
322 bool requestQuickHelp(
323 ::Point aAtLogicPosition, bool bIsBalloonHelp,
324 OUString & rOutQuickHelpText, css::awt::Rectangle & rOutEqualRect );
325
326 css::uno::Reference< css::accessibility::XAccessible > CreateAccessible();
327
328 static bool isObjectDeleteable( const css::uno::Any& rSelection );
329
331
332 bool isShapeContext() const;
333
339 bool isAdditionalShapeSelected() const;
340 void SetAndApplySelection(const css::uno::Reference<css::drawing::XShape>& rxShape);
341 void StartTextEdit( const Point* pMousePixel = nullptr );
342
343 void NotifyUndoActionHdl( std::unique_ptr<SdrUndoAction> );
344
346
349
350private:
352 {
353 public:
355
356 virtual ~TheModel() override;
357
358 void addListener( ChartController* pController );
359 void removeListener( ChartController* pController );
360 void tryTermination();
362 getModel() const { return m_xModel;}
363
364 private:
366
367 //the ownership between model and controller is not clear at first
368 //each controller might consider himself as owner of the model first
370 };
371 class TheModelRef final
372 {
373 public:
374 TheModelRef( TheModel* pTheModel, ::osl::Mutex& rMutex );
375 TheModelRef( const TheModelRef& rTheModel, ::osl::Mutex& rMutex );
377 TheModelRef& operator=(const TheModelRef& rTheModel);
378 ~TheModelRef();
379 bool is() const;
380 TheModel* operator->() const { return m_xTheModel.get(); }
381 private:
383 ::osl::Mutex& m_rModelMutex;
384 };
385
386 mutable ::apphelper::LifeTimeManager m_aLifeTimeManager;
387
389
390 css::uno::Reference< css::uno::XComponentContext> m_xCC;
391
392 //model
393 css::uno::Reference< css::frame::XFrame > m_xFrame;
394 mutable ::osl::Mutex m_aModelMutex;
396
397 //view
398 css::uno::Reference<css::awt::XWindow> m_xViewWindow;
400 std::shared_ptr< DrawModelWrapper > m_pDrawModelWrapper;
401 std::unique_ptr<DrawViewWrapper> m_pDrawViewWrapper;
402
405
410
413
414 css::uno::Reference< css::document::XUndoManager > m_xUndoManager;
415 std::unique_ptr< UndoGuard > m_pTextActionUndoGuard;
416
417 std::unique_ptr< ::svt::AcceleratorExecute > m_apAccelExecute;
418
420
421 std::unique_ptr< DropTargetHelper > m_apDropTargetHelper;
422 css::uno::Reference<
423 css::frame::XLayoutManagerEventBroadcaster > m_xLayoutManagerEventBroadcaster;
424
426
428
429 bool impl_isDisposedOrSuspended() const;
430 std::unique_ptr<ReferenceSizeProvider> impl_createReferenceSizeProvider();
432
435
436 //executeDispatch methods
438 void executeDispatch_FormatObject( std::u16string_view rDispatchCommand );
439 void executeDlg_ObjectProperties( const OUString& rObjectCID );
440 bool executeDlg_ObjectProperties_withoutUndoGuard( const OUString& rObjectCID, bool bSuccessOnUnchanged );
441
443
450
454
458
461 void executeDispatch_InsertTrendlineEquation( bool bInsertR2=false );
462 void executeDispatch_InsertErrorBars( bool bYError );
463
466
470 void executeDispatch_DeleteErrorBars( bool bYError );
471
476
479
487
489 void executeDispatch_EditText( const Point* pMousePixel = nullptr );
491 void executeDispatch_MoveSeries( bool bForward );
492
493 bool EndTextEdit();
494
496 void executeDispatch_PositionAndSize( const ::css::uno::Sequence< ::css::beans::PropertyValue >* pArgs = nullptr );
497
499
502
505 void executeDispatch_Cut();
510
511 void executeDispatch_LOKSetTextSelection(int nType, int nX, int nY);
513 void executeDispatch_FillColor(sal_uInt32 nColor);
514 void executeDispatch_FillGradient(std::u16string_view sJSONGradient);
515 void executeDispatch_LineColor(sal_uInt32 nColor);
516 void executeDispatch_LineWidth(sal_uInt32 nWidth);
517
518 void sendPopupRequest(std::u16string_view rCID, tools::Rectangle aRectangle);
519
520 void impl_ShapeControllerDispatch( const css::util::URL& rURL,
521 const css::uno::Sequence< css::beans::PropertyValue >& rArgs );
522
523 DECL_LINK( DoubleClickWaitingHdl, Timer*, void );
524 void execute_DoubleClick( const Point* pMousePixel );
527
532 void impl_initializeAccessible( const css::uno::Reference< css::lang::XInitialization >& xInit );
533
534 //sets the model member to null if it equals the parameter
535 //returns true if successful
536 bool impl_releaseThisModel( const css::uno::Reference< css::uno::XInterface > & xModel );
537
539 {
542 };
545 const OUString & rCID, eMoveOrResizeType eType, double fAmountLogicX, double fAmountLogicY );
546 bool impl_DragDataPoint( std::u16string_view rCID, double fOffset );
547
549
557 css::uno::Reference< css::accessibility::XAccessibleContext >
559
560 void impl_PasteGraphic( css::uno::Reference< css::graphic::XGraphic > const & xGraphic,
561 const ::Point & aPosition );
562 void impl_PasteShapes( SdrModel* pModel );
563 void impl_PasteStringAsTextShape( const OUString& rString, const css::awt::Point& rPosition );
564 void impl_SetMousePointer( const MouseEvent & rEvent );
565
566 void impl_ClearSelection();
567
569};
570
571} // namespace chart
572
573/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
rtl::Reference< TheModel > m_xTheModel
TheModelRef(TheModel *pTheModel, ::osl::Mutex &rMutex)
TheModelRef & operator=(ChartController::TheModel *pTheModel)
const rtl::Reference<::chart::ChartModel > & getModel() const
TheModel(rtl::Reference<::chart::ChartModel > xModel)
rtl::Reference<::chart::ChartModel > m_xModel
void removeListener(ChartController *pController)
void addListener(ChartController *pController)
virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches(const css::uno::Sequence< css::frame::DispatchDescriptor > &xDescripts) override
virtual sal_Bool SAL_CALL suspend(sal_Bool bSuspend) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual void SAL_CALL removeFocusListener(const css::uno::Reference< css::awt::XFocusListener > &xListener) override
void executeDispatch_LineColor(sal_uInt32 nColor)
void executeDispatch_DeleteErrorBars(bool bYError)
rtl::Reference<::chart::ChartModel > getChartModel()
bool execute_KeyInput(const KeyEvent &rKEvt)
css::uno::Reference< css::accessibility::XAccessible > CreateAccessible()
virtual void SAL_CALL restoreViewData(const css::uno::Any &rValue) override
virtual css::uno::Any SAL_CALL getViewData() override
void impl_SetMousePointer(const MouseEvent &rEvent)
void executeDispatch_MoveSeries(bool bForward)
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(const css::util::URL &rURL, const OUString &rTargetFrameName, sal_Int32 nSearchFlags) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual css::uno::Reference< css::awt::XWindow > SAL_CALL getComponentWindow() override
virtual void SAL_CALL removeMouseListener(const css::uno::Reference< css::awt::XMouseListener > &xListener) override
void executeDispatch_FillGradient(std::u16string_view sJSONGradient)
std::unique_ptr< DrawViewWrapper > m_pDrawViewWrapper
css::uno::Reference< css::awt::XWindow > m_xViewWindow
virtual void SAL_CALL removeWindowListener(const css::uno::Reference< css::awt::XWindowListener > &xListener) override
css::uno::Reference< css::document::XUndoManager > m_xUndoManager
virtual void SAL_CALL addSelectionChangeListener(const css::uno::Reference< css::view::XSelectionChangeListener > &xListener) override
void executeDispatch_LOKPieSegmentDragging(int nOffset)
virtual void SAL_CALL dispatch(const css::util::URL &aURL, const css::uno::Sequence< css::beans::PropertyValue > &aArgs) override
void executeDlg_ObjectProperties(const OUString &rObjectCID)
std::unique_ptr< ReferenceSizeProvider > impl_createReferenceSizeProvider()
void executeDispatch_FillColor(sal_uInt32 nColor)
void executeDispatch_EditText(const Point *pMousePixel=nullptr)
DrawViewWrapper * GetDrawViewWrapper()
std::unique_ptr< DropTargetHelper > m_apDropTargetHelper
bool isAdditionalShapeSelected() const
void executeDispatch_LOKSetTextSelection(int nType, int nX, int nY)
virtual void SAL_CALL removeKeyListener(const css::uno::Reference< css::awt::XKeyListener > &xListener) override
ChartWindow * GetChartWindow() const
bool impl_isDisposedOrSuspended() const
virtual void SAL_CALL addKeyListener(const css::uno::Reference< css::awt::XKeyListener > &xListener) override
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(const OUString &ServiceSpecifier, const css::uno::Sequence< css::uno::Any > &Arguments) override
virtual css::uno::Reference< css::ui::XSidebarProvider > SAL_CALL getSidebar() override
virtual void SAL_CALL removeStatusListener(const css::uno::Reference< css::frame::XStatusListener > &xControl, const css::util::URL &aURL) override
void impl_PasteGraphic(css::uno::Reference< css::graphic::XGraphic > const &xGraphic, const ::Point &aPosition)
std::shared_ptr< DrawModelWrapper > m_pDrawModelWrapper
rtl::Reference<::chart::ChartView > const & getChartView() const
void StartTextEdit(const Point *pMousePixel=nullptr)
virtual void SAL_CALL addMouseMotionListener(const css::uno::Reference< css::awt::XMouseMotionListener > &xListener) override
mutable::osl::Mutex m_aModelMutex
virtual void SAL_CALL modeChanged(const css::util::ModeChangeEvent &_rSource) override
bool impl_moveOrResizeObject(const OUString &rCID, eMoveOrResizeType eType, double fAmountLogicX, double fAmountLogicY)
virtual void SAL_CALL removeMouseMotionListener(const css::uno::Reference< css::awt::XMouseMotionListener > &xListener) override
virtual void SAL_CALL disposing(const css::lang::EventObject &Source) override
void execute_MouseButtonUp(const MouseEvent &rMEvt)
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &xListener) override
rtl::Reference<::chart::ChartView > m_xChartView
bool impl_releaseThisModel(const css::uno::Reference< css::uno::XInterface > &xModel)
ChartController(css::uno::Reference< css::uno::XComponentContext > xContext)
virtual sal_Bool SAL_CALL attachModel(const css::uno::Reference< css::frame::XModel > &xModel) override
virtual void SAL_CALL addWindowListener(const css::uno::Reference< css::awt::XWindowListener > &xListener) override
virtual void SAL_CALL setPosSize(sal_Int32 X, sal_Int32 Y, sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags) override
weld::Window * GetChartFrame()
bool executeDlg_ObjectProperties_withoutUndoGuard(const OUString &rObjectCID, bool bSuccessOnUnchanged)
virtual void SAL_CALL registerContextMenuInterceptor(const css::uno::Reference< css::ui::XContextMenuInterceptor > &xInterceptor) override
virtual void SAL_CALL queryClosing(const css::lang::EventObject &Source, sal_Bool GetsOwnership) override
virtual OUString SAL_CALL getViewControllerName() override
virtual void SAL_CALL notifyClosing(const css::lang::EventObject &Source) override
virtual css::uno::Any SAL_CALL getSelection() override
virtual sal_Bool SAL_CALL select(const css::uno::Any &rSelection) override
virtual void SAL_CALL addMouseListener(const css::uno::Reference< css::awt::XMouseListener > &xListener) override
virtual void SAL_CALL layoutEvent(const css::lang::EventObject &aSource, ::sal_Int16 eLayoutEvent, const css::uno::Any &aInfo) override
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance(const OUString &aServiceSpecifier) override
mutable::apphelper::LifeTimeManager m_aLifeTimeManager
virtual css::awt::Rectangle SAL_CALL getPosSize() override
bool requestQuickHelp(::Point aAtLogicPosition, bool bIsBalloonHelp, OUString &rOutQuickHelpText, css::awt::Rectangle &rOutEqualRect)
get help text to be shown in a quick help
void setDrawMode(ChartDrawMode eMode)
virtual void SAL_CALL dispose() override
DrawModelWrapper * GetDrawModelWrapper()
void execute_DoubleClick(const Point *pMousePixel)
virtual void SAL_CALL removePaintListener(const css::uno::Reference< css::awt::XPaintListener > &xListener) override
virtual css::uno::Reference< css::frame::XFrame > SAL_CALL getFrame() override
virtual void SAL_CALL modified(const css::lang::EventObject &aEvent) override
void SetAndApplySelection(const css::uno::Reference< css::drawing::XShape > &rxShape)
virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCreationArguments() override
css::uno::Reference< css::accessibility::XAccessibleContext > impl_createAccessibleTextContext()
Creates a helper accessibility class that must be initialized via XInitialization.
css::uno::Reference< css::frame::XFrame > m_xFrame
virtual void SAL_CALL removeSelectionChangeListener(const css::uno::Reference< css::view::XSelectionChangeListener > &xListener) override
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &xListener) override
void impl_initializeAccessible(const css::uno::Reference< css::lang::XInitialization > &xInit)
void executeDispatch_DeleteDataTable()
Delete a data table from the chart.
CommandDispatchContainer m_aDispatchContainer
void impl_switchDiagramPositioningToExcludingPositioning()
void executeDispatch_LineWidth(sal_uInt32 nWidth)
static bool isObjectDeleteable(const css::uno::Any &rSelection)
void execute_MouseButtonDown(const MouseEvent &rMEvt)
rtl::Reference<::chart::Diagram > getFirstDiagram()
void execute_Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
void executeDispatch_PositionAndSize(const ::css::uno::Sequence< ::css::beans::PropertyValue > *pArgs=nullptr)
DECL_LINK(DoubleClickWaitingHdl, Timer *, void)
virtual void SAL_CALL setFocus() override
rtl::Reference< svx::sidebar::SelectionChangeHandler > mpSelectionChangeHandler
virtual css::uno::Sequence< OUString > SAL_CALL getAvailableServiceNames() override
static const o3tl::sorted_vector< OUString > & impl_getAvailableCommands()
void impl_ShapeControllerDispatch(const css::util::URL &rURL, const css::uno::Sequence< css::beans::PropertyValue > &rArgs)
virtual OUString SAL_CALL getImplementationName() override
virtual void SAL_CALL attachFrame(const css::uno::Reference< css::frame::XFrame > &xFrame) override
virtual void SAL_CALL addPaintListener(const css::uno::Reference< css::awt::XPaintListener > &xListener) override
bool impl_DragDataPoint(std::u16string_view rCID, double fOffset)
std::unique_ptr< UndoGuard > m_pTextActionUndoGuard
css::uno::Reference< css::frame::XLayoutManagerEventBroadcaster > m_xLayoutManagerEventBroadcaster
void impl_PasteShapes(SdrModel *pModel)
void executeDispatch_FormatObject(std::u16string_view rDispatchCommand)
void execute_Command(const CommandEvent &rCEvt)
virtual css::uno::Reference< css::frame::XModel > SAL_CALL getModel() override
void sendPopupRequest(std::u16string_view rCID, tools::Rectangle aRectangle)
virtual ~ChartController() override
void executeDispatch_InsertDataTable()
Create and insert a data table to the chart.
virtual void SAL_CALL releaseContextMenuInterceptor(const css::uno::Reference< css::ui::XContextMenuInterceptor > &xInterceptor) override
void NotifyUndoActionHdl(std::unique_ptr< SdrUndoAction >)
css::uno::Reference< css::uno::XComponentContext > m_xCC
virtual void SAL_CALL setVisible(sal_Bool Visible) override
std::unique_ptr< ::svt::AcceleratorExecute > m_apAccelExecute
void executeDispatch_InsertErrorBars(bool bYError)
void execute_MouseMove(const MouseEvent &rMEvt)
virtual void SAL_CALL addStatusListener(const css::uno::Reference< css::frame::XStatusListener > &xControl, const css::util::URL &aURL) override
virtual void SAL_CALL setEnable(sal_Bool Enable) override
void impl_PasteStringAsTextShape(const OUString &rString, const css::awt::Point &rPosition)
void executeDispatch_InsertTrendlineEquation(bool bInsertR2=false)
virtual void SAL_CALL addFocusListener(const css::uno::Reference< css::awt::XFocusListener > &xListener) override
ViewElementListProvider getViewElementListProvider()
The ChartWindow collects events from the window and forwards them the to the controller thus the cont...
Definition: ChartWindow.hxx:33
Mode eMode
@ CHARTDRAW_INSERT
@ CHARTDRAW_SELECT
Reference< XModel > xModel
SdrDragMode
unsigned char sal_Bool