60#include <com/sun/star/chart2/RelativePosition.hpp>
61#include <com/sun/star/chart2/RelativeSize.hpp>
62#include <com/sun/star/chart2/data/XPivotTableDataProvider.hpp>
64#include <com/sun/star/awt/PopupMenuDirection.hpp>
65#include <com/sun/star/frame/DispatchHelper.hpp>
66#include <com/sun/star/frame/FrameSearchFlag.hpp>
67#include <com/sun/star/frame/XPopupMenuController.hpp>
68#include <com/sun/star/util/XUpdatable.hpp>
69#include <com/sun/star/awt/Rectangle.hpp>
93#include <boost/property_tree/json_parser.hpp>
95#include <LibreOfficeKit/LibreOfficeKitEnums.h>
102using ::com::sun::star::uno::Reference;
109bool lcl_GrowAndShiftLogic(
110 RelativePosition & rInOutRelPos,
112 const awt::Size & rRefSize,
116 if( rRefSize.Width == 0 ||
117 rRefSize.Height == 0 )
120 double fRelativeGrowX = fGrowLogicX / rRefSize.Width;
121 double fRelativeGrowY = fGrowLogicY / rRefSize.Height;
123 return ::chart::RelativePositionHelper::centerGrow(
124 rInOutRelPos, rInOutRelSize,
125 fRelativeGrowX, fRelativeGrowY );
128bool lcl_MoveObjectLogic(
129 RelativePosition & rInOutRelPos,
131 const awt::Size & rRefSize,
133 double fShiftLogicY )
135 if( rRefSize.Width == 0 ||
136 rRefSize.Height == 0 )
139 double fRelativeShiftX = fShiftLogicX / rRefSize.Width;
140 double fRelativeShiftY = fShiftLogicY / rRefSize.Height;
142 return ::chart::RelativePositionHelper::moveObject(
143 rInOutRelPos, rObjectSize,
144 fRelativeShiftX, fRelativeShiftY );
147void lcl_insertMenuCommand(
148 const uno::Reference< awt::XPopupMenu > & xMenu,
149 sal_Int16
nId,
const OUString & rCommand )
151 xMenu->insertItem(
nId,
"", 0, -1 );
152 xMenu->setCommand(
nId, rCommand );
155OUString lcl_getFormatCommandForObjectCID( std::u16string_view rCID )
157 OUString aDispatchCommand(
".uno:FormatSelection" );
165 aDispatchCommand =
".uno:FormatWall";
168 aDispatchCommand =
".uno:FormatFloor";
171 aDispatchCommand =
".uno:FormatChartArea";
174 aDispatchCommand =
".uno:FormatLegend";
177 aDispatchCommand =
".uno:FormatTitle";
180 aDispatchCommand =
".uno:FormatDataSeries";
184 aDispatchCommand =
".uno:FormatAxis";
187 aDispatchCommand =
".uno:FormatMajorGrid";
190 aDispatchCommand =
".uno:FormatMinorGrid";
193 aDispatchCommand =
".uno:FormatDataLabels";
196 aDispatchCommand =
".uno:FormatDataSeries";
199 aDispatchCommand =
".uno:FormatDataLabel";
202 aDispatchCommand =
".uno:FormatDataPoint";
205 aDispatchCommand =
".uno:FormatMeanValue";
208 aDispatchCommand =
".uno:FormatXErrorBars";
211 aDispatchCommand =
".uno:FormatYErrorBars";
214 aDispatchCommand =
".uno:FormatZErrorBars";
217 aDispatchCommand =
".uno:FormatTrendline";
220 aDispatchCommand =
".uno:FormatTrendlineEquation";
223 aDispatchCommand =
".uno:FormatSelection";
226 aDispatchCommand =
".uno:FormatStockLoss";
229 aDispatchCommand =
".uno:FormatStockGain";
234 return aDispatchCommand;
251 if(!(xWindow.is() && pChartWindow))
259 sal_Int32 nScaleXNumerator = aLogicSize.
Width();
260 sal_Int32 nScaleXDenominator = aModelPageSize.Width;
261 sal_Int32 nScaleYNumerator = aLogicSize.
Height();
262 sal_Int32 nScaleYDenominator = aModelPageSize.Height;
266 Fraction(nScaleXNumerator, nScaleXDenominator),
267 Fraction(nScaleYNumerator, nScaleYDenominator) );
268 pChartWindow->SetMapMode(aNewMapMode);
274 auto aZoomFactors(::comphelper::InitPropertySequence({
275 {
"ScaleXNumerator",
uno::Any( nScaleXNumerator ) },
276 {
"ScaleXDenominator",
uno::Any( nScaleXDenominator ) },
277 {
"ScaleYNumerator",
uno::Any( nScaleYNumerator ) },
278 {
"ScaleYDenominator",
uno::Any( nScaleYDenominator ) }
289 pChartWindow->Invalidate();
295 awt::Rectangle aRet(0, 0, 0, 0);
299 aRet = xWindow->getPosSize();
310 xWindow->setVisible(
Visible );
319 xWindow->setEnable(
Enable );
338 xWindow->addWindowListener( xListener );
348 xWindow->removeWindowListener( xListener );
358 xWindow->addFocusListener( xListener );
368 xWindow->removeFocusListener( xListener );
378 xWindow->addKeyListener( xListener );
388 xWindow->removeKeyListener( xListener );
398 xWindow->addMouseListener( xListener );
408 xWindow->removeMouseListener( xListener );
418 xWindow->addMouseMotionListener( xListener );
428 xWindow->removeMouseMotionListener( xListener );
438 xWindow->addPaintListener( xListener );
448 xWindow->removePaintListener( xListener );
457 if (pDrawViewWrapper)
475 awt::Size aResolution(1000, 1000);
481 aResolution.Width = pChartWindow->GetSizePixel().Width();
482 aResolution.Height = pChartWindow->GetSizePixel().Height();
494 if (pDrawViewWrapper)
498 catch(
const uno::Exception & )
519 sal_uInt64 nDblClkTime = 500;
523 const MouseSettings& rMSettings = pChartWindow->GetSettings().GetMouseSettings();
538 m_bWaitingForDoubleClick =
false;
540 if( m_bWaitingForMouseUp || !
m_aSelection.maybeSwitchSelectionAfterSingleClickWasEnsured() )
543 impl_selectObjectAndNotiy();
545 auto pChartWindow(GetChartWindow());
552 MouseEventModifiers::NONE,
553 static_cast< sal_uInt16
>( aPointerState.
mnState ),
555 impl_SetMousePointer( aMouseEvent );
575 if(!pChartWindow || !pDrawViewWrapper )
584 OUString aCID =
pObject->GetName();
585 if (aCID.startsWith(
"FieldButton"))
594 pChartWindow->GrabFocus();
595 pChartWindow->CaptureMouse();
603 ( rMEvt.
IsRight() && pDrawViewWrapper->
PickAnything( rMEvt, SdrMouseEventKind::BUTTONDOWN, aVEvt ) == SdrHitKind::MarkedObject ) )
625 SdrHdl* pHitSelectionHdl =
nullptr;
628 pHitSelectionHdl = pDrawViewWrapper->
PickHandle( aMPos );
630 if( !pHitSelectionHdl )
640 if ( !pDrawViewWrapper->
IsAction() )
644 Size aCaptionSize( 2268, 1134 );
683 sal_uInt16 nDrgLog =
static_cast<sal_uInt16
>(pChartWindow->PixelToLogic(
Size(
DRGPIX,0)).Width());
688 if( eDragMode==SdrDragMode::Rotate )
697 if( eKind==SdrHdlKind::Upper || eKind==SdrHdlKind::Lower )
699 else if( eKind==SdrHdlKind::Left || eKind==SdrHdlKind::Right )
701 else if( eKind==SdrHdlKind::UpperLeft || eKind==SdrHdlKind::UpperRight || eKind==SdrHdlKind::LowerLeft || eKind==SdrHdlKind::LowerRight )
713 pDrawViewWrapper->SdrView::BegDragObj(aMPos,
nullptr, pHitSelectionHdl, nDrgLog, pDragMethod);
725 if(!pChartWindow || !pDrawViewWrapper)
747 bool bNotifySelectionChange =
false;
753 if(!pChartWindow || !pDrawViewWrapper)
765 OUString aCID =
pObject->GetName();
766 if (aCID.startsWith(
"FieldButton"))
776 if( pDrawViewWrapper->
MouseButtonUp(rMEvt,pChartWindow->GetOutDev()) )
783 pDrawViewWrapper->
EndCreateObj( SdrCreateCmd::ForceEnd );
816 else if ( pDrawViewWrapper->
IsDragObj() )
818 bool bDraggingDone =
false;
819 SdrDragMethod* pDragMethod = pDrawViewWrapper->SdrView::GetDragMethod();
820 bool bIsMoveOnly = pDragMethod && pDragMethod->
getMoveOnly();
822 if( pChartDragMethod )
829 bDraggingDone =
true;
834 if( !bDraggingDone && pDrawViewWrapper->
EndDragObj() )
848 if(
nullptr != pE3dObject)
851 if(
nullptr != pScene)
867 bool bChanged =
false;
875 , awt::Rectangle(aOldObjectRect.
Left(), aOldObjectRect.
Top(), 0, 0)
878 if( bMoved || bChanged )
880 bDraggingDone =
true;
885 catch(
const uno::Exception & )
899 if( bIsRotateable && bClickedTwiceOnDragableObject &&
m_eDragMode==SdrDragMode::Move )
916 pChartWindow->ReleaseMouse();
928 bNotifySelectionChange =
true;
933 if(bNotifySelectionChange)
944 bool bEditText =
false;
948 if ( !aCID.isEmpty() )
982 pChartWindow->Invalidate();
989 bool bIsAction =
false;
992 if(!pChartWindow || !pDrawViewWrapper)
998 if(rCEvt.
GetCommand() == CommandEventId::ContextMenu && !bIsAction)
1002 pChartWindow->ReleaseMouse();
1014 aPos = pChartWindow->GetPointerState().maPos;
1020 aMenuName =
m_pDrawViewWrapper->IsTextEdit() ? std::u16string_view(
u"drawtext" ) : std::u16string_view(
u"draw" );
1026 sal_Int16 nUniqueId = 1;
1029 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:Cut" );
1030 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:Copy" );
1031 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:Paste" );
1032 xPopupMenu->insertSeparator( -1 );
1038 lcl_insertMenuCommand( xPopupMenu, nUniqueId++, aFormatCommand );
1053 bool bHasDataLabelAtPoint =
false;
1054 sal_Int32 nPointIndex = -1;
1060 bool bSelectedPointIsFormatted =
false;
1061 bool bHasFormattedDataPointsOtherThanSelected =
false;
1069 if( aAttributedDataPointIndexList.hasElements() )
1073 auto aIt = std::find( std::as_const(aAttributedDataPointIndexList).
begin(), std::as_const(aAttributedDataPointIndexList).
end(), nPointIndex );
1074 if( aIt != std::as_const(aAttributedDataPointIndexList).
end())
1075 bSelectedPointIsFormatted =
true;
1077 bHasFormattedDataPointsOtherThanSelected =
true;
1080 bHasFormattedDataPointsOtherThanSelected =
true;
1087 if( bHasDataLabelAtPoint )
1088 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatDataLabel" );
1089 if( !bHasDataLabelAtPoint )
1090 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertDataLabel" );
1092 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteDataLabel" );
1093 if( bSelectedPointIsFormatted )
1094 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:ResetDataPoint" );
1096 xPopupMenu->insertSeparator( -1 );
1098 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatDataSeries" );
1106 bool bJapaneseStyle =
false;
1107 xChartType->getPropertyValue(
"Japanese" ) >>= bJapaneseStyle;
1109 if( bJapaneseStyle )
1111 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatStockLoss" );
1112 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatStockGain" );
1115 catch(
const uno::Exception & )
1121 if( bHasDataLabelsAtSeries )
1122 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatDataLabels" );
1124 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatTrendlineEquation" );
1125 if( xMeanValue.is() )
1126 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatMeanValue" );
1127 if( bHasXErrorBars )
1128 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatXErrorBars" );
1129 if( bHasYErrorBars )
1130 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatYErrorBars" );
1132 xPopupMenu->insertSeparator( -1 );
1134 if( !bHasDataLabelsAtSeries )
1135 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertDataLabels" );
1137 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertTrendline" );
1139 if( !xMeanValue.is() )
1140 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertMeanValue" );
1141 if( !bHasXErrorBars )
1142 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertXErrorBars" );
1143 if( !bHasYErrorBars )
1144 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertYErrorBars" );
1145 if( bHasDataLabelsAtSeries || ( bHasDataLabelsAtPoints && bHasFormattedDataPointsOtherThanSelected ) )
1146 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteDataLabels" );
1148 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteTrendlineEquation" );
1149 if( xMeanValue.is() )
1150 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteMeanValue" );
1151 if( bHasXErrorBars )
1152 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteXErrorBars" );
1153 if( bHasYErrorBars )
1154 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteYErrorBars" );
1156 if( bHasFormattedDataPointsOtherThanSelected )
1157 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:ResetAllDataPoints" );
1159 xPopupMenu->insertSeparator( -1 );
1161 lcl_insertMenuCommand( xPopupMenu, nUniqueId,
".uno:ArrangeRow" );
1163 sal_Int16 nSubId = nUniqueId + 1;
1164 lcl_insertMenuCommand( xArrangePopupMenu, nSubId++,
".uno:Forward" );
1165 lcl_insertMenuCommand( xArrangePopupMenu, nSubId,
".uno:Backward" );
1166 xPopupMenu->setPopupMenu( nUniqueId, xArrangePopupMenu );
1172 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteTrendline" );
1173 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatTrendlineEquation" );
1174 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertTrendlineEquation" );
1175 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertTrendlineEquationAndR2" );
1176 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertR2Value" );
1177 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteTrendlineEquation" );
1178 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteR2Value" );
1182 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertR2Value" );
1183 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteR2Value" );
1191 if( xAxis.is() && xDiagram.is() )
1193 sal_Int32 nDimensionIndex = -1;
1194 sal_Int32 nCooSysIndex = -1;
1195 sal_Int32 nAxisIndex = -1;
1197 bool bIsSecondaryAxis = nAxisIndex!=0;
1204 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatAxis" );
1205 if( eObjectType !=
OBJECTTYPE_GRID && bIsMajorGridVisible && !bIsSecondaryAxis )
1206 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatMajorGrid" );
1208 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatMinorGrid" );
1210 xPopupMenu->insertSeparator( -1 );
1213 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertAxis" );
1214 if( eObjectType !=
OBJECTTYPE_GRID && !bIsMajorGridVisible && !bIsSecondaryAxis )
1215 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertMajorGrid" );
1217 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertMinorGrid" );
1219 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertAxisTitle" );
1221 if( bIsAxisVisible )
1222 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteAxis" );
1223 if( bIsMajorGridVisible && !bIsSecondaryAxis )
1224 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteMajorGrid" );
1225 if( bIsMinorGridVisible && !bIsSecondaryAxis )
1226 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteMinorGrid" );
1228 lcl_insertMenuCommand(xPopupMenu, nUniqueId++,
".uno:InsertDataTable");
1233 lcl_insertMenuCommand(xPopupMenu, nUniqueId++,
".uno:DeleteDataTable");
1237 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatStockGain" );
1239 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:FormatStockLoss" );
1241 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:TransformDialog" );
1249 xPopupMenu->insertSeparator( -1 );
1251 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertTitles" );
1253 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertLegend" );
1254 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:InsertRemoveAxes" );
1256 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DeleteLegend" );
1259 xPopupMenu->insertSeparator( -1 );
1260 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DiagramType" );
1261 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DataRanges" );
1262 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:DiagramData" );
1263 lcl_insertMenuCommand( xPopupMenu, nUniqueId++,
".uno:View3D" );
1266 css::uno::Sequence< css::uno::Any > aArgs{
1272 css::uno::Reference< css::frame::XPopupMenuController > xPopupController(
1273 m_xCC->getServiceManager()->createInstanceWithArgumentsAndContext(
1274 "com.sun.star.comp.framework.ResourceMenuController", aArgs,
m_xCC ), css::uno::UNO_QUERY );
1276 if ( !xPopupController.is() || !xPopupMenu.is() )
1279 xPopupController->setPopupMenu( xPopupMenu );
1286 if (pCommandDispatch)
1290 auto nItemId = xPopupMenu->getItemId(
nPos);
1291 OUString aCommandURL = xPopupMenu->getCommand(nItemId);
1293 xPopupMenu->enableItem(nItemId,
false);
1298 boost::property_tree::ptree aRoot;
1299 aRoot.add_child(
"menu", aMenu);
1301 std::stringstream aStream;
1302 boost::property_tree::write_json(aStream, aRoot,
true);
1303 pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_CONTEXT_MENU, OString(aStream.str()));
1308 xPopupMenu->execute( css::uno::Reference< css::awt::XWindowPeer >(
m_xFrame->getContainerWindow(), css::uno::UNO_QUERY ),
1309 css::awt::Rectangle( aPos.
X(), aPos.
Y(), 0, 0 ),
1310 css::awt::PopupMenuDirection::EXECUTE_DEFAULT );
1313 css::uno::Reference< css::lang::XComponent > xComponent( xPopupController, css::uno::UNO_QUERY );
1314 if ( xComponent.is() )
1315 xComponent->dispose();
1317 else if( ( rCEvt.
GetCommand() == CommandEventId::StartExtTextInput ) ||
1318 ( rCEvt.
GetCommand() == CommandEventId::ExtTextInput ) ||
1319 ( rCEvt.
GetCommand() == CommandEventId::EndExtTextInput ) ||
1320 ( rCEvt.
GetCommand() == CommandEventId::InputContextChange ) )
1334 if (!pChartWindow || !pDrawViewWrapper)
1347 sal_uInt16 nCode = aKeyCode.
GetCode();
1348 bool bAlternate = aKeyCode.
IsMod2();
1349 bool bCtrl = aKeyCode.
IsMod1();
1359 if( pDrawViewWrapper->
KeyInput(rKEvt, pChartWindow) )
1405 bool bDragInside =
false;
1420 sal_Int32 nOffsetPercentDummy( 0 );
1421 awt::Point aMinimumPosition( 0, 0 );
1422 awt::Point aMaximumPosition( 0, 0 );
1424 aParameter, nOffsetPercentDummy, aMinimumPosition, aMaximumPosition );
1425 aMaximumPosition.Y -= aMinimumPosition.Y;
1426 aMaximumPosition.X -= aMinimumPosition.X;
1429 (nCode ==
KEY_RIGHT && (aMaximumPosition.X < 0)) ||
1430 (nCode ==
KEY_LEFT && (aMaximumPosition.X > 0)) ||
1431 (nCode ==
KEY_DOWN && (aMaximumPosition.Y < 0)) ||
1432 (nCode ==
KEY_UP && (aMaximumPosition.Y > 0));
1437 double fAmount = bAlternate ? 0.01 : 0.05;
1453 double fGrowAmountX = 200.0;
1454 double fGrowAmountY = 200.0;
1458 Size aPixelSize = pChartWindow->PixelToLogic(
Size( 2, 2 ));
1459 fGrowAmountX =
static_cast< double >( aPixelSize.
Width());
1460 fGrowAmountY =
static_cast< double >( aPixelSize.
Height());
1464 fGrowAmountX = -fGrowAmountX;
1465 fGrowAmountY = -fGrowAmountY;
1480 double fShiftAmountX = 100.0;
1481 double fShiftAmountY = 100.0;
1485 Size aPixelSize = pChartWindow->PixelToLogic(
Size( 1, 1 ));
1486 fShiftAmountX =
static_cast< double >( aPixelSize.
Width());
1487 fShiftAmountY =
static_cast< double >( aPixelSize.
Height());
1492 fShiftAmountX = -fShiftAmountX;
1493 fShiftAmountY = 0.0;
1496 fShiftAmountY = 0.0;
1499 fShiftAmountX = 0.0;
1500 fShiftAmountY = -fShiftAmountY;
1503 fShiftAmountX = 0.0;
1516 if ((fShiftAmountX > 0.0 && (aRect.
Right() + fShiftAmountX > aPageSize.Width)) ||
1517 (fShiftAmountX < 0.0 && (aRect.
Left() + fShiftAmountX < 0)) ||
1518 (fShiftAmountY > 0.0 && (aRect.
Bottom() + fShiftAmountY > aPageSize.Height)) ||
1519 (fShiftAmountY < 0.0 && (aRect.
Top() + fShiftAmountY < 0)))
1525 awt::Rectangle(aRect.
Left(), aRect.
Top(), 0, 0),
1526 awt::Rectangle(0, 0, aPageSize.Width, aPageSize.Height));
1539 awt::Point aPos( xShape->getPosition() );
1540 awt::Size aSize( xShape->getSize() );
1542 aPos.X =
static_cast< tools::Long >(
static_cast< double >( aPos.X ) + fShiftAmountX );
1543 aPos.Y =
static_cast< tools::Long >(
static_cast< double >( aPos.Y ) + fShiftAmountY );
1544 if( aPos.X + aSize.Width > aPageSize.Width )
1545 aPos.X = aPageSize.Width - aSize.Width;
1548 if( aPos.Y + aSize.Height > aPageSize.Height )
1549 aPos.Y = aPageSize.Height - aSize.Height;
1553 xShape->setPosition( aPos );
1562 if( !bReturn && bCtrl && nCode ==
KEY_F12)
1565 if(xChartModel.is())
1567 OUString aDump = xChartModel->dump(
"shapes");
1590 xDispatchHelper->executeDispatch(
1592 ".uno:TerminateInplaceActivation",
1594 frame::FrameSearchFlag::PARENT,
1606 VclMessageType::Info, VclButtonsType::Ok,
1607 SchResId(STR_ACTION_NOTPOSSIBLE)));
1617 bool bIsBalloonHelp,
1618 OUString & rOutQuickHelpText,
1619 awt::Rectangle & rOutEqualRect )
1624 if( !xChartModel.is())
1634 bool bResult( !aCID.isEmpty());
1643 rOutEqualRect =
m_xChartView->getRectangleOfObject( aCID,
true );
1652 bool bSuccess =
false;
1656 const uno::Type& rType = rSelection.getValueType();
1694 pChartWindow->Invalidate();
1708 if ( !aCID.isEmpty() )
1740 m_aLifeTimeManager.m_aSelectionChangeListeners.removeInterface( aGuard2, xListener );
1749 lang::EventObject
aEvent( xSelectionSupplier );
1750 m_aLifeTimeManager.m_aSelectionChangeListeners.notifyEach(aGuard, &view::XSelectionChangeListener::selectionChanged,
aEvent);
1759 if( pDrawViewWrapper )
1769 const OUString & rCID,
1771 double fAmountLogicX,
1772 double fAmountLogicY )
1774 bool bResult =
false;
1784 chart2::RelativePosition aRelPos;
1785 chart2::RelativeSize aRelSize;
1786 bool bDeterminePos = !(xObjProp->getPropertyValue(
"RelativePosition") >>= aRelPos);
1787 bool bDetermineSize = !bNeedResize || !(xObjProp->getPropertyValue(
"RelativeSize") >>= aRelSize);
1789 if( ( bDeterminePos || bDetermineSize ) &&
1790 ( aRefSize.Width > 0 && aRefSize.Height > 0 ) )
1792 ExplicitValueProvider * pValueProvider(
m_xChartView.get() );
1793 if( pValueProvider )
1795 awt::Rectangle aRect( pValueProvider->getRectangleOfObject( rCID ));
1796 double fWidth =
static_cast< double >( aRefSize.Width );
1797 double fHeight =
static_cast< double >( aRefSize.Height );
1798 if( bDetermineSize )
1800 aRelSize.Primary =
static_cast< double >( aRect.Width ) / fWidth;
1801 aRelSize.Secondary =
static_cast< double >( aRect.Height ) / fHeight;
1805 if( bNeedResize && aRelSize.Primary > 0.0 && aRelSize.Secondary > 0.0 )
1807 aRelPos.Primary = (
static_cast< double >( aRect.X ) / fWidth) +
1808 (aRelSize.Primary / 2.0);
1809 aRelPos.Secondary = (
static_cast< double >( aRect.Y ) / fHeight) +
1810 (aRelSize.Secondary / 2.0);
1811 aRelPos.Anchor = drawing::Alignment_CENTER;
1815 aRelPos.Primary =
static_cast< double >( aRect.X ) / fWidth;
1816 aRelPos.Secondary =
static_cast< double >( aRect.Y ) / fHeight;
1817 aRelPos.Anchor = drawing::Alignment_TOP_LEFT;
1824 bResult = lcl_GrowAndShiftLogic( aRelPos, aRelSize, aRefSize, fAmountLogicX, fAmountLogicY );
1826 bResult = lcl_MoveObjectLogic( aRelPos, aRelSize, aRefSize, fAmountLogicX, fAmountLogicY );
1839 xObjProp->setPropertyValue(
"RelativePosition",
uno::Any( aRelPos ));
1841 xObjProp->setPropertyValue(
"RelativeSize",
uno::Any( aRelSize ));
1851 bool bResult =
false;
1852 if( fAdditionalOffset < -1.0 || fAdditionalOffset > 1.0 || fAdditionalOffset == 0.0 )
1863 double fOffset = 0.0;
1864 if( xPointProp.is() &&
1865 (xPointProp->getPropertyValue(
"Offset" ) >>= fOffset ) &&
1866 (( fAdditionalOffset > 0.0 && fOffset < 1.0 ) || (fOffset > 0.0)) )
1868 fOffset += fAdditionalOffset;
1871 else if( fOffset < 0.0 )
1873 xPointProp->setPropertyValue(
"Offset",
uno::Any( fOffset ));
1877 catch(
const uno::Exception & )
1896 bool bLeftDown = rEvent.
IsLeft();
1902 pChartWindow->SetPointer(PointerStyle::Arrow);
1911 aMousePos, pChartWindow->GetOutDev(), nModifier, bLeftDown ) );
1920 SdrHdl* pHitSelectionHdl =
nullptr;
1924 if( pHitSelectionHdl )
1927 aMousePos, pChartWindow->GetOutDev(), nModifier, bLeftDown );
1928 bool bForceArrowPointer =
false;
1934 case PointerStyle::NSize:
1935 case PointerStyle::SSize:
1936 case PointerStyle::WSize:
1937 case PointerStyle::ESize:
1938 case PointerStyle::NWSize:
1939 case PointerStyle::NESize:
1940 case PointerStyle::SWSize:
1941 case PointerStyle::SESize:
1943 bForceArrowPointer =
true;
1945 case PointerStyle::Move:
1947 bForceArrowPointer =
true;
1949 case PointerStyle::MovePoint:
1950 case PointerStyle::MoveBezierWeight:
1953 bForceArrowPointer =
true;
1959 if( bForceArrowPointer )
1960 pChartWindow->SetPointer( PointerStyle::Arrow );
1962 pChartWindow->SetPointer( aPointer );
1975 case SdrObjKind::Line:
1977 ePointerStyle = PointerStyle::DrawLine;
1980 case SdrObjKind::Rectangle:
1981 case SdrObjKind::CustomShape:
1983 ePointerStyle = PointerStyle::DrawRect;
1986 case SdrObjKind::CircleOrEllipse:
1988 ePointerStyle = PointerStyle::DrawEllipse;
1991 case SdrObjKind::FreehandLine:
1993 ePointerStyle = PointerStyle::DrawPolygon;
1996 case SdrObjKind::Text:
1998 ePointerStyle = PointerStyle::DrawText;
2001 case SdrObjKind::Caption:
2003 ePointerStyle = PointerStyle::DrawCaption;
2008 ePointerStyle = PointerStyle::DrawRect;
2012 pChartWindow->SetPointer( ePointerStyle );
2016 OUString aHitObjectCID(
2024 pChartWindow->SetPointer( PointerStyle::Arrow );
2029 if( aHitObjectCID.isEmpty() )
2032 pChartWindow->SetPointer( PointerStyle::Move );
2039 pChartWindow->SetPointer( PointerStyle::Rotate );
2048 pChartWindow->SetPointer( PointerStyle::Arrow );
2052 pChartWindow->SetPointer( PointerStyle::Move );
2056 pChartWindow->SetPointer( PointerStyle::Arrow );
2066 xPivotTableDataProvider.set(pChartModel->getDataProvider(), uno::UNO_QUERY);
2067 if (!xPivotTableDataProvider.is())
2070 OUString sPivotTableName = xPivotTableDataProvider->getPivotTableName();
2072 css::uno::Reference<css::awt::XRequestCallback> xPopupRequest = pChartModel->getPopupRequest();
2078 size_t nStartPos = rCID.rfind(
'.');
2080 sal_Int32 nEndPos = rCID.size();
2081 std::u16string_view sDimensionIndex = rCID.substr(nStartPos, nEndPos - nStartPos);
2084 awt::Rectangle xRectangle {
2085 sal_Int32(aRectangle.
Left()),
2086 sal_Int32(aRectangle.
Top()),
2093 {
"Rectangle",
uno::Any(xRectangle)},
2094 {
"DimensionIndex",
uno::Any(sal_Int32(nDimensionIndex))},
2095 {
"PivotTableName",
uno::Any(sPivotTableName)},
static OUString createDescription(ActionType eActionType, std::u16string_view rObjectName)
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, const ILibreOfficeKitNotifier *pNotifier=nullptr)
CommandEventId GetCommand() const
const Point & GetMousePosPixel() const
bool IsMouseEvent() const
virtual E3dScene * getRootE3dSceneFromE3dObject() const
virtual void MovAction(const Point &rPnt) override
const vcl::KeyCode & GetKeyCode() const
sal_uInt16 GetModifier() const
sal_uInt16 GetClicks() const
sal_uInt16 GetButtons() const
const Point & GetPosPixel() const
sal_uInt64 GetDoubleClickTime() const
constexpr tools::Long Y() const
constexpr tools::Long X() const
virtual const tools::Rectangle & GetSnapRect() const override
bool BegCreateObj(const Point &rPnt, OutputDevice *pOut=nullptr, short nMinMov=-3)
bool EndCreateObj(SdrCreateCmd eCmd)
SdrObjKind GetCurrentObjIdentifier() const
virtual bool IsAction() const override
SdrObject * GetCreateObj() const
bool BegCreateCaptionObj(const Point &rPnt, const Size &rObjSiz, OutputDevice *pOut=nullptr, short nMinMov=-3)
virtual void BckAction() override
bool EndDragObj(bool bCopy=false)
SdrHdlKind GetKind() const
void SetDragMode(SdrDragMode eMode)
SdrHdl * PickHandle(const Point &rPnt) const
bool AreObjectsMarked() const
SdrDragMode GetDragMode() const
bool IsMarkedHit(const Point &rPnt, short nTol=-2) const
bool IsTextEditHit(const Point &rHit) const
virtual bool IsTextEdit() const final override
virtual css::uno::Reference< css::drawing::XShape > getUnoShape()
void SetMergedItemSet(const SfxItemSet &rSet, bool bClearAllItems=false)
virtual const tools::Rectangle & GetSnapRect() const
virtual const tools::Rectangle & GetLastBoundRect() const
virtual bool MouseButtonDown(const MouseEvent &rMEvt, OutputDevice *pWin) override
bool KeyInput(const KeyEvent &rKEvt, vcl::Window *pWin) override
virtual bool MouseButtonUp(const MouseEvent &rMEvt, OutputDevice *pWin) override
SdrHitKind PickAnything(const MouseEvent &rMEvt, SdrMouseEventKind nMouseDownOrMoveOrUp, SdrViewEvent &rVEvt) const
static boost::property_tree::ptree fillPopupMenu(const rtl::Reference< VCLXPopupMenu > &rMenu)
bool isLOKMobilePhone() const
static SAL_WARN_UNUSED_RESULT SfxViewShell * Current()
constexpr tools::Long Height() const
constexpr tools::Long Width() const
void SetTimeout(sal_uInt64 nTimeoutMs)
virtual void Start(bool bStartTimer=true) override
static bool getIndicesForAxis(const rtl::Reference< ::chart::Axis > &xAxis, const rtl::Reference< ::chart::BaseCoordinateSystem > &xCooSys, sal_Int32 &rOutDimensionIndex, sal_Int32 &rOutAxisIndex)
static bool isGridShown(sal_Int32 nDimensionIndex, sal_Int32 nCooSysIndex, bool bMainGrid, const rtl::Reference< ::chart::Diagram > &xDiagram)
static bool isAxisVisible(const rtl::Reference< ::chart::Axis > &xAxis)
const rtl::Reference<::chart::ChartModel > & getModel() const
virtual void SAL_CALL removeFocusListener(const css::uno::Reference< css::awt::XFocusListener > &xListener) override
bool m_bWaitingForMouseUp
rtl::Reference<::chart::ChartModel > getChartModel()
bool execute_KeyInput(const KeyEvent &rKEvt)
void impl_SetMousePointer(const MouseEvent &rEvent)
void executeDispatch_ObjectProperties()
virtual void SAL_CALL removeMouseListener(const css::uno::Reference< css::awt::XMouseListener > &xListener) override
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_EditText(const Point *pMousePixel=nullptr)
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
std::shared_ptr< DrawModelWrapper > m_pDrawModelWrapper
void startDoubleClickWaiting()
virtual void SAL_CALL addMouseMotionListener(const css::uno::Reference< css::awt::XMouseMotionListener > &xListener) override
bool executeDispatch_Delete()
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
void execute_MouseButtonUp(const MouseEvent &rMEvt)
void stopDoubleClickWaiting()
rtl::Reference<::chart::ChartView > m_xChartView
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
ChartDrawMode m_eDrawMode
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
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)
void execute_DoubleClick(const Point *pMousePixel)
virtual void SAL_CALL removePaintListener(const css::uno::Reference< css::awt::XPaintListener > &xListener) override
Timer m_aDoubleClickTimer
css::uno::Reference< css::frame::XFrame > m_xFrame
bool m_bWaitingForDoubleClick
virtual void SAL_CALL removeSelectionChangeListener(const css::uno::Reference< css::view::XSelectionChangeListener > &xListener) override
CommandDispatchContainer m_aDispatchContainer
void impl_switchDiagramPositioningToExcludingPositioning()
void impl_selectObjectAndNotiy()
void execute_MouseButtonDown(const MouseEvent &rMEvt)
rtl::Reference<::chart::Diagram > getFirstDiagram()
void execute_Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
void impl_notifySelectionChangeListeners()
virtual void SAL_CALL setFocus() override
virtual void SAL_CALL addPaintListener(const css::uno::Reference< css::awt::XPaintListener > &xListener) override
bool impl_DragDataPoint(std::u16string_view rCID, double fOffset)
bool isShapeContext() const
void execute_Command(const CommandEvent &rCEvt)
void sendPopupRequest(std::u16string_view rCID, tools::Rectangle aRectangle)
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 execute_MouseMove(const MouseEvent &rMEvt)
virtual void SAL_CALL setEnable(sal_Bool Enable) override
virtual void SAL_CALL addFocusListener(const css::uno::Reference< css::awt::XFocusListener > &xListener) override
static css::awt::Size getPageSize(const rtl::Reference<::chart::ChartModel > &xModel)
DrawCommandDispatch * getDrawCommandDispatch()
const css::uno::Reference< css::frame::XDispatch > & getChartDispatcher() const
This class is a CommandDispatch that is responsible for all commands that the ChartController support...
bool commandAvailable(const OUString &rCommand)
This guard calls lockControllers at the given Model in the CTOR and unlockControllers in the DTOR.
static bool switchDiagramPositioningToExcludingPositioning(ChartModel &rModel, bool bResetModifiedState, bool bConvertAlsoFromAutoPositioning)
OUString getUndoDescription() const
This is a CommandDispatch implementation for drawing objects.
void setLineEnds(SfxItemSet &rAttr)
void setAttributes(SdrObject *pObj)
SdrObject * getHitObject(const Point &rPnt) const
void CompleteRedraw(OutputDevice *pOut, const vcl::Region &rReg, sdr::contact::ViewObjectContactRedirector *pRedirector=nullptr) override
static SdrObject * getSdrObject(const css::uno::Reference< css::drawing::XShape > &xShape)
SdrObject * getNamedSdrObject(const OUString &rName) const
SdrObject * getSelectedObject() const
static bool hasLegend(const rtl::Reference< ::chart::Diagram > &xDiagram)
returns <FALSE>, if either there is no legend at the diagram, or there is a legend which has a "Show"...
static bool isRootNode(const ObjectIdentifier &rOID)
static bool areSiblings(std::u16string_view rCID1, std::u16string_view rCID2)
static bool isDragableObject(std::u16string_view rClassifiedIdentifier)
css::uno::Any getAny() const
bool isDragableObject() const
static rtl::Reference< ::chart::DataSeries > getDataSeriesForCID(std::u16string_view rObjectCID, const rtl::Reference<::chart::ChartModel > &xChartModel)
const OUString & getObjectCID() const
static css::uno::Reference< css::beans::XPropertySet > getObjectPropertySet(std::u16string_view rObjectCID, const rtl::Reference< ::chart::ChartModel > &xChartDocument)
static bool areIdenticalObjects(std::u16string_view rCID1, std::u16string_view rCID2)
static rtl::Reference< ::chart::Axis > getAxisForCID(std::u16string_view rObjectCID, const rtl::Reference<::chart::ChartModel > &xChartModel)
static std::u16string_view getDragParameterString(std::u16string_view rCID)
static sal_Int32 getIndexFromParticleOrCID(std::u16string_view rParticleOrCID)
static std::u16string_view getDragMethodServiceName(std::u16string_view rClassifiedIdentifier)
static bool parsePieSegmentDragParameterString(std::u16string_view rDragParameterString, sal_Int32 &rOffsetPercent, css::awt::Point &rMinimumPosition, css::awt::Point &rMaximumPosition)
static const OUString & getPieSegmentDragMethodServiceName()
ObjectType getObjectType() const
const ObjectIdentifier & getCurrentSelection() const
bool handleKeyEvent(const css::awt::KeyEvent &rEvent)
static OUString getName(ObjectType eObjectType, bool bPlural=false)
static OUString getHelpText(std::u16string_view rObjectCID, const rtl::Reference<::chart::ChartModel > &xChartModel, bool bVerbose=false)
Provides help texts for the various chart elements.
static bool moveObject(ObjectType eObjectType, const css::uno::Reference< css::beans::XPropertySet > &xObjectProp, const css::awt::Rectangle &rNewPositionAndSize, const css::awt::Rectangle &rOldPositionAndSize, const css::awt::Rectangle &rPageRectangle)
static OUString getHitObjectCID(const Point &rMPos, DrawViewWrapper const &rDrawViewWrapper, bool bGetDiagramInsteadOf_Wall=false)
static bool isRotateableObject(std::u16string_view rCID, const rtl::Reference<::chart::ChartModel > &xChartModel)
static E3dScene * getSceneToRotate(SdrObject *pObj)
static bool isDragableObjectHitTwice(const Point &rMPos, const OUString &rNameOfSelectedObject, const DrawViewWrapper &rDrawViewWrapper)
void remindSelectionBeforeMouseDown()
void resetPossibleSelectionAfterSingleClickWasEnsured()
bool isDragableObjectSelected() const
bool hasSelection() const
bool isRotateableObjectSelected(const rtl::Reference<::chart::ChartModel > &xChartModel) const
const ObjectIdentifier & getSelectedOID() const
OUString const & getSelectedCID() const
bool maybeSwitchSelectionAfterSingleClickWasEnsured()
void adaptSelectionToNewPos(const Point &rMousePos, DrawViewWrapper const *pDrawViewWrapper, bool bIsRightMouse, bool bWaitingForDoubleClick)
bool isSelectionDifferentFromBeforeMouseDown() const
bool isResizeableObjectSelected() const
void applySelection(DrawViewWrapper *pDrawViewWrapper)
bool setSelection(const OUString &rCID)
css::uno::Reference< css::drawing::XShape > const & getSelectedAdditionalShape() const
static OUString getCompleteString(const rtl::Reference< ::chart::Title > &xTitle)
A guard which does nothing, unless you explicitly call commitAction.
static css::awt::KeyEvent st_VCLKey2AWTKey(const vcl::KeyCode &aKey)
static std::unique_ptr< AcceleratorExecute > createAcceleratorHelper()
sal_uInt16 GetCode() const
#define DBG_UNHANDLED_EXCEPTION(...)
ESelection aNewSelection(GetSelection())
EmbeddedObjectRef * pObject
constexpr sal_uInt16 KEY_F2
constexpr sal_uInt16 KEY_ESCAPE
constexpr sal_uInt16 KEY_ADD
constexpr sal_uInt16 KEY_LEFT
constexpr sal_uInt16 KEY_UP
constexpr sal_uInt16 KEY_RIGHT
constexpr sal_uInt16 KEY_DELETE
constexpr sal_uInt16 KEY_F12
constexpr sal_uInt16 KEY_DOWN
constexpr sal_uInt16 KEY_SUBTRACT
constexpr sal_uInt16 KEY_BACKSPACE
#define SAL_WARN(area, stream)
OOO_DLLPUBLIC_CHARTTOOLS bool hasDataLabelAtPoint(const rtl::Reference< ::chart::DataSeries > &xSeries, sal_Int32 nPointIndex)
OOO_DLLPUBLIC_CHARTTOOLS bool hasDataLabelsAtSeries(const rtl::Reference< ::chart::DataSeries > &xSeries)
OOO_DLLPUBLIC_CHARTTOOLS bool hasDataLabelsAtPoints(const rtl::Reference< ::chart::DataSeries > &xSeries)
@ PROP_DATASERIES_ATTRIBUTED_DATA_POINTS
OOO_DLLPUBLIC_CHARTTOOLS rtl::Reference<::chart::RegressionCurveModel > getFirstCurveNotMeanValueLine(const css::uno::Reference< css::chart2::XRegressionCurveContainer > &xCurveContainer)
Returns the first regression curve found that is not of type mean-value line.
OOO_DLLPUBLIC_CHARTTOOLS rtl::Reference<::chart::RegressionCurveModel > getMeanValueLine(const css::uno::Reference< css::chart2::XRegressionCurveContainer > &xRegCnt)
OOO_DLLPUBLIC_CHARTTOOLS bool hasEquation(const css::uno::Reference< css::chart2::XRegressionCurve > &xCurve)
OOO_DLLPUBLIC_CHARTTOOLS bool hasErrorBars(const rtl::Reference< ::chart::DataSeries > &xDataSeries, bool bYError=true)
@ OBJECTTYPE_LEGEND_ENTRY
@ OBJECTTYPE_DATA_ERRORS_X
@ OBJECTTYPE_DATA_STOCK_LOSS
@ OBJECTTYPE_DIAGRAM_FLOOR
@ OBJECTTYPE_DATA_STOCK_RANGE
@ OBJECTTYPE_DATA_ERRORS_Y
@ OBJECTTYPE_AXIS_UNITLABEL
@ OBJECTTYPE_DATA_CURVE_EQUATION
@ OBJECTTYPE_DATA_STOCK_GAIN
@ OBJECTTYPE_DATA_AVERAGE_LINE
@ OBJECTTYPE_DATA_ERRORS_Z
@ OBJECTTYPE_DIAGRAM_WALL
static bool isDoubleClick(const MouseEvent &rMEvt)
OUString OOO_DLLPUBLIC_CHARTTOOLS SchResId(TranslateId aId)
IMPL_LINK_NOARG(SplinePropertiesDialog, SplineTypeListBoxHdl, weld::ComboBox &, void)
css::uno::Sequence< css::beans::PropertyValue > InitPropertySequence(::std::initializer_list< ::std::pair< OUString, css::uno::Any > > vInit)
css::beans::PropertyValue makePropertyValue(const OUString &rName, T &&rValue)
sal_Int32 toInt32(std::u16string_view str, sal_Int16 radix=10)
enumrange< T >::Iterator begin(enumrange< T >)
constexpr OUStringLiteral CHART2_SERVICE_NAME_CHARTTYPE_CANDLESTICK
Reference< XModel > xModel
SVXCORE_DLLPUBLIC SdrTextObj * DynCastSdrTextObj(SdrObject *)
SVXCORE_DLLPUBLIC E3dObject * DynCastE3dObject(SdrObject *)