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>
69 class AcceleratorExecute;
80class DropTargetHelper;
88class DrawModelWrapper;
90class ReferenceSizeProvider;
91class ViewElementListProvider;
98 css::frame::XController2
99 ,css::frame::XDispatchProvider
100 ,css::view::XSelectionSupplier
101 ,css::ui::XContextMenuInterception
102 ,css::util::XCloseListener
103 ,css::lang::XServiceInfo
104 ,css::frame::XDispatch
106 ,css::lang::XMultiServiceFactory
107 ,css::util::XModifyListener
108 ,css::util::XModeChangeListener
109 ,css::frame::XLayoutManagerListener
114 explicit ChartController(css::uno::Reference< css::uno::XComponentContext > xContext);
125 virtual void SAL_CALL
126 attachFrame(
const css::uno::Reference< css::frame::XFrame > & xFrame )
override;
129 attachModel(
const css::uno::Reference< css::frame::XModel > & xModel )
override;
131 virtual css::uno::Reference< css::frame::XFrame > SAL_CALL
134 virtual css::uno::Reference< css::frame::XModel > SAL_CALL
137 virtual css::uno::Any SAL_CALL
140 virtual void SAL_CALL
147 virtual css::uno::Reference<css::awt::XWindow> SAL_CALL
getComponentWindow()
override;
150 virtual css::uno::Reference<css::ui::XSidebarProvider> SAL_CALL
getSidebar()
override;
153 virtual void SAL_CALL
156 virtual void SAL_CALL
157 addEventListener(
const css::uno::Reference< css::lang::XEventListener > & xListener )
override;
159 virtual void SAL_CALL
160 removeEventListener(
const css::uno::Reference< css::lang::XEventListener > & xListener )
override;
163 virtual css::uno::Reference< css::frame::XDispatch> SAL_CALL
165 ,
const OUString& rTargetFrameName
166 , sal_Int32 nSearchFlags)
override;
168 virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL
169 queryDispatches(
const css::uno::Sequence< css::frame::DispatchDescriptor > & xDescripts)
override;
173 select(
const css::uno::Any& rSelection )
override;
175 virtual css::uno::Any SAL_CALL
178 virtual void SAL_CALL
181 virtual void SAL_CALL
185 virtual void SAL_CALL
188 virtual void SAL_CALL
194 virtual void SAL_CALL
196 ,
sal_Bool GetsOwnership )
override;
198 virtual void SAL_CALL
199 notifyClosing(
const css::lang::EventObject& Source )
override;
202 virtual void SAL_CALL
203 disposing(
const css::lang::EventObject& Source )
override;
207 virtual void SAL_CALL
208 dispatch(
const css::util::URL& aURL
209 ,
const css::uno::Sequence< css::beans::PropertyValue >& aArgs )
override;
211 virtual void SAL_CALL
212 addStatusListener(
const css::uno::Reference< css::frame::XStatusListener >& xControl
213 ,
const css::util::URL& aURL )
override;
215 virtual void SAL_CALL
217 ,
const css::util::URL& aURL )
override;
220 virtual void SAL_CALL
222 , sal_Int32 Width, sal_Int32 Height, sal_Int16 Flags )
override;
224 virtual css::awt::Rectangle SAL_CALL
227 virtual void SAL_CALL
230 virtual void SAL_CALL
233 virtual void SAL_CALL
236 virtual void SAL_CALL
237 addWindowListener(
const css::uno::Reference< css::awt::XWindowListener >& xListener )
override;
239 virtual void SAL_CALL
240 removeWindowListener(
const css::uno::Reference< css::awt::XWindowListener >& xListener )
override;
242 virtual void SAL_CALL
243 addFocusListener(
const css::uno::Reference< css::awt::XFocusListener >& xListener )
override;
245 virtual void SAL_CALL
246 removeFocusListener(
const css::uno::Reference< css::awt::XFocusListener >& xListener )
override;
248 virtual void SAL_CALL
249 addKeyListener(
const css::uno::Reference< css::awt::XKeyListener >& xListener )
override;
251 virtual void SAL_CALL
252 removeKeyListener(
const css::uno::Reference< css::awt::XKeyListener >& xListener )
override;
254 virtual void SAL_CALL
255 addMouseListener(
const css::uno::Reference< css::awt::XMouseListener >& xListener )
override;
257 virtual void SAL_CALL
258 removeMouseListener(
const css::uno::Reference< css::awt::XMouseListener >& xListener )
override;
260 virtual void SAL_CALL
261 addMouseMotionListener(
const css::uno::Reference< css::awt::XMouseMotionListener >& xListener )
override;
263 virtual void SAL_CALL
266 virtual void SAL_CALL
267 addPaintListener(
const css::uno::Reference< css::awt::XPaintListener >& xListener )
override;
269 virtual void SAL_CALL
270 removePaintListener(
const css::uno::Reference< css::awt::XPaintListener >& xListener )
override;
273 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
275 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
277 const css::uno::Sequence<
278 css::uno::Any >& Arguments )
override;
279 virtual css::uno::Sequence< OUString > SAL_CALL
284 const css::lang::EventObject& aEvent )
override;
288 const css::util::ModeChangeEvent& _rSource )
override;
292 const css::lang::EventObject& aSource,
293 ::sal_Int16 eLayoutEvent,
294 const css::uno::Any& aInfo )
override;
323 ::Point aAtLogicPosition,
bool bIsBalloonHelp,
324 OUString & rOutQuickHelpText, css::awt::Rectangle & rOutEqualRect );
390 css::uno::Reference< css::uno::XComponentContext>
m_xCC;
393 css::uno::Reference< css::frame::XFrame >
m_xFrame;
521 const css::uno::Sequence< css::beans::PropertyValue >& rArgs );
545 const OUString & rCID,
eMoveOrResizeType eType,
double fAmountLogicX,
double fAmountLogicY );
557 css::uno::Reference< css::accessibility::XAccessibleContext >
560 void impl_PasteGraphic( css::uno::Reference< css::graphic::XGraphic >
const & xGraphic,
561 const ::Point & aPosition );
rtl::Reference< TheModel > m_xTheModel
TheModelRef(TheModel *pTheModel, ::osl::Mutex &rMutex)
TheModelRef & operator=(ChartController::TheModel *pTheModel)
::osl::Mutex & m_rModelMutex
TheModel * operator->() const
const rtl::Reference<::chart::ChartModel > & getModel() const
TheModel(rtl::Reference<::chart::ChartModel > xModel)
rtl::Reference<::chart::ChartModel > m_xModel
virtual ~TheModel() override
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
bool m_bWaitingForMouseUp
void executeDispatch_ChartType()
void executeDispatch_LineColor(sal_uInt32 nColor)
void executeDispatch_DeleteErrorBars(bool bYError)
void executeDispatch_View3D()
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
void executeDispatch_InsertMeanValue()
virtual css::uno::Any SAL_CALL getViewData() override
void executeDispatch_NewArrangement()
void impl_SetMousePointer(const MouseEvent &rEvent)
void executeDispatch_InsertDataLabel()
void executeDispatch_MoveSeries(bool bForward)
void executeDispatch_DeleteDataLabels()
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
void executeDispatch_ObjectProperties()
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
void executeDispatch_OpenLegendDialog()
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_DeleteLegend()
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_ToggleGridVertical()
void executeDispatch_FillColor(sal_uInt32 nColor)
void executeDispatch_ScaleText()
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
void executeDispatch_InsertMajorGrid()
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)
void executeDispatch_DeleteR2Value()
std::shared_ptr< DrawModelWrapper > m_pDrawModelWrapper
void startDoubleClickWaiting()
void executeDispatch_EditData()
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
bool executeDispatch_Delete()
void executeDispatch_InsertTitles()
virtual void SAL_CALL modeChanged(const css::util::ModeChangeEvent &_rSource) override
OUString GetContextName()
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
void executeDispatch_Cut()
void stopDoubleClickWaiting()
rtl::Reference<::chart::ChartView > m_xChartView
void executeDispatch_InsertAxes()
void executeDispatch_SourceData()
bool impl_releaseThisModel(const css::uno::Reference< css::uno::XInterface > &xModel)
ChartController(css::uno::Reference< css::uno::XComponentContext > xContext)
void executeDispatch_InsertMenu_Trendlines()
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)
ChartDrawMode m_eDrawMode
void executeDispatch_OpenInsertDataTableDialog()
virtual void SAL_CALL registerContextMenuInterceptor(const css::uno::Reference< css::ui::XContextMenuInterceptor > &xInterceptor) override
void executeDispatch_InsertMenu_DataLabels()
void executeDispatch_InsertTrendline()
virtual void SAL_CALL queryClosing(const css::lang::EventObject &Source, sal_Bool GetsOwnership) override
void executeDispatch_InsertAxisTitle()
void executeDispatch_InsertMenu_MeanValues()
virtual OUString SAL_CALL getViewControllerName() override
virtual void SAL_CALL notifyClosing(const css::lang::EventObject &Source) override
void executeDispatch_DeleteAxis()
virtual css::uno::Any SAL_CALL getSelection() override
void impl_initializeAccessible()
void executeDispatch_DeleteMinorGrid()
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
void executeDispatch_Copy()
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
void impl_createDrawViewController()
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
void executeDispatch_ResetAllDataPoints()
void executeDispatch_DeleteDataLabel()
DrawModelWrapper * GetDrawModelWrapper()
void execute_DoubleClick(const Point *pMousePixel)
virtual void SAL_CALL removePaintListener(const css::uno::Reference< css::awt::XPaintListener > &xListener) override
Timer m_aDoubleClickTimer
virtual css::uno::Reference< css::frame::XFrame > SAL_CALL getFrame() override
virtual void SAL_CALL modified(const css::lang::EventObject &aEvent) override
void executeDispatch_InsertLegend()
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
void executeDispatch_DeleteMeanValue()
bool m_bWaitingForDoubleClick
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 impl_selectObjectAndNotiy()
void executeDispatch_LineWidth(sal_uInt32 nWidth)
void executeDispatch_DeleteMajorGrid()
static bool isObjectDeleteable(const css::uno::Any &rSelection)
void executeDispatch_ResetDataPoint()
void execute_MouseButtonDown(const MouseEvent &rMEvt)
void impl_deleteDrawViewController()
void executeDispatch_Paste()
rtl::Reference<::chart::Diagram > getFirstDiagram()
void execute_Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
void executeDispatch_DeleteTrendline()
void executeDispatch_PositionAndSize(const ::css::uno::Sequence< ::css::beans::PropertyValue > *pArgs=nullptr)
void impl_notifySelectionChangeListeners()
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)
void impl_ClearSelection()
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
void executeDispatch_InsertSpecialCharacter()
css::uno::Reference< css::frame::XLayoutManagerEventBroadcaster > m_xLayoutManagerEventBroadcaster
void executeDispatch_DeleteTrendlineEquation()
void executeDispatch_ToggleGridHorizontal()
void impl_PasteShapes(SdrModel *pModel)
bool isShapeContext() const
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_InsertR2Value()
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 executeDispatch_InsertAxis()
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)
void impl_adaptDataSeriesAutoResize()
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_ToggleLegend()
void executeDispatch_InsertTrendlineEquation(bool bInsertR2=false)
void executeDispatch_InsertMinorGrid()
void impl_invalidateAccessible()
void executeDispatch_InsertGrid()
void executeDispatch_InsertDataLabels()
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...
Reference< XModel > xModel