20 #include <com/sun/star/awt/MouseButton.hpp>
21 #include <com/sun/star/drawing/ShapeCollection.hpp>
22 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
23 #include <com/sun/star/script/vba/XVBAEventProcessor.hpp>
24 #include <com/sun/star/util/VetoException.hpp>
25 #include <com/sun/star/view/DocumentZoomType.hpp>
57 #include <drawview.hxx>
60 #include <unonames.hxx>
67 #include <preview.hxx>
110 {
u"", 0, css::uno::Type(), 0, 0 }
112 return aViewOptPropertyMap_Impl;
115 #define SCTABVIEWOBJ_SERVICE "com.sun.star.sheet.SpreadsheetView"
116 #define SCVIEWSETTINGS_SERVICE "com.sun.star.sheet.SpreadsheetViewSettings"
121 pViewShell( pViewSh ),
133 EndListening(*pViewShell);
138 if ( rHint.
GetId() == SfxHintId::Dying )
139 pViewShell =
nullptr;
156 static const uno::Sequence<uno::Type>
aTypes
169 return css::uno::Sequence<sal_Int8>();
179 ScViewData& rViewData = pViewShell->GetViewData();
185 return rViewData.
GetPosX( eWhichH );
187 OSL_FAIL(
"no View ?!?");
196 ScViewData& rViewData = pViewShell->GetViewData();
203 pViewShell->ScrollX( nDeltaX, eWhichH );
212 ScViewData& rViewData = pViewShell->GetViewData();
218 return rViewData.
GetPosY( eWhichV );
220 OSL_FAIL(
"no View ?!?");
229 ScViewData& rViewData = pViewShell->GetViewData();
236 pViewShell->ScrollY( nDeltaY, eWhichV );
243 table::CellRangeAddress aAdr;
246 ScViewData& rViewData = pViewShell->GetViewData();
259 if (!nVisX) nVisX = 1;
260 if (!nVisY) nVisY = 1;
262 aAdr.StartColumn = rViewData.
GetPosX( eWhichH );
263 aAdr.StartRow = rViewData.
GetPosY( eWhichV );
264 aAdr.EndColumn = aAdr.StartColumn + nVisX - 1;
265 aAdr.EndRow = aAdr.StartRow + nVisY - 1;
279 table::CellRangeAddress aAdr(getVisibleRange());
280 ScRange aRange( static_cast<SCCOL>(aAdr.StartColumn), static_cast<SCROW>(aAdr.StartRow), aAdr.Sheet,
281 static_cast<SCCOL>(aAdr.EndColumn), static_cast<SCROW>(aAdr.EndRow), aAdr.Sheet );
305 return ( _rpFormShell !=
nullptr ) && ( _rpSdrView != nullptr )&& ( _rpWindow !=
nullptr );
314 uno::Reference< form::runtime::XFormController >
xController;
319 if ( lcl_prepareFormShellCall( pViewShell, nPane, pFormShell, pWindow, pSdrView ) )
329 bool bIsFormDesignMode(
true );
331 FmFormShell* pFormShell( pViewShell ? pViewShell->GetFormShell() : nullptr );
335 return bIsFormDesignMode;
345 if ( lcl_prepareFormShellCall( pViewShell, nPane, pFormShell, pWindow, pSdrView ) )
352 const uno::Reference<awt::XControlModel>& xModel )
356 uno::Reference<awt::XControl> xRet;
361 if ( lcl_prepareFormShellCall( pViewShell, nPane, pFormShell, pWindow, pSdrView ) )
365 throw container::NoSuchElementException();
372 awt::Rectangle aVisArea;
376 pViewShell->GetViewData().GetActivePart() :
379 ScDocument& rDoc = pViewShell->GetViewData().GetDocument();
386 ScAddress aCell(pViewShell->GetViewData().GetPosX(eWhichH),
387 pViewShell->GetViewData().GetPosY(eWhichV),
388 pViewShell->GetViewData().GetTabNo());
391 Point aVisPos( aCellRect.TopLeft() );
394 aVisPos = aCellRect.TopRight();
395 aVisPos.AdjustX( -(aVisSize.
Width()) );
419 aRet = OWeakObject::queryInterface( rType );
425 OWeakObject::acquire();
430 OWeakObject::release();
439 aMouseClickHandlers( 0 ),
440 aActivationListeners( 0 ),
442 bDrawSelModeSet(false),
443 bFilteredRangeSelection(false),
444 mbLeftMousePressed(false)
484 aRet = SfxBaseController::queryInterface( rType );
490 SfxBaseController::acquire();
495 SfxBaseController::release();
509 const OUString* pScript = pEvents->
GetScript(nEvent);
513 uno::Sequence<uno::Any> aParams;
514 uno::Sequence<sal_Int16> aOutArgsIndex;
515 uno::Sequence<uno::Any> aOutArgs;
516 pDocSh->
CallXScript( *pScript, aParams, aRet, aOutArgsIndex, aOutArgs );
523 uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents( rDoc.
GetVbaEventProcessor(), uno::UNO_SET_THROW );
525 uno::Sequence< uno::Any > aArgs( 1 );
529 catch( uno::Exception& )
543 sheet::ActivationEvent
aEvent;
544 uno::Reference< sheet::XSpreadsheetView > xView(
this);
545 uno::Reference< uno::XInterface > xSource(xView, uno::UNO_QUERY);
546 aEvent.Source = xSource;
552 (*it)->activeSpreadsheetChanged( aEvent );
555 catch( uno::Exception& )
577 SfxBaseController::getTypes(),
578 uno::Sequence<uno::Type>
597 return css::uno::Sequence<sal_Int8>();
606 const ScRange & rRange = rRanges[
i ];
616 SCTAB nObjectTab = 0;
620 for (sal_uInt16
i=0;
i<nPageCount && !bFound;
i++)
627 while (pObject && !bFound)
629 if ( pObject == pSelObj )
632 nObjectTab =
static_cast<SCTAB>(
i);
634 pObject = aIter.
Next();
657 uno::Reference<uno::XInterface> xInterface(aSelection, uno::UNO_QUERY);
658 if ( !xInterface.is() )
681 ScCellRangesBase* pRangesImp = comphelper::getUnoTunnelImplementation<ScCellRangesBase>( xInterface );
682 uno::Reference<drawing::XShapes> xShapeColl( xInterface, uno::UNO_QUERY );
683 uno::Reference<drawing::XShape> xShapeSel( xInterface, uno::UNO_QUERY );
684 SvxShape* pShapeImp = comphelper::getUnoTunnelImplementation<SvxShape>( xShapeSel );
701 if ( pFunc && pFunc->
GetSlotID() != SID_OBJECT_SELECT )
714 size_t nRangeCount = rRanges.
size();
716 if ( nRangeCount == 0 )
718 else if ( nRangeCount == 1 )
724 const ScRange & rFirst = rRanges[ 0 ];
741 else if ( pShapeImp || xShapeColl.is() )
758 pDrawView->
MarkObj( pObj, pPV );
773 bool bAllMarked(
true);
776 uno::Reference<drawing::XShape> xShapeInt(xShapeColl->getByIndex(
i), uno::UNO_QUERY);
796 pDrawView->
MarkObj( pObj, pPV );
816 throw lang::IllegalArgumentException();
823 uno::Reference<drawing::XShapes> xShapes;
835 for (
size_t i = 0;
i < nMarkCount; ++
i)
840 uno::Reference<drawing::XShape> xShape( pDrawObj->
getUnoShape(), uno::UNO_QUERY );
842 xShapes->add(xShape);
860 return uno::makeAny(xRet);
886 switch ( aRangeList.size() )
895 const ScRange& rRange = aRangeList[ 0 ];
924 pObj->SetCursorOnly(
true );
928 return uno::makeAny(uno::Reference<uno::XInterface>(static_cast<cppu::OWeakObject*>(pObj.get())));
936 return new ScIndexEnumeration(
this,
"com.sun.star.sheet.SpreadsheetViewPanesEnumeration");
945 sal_uInt16 nPanes = 0;
963 throw lang::IndexOutOfBoundsException();
965 return uno::makeAny(xPane);
999 eWhich = ePosHV[nIndex];
1007 else if ( nIndex == 1 )
1015 else if ( nIndex == 0 )
1019 else if ( nIndex > 0 )
1023 return new ScViewPaneObj( pViewSh, sal::static_int_cast<sal_uInt16>(eWhich) );
1049 if ( !(pViewSh && xActiveSheet.is()) )
1054 ScCellRangesBase* pRangesImp = comphelper::getUnoTunnelImplementation<ScCellRangesBase>( xActiveSheet );
1058 if ( rRanges.
size() == 1 )
1060 SCTAB nNewTab = rRanges[ 0 ].aStart.Tab();
1069 uno::Reference< uno::XInterface >
xTarget;
1082 xTarget.set(uno::Reference<table::XCell>(pCellObj), uno::UNO_QUERY);
1088 if (pDrawLayer->HasObjects() && (pDrawLayer->GetPageCount() > nTab))
1089 pDrawPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nTab));
1098 sal_uInt16 nHitLog =
static_cast<sal_uInt16
>(pActiveWin->
PixelToLogic(
1103 for (
size_t i = 0;
i <
nCount && !bFound; ++
i)
1136 bool bReturn(
false);
1137 if ( e.Buttons == css::awt::MouseButton::LEFT )
1143 awt::EnhancedMouseEvent aMouseEvent;
1145 aMouseEvent.Buttons = e.Buttons;
1146 aMouseEvent.X = e.X;
1147 aMouseEvent.Y = e.Y;
1148 aMouseEvent.ClickCount = e.ClickCount;
1149 aMouseEvent.PopupTrigger = e.PopupTrigger;
1150 aMouseEvent.Target = xTarget;
1151 aMouseEvent.Modifiers = e.Modifiers;
1157 if (!(*it)->mousePressed( aMouseEvent ))
1161 catch ( uno::Exception& )
1169 bool bDoubleClick = ( e.Buttons == awt::MouseButton::LEFT && e.ClickCount == 2 );
1170 bool bRightClick = ( e.Buttons == awt::MouseButton::RIGHT && e.ClickCount == 1 );
1171 if ( ( bDoubleClick || bRightClick ) && !bReturn && xTarget.is())
1183 const OUString* pScript = pEvents->
GetScript(nEvent);
1187 uno::Sequence<uno::Any> aParams(1);
1188 aParams[0] <<= xTarget;
1191 uno::Sequence<sal_Int16> aOutArgsIndex;
1192 uno::Sequence<uno::Any> aOutArgs;
1194 pDocSh->
CallXScript( *pScript, aParams, aRet, aOutArgsIndex, aOutArgs );
1197 bool bRetValue =
false;
1198 if ((aRet >>= bRetValue) && bRetValue)
1204 if (!bReturn && xTarget.is())
try
1206 uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents( rDoc.
GetVbaEventProcessor(), uno::UNO_SET_THROW );
1208 uno::Sequence< uno::Any > aArgs( 1 );
1209 aArgs[ 0 ] <<= xTarget;
1212 catch( util::VetoException& )
1216 catch( uno::Exception& )
1226 if ( e.Buttons == css::awt::MouseButton::LEFT )
1234 uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents( rDoc.
GetVbaEventProcessor(), uno::UNO_SET_THROW );
1235 uno::Sequence< uno::Any > aArgs( 1 );
1239 catch( uno::Exception& )
1245 bool bReturn(
false);
1253 awt::EnhancedMouseEvent aMouseEvent;
1255 aMouseEvent.Buttons = e.Buttons;
1256 aMouseEvent.X = e.X;
1257 aMouseEvent.Y = e.Y;
1258 aMouseEvent.ClickCount = e.ClickCount;
1259 aMouseEvent.PopupTrigger = e.PopupTrigger;
1260 aMouseEvent.Target = xTarget;
1261 aMouseEvent.Modifiers = e.Modifiers;
1267 if (!(*it)->mouseReleased( aMouseEvent ))
1271 catch ( uno::Exception& )
1285 lang::EventObject
aEvent;
1291 rListener->disposing(aEvent);
1293 catch ( uno::Exception& )
1297 aMouseClickHandlers.clear();
1302 lang::EventObject
aEvent;
1308 rListener->disposing(aEvent);
1310 catch ( uno::Exception& )
1314 aActivationListeners.clear();
1367 return static_cast<sal_Int16
>(
tools::Long( rZoomY * 100 ));
1378 if ( nZoom !=
GetZoom() && nZoom != 0 )
1390 pViewSh->
SetZoom( aFract, aFract,
true );
1402 sal_Int16 aZoomType = view::DocumentZoomType::OPTIMAL;
1409 case SvxZoomType::PERCENT:
1410 aZoomType = view::DocumentZoomType::BY_VALUE;
1412 case SvxZoomType::OPTIMAL:
1413 aZoomType = view::DocumentZoomType::OPTIMAL;
1415 case SvxZoomType::WHOLEPAGE:
1416 aZoomType = view::DocumentZoomType::ENTIRE_PAGE;
1418 case SvxZoomType::PAGEWIDTH:
1419 aZoomType = view::DocumentZoomType::PAGE_WIDTH;
1421 case SvxZoomType::PAGEWIDTH_NOBORDER:
1422 aZoomType = view::DocumentZoomType::PAGE_WIDTH_EXACT;
1442 case view::DocumentZoomType::BY_VALUE:
1443 eZoomType = SvxZoomType::PERCENT;
1445 case view::DocumentZoomType::OPTIMAL:
1446 eZoomType = SvxZoomType::OPTIMAL;
1448 case view::DocumentZoomType::ENTIRE_PAGE:
1449 eZoomType = SvxZoomType::WHOLEPAGE;
1451 case view::DocumentZoomType::PAGE_WIDTH:
1452 eZoomType = SvxZoomType::PAGEWIDTH;
1454 case view::DocumentZoomType::PAGE_WIDTH_EXACT:
1455 eZoomType = SvxZoomType::PAGEWIDTH_NOBORDER;
1458 eZoomType = SvxZoomType::OPTIMAL;
1461 sal_Int16 nOldZoom(nZoom);
1462 if ( eZoomType == SvxZoomType::PERCENT )
1468 nZoom = pView->
CalcZoom( eZoomType, nOldZoom );
1470 switch ( eZoomType )
1472 case SvxZoomType::WHOLEPAGE:
1473 case SvxZoomType::PAGEWIDTH:
1618 aSplit += aWinStart;
1626 const uno::Reference<view::XSelectionChangeListener>& xListener )
1633 const uno::Reference< view::XSelectionChangeListener >& xListener )
1649 SfxRequest aReq( SID_STYLE_END_PREVIEW, SfxCallMode::SLOT, reqList );
1651 lang::EventObject
aEvent;
1652 aEvent.Source.set(static_cast<cppu::OWeakObject*>(
this));
1654 rListener->selectionChanged( aEvent );
1669 uno::Sequence<uno::Any> aParams(1);
1672 uno::Sequence<sal_Int16> aOutArgsIndex;
1673 uno::Sequence<uno::Any> aOutArgs;
1674 pDocSh->
CallXScript( *pScript, aParams, aRet, aOutArgsIndex, aOutArgs );
1685 uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents( rDoc.
GetVbaEventProcessor(), uno::UNO_SET_THROW );
1686 uno::Sequence< uno::Any > aArgs( 1 );
1690 catch( uno::Exception& )
1701 static uno::Reference<beans::XPropertySetInfo> aRef(
1707 const OUString& aPropertyName,
const uno::Any& aValue )
1753 sal_Int16 nIntVal = 0;
1754 if ( aValue >>= nIntVal )
1764 sal_Int16 nIntVal = 0;
1765 if ( aValue >>= nIntVal )
1775 sal_Int16 nIntVal = 0;
1776 if ( aValue >>= nIntVal )
1787 if ( aValue >>= nIntVal )
1792 sal_Int16 nIntVal = 0;
1793 if ( aValue >>= nIntVal )
1798 sal_Int16 nIntVal = 0;
1799 if ( aValue >>= nIntVal )
1808 if ( aNewOpt == rOldOpt )
1885 const uno::Reference<beans::XPropertyChangeListener >& xListener )
1892 const uno::Reference<beans::XPropertyChangeListener >& xListener )
1901 const uno::Reference<beans::XVetoableChangeListener >& )
1906 const uno::Reference<beans::XVetoableChangeListener >& )
1912 beans::PropertyChangeEvent
aEvent;
1913 aEvent.Source.set(static_cast<cppu::OWeakObject*>(
this));
1915 rListener->propertyChange( aEvent );
1921 const uno::Sequence<beans::PropertyValue>& aArguments )
1928 OUString aInitVal, aTitle;
1929 bool bCloseOnButtonUp =
false;
1930 bool bSingleCell =
false;
1931 bool bMultiSelection =
false;
1934 for (
const beans::PropertyValue& rProp : aArguments)
1936 OUString aPropName(rProp.Name);
1942 if ( rProp.Value >>= aStrVal )
1947 if ( rProp.Value >>= aStrVal )
1956 pViewSh->
StartSimpleRefDialog( aTitle, aInitVal, bCloseOnButtonUp, bSingleCell, bMultiSelection );
1968 const uno::Reference<sheet::XRangeSelectionListener>& xListener )
1975 const uno::Reference<sheet::XRangeSelectionListener>& xListener )
1984 const uno::Reference<sheet::XRangeSelectionChangeListener>& xListener )
1991 const uno::Reference<sheet::XRangeSelectionChangeListener>& xListener )
2001 sheet::RangeSelectionEvent
aEvent;
2002 aEvent.Source.set(static_cast<cppu::OWeakObject*>(
this));
2003 aEvent.RangeDescriptor = rText;
2008 for (
const auto& rListener : listeners)
2009 rListener->done( aEvent );
2014 sheet::RangeSelectionEvent
aEvent;
2015 aEvent.Source.set(static_cast<cppu::OWeakObject*>(
this));
2016 aEvent.RangeDescriptor = rText;
2021 for (
const auto& rListener : listeners)
2022 rListener->aborted( aEvent );
2027 sheet::RangeSelectionEvent
aEvent;
2028 aEvent.Source.set(static_cast<cppu::OWeakObject*>(
this));
2029 aEvent.RangeDescriptor = rText;
2034 for (
const auto& rListener : listener)
2035 rListener->descriptorChanged( aEvent );
2041 return "ScTabViewObj";
2111 uno::Sequence<sal_Int32> aRet(rSelected.size());
2113 for (
const auto& rTab : rSelected)
2115 aRet[i] =
static_cast<sal_Int32
>(rTab);
2128 return uno::Sequence<sal_Int32>();
2134 ScExtDocOptions* pExtOpt = rViewData.GetDocument().GetExtDocOptions();
2142 return toSequence(rViewData.GetMarkData().GetSelectedTabs());
2147 mpViewShell(pViewSh)
2162 return SfxBaseController::queryInterface(rType);
2167 SfxBaseController::acquire();
2172 SfxBaseController::release();
2177 if (rHint.
GetId() == SfxHintId::Dying)
2185 return uno::Sequence<sal_Int32>();
void SetChanged(bool bChanged)
If set to true, the data will be copied to the view data after import.
If set, cloned formula cells will start to listen to the document.
ScMarkData & GetMarkData()
virtual Point GetPosPixel() const
SfxViewFrame * GetViewFrame() const
SvxZoomType GetZoomType() const
void SetOption(ScViewOption eOpt, bool bNew)
#define SC_UNO_SHOWCHARTS
#define SCVIEWSETTINGS_SERVICE
virtual css::uno::Reference< css::datatransfer::XTransferable > SAL_CALL getTransferable() override
std::vector< css::uno::Reference< css::beans::XPropertyChangeListener > > aPropertyChgListeners
virtual void SAL_CALL removeRangeSelectionListener(const css::uno::Reference< css::sheet::XRangeSelectionListener > &aListener) override
#define SC_UNONAME_MULTISEL
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
ScDocShell * GetDocShell() const
void FreezeSplitters(bool bFreeze, SplitMethod eSplitMethod=SC_SPLIT_METHOD_CURSOR, SCCOLROW nFreezeIndex=-1)
size_t GetMarkCount() const
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
void RangeSelAborted(const OUString &rText)
ScVSplitPos WhichV(ScSplitPos ePos)
virtual void SAL_CALL acquire() override
void ReadExtOptions(const ScExtDocOptions &rOpt)
virtual css::uno::Reference< css::form::runtime::XFormController > SAL_CALL getFormController(const css::uno::Reference< css::form::XForm > &Form) override
virtual const FmFormShell * GetFormShell() const override
MapMode GetDrawMapMode(bool bForce=false)
MapMode for the drawinglayer objects.
ScDocShell * GetDocShell() const
virtual void SAL_CALL release() override
static void lcl_CallActivate(ScDocShell *pDocSh, SCTAB nTab, ScSheetEventId nEvent)
virtual void SAL_CALL setFirstVisibleRow(sal_Int32 nFirstVisibleRow) override
const css::uno::Reference< css::script::vba::XVBAEventProcessor > & GetVbaEventProcessor() const
bool IsObjMarkable(SdrObject const *pObj, SdrPageView const *pPV) const
virtual void SAL_CALL addRangeSelectionChangeListener(const css::uno::Reference< css::sheet::XRangeSelectionChangeListener > &aListener) override
#define OLD_UNO_HORSCROLL
#define SCTABVIEWOBJ_SERVICE
void MarkRange(const ScRange &rRange, bool bSetCursor=true, bool bContinue=false)
virtual void SAL_CALL startRangeSelection(const css::uno::Sequence< css::beans::PropertyValue > &aArguments) override
SfxDispatcher * GetDispatcher()
std::vector< css::uno::Reference< css::awt::XEnhancedMouseClickHandler > > aMouseClickHandlers
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 Index) override
bool MousePressed(const css::awt::MouseEvent &e)
static SdrObject * getSdrObjectFromXShape(const css::uno::Reference< css::uno::XInterface > &xInt)
virtual void SAL_CALL splitAtPosition(sal_Int32 nPixelX, sal_Int32 nPixelY) override
ScHSplitPos WhichH(ScSplitPos ePos)
Reference< XInterface > xTarget
virtual OUString SAL_CALL getImplementationName() override
bool IsMouseListening() const
SdrObject * GetObj(size_t nNum) const
virtual Size GetSizePixel() const
size_t GetObjCount() const
void FillRangeListWithMarks(ScRangeList *pList, bool bClear, SCTAB nForTab=-1) const
Create a range list of marks.
void SetDocumentModified()
rtl::Reference< ScViewPaneObj > GetObjectByIndex_Impl(sal_uInt16 nIndex) const
const ContentProperties & rData
virtual void SAL_CALL removeEnhancedMouseClickHandler(const css::uno::Reference< css::awt::XEnhancedMouseClickHandler > &aListener) override
std::vector< css::uno::Reference< css::sheet::XRangeSelectionChangeListener > > aRangeChgListeners
#define OLD_UNO_SHEETTABS
constexpr SdrLayerID SC_LAYER_BACK(1)
virtual void SAL_CALL setFirstVisibleColumn(sal_Int32 nFirstVisibleColumn) override
Extended options held by an ScDocument containing additional settings for filters.
ScSplitPos GetActivePart() const
sal_Int16 GetZoomType() const
SdrMark * GetMark(size_t nNum) const
ScDocument & GetDocument() const
void SheetChanged(bool bSameTabButMoved)
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual sal_Int32 SAL_CALL getSplitColumn() override
void Invalidate(sal_uInt16 nId)
#define SC_UNONAME_SINGLECELL
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
UNO3_GETIMPLEMENTATION_IMPL(ScTabViewObj)
EmbeddedObjectRef * pObject
SC_DLLPUBLIC void SetCursor(SCCOL nPosX, SCROW nPosY, bool bNew=false)
virtual void Notify(SfxBroadcaster &, const SfxHint &rHint) override
css::chart::ChartAxisLabelPosition ePos
SCCOL GetPosX(ScHSplitPos eWhich, SCTAB nForTab=-1) const
const ScRangeList & GetRangeList() const
static bool lcl_TabInRanges(SCTAB nTab, const ScRangeList &rRanges)
std::vector< css::uno::Reference< css::sheet::XActivationEventListener > > aActivationListeners
static const SfxItemPropertyMapEntry * lcl_GetViewOptPropertyMap()
Clipping Marks.
void MarkFromRangeList(const ScRangeList &rList, bool bReset)
SfxApplication * SfxGetpApp()
ScViewPaneObj(ScTabViewShell *pViewSh, sal_uInt16 nP)
css::uno::Reference< css::drawing::XShapes > getSelectedXShapes()
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
constexpr tools::Long Width() const
#define SC_VIEWPANE_ACTIVE
ScDrawView * GetDrawView()
virtual ~ScViewPaneObj() override
Reference< XController > xController
tools::Long GetVSplitPos() const
virtual void SAL_CALL addActivationEventListener(const css::uno::Reference< css::sheet::XActivationEventListener > &aListener) override
SfxShell * GetShell(sal_uInt16 nIdx) const
virtual css::uno::Reference< css::uno::XInterface > getUnoShape()
SdrPage * getSdrPageFromSdrObject() const
void SetObjMode(ScVObjType eObj, ScVObjMode eMode)
ScPreviewObj(ScPreviewShell *pViewSh)
void SetZoom(sal_Int16 Zoom)
virtual void SAL_CALL insertTransferable(const css::uno::Reference< css::datatransfer::XTransferable > &xTrans) override
void RangeSelChanged(const OUString &rText)
SCCOL VisibleCellsX(ScHSplitPos eWhichX) const
std::vector< css::uno::Reference< css::view::XSelectionChangeListener > > aSelectionChgListeners
bool IsMultiMarked() const
SCTAB GetSelectCount() const
virtual sal_Bool SAL_CALL isFormDesignMode() override
virtual sal_Int32 SAL_CALL getSplitRow() override
bool MouseReleased(const css::awt::MouseEvent &e)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
void SetOptions(const ScViewOptions &rOpt)
SdrObject * SdrObjectPrimitiveHit(const SdrObject &rObject, const Point &rPnt, sal_uInt16 nTol, const SdrPageView &rSdrPageView, const SdrLayerIDSet *pVisiLayer, bool bTextOnly, drawinglayer::primitive2d::Primitive2DContainer *pHitContainer)
SC_DLLPUBLIC bool HasTable(SCTAB nTab) const
virtual css::uno::Reference< css::awt::XControl > SAL_CALL getControl(const css::uno::Reference< css::awt::XControlModel > &xModel) override
static sal_Int32 GetVbaSheetEventId(ScSheetEventId nEvent)
bool HasSheetEventScript(SCTAB nTab, ScSheetEventId nEvent, bool bWithVbaEvents=false) const
void DoneBlockMode(bool bContinue=false)
css::awt::Rectangle GetVisArea() const
#define SC_UNO_SHOWPAGEBR
SCROW GetPosY(ScVSplitPos eWhich, SCTAB nForTab=-1) const
tools::Rectangle GetWindowExtentsRelative(const vcl::Window *pRelativeWindow) const
ScSplitMode GetHSplitMode() const
const Fraction & GetZoomY() const
ScDrawView * GetScDrawView()
ScViewData & GetViewData()
sal_uInt16 GetSlotID() const
#define SC_QUERYINTERFACE(x)
EditView & GetEditView() const
void ScrollToObject(const SdrObject *pDrawObj)
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
SCROW VisibleCellsY(ScVSplitPos eWhichY) const
virtual void SAL_CALL addEnhancedMouseClickHandler(const css::uno::Reference< css::awt::XEnhancedMouseClickHandler > &aListener) override
#define OLD_UNO_VERTSCROLL
SdrObject * GetMarkedSdrObj() const
SC_DLLPUBLIC void SetAppOptions(const ScAppOptions &rOpt)
virtual void SAL_CALL release() override
void SetZoom(const Fraction &rNewX, const Fraction &rNewY, bool bAll)
SC_DLLPUBLIC ScDrawLayer * GetDrawLayer()
vcl::Window * GetWindowByPos(ScSplitPos ePos) const
virtual sal_Bool SAL_CALL hasElements() override
virtual sal_Int32 SAL_CALL getCount() override
void EndActivationListening()
void StopSimpleRefDialog()
virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getReferredCells() override
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
SfxDispatcher * GetDispatcher() const
static SfxApplication * Get()
Point GetScrPos(SCCOL nWhereX, SCROW nWhereY, ScSplitPos eWhich, bool bAllowNeg=false, SCTAB nForTab=-1) const
void ExtendRangeListTables(ScRangeList *pList) const
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
std::vector< css::uno::Reference< css::sheet::XRangeSelectionListener > > aRangeSelListeners
ScMarkType
States GetSimpleArea() returns for the underlying selection marks, so the caller can react if the res...
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
bool bFilteredRangeSelection
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
void GetPosFromPixel(tools::Long nClickX, tools::Long nClickY, ScSplitPos eWhich, SCCOL &rPosX, SCROW &rPosY, bool bTestMerge=true, bool bRepair=false, SCTAB nForTab=-1)
virtual void SAL_CALL addSelectionChangeListener(const css::uno::Reference< css::view::XSelectionChangeListener > &xListener) override
virtual void SAL_CALL abortRangeSelection() override
SfxBindings & GetBindings()
tools::Long GetHSplitPos() const
SC_DLLPUBLIC void SetViewOptions(const ScViewOptions &rOpt)
const SdrMarkList & GetMarkedObjectList() const
SC_DLLPUBLIC void SetTabNo(SCTAB nTab, bool bNew=false, bool bExtendSelection=false, bool bSameTabButMoved=false)
SC_DLLPUBLIC const ScAppOptions & GetAppOptions()
const SdrPage * GetPage(sal_uInt16 nPgNum) const
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
void SetDrawShell(bool bActive)
virtual void SAL_CALL addRangeSelectionListener(const css::uno::Reference< css::sheet::XRangeSelectionListener > &aListener) override
sal_Int16 GetZoom() const
ScMarkType GetSimpleArea(SCCOL &rStartCol, SCROW &rStartRow, SCTAB &rStartTab, SCCOL &rEndCol, SCROW &rEndRow, SCTAB &rEndTab) const
const SfxItemPropertyMap & getPropertyMap() const
ErrCode CallXScript(const OUString &rScriptURL, const css::uno::Sequence< css::uno::Any > &aParams, css::uno::Any &aRet, css::uno::Sequence< sal_Int16 > &aOutParamIndex, css::uno::Sequence< css::uno::Any > &aOutParam, bool bRaiseError=true, const css::uno::Any *aCaller=nullptr)
#define SC_UNO_SHOWANCHOR
bool GetOption(ScViewOption eOpt) const
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
ScGridWindow * GetActiveWin()
const OutlinerView * GetTextEditOutlinerView() const
virtual sal_Int32 SAL_CALL getFirstVisibleColumn() override
virtual void SAL_CALL acquire() override
const ScMarkData::MarkedTabsType & GetSelectedTabs() const
ScPreviewShell * mpViewShell
css::uno::Type const & get()
#define SC_SIMPLE_SERVICE_INFO(ClassName, ClassNameAscii, ServiceAscii)
SC_DLLPUBLIC tools::Rectangle GetMMRect(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, bool bHiddenAsZero=true) const
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
css::uno::Reference< css::datatransfer::XTransferable > GetTransferable() const
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual ~ScPreviewObj() override
static void UnmarkFiltered(ScMarkData &rMark, const ScDocument &rDoc)
sal_uInt16 CalcZoom(SvxZoomType eType, sal_uInt16 nOldZoom)
ScTabViewShell * GetViewShell() const
#define SC_UNO_VISAREASCREEN
static ScViewData * GetViewData()
css::uno::Sequence< T > concatSequences(const css::uno::Sequence< T > &rS1, const Ss &...rSn)
virtual sal_Bool SAL_CALL getIsWindowSplit() override
Base class for all functions.
void SetZoom(sal_uInt16 nNew)
virtual void SAL_CALL freezeAtPosition(sal_Int32 nColumns, sal_Int32 nRows) override
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
void RangeSelDone(const OUString &rText)
virtual css::uno::Reference< css::sheet::XSpreadsheet > SAL_CALL getActiveSheet() override
void InsertText(const OUString &rNew, bool bSelect=false, bool bLOKShowSelect=true)
ScDBFunc * GetView() const
virtual SdrLayerID GetLayer() const
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getSelectedSheets() override
const OUString * GetScript(ScSheetEventId nEvent) const
Point PixelToLogic(const Point &rDevicePt) const
rtl::Reference< ScTransferObj > CopyToTransferable()
SfxItemPropertySet aPropSet
virtual sal_Int32 SAL_CALL getSplitHorizontal() override
virtual css::uno::Any SAL_CALL getSelection() override
virtual css::table::CellRangeAddress SAL_CALL getVisibleRange() override
virtual void SAL_CALL removeRangeSelectionChangeListener(const css::uno::Reference< css::sheet::XRangeSelectionChangeListener > &aListener) override
void StartSimpleRefDialog(const OUString &rTitle, const OUString &rInitVal, bool bCloseOnButtonUp, bool bSingleCell, bool bMultiSelection)
ScDrawView * GetScDrawView()
#define OLD_UNO_COLROWHDR
SdrPage * GetPage() const
void PasteFromTransferable(const css::uno::Reference< css::datatransfer::XTransferable > &rxTransferable)
const ScSheetEvents * GetSheetEvents(SCTAB nTab) const
FuPoor * GetDrawFuncPtr()
really derive cell from range?
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
sal_uInt16 GetHitTolerancePixel() const
virtual sal_Int32 SAL_CALL getFirstVisibleRow() override
SdrObject * GetSdrObject() const
const ScViewOptions & GetOptions() const
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
XPrintable?
Reference< XComponentContext > getProcessComponentContext()
virtual void SAL_CALL removeActivationEventListener(const css::uno::Reference< css::sheet::XActivationEventListener > &aListener) override
const ScDocument & GetDocument() const
css::uno::Reference< css::uno::XInterface > GetClickedObject(const Point &rPoint) const
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getSelectedSheets() override
SdrEndTextEditKind ScEndTextEdit()
virtual sal_Int32 SAL_CALL getSplitVertical() override
#define SC_UNONAME_CLOSEONUP
void AlignToCursor(SCCOL nCurX, SCROW nCurY, ScFollowMode eMode, const ScSplitPos *pWhich=nullptr)
virtual sal_Bool SAL_CALL hasFrozenPanes() override
SC_DLLPUBLIC bool IsLayoutRTL(SCTAB nTab) const
Color const & GetGridColor(OUString *pStrName=nullptr) const
SdrPageView * GetSdrPageView() const
css::uno::Reference< css::datatransfer::XTransferable > CopyToTransferable()
void SetZoomType(SvxZoomType eNew, bool bAll)
void GetMultiArea(ScRangeListRef &rRange) const
#define SC_UNO_FILTERED_RANGE_SELECTION
#define SC_QUERY_MULTIPLE(x, y)
bool MarkObj(const Point &rPnt, short nTol=-2, bool bToggle=false, bool bDeep=false)
virtual sal_Bool SAL_CALL select(const css::uno::Any &aSelection) override
virtual void SAL_CALL setFormDesignMode(sal_Bool DesignMode) override
#define SC_UNO_VERTSCROLL
const SfxPoolItem * Execute(sal_uInt16 nSlot, SfxCallMode nCall=SfxCallMode::SLOT, const SfxPoolItem **pArgs=nullptr, sal_uInt16 nModi=0, const SfxPoolItem **pInternalArgs=nullptr)
void SetGridColor(const Color &rCol, const OUString &rName)
static bool GetBoolFromAny(const css::uno::Any &aAny)
virtual void SAL_CALL release() override
bool IsPagebreakMode() const
virtual void SAL_CALL setActiveSheet(const css::uno::Reference< css::sheet::XSpreadsheet > &xActiveSheet) override
#define SC_UNONAME_INITVAL
std::set< SCTAB > MarkedTabsType
virtual void SAL_CALL acquire() override
SdrModel * GetModel() const
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual void SAL_CALL removeSelectionChangeListener(const css::uno::Reference< css::view::XSelectionChangeListener > &xListener) override
static void lcl_ShowObject(ScTabViewShell &rViewSh, const ScDrawView &rDrawView, const SdrObject *pSelObj)
ScVObjMode GetObjMode(ScVObjType eObj) const
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
void SetZoomType(sal_Int16 ZoomType)
void SplitAtPixel(const Point &rPixel)
ScSplitMode GetVSplitMode() const
css::awt::Rectangle AWTRectangle(const ::tools::Rectangle &rVCLRect)
#define OLD_UNO_VALUEHIGH
sal_uInt16 GetPageCount() const
virtual css::uno::Type SAL_CALL getElementType() override
virtual ~ScViewPaneBase() override
void SetDrawSelMode(bool bNew)
virtual ~ScTabViewObj() override