LibreOffice Module sc (master) 1
viewdata.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 <tools/fract.hxx>
22#include <sfx2/zoomitem.hxx>
23#include <rangelst.hxx>
24#include <scdllapi.h>
25#include <viewopti.hxx>
26#include "docsh.hxx"
27
28#include <memory>
30
31#define SC_SIZE_NONE 65535
32
33enum class ScFillMode
34{
35 NONE = 0,
36 FILL = 1,
37 EMBED_LT = 2,
38 EMBED_RB = 3,
39 MATRIX = 4,
40};
41
43
47
48inline ScHSplitPos WhichH( ScSplitPos ePos );
49inline ScVSplitPos WhichV( ScSplitPos ePos );
50
53
57
61{
62 SC_MARK_NONE = 0, // Not returned by GetSimpleArea(), used internally.
63 // Nothing marked always results in the
64 // current cursor position being selected and a simple mark.
65 SC_MARK_SIMPLE = 1, // Simple rectangular area marked, no filtered rows.
66 SC_MARK_FILTERED = 2, // At least one mark contains filtered rows.
67 SC_MARK_SIMPLE_FILTERED = // Simple rectangular area marked containing filtered rows.
70 SC_MARK_MULTI = 4 // Multiple selection marks.
71 /* TODO: if filtered multi-selection was implemented, this would be the value to use. */
72#if 0
73 ,
74 SC_MARK_MULTI_FILTERED = // Multiple selection marks containing filtered rows.
77#endif
78};
79
80enum class ScPasteFlags
81{
82 NONE = 0, // No flags specified
83 Mode = 1, // Enable paste-mode
84 Border = 2, // Show a border around the source cells
85};
86namespace o3tl {
87 template<> struct typed_flags<ScPasteFlags> : is_typed_flags<ScPasteFlags, 0x03> {};
88}
89
90// for internal Drag&Drop:
91enum class ScDragSrc{
92 Undefined = 0,
93 Navigator = 1,
94 Table = 2
95};
96namespace o3tl {
97 template<> struct typed_flags<ScDragSrc> : is_typed_flags<ScDragSrc, 0x00000003> {};
98}
99
100class ScDocFunc;
101class ScDocument;
102class ScDBFunc;
103class ScTabViewShell;
104class ScDrawView;
106class EditView;
107class EditStatus;
108class Outliner;
109namespace vcl { class Window; }
110class SfxObjectShell;
111class SfxBindings;
112class SfxDispatcher;
113class ScPatternAttr;
114class ScExtDocOptions;
115class ScViewData;
116class ScMarkData;
117class ScGridWindow;
118
120{
121public:
123 typedef std::pair<index_type, tools::Long> value_type;
124 static_assert(std::numeric_limits<index_type>::is_signed, "ScPositionCache: index type is not signed");
125
126private:
127 static const index_type null = std::numeric_limits<index_type>::min();
128
129 class Comp
130 {
131 public:
132 bool operator() (const value_type& rValue1, const value_type& rValue2) const;
133 };
134
136 std::set<value_type, Comp> mData;
137
138public:
139 ScPositionHelper(const ScDocument *pDoc, bool bColumn);
140 void setDocument(const ScDocument& rDoc, bool bColumn);
141
142 void insert(index_type nIndex, tools::Long nPos);
143 void removeByIndex(index_type nIndex);
144 void invalidateByIndex(index_type nIndex);
146 const value_type& getNearestByIndex(index_type nIndex) const;
148 tools::Long getPosition(index_type nIndex) const;
149 tools::Long computePosition(index_type nIndex, const std::function<long (index_type)>& getSizePx);
150};
151
153{
156
158 const SCTAB nTab;
159 const bool bColumnHeader;
161
162 double mfPPTX;
163 double mfPPTY;
168
169public:
170 ScBoundsProvider(const ScViewData &rView, SCTAB nT, bool bColumnHeader);
171
172 void GetStartIndexAndPosition(SCCOL& nIndex, tools::Long& nPosition) const;
173 void GetEndIndexAndPosition(SCCOL& nIndex, tools::Long& nPosition) const;
174 void GetStartIndexAndPosition(SCROW& nIndex, tools::Long& nPosition) const;
175 void GetEndIndexAndPosition(SCROW& nIndex, tools::Long& nPosition) const;
176
177 void Compute(value_type aFirstNearest, value_type aSecondNearest,
178 tools::Long nFirstBound, tools::Long nSecondBound);
179
180 void EnlargeStartBy(tools::Long nOffset);
181
182 void EnlargeEndBy(tools::Long nOffset);
183
184 void EnlargeBy(tools::Long nOffset)
185 {
186 EnlargeStartBy(nOffset);
187 EnlargeEndBy(nOffset);
188 }
189
190private:
191 tools::Long GetSize(index_type nIndex) const;
192
193 void GetIndexAndPos(index_type nNearestIndex, tools::Long nNearestPosition,
194 tools::Long nBound, index_type& nFoundIndex, tools::Long& nPosition,
195 bool bTowards, tools::Long nDiff);
196
197 void GeIndexBackwards(index_type nNearestIndex, tools::Long nNearestPosition,
198 tools::Long nBound, index_type& nFoundIndex, tools::Long& nPosition,
199 bool bTowards);
200
201 void GetIndexTowards(index_type nNearestIndex, tools::Long nNearestPosition,
202 tools::Long nBound, index_type& nFoundIndex, tools::Long& nPosition,
203 bool bTowards);
204};
205
206class ScViewDataTable // per-sheet data
207{
208friend class ScViewData;
209private:
210 SvxZoomType eZoomType; // selected zoom type (normal view)
211 Fraction aZoomX; // selected zoom X
212 Fraction aZoomY; // selected zoom Y (displayed)
213 Fraction aPageZoomX; // zoom in page break preview mode
215
216 tools::Long nTPosX[2]; // MapMode - Offset (Twips)
218 tools::Long nMPosX[2]; // MapMode - Offset (1/100 mm)
220 tools::Long nPixPosX[2]; // Offset in Pixels
224
228
229 SCCOL nFixPosX; // Cell position of the splitter when freeze pane
231
236
239
244
245 bool bShowGrid; // per sheet show grid lines option.
246 bool mbOldCursorValid; // "virtual" Cursor position when combined
247 ScViewDataTable(const ScDocument *pDoc = nullptr);
248
249 void InitData(const ScDocument& rDoc);
251 css::uno::Sequence <css::beans::PropertyValue>& rSettings,
252 const ScViewData& rViewData, SCTAB nTab ) const;
253
255 const css::uno::Sequence <css::beans::PropertyValue>& rSettings,
256 ScViewData& rViewData, SCTAB nTab, bool& rHasZoom);
257
267 [[nodiscard]] ScSplitPos SanitizeWhichActive() const;
268};
269
271{
272private:
273 double nPPTX, nPPTY; // Scaling factors
274
275 ::std::vector<std::unique_ptr<ScViewDataTable>> maTabData;
277 ScViewDataTable* pThisTab; // Data of the displayed sheet
281 std::unique_ptr<EditView> pEditView[4]; // Belongs to the window
284
286
288 MapMode aLogicMode; // skalierter 1/100mm-MapMode
289
290 SvxZoomType eDefZoomType; // default zoom and type for missing TabData
293 Fraction aDefPageZoomX; // zoom in page break preview mode
295
297
298 SCTAB nTabNo; // displayed sheet
299 SCTAB nRefTabNo; // sheet which contains RefInput
306 SCCOL nFillStartX; // Fill Cursor
310 SCCOL nEditCol; // Related position
313 SCCOL nEditEndCol; // End of Edit View
315 SCCOL nTabStartCol; // for Enter after Tab
316 ScRange aDelRange; // for delete AutoFill
317
319
320 ScSplitPos eEditActivePart; // the part that was active when edit mode was started
323 bool bEditActive[4] = {}; // Active?
324 bool bActive:1; // Active Window ?
325 bool bIsRefMode:1; // Reference input
326 bool bDelMarkValid:1; // Only valid at SC_REFTYPE_FILL
327 bool bPagebreak:1; // Page break preview mode
328 bool bSelCtrlMouseClick:1; // special selection handling for ctrl-mouse-click
329 bool bMoveArea:1;
330
332 sal_Int16 nFormulaBarLines; // Visible lines in the formula bar
333
336
337 DECL_DLLPRIVATE_LINK( EditEngineHdl, EditStatus&, void );
338
339
340 SAL_DLLPRIVATE void CalcPPT();
341 SAL_DLLPRIVATE void CreateTabData( SCTAB nNewTab );
342 SAL_DLLPRIVATE void CreateTabData( std::vector< SCTAB >& rvTabs );
343 SAL_DLLPRIVATE void CreateSelectedTabData();
344 SAL_DLLPRIVATE void EnsureTabDataSize(size_t nSize);
345 SAL_DLLPRIVATE void UpdateCurrentTab();
346
347 ScViewData(ScDocument* pDoc, ScDocShell* pDocSh, ScTabViewShell* pViewSh);
348
349public:
350 ScViewData( ScDocShell& rDocSh, ScTabViewShell* pViewSh );
351 ScViewData( ScDocument& rDoc );
352 ~ScViewData() COVERITY_NOEXCEPT_FALSE;
353
354 ScDocShell* GetDocShell() const { return pDocShell; }
355 ScDocFunc& GetDocFunc() const;
356 ScDBFunc* GetView() const;
357 ScTabViewShell* GetViewShell() const { return pView; }
358 SfxObjectShell* GetSfxDocShell() const { return pDocShell; }
359 SfxBindings& GetBindings(); // from ViewShell's ViewFrame
360 SfxDispatcher& GetDispatcher(); // from ViewShell's ViewFrame
361
362 ScMarkData& GetMarkData();
363 const ScMarkData& GetMarkData() const;
364
365 weld::Window* GetDialogParent(); // forwarded from tabvwsh
366 ScGridWindow* GetActiveWin(); // from View
367 const ScGridWindow* GetActiveWin() const;
368 ScDrawView* GetScDrawView(); // from View
369 bool IsMinimized() const; // from View
370
371 void UpdateInputHandler( bool bForce = false );
372
373 void WriteUserData(OUString& rData);
374 void ReadUserData(std::u16string_view rData);
375 void WriteExtOptions( ScExtDocOptions& rOpt ) const;
376 void ReadExtOptions( const ScExtDocOptions& rOpt );
377 void WriteUserDataSequence(css::uno::Sequence <css::beans::PropertyValue>& rSettings) const;
378 void ReadUserDataSequence(const css::uno::Sequence <css::beans::PropertyValue>& rSettings);
379
380 ScDocument& GetDocument() const { return mrDoc; }
381
382 bool IsActive() const { return bActive; }
383 void Activate(bool bActivate) { bActive = bActivate; }
384
385 void InsertTab( SCTAB nTab );
386 void InsertTabs( SCTAB nTab, SCTAB nNewSheets );
387 void DeleteTab( SCTAB nTab );
388 void DeleteTabs( SCTAB nTab, SCTAB nSheets );
389 void CopyTab( SCTAB nSrcTab, SCTAB nDestTab );
390 void MoveTab( SCTAB nSrcTab, SCTAB nDestTab );
391
392 SCTAB GetRefTabNo() const { return nRefTabNo; }
393 void SetRefTabNo( SCTAB nNewTab ) { nRefTabNo = nNewTab; }
394
395 SCTAB GetTabNo() const { return nTabNo; }
396 SCCOL MaxCol() const { return mrDoc.MaxCol(); }
397 SCROW MaxRow() const { return mrDoc.MaxRow(); }
398 ScSplitPos GetActivePart() const { return pThisTab->eWhichActive; }
399 SCCOL GetPosX( ScHSplitPos eWhich, SCTAB nForTab = -1 ) const;
400 SCROW GetPosY( ScVSplitPos eWhich, SCTAB nForTab = -1 ) const;
401 SCCOL GetCurX() const { return pThisTab->nCurX; }
402 SCROW GetCurY() const { return pThisTab->nCurY; }
403 SCCOL GetCurXForTab( SCTAB nTabIndex ) const;
404 SCROW GetCurYForTab( SCTAB nTabIndex ) const;
405 SCCOL GetOldCurX() const;
406 SCROW GetOldCurY() const;
407 tools::Long GetLOKDocWidthPixel() const { return pThisTab->aWidthHelper.getPosition(pThisTab->nMaxTiledCol); }
409
412
413 ScPositionHelper* GetLOKWidthHelper(SCTAB nTabIndex);
414 ScPositionHelper* GetLOKHeightHelper(SCTAB nTabIndex);
415
416 ScSplitMode GetHSplitMode() const { return pThisTab->eHSplitMode; }
417 ScSplitMode GetVSplitMode() const { return pThisTab->eVSplitMode; }
418 tools::Long GetHSplitPos() const { return pThisTab->nHSplitPos; }
419 tools::Long GetVSplitPos() const { return pThisTab->nVSplitPos; }
420 SCCOL GetFixPosX() const { return pThisTab->nFixPosX; }
421 SCROW GetFixPosY() const { return pThisTab->nFixPosY; }
422 SCCOL GetMaxTiledCol() const { return pThisTab->nMaxTiledCol; }
423 SCROW GetMaxTiledRow() const { return pThisTab->nMaxTiledRow; }
424
425 bool IsPagebreakMode() const { return bPagebreak; }
426 bool IsPasteMode() const { return bool(nPasteFlags & ScPasteFlags::Mode); }
427 bool ShowPasteSource() const { return bool(nPasteFlags & ScPasteFlags::Border); }
428
429 void SetPosX( ScHSplitPos eWhich, SCCOL nNewPosX );
430 void SetPosY( ScVSplitPos eWhich, SCROW nNewPosY );
431 void SetCurX( SCCOL nNewCurX ) { pThisTab->nCurX = nNewCurX; }
432 void SetCurY( SCROW nNewCurY ) { pThisTab->nCurY = nNewCurY; }
433 void SetCurXForTab( SCCOL nNewCurX, SCTAB nTabIndex );
434 void SetCurYForTab( SCCOL nNewCurY, SCTAB nTabIndex );
435 void SetOldCursor( SCCOL nNewX, SCROW nNewY );
436 void ResetOldCursor();
437
438 void SetHSplitMode( ScSplitMode eMode ) { pThisTab->eHSplitMode = eMode; }
439 void SetVSplitMode( ScSplitMode eMode ) { pThisTab->eVSplitMode = eMode; }
440 void SetHSplitPos( tools::Long nPos ) { pThisTab->nHSplitPos = nPos; }
441 void SetVSplitPos( tools::Long nPos ) { pThisTab->nVSplitPos = nPos; }
442 void SetFixPosX( SCCOL nPos ) { pThisTab->nFixPosX = nPos; }
443 void SetFixPosY( SCROW nPos ) { pThisTab->nFixPosY = nPos; }
444 void SetMaxTiledCol( SCCOL nCol );
445 void SetMaxTiledRow( SCROW nRow );
446
447 void SetPagebreakMode( bool bSet );
448 void SetPasteMode ( ScPasteFlags nFlags ) { nPasteFlags = nFlags; }
449
450 void SetZoomType( SvxZoomType eNew, bool bAll );
451 void SetZoomType( SvxZoomType eNew, std::vector< SCTAB >& tabs );
452 void SetZoom( const Fraction& rNewX, const Fraction& rNewY, std::vector< SCTAB >& tabs );
453 void SetZoom( const Fraction& rNewX, const Fraction& rNewY, bool bAll );
454 void RefreshZoom();
455
456 void SetSelCtrlMouseClick( bool bTmp ) { bSelCtrlMouseClick = bTmp; }
457
458 SvxZoomType GetZoomType() const { return pThisTab->eZoomType; }
459 const Fraction& GetZoomX() const { return bPagebreak ? pThisTab->aPageZoomX : pThisTab->aZoomX; }
460 const Fraction& GetZoomY() const { return bPagebreak ? pThisTab->aPageZoomY : pThisTab->aZoomY; }
461
462 void SetShowGrid( bool bShow );
463 bool GetShowGrid() const { return pThisTab->bShowGrid; }
464
465 const MapMode& GetLogicMode( ScSplitPos eWhich );
466 const MapMode& GetLogicMode(); // Offset 0
467
468 double GetPPTX() const { return nPPTX; }
469 double GetPPTY() const { return nPPTY; }
470
471 void SetFormulaBarLines(sal_Int16 nLines)
472 {
473 // Formula bar must be between 1 and 25 lines (see SpreadsheetViewSettings.idl)
474 nLines = std::max(nLines, static_cast<sal_Int16>(1));
475 nLines = std::min(nLines, static_cast<sal_Int16>(25));
476 nFormulaBarLines = nLines;
477 }
478 sal_Int16 GetFormulaBarLines() const { return nFormulaBarLines; };
479
480 ScMarkType GetSimpleArea( SCCOL& rStartCol, SCROW& rStartRow, SCTAB& rStartTab,
481 SCCOL& rEndCol, SCROW& rEndRow, SCTAB& rEndTab ) const;
482 ScMarkType GetSimpleArea( ScRange& rRange ) const;
484 ScMarkType GetSimpleArea( ScRange & rRange, ScMarkData & rNewMark ) const;
485 void GetMultiArea( ScRangeListRef& rRange ) const;
486
487 bool SimpleColMarked();
488 bool SimpleRowMarked();
489
490 bool IsMultiMarked() const;
491
497 bool SelectionForbidsPaste( ScDocument* pClipDoc = nullptr );
498 bool SelectionForbidsPaste( SCCOL nSrcCols, SCROW nSrcRows );
499
504 bool SelectionForbidsCellFill();
506 static bool SelectionFillDOOM( const ScRange& rRange );
507
508 void SetFillMode( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
509 void SetDragMode( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
510 ScFillMode nMode );
511 void GetFillData( SCCOL& rStartCol, SCROW& rStartRow,
512 SCCOL& rEndCol, SCROW& rEndRow );
513 void ResetFillMode();
514 bool IsAnyFillMode() const { return nFillMode != ScFillMode::NONE; }
515 bool IsFillMode() const { return nFillMode == ScFillMode::FILL; }
516 ScFillMode GetFillMode() const { return nFillMode; }
517
518 SvxAdjust GetEditAdjust() const {return eEditAdjust; }
519 void SetEditAdjust( SvxAdjust eNewEditAdjust ) { eEditAdjust = eNewEditAdjust; }
520
521 // TRUE: Cell is merged
522 bool GetMergeSizePixel( SCCOL nX, SCROW nY, tools::Long& rSizeXPix, tools::Long& rSizeYPix ) const;
523 bool GetMergeSizePrintTwips( SCCOL nX, SCROW nY, tools::Long& rSizeXTwips, tools::Long& rSizeYTwips ) const;
524 void GetPosFromPixel( tools::Long nClickX, tools::Long nClickY, ScSplitPos eWhich,
525 SCCOL& rPosX, SCROW& rPosY,
526 bool bTestMerge = true, bool bRepair = false, SCTAB nForTab = -1 );
527 void GetMouseQuadrant( const Point& rClickPos, ScSplitPos eWhich,
528 SCCOL nPosX, SCROW nPosY, bool& rLeft, bool& rTop );
529
530 bool IsRefMode() const { return bIsRefMode; }
531 ScRefType GetRefType() const { return eRefType; }
532 SCCOL GetRefStartX() const { return nRefStartX; }
533 SCROW GetRefStartY() const { return nRefStartY; }
534 SCTAB GetRefStartZ() const { return nRefStartZ; }
535 SCCOL GetRefEndX() const { return nRefEndX; }
536 SCROW GetRefEndY() const { return nRefEndY; }
537 SCTAB GetRefEndZ() const { return nRefEndZ; }
538
539 void SetRefMode( bool bNewMode, ScRefType eNewType )
540 { bIsRefMode = bNewMode; eRefType = eNewType; }
541
542 void SetRefStart( SCCOL nNewX, SCROW nNewY, SCTAB nNewZ );
543 void SetRefEnd( SCCOL nNewX, SCROW nNewY, SCTAB nNewZ );
544
545 void ResetDelMark() { bDelMarkValid = false; }
546 void SetDelMark( const ScRange& rRange )
547 { aDelRange = rRange; bDelMarkValid = true; }
548
549 bool GetDelMark( ScRange& rRange ) const
550 { rRange = aDelRange; return bDelMarkValid; }
551
552 inline void GetMoveCursor( SCCOL& rCurX, SCROW& rCurY );
553
554 const ScViewOptions& GetOptions() const { return maOptions; }
555 void SetOptions( const ScViewOptions& rOpt );
556
557 bool IsGridMode () const { return maOptions.GetOption(VOPT_GRID); }
558 bool IsSyntaxMode () const { return maOptions.GetOption(VOPT_SYNTAX); }
559 void SetSyntaxMode ( bool bNewMode ) { maOptions.SetOption(VOPT_SYNTAX, bNewMode); }
560 bool IsHeaderMode () const { return maOptions.GetOption(VOPT_HEADER); }
561 void SetHeaderMode ( bool bNewMode ) { maOptions.SetOption(VOPT_HEADER, bNewMode); }
562 bool IsTabMode () const { return maOptions.GetOption(VOPT_TABCONTROLS); }
563 bool IsVScrollMode () const { return maOptions.GetOption(VOPT_VSCROLL); }
564 bool IsHScrollMode () const { return maOptions.GetOption(VOPT_HSCROLL); }
565 bool IsOutlineMode () const { return maOptions.GetOption(VOPT_OUTLINER); }
566 bool IsThemedCursor () const { return maOptions.GetOption(VOPT_THEMEDCURSOR); }
567
569 void ForcePageUpDownOffset(tools::Long nTwips) { m_nLOKPageUpDownOffset = nTwips; }
570 tools::Long GetPageUpDownOffset() const { return m_nLOKPageUpDownOffset; }
571
573 const tools::Rectangle& getLOKVisibleArea() const { return maLOKVisibleArea; }
574 void setLOKVisibleArea(const tools::Rectangle& rArea) { maLOKVisibleArea = rArea; }
575
576 void KillEditView();
577 void ResetEditView();
578 void SetEditEngine( ScSplitPos eWhich,
579 ScEditEngineDefaulter* pNewEngine,
580 vcl::Window* pWin, SCCOL nNewX, SCROW nNewY );
581 void GetEditView( ScSplitPos eWhich, EditView*& rViewPtr, SCCOL& rCol, SCROW& rRow );
582 bool HasEditView( ScSplitPos eWhich ) const
583 { return pEditView[eWhich] && bEditActive[eWhich]; }
585 { return pEditView[eWhich].get(); }
586
591 void EditGrowX();
592
600 void EditGrowY( bool bInitial = false );
601
602 ScSplitPos GetEditActivePart() const { return eEditActivePart; }
603 SCCOL GetEditViewCol() const { return nEditCol; }
604 SCROW GetEditViewRow() const { return nEditRow; }
605 SCCOL GetEditStartCol() const { return nEditStartCol; }
606 SCROW GetEditStartRow() const { return nEditRow; } // never editing above the cell
607 SCCOL GetEditEndCol() const { return nEditEndCol; }
608 SCROW GetEditEndRow() const { return nEditEndRow; }
609
610 tools::Rectangle GetEditArea( ScSplitPos eWhich, SCCOL nPosX, SCROW nPosY, vcl::Window* pWin,
611 const ScPatternAttr* pPattern, bool bForceToTop, bool bInPrintTwips = false );
612
613 void SetTabNo( SCTAB nNewTab );
614 void SetActivePart( ScSplitPos eNewActive );
615
616 Point GetScrPos( SCCOL nWhereX, SCROW nWhereY, ScSplitPos eWhich,
617 bool bAllowNeg = false, SCTAB nForTab = -1 ) const;
618 Point GetScrPos( SCCOL nWhereX, SCROW nWhereY, ScHSplitPos eWhich ) const;
619 Point GetScrPos( SCCOL nWhereX, SCROW nWhereY, ScVSplitPos eWhich ) const;
621 Point GetPrintTwipsPos( SCCOL nCol, SCROW nRow ) const;
622 Point GetPrintTwipsPosFromTileTwips(const Point& rTileTwipsPos) const;
623
625 OString describeCellCursor() const { return describeCellCursorAt(GetCurX(), GetCurY()); }
626 OString describeCellCursorInPrintTwips() const { return describeCellCursorAt(GetCurX(), GetCurY(), false); }
627 OString describeCellCursorAt( SCCOL nCol, SCROW nRow, bool bPixelAligned = true ) const;
628
629 SCCOL CellsAtX( SCCOL nPosX, SCCOL nDir, ScHSplitPos eWhichX, sal_uInt16 nScrSizeY = SC_SIZE_NONE ) const;
630 SCROW CellsAtY( SCROW nPosY, SCROW nDir, ScVSplitPos eWhichY, sal_uInt16 nScrSizeX = SC_SIZE_NONE ) const;
631
632 SCCOL VisibleCellsX( ScHSplitPos eWhichX ) const; // Completely visible cell
633 SCROW VisibleCellsY( ScVSplitPos eWhichY ) const;
634 SCCOL PrevCellsX( ScHSplitPos eWhichX ) const; // Cells on the preceding page
635 SCROW PrevCellsY( ScVSplitPos eWhichY ) const;
636
637 bool IsOle() const;
638 void SetScreen( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
639 void SetScreen( const tools::Rectangle& rVisArea );
640 void SetScreenPos( const Point& rVisAreaStart );
641
642 void UpdateScreenZoom( const Fraction& rNewX, const Fraction& rNewY );
643
644 const Size& GetScrSize() const { return aScrSize; }
645
646 void RecalcPixPos();
647 Point GetPixPos( ScSplitPos eWhich ) const
648 { return Point( pThisTab->nPixPosX[WhichH(eWhich)],
649 pThisTab->nPixPosY[WhichV(eWhich)] ); }
650 void SetSpellingView( EditView* pSpView) { pSpellingView = pSpView; }
651 EditView* GetSpellingView() const { return pSpellingView; }
652
653 void UpdateOutlinerFlags( Outliner& rOutl ) const;
654
655 Point GetMousePosPixel();
656
657 bool UpdateFixX(SCTAB nTab = MAXTAB+1);
658 bool UpdateFixY(SCTAB nTab = MAXTAB+1);
659
660 SCCOL GetTabStartCol() const { return nTabStartCol; }
661 void SetTabStartCol(SCCOL nNew) { nTabStartCol = nNew; }
662
663 ScAddress GetCurPos() const;
664
665 const Size& GetScenButSize() const { return aScenButSize; }
666 void SetScenButSize(const Size& rNew) { aScenButSize = rNew; }
667
668 bool IsSelCtrlMouseClick() const { return bSelCtrlMouseClick; }
669
670 SCCOLROW GetLOKSheetFreezeIndex(bool bIsCol) const;
671 bool SetLOKSheetFreezeIndex(const SCCOLROW nFreezeIndex, bool bIsCol, SCTAB nForTab = -1);
672 bool RemoveLOKFreeze();
673 void DeriveLOKFreezeAllSheets();
674 void DeriveLOKFreezeIfNeeded(SCTAB nForTab);
675 void OverrideWithLOKFreeze(ScSplitMode& eExHSplitMode, ScSplitMode& eExVSplitMode,
676 SCCOL& nExFixPosX, SCROW& nExFixPosY,
677 tools::Long& nExHSplitPos, tools::Long& nExVSplitPos, SCTAB nForTab) const;
678
679 static inline tools::Long ToPixel( sal_uInt16 nTwips, double nFactor );
680
686 static void AddPixelsWhile( tools::Long & rScrY, tools::Long nEndPixels,
687 SCROW & rPosY, SCROW nEndRow, double nPPTY,
688 const ScDocument * pDoc, SCTAB nTabNo );
689
695 static void AddPixelsWhileBackward( tools::Long & rScrY, tools::Long nEndPixels,
696 SCROW & rPosY, SCROW nStartRow, double nPPTY,
697 const ScDocument * pDoc, SCTAB nTabNo );
698};
699
700inline tools::Long ScViewData::ToPixel( sal_uInt16 nTwips, double nFactor )
701{
702 tools::Long nRet = static_cast<tools::Long>( nTwips * nFactor );
703 if ( !nRet && nTwips )
704 nRet = 1;
705 return nRet;
706}
707
708inline void ScViewData::GetMoveCursor( SCCOL& rCurX, SCROW& rCurY )
709{
710 if ( bIsRefMode )
711 {
712 rCurX = nRefEndX;
713 rCurY = nRefEndY;
714 }
715 else
716 {
717 rCurX = GetCurX();
718 rCurY = GetCurY();
719 }
720}
721
723{
726}
727
729{
732}
733
734/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
css::chart::ChartAxisLabelPosition ePos
const SCTAB MAXTAB
Definition: address.hxx:70
void GetIndexAndPos(index_type nNearestIndex, tools::Long nNearestPosition, tools::Long nBound, index_type &nFoundIndex, tools::Long &nPosition, bool bTowards, tools::Long nDiff)
Definition: viewdata.cxx:336
void GetIndexTowards(index_type nNearestIndex, tools::Long nNearestPosition, tools::Long nBound, index_type &nFoundIndex, tools::Long &nPosition, bool bTowards)
Definition: viewdata.cxx:460
const SCTAB nTab
Definition: viewdata.hxx:158
ScBoundsProvider(const ScViewData &rView, SCTAB nT, bool bColumnHeader)
Definition: viewdata.cxx:289
const bool bColumnHeader
Definition: viewdata.hxx:159
ScPositionHelper::value_type value_type
Definition: viewdata.hxx:154
tools::Long nSecondPositionPx
Definition: viewdata.hxx:167
void EnlargeBy(tools::Long nOffset)
Definition: viewdata.hxx:184
void EnlargeStartBy(tools::Long nOffset)
Definition: viewdata.cxx:408
void GetEndIndexAndPosition(SCCOL &nIndex, tools::Long &nPosition) const
Definition: viewdata.cxx:309
const index_type MAX_INDEX
Definition: viewdata.hxx:160
index_type nFirstIndex
Definition: viewdata.hxx:164
SCCOLROW index_type
Definition: viewdata.hxx:155
tools::Long nFirstPositionPx
Definition: viewdata.hxx:166
index_type nSecondIndex
Definition: viewdata.hxx:165
tools::Long GetSize(index_type nIndex) const
Definition: viewdata.cxx:330
void GeIndexBackwards(index_type nNearestIndex, tools::Long nNearestPosition, tools::Long nBound, index_type &nFoundIndex, tools::Long &nPosition, bool bTowards)
Definition: viewdata.cxx:436
void Compute(value_type aFirstNearest, value_type aSecondNearest, tools::Long nFirstBound, tools::Long nSecondBound)
Definition: viewdata.cxx:348
void EnlargeEndBy(tools::Long nOffset)
Definition: viewdata.cxx:423
void GetStartIndexAndPosition(SCCOL &nIndex, tools::Long &nPosition) const
Definition: viewdata.cxx:302
ScDocument & rDoc
Definition: viewdata.hxx:157
SC_DLLPUBLIC SCCOL MaxCol() const
Definition: document.hxx:892
SC_DLLPUBLIC SCROW MaxRow() const
Definition: document.hxx:893
Extended options held by an ScDocument containing additional settings for filters.
Definition: scextopt.hxx:77
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
Definition: markdata.hxx:43
bool operator()(const value_type &rValue1, const value_type &rValue2) const
Definition: viewdata.cxx:115
void removeByIndex(index_type nIndex)
Definition: viewdata.cxx:150
const value_type & getNearestByPosition(tools::Long nPos) const
Definition: viewdata.cxx:224
tools::Long computePosition(index_type nIndex, const std::function< long(index_type)> &getSizePx)
Definition: viewdata.cxx:262
std::set< value_type, Comp > mData
Definition: viewdata.hxx:136
const value_type & getNearestByIndex(index_type nIndex) const
Definition: viewdata.cxx:194
tools::Long getPosition(index_type nIndex) const
Definition: viewdata.cxx:255
std::pair< index_type, tools::Long > value_type
Definition: viewdata.hxx:123
ScPositionHelper(const ScDocument *pDoc, bool bColumn)
Definition: viewdata.cxx:127
void invalidateByPosition(tools::Long nPos)
Definition: viewdata.cxx:178
static const index_type null
Definition: viewdata.hxx:127
void setDocument(const ScDocument &rDoc, bool bColumn)
Definition: viewdata.cxx:133
void invalidateByIndex(index_type nIndex)
Definition: viewdata.cxx:163
void insert(index_type nIndex, tools::Long nPos)
Definition: viewdata.cxx:138
SCCOLROW index_type
Definition: viewdata.hxx:122
index_type MAX_INDEX
Definition: viewdata.hxx:135
void ReadUserDataSequence(const css::uno::Sequence< css::beans::PropertyValue > &rSettings, ScViewData &rViewData, SCTAB nTab, bool &rHasZoom)
Definition: viewdata.cxx:606
tools::Long nTPosY[2]
Definition: viewdata.hxx:217
SCROW nPosY[2]
Y position of the top left cell of the visible area.
Definition: viewdata.hxx:241
ScPositionHelper aWidthHelper
Definition: viewdata.hxx:237
ScSplitPos eWhichActive
Definition: viewdata.hxx:227
tools::Long nPixPosX[2]
Definition: viewdata.hxx:220
tools::Long nPixPosY[2]
Definition: viewdata.hxx:221
SvxZoomType eZoomType
Definition: viewdata.hxx:210
SCCOL nPosX[2]
X position of the top left cell of the visible area.
Definition: viewdata.hxx:240
tools::Long nHSplitPos
Definition: viewdata.hxx:222
ScSplitPos SanitizeWhichActive() const
Sanitize the active split range value to not point into a grid window that would never be initialized...
Definition: viewdata.cxx:744
Fraction aPageZoomY
Definition: viewdata.hxx:214
void InitData(const ScDocument &rDoc)
Definition: viewdata.cxx:523
void WriteUserDataSequence(css::uno::Sequence< css::beans::PropertyValue > &rSettings, const ScViewData &rViewData, SCTAB nTab) const
Definition: viewdata.cxx:529
tools::Long nMPosX[2]
Definition: viewdata.hxx:218
SCCOL nMaxTiledCol
Definition: viewdata.hxx:242
tools::Long nTPosX[2]
Definition: viewdata.hxx:216
Fraction aZoomX
Definition: viewdata.hxx:211
tools::Long nMPosY[2]
Definition: viewdata.hxx:219
tools::Long nVSplitPos
Definition: viewdata.hxx:223
bool mbOldCursorValid
Definition: viewdata.hxx:246
ScViewDataTable(const ScDocument *pDoc=nullptr)
Definition: viewdata.cxx:489
Fraction aZoomY
Definition: viewdata.hxx:212
ScSplitMode eVSplitMode
Definition: viewdata.hxx:226
ScSplitMode eHSplitMode
Definition: viewdata.hxx:225
Fraction aPageZoomX
Definition: viewdata.hxx:213
ScPositionHelper aHeightHelper
Definition: viewdata.hxx:238
SCROW nMaxTiledRow
Definition: viewdata.hxx:243
void SetHSplitPos(tools::Long nPos)
Definition: viewdata.hxx:440
bool IsHeaderMode() const
Definition: viewdata.hxx:560
EditView * GetEditView(ScSplitPos eWhich) const
Definition: viewdata.hxx:584
Fraction aDefZoomX
Definition: viewdata.hxx:291
ScRange aDelRange
Definition: viewdata.hxx:316
bool IsFillMode() const
Definition: viewdata.hxx:515
SCCOL GetEditEndCol() const
Definition: viewdata.hxx:607
SCTAB nTabNo
Definition: viewdata.hxx:298
SCROW GetEditEndRow() const
Definition: viewdata.hxx:608
void SetHeaderMode(bool bNewMode)
Definition: viewdata.hxx:561
SCTAB nRefEndZ
Definition: viewdata.hxx:305
ScTabViewShell * pView
Definition: viewdata.hxx:280
ScFillMode GetFillMode() const
Definition: viewdata.hxx:516
SCCOL nEditEndCol
Definition: viewdata.hxx:313
void SetFormulaBarLines(sal_Int16 nLines)
Definition: viewdata.hxx:471
const ScViewOptions & GetOptions() const
Definition: viewdata.hxx:554
Fraction aDefZoomY
Definition: viewdata.hxx:292
void SetSpellingView(EditView *pSpView)
Definition: viewdata.hxx:650
DECL_DLLPRIVATE_LINK(EditEngineHdl, EditStatus &, void)
tools::Long GetPageUpDownOffset() const
Definition: viewdata.hxx:570
SCCOL GetEditViewCol() const
Definition: viewdata.hxx:603
SCROW GetFixPosY() const
Definition: viewdata.hxx:421
SCTAB nRefTabNo
Definition: viewdata.hxx:299
bool GetShowGrid() const
Definition: viewdata.hxx:463
bool IsSyntaxMode() const
Definition: viewdata.hxx:558
SCCOL nEditStartCol
Definition: viewdata.hxx:312
SCCOL GetTabStartCol() const
Definition: viewdata.hxx:660
ScRefType eRefType
Definition: viewdata.hxx:296
SCROW nRefStartY
Definition: viewdata.hxx:301
SvxZoomType GetZoomType() const
Definition: viewdata.hxx:458
bool IsOutlineMode() const
Definition: viewdata.hxx:565
SCTAB nRefStartZ
Definition: viewdata.hxx:302
void SetFixPosY(SCROW nPos)
Definition: viewdata.hxx:443
const Size & GetScenButSize() const
Definition: viewdata.hxx:665
SCCOL MaxCol() const
Definition: viewdata.hxx:396
const Fraction & GetZoomY() const
Definition: viewdata.hxx:460
SCROW GetEditStartRow() const
Definition: viewdata.hxx:606
void SetRefMode(bool bNewMode, ScRefType eNewType)
Definition: viewdata.hxx:539
void SetFixPosX(SCCOL nPos)
Definition: viewdata.hxx:442
ScPasteFlags nPasteFlags
Definition: viewdata.hxx:318
SCROW GetMaxTiledRow() const
Definition: viewdata.hxx:423
SvxZoomType eDefZoomType
Definition: viewdata.hxx:290
SCTAB GetTabNo() const
Definition: viewdata.hxx:395
bool IsTabMode() const
Definition: viewdata.hxx:562
ScSplitPos eEditActivePart
Definition: viewdata.hxx:320
ScDocument & GetDocument() const
Definition: viewdata.hxx:380
ScPositionHelper & GetLOKHeightHelper()
Definition: viewdata.hxx:411
void GetMoveCursor(SCCOL &rCurX, SCROW &rCurY)
Definition: viewdata.hxx:708
void ResetDelMark()
Definition: viewdata.hxx:545
const Size & GetScrSize() const
Definition: viewdata.hxx:644
bool bGrowing
Definition: viewdata.hxx:331
bool IsPasteMode() const
Definition: viewdata.hxx:426
SCCOL GetRefStartX() const
Definition: viewdata.hxx:532
SCCOL nFillEndX
Definition: viewdata.hxx:308
ScRefType GetRefType() const
Definition: viewdata.hxx:531
SCCOL GetMaxTiledCol() const
Definition: viewdata.hxx:422
SCCOL nRefStartX
Definition: viewdata.hxx:300
ScSplitMode GetHSplitMode() const
Definition: viewdata.hxx:416
SCCOL nFillStartX
Definition: viewdata.hxx:306
MapMode aLogicMode
Definition: viewdata.hxx:288
SCCOL GetEditStartCol() const
Definition: viewdata.hxx:605
void SetVSplitMode(ScSplitMode eMode)
Definition: viewdata.hxx:439
Size aScenButSize
Definition: viewdata.hxx:285
void ForcePageUpDownOffset(tools::Long nTwips)
Force page size for PgUp/PgDown to overwrite the computation based on m_aVisArea.
Definition: viewdata.hxx:569
SCROW nFillEndY
Definition: viewdata.hxx:309
double GetPPTY() const
Definition: viewdata.hxx:469
void SetVSplitPos(tools::Long nPos)
Definition: viewdata.hxx:441
bool IsSelCtrlMouseClick() const
Definition: viewdata.hxx:668
ScSplitPos GetEditActivePart() const
Definition: viewdata.hxx:602
ScDocument & mrDoc
Definition: viewdata.hxx:279
bool bIsRefMode
Definition: viewdata.hxx:325
Point GetPixPos(ScSplitPos eWhich) const
Definition: viewdata.hxx:647
bool ShowPasteSource() const
Definition: viewdata.hxx:427
tools::Long GetLOKDocWidthPixel() const
Definition: viewdata.hxx:407
bool IsVScrollMode() const
Definition: viewdata.hxx:563
void SetDelMark(const ScRange &rRange)
Definition: viewdata.hxx:546
ScDocShell * pDocShell
Definition: viewdata.hxx:278
ScTabViewShell * GetViewShell() const
Definition: viewdata.hxx:357
tools::Long GetHSplitPos() const
Definition: viewdata.hxx:418
void setLOKVisibleArea(const tools::Rectangle &rArea)
Definition: viewdata.hxx:574
EditView * pSpellingView
Definition: viewdata.hxx:283
static tools::Long ToPixel(sal_uInt16 nTwips, double nFactor)
Definition: viewdata.hxx:700
void SetTabStartCol(SCCOL nNew)
Definition: viewdata.hxx:661
void SetEditAdjust(SvxAdjust eNewEditAdjust)
Definition: viewdata.hxx:519
SCROW nEditRow
Definition: viewdata.hxx:311
SvxAdjust eEditAdjust
Definition: viewdata.hxx:322
tools::Long m_nLOKPageUpDownOffset
Definition: viewdata.hxx:334
ScMarkData maMarkData
Definition: viewdata.hxx:276
SCCOL nRefEndX
Definition: viewdata.hxx:303
ScSplitPos GetActivePart() const
Definition: viewdata.hxx:398
SCROW GetRefEndY() const
Definition: viewdata.hxx:536
SCCOL nEditCol
Definition: viewdata.hxx:310
SCTAB GetRefStartZ() const
Definition: viewdata.hxx:534
ScViewDataTable * pThisTab
Definition: viewdata.hxx:277
::std::vector< std::unique_ptr< ScViewDataTable > > maTabData
Definition: viewdata.hxx:275
bool IsHScrollMode() const
Definition: viewdata.hxx:564
bool GetDelMark(ScRange &rRange) const
Definition: viewdata.hxx:549
ScPositionHelper & GetLOKWidthHelper()
Definition: viewdata.hxx:410
void SetPasteMode(ScPasteFlags nFlags)
Definition: viewdata.hxx:448
bool IsActive() const
Definition: viewdata.hxx:382
SCCOL GetRefEndX() const
Definition: viewdata.hxx:535
bool IsThemedCursor() const
Definition: viewdata.hxx:566
bool bDelMarkValid
Definition: viewdata.hxx:326
bool IsGridMode() const
Definition: viewdata.hxx:557
SCCOL nTabStartCol
Definition: viewdata.hxx:315
SCROW GetRefStartY() const
Definition: viewdata.hxx:533
SCTAB GetRefEndZ() const
Definition: viewdata.hxx:537
SCROW MaxRow() const
Definition: viewdata.hxx:397
OString describeCellCursorInPrintTwips() const
Definition: viewdata.hxx:626
ScSplitMode GetVSplitMode() const
Definition: viewdata.hxx:417
const Fraction & GetZoomX() const
Definition: viewdata.hxx:459
SCTAB GetRefTabNo() const
Definition: viewdata.hxx:392
SCROW nEditEndRow
Definition: viewdata.hxx:314
SCCOL GetFixPosX() const
Definition: viewdata.hxx:420
void SetSelCtrlMouseClick(bool bTmp)
Definition: viewdata.hxx:456
bool IsPagebreakMode() const
Definition: viewdata.hxx:425
void SetScenButSize(const Size &rNew)
Definition: viewdata.hxx:666
SCROW GetEditViewRow() const
Definition: viewdata.hxx:604
OString describeCellCursor() const
return json for our cursor position.
Definition: viewdata.hxx:625
bool bSelCtrlMouseClick
Definition: viewdata.hxx:328
SfxObjectShell * GetSfxDocShell() const
Definition: viewdata.hxx:358
SvxAdjust GetEditAdjust() const
Definition: viewdata.hxx:518
double nPPTX
Definition: viewdata.hxx:273
const tools::Rectangle & getLOKVisibleArea() const
The visible area in the client (set by setClientVisibleArea).
Definition: viewdata.hxx:573
Fraction aDefPageZoomX
Definition: viewdata.hxx:293
tools::Long GetLOKDocHeightPixel() const
Definition: viewdata.hxx:408
bool IsRefMode() const
Definition: viewdata.hxx:530
double GetPPTX() const
Definition: viewdata.hxx:468
tools::Long GetVSplitPos() const
Definition: viewdata.hxx:419
tools::Rectangle maLOKVisibleArea
The visible area in the LibreOfficeKit client.
Definition: viewdata.hxx:335
ScViewOptions maOptions
Definition: viewdata.hxx:282
void SetRefTabNo(SCTAB nNewTab)
Definition: viewdata.hxx:393
bool bActive
Definition: viewdata.hxx:324
EditView * GetSpellingView() const
Definition: viewdata.hxx:651
bool bPagebreak
Definition: viewdata.hxx:327
bool HasEditView(ScSplitPos eWhich) const
Definition: viewdata.hxx:582
SCROW GetCurY() const
Definition: viewdata.hxx:402
Size aScrSize
Definition: viewdata.hxx:287
SCROW nFillStartY
Definition: viewdata.hxx:307
void SetHSplitMode(ScSplitMode eMode)
Definition: viewdata.hxx:438
Fraction aDefPageZoomY
Definition: viewdata.hxx:294
void SetSyntaxMode(bool bNewMode)
Definition: viewdata.hxx:559
sal_Int16 nFormulaBarLines
Definition: viewdata.hxx:332
bool bMoveArea
Definition: viewdata.hxx:329
void Activate(bool bActivate)
Definition: viewdata.hxx:383
void SetCurX(SCCOL nNewCurX)
Definition: viewdata.hxx:431
SCCOL GetCurX() const
Definition: viewdata.hxx:401
bool IsAnyFillMode() const
Definition: viewdata.hxx:514
SCROW nRefEndY
Definition: viewdata.hxx:304
ScFillMode nFillMode
Definition: viewdata.hxx:321
void SetCurY(SCROW nNewCurY)
Definition: viewdata.hxx:432
sal_Int16 GetFormulaBarLines() const
Definition: viewdata.hxx:478
void SetOption(ScViewOption eOpt, bool bNew)
Definition: viewopti.hxx:85
bool GetOption(ScViewOption eOpt) const
Definition: viewopti.hxx:86
constexpr double nPPTX
constexpr double nPPTY
virtual SfxBindings & GetBindings() override
Mode eMode
sal_uInt16 nPos
NONE
SfxDispatcher * GetDispatcher()
long Long
Mode
#define SC_DLLPUBLIC
Definition: scdllapi.h:27
SvxAdjust
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
Definition: types.hxx:23
sal_Int16 SCTAB
Definition: types.hxx:22
sal_Int16 SCCOL
Definition: types.hxx:21
sal_Int32 SCROW
Definition: types.hxx:17
ScSplitPos
Definition: viewdata.hxx:44
@ SC_SPLIT_BOTTOMRIGHT
Definition: viewdata.hxx:44
@ SC_SPLIT_TOPLEFT
Definition: viewdata.hxx:44
@ SC_SPLIT_BOTTOMLEFT
Definition: viewdata.hxx:44
@ SC_SPLIT_POS_MAX_ENUM
Definition: viewdata.hxx:44
@ SC_SPLIT_TOPRIGHT
Definition: viewdata.hxx:44
ScDragSrc
Definition: viewdata.hxx:91
ScHSplitPos WhichH(ScSplitPos ePos)
Definition: viewdata.hxx:722
ScMarkType
States GetSimpleArea() returns for the underlying selection marks, so the caller can react if the res...
Definition: viewdata.hxx:61
@ SC_MARK_MULTI
Definition: viewdata.hxx:70
@ SC_MARK_NONE
Definition: viewdata.hxx:62
@ SC_MARK_FILTERED
Definition: viewdata.hxx:66
@ SC_MARK_SIMPLE
Definition: viewdata.hxx:65
@ SC_MARK_SIMPLE_FILTERED
Definition: viewdata.hxx:67
ScFollowMode
Screen behavior related to cursor movements.
Definition: viewdata.hxx:52
@ SC_FOLLOW_JUMP
Definition: viewdata.hxx:52
@ SC_FOLLOW_NONE
Definition: viewdata.hxx:52
@ SC_FOLLOW_LINE
Definition: viewdata.hxx:52
@ SC_FOLLOW_FIX
Definition: viewdata.hxx:52
ScSplitMode
Definition: viewdata.hxx:42
@ SC_SPLIT_FIX
Definition: viewdata.hxx:42
@ SC_SPLIT_MODE_MAX_ENUM
Definition: viewdata.hxx:42
@ SC_SPLIT_NORMAL
Definition: viewdata.hxx:42
@ SC_SPLIT_NONE
Definition: viewdata.hxx:42
ScRefType
Mouse mode to select areas.
Definition: viewdata.hxx:55
@ SC_REFTYPE_NONE
Definition: viewdata.hxx:55
@ SC_REFTYPE_EMBED_RB
Definition: viewdata.hxx:56
@ SC_REFTYPE_EMBED_LT
Definition: viewdata.hxx:56
@ SC_REFTYPE_FILL
Definition: viewdata.hxx:55
@ SC_REFTYPE_REF
Definition: viewdata.hxx:55
ScHSplitPos
Definition: viewdata.hxx:45
@ SC_SPLIT_LEFT
Definition: viewdata.hxx:45
@ SC_SPLIT_RIGHT
Definition: viewdata.hxx:45
ScPasteFlags
Definition: viewdata.hxx:81
ScVSplitPos WhichV(ScSplitPos ePos)
Definition: viewdata.hxx:728
#define SC_SIZE_NONE
Definition: viewdata.hxx:31
ScFillMode
Definition: viewdata.hxx:34
ScVSplitPos
Definition: viewdata.hxx:46
@ SC_SPLIT_TOP
Definition: viewdata.hxx:46
@ SC_SPLIT_BOTTOM
Definition: viewdata.hxx:46
@ VOPT_TABCONTROLS
Definition: viewopti.hxx:39
@ VOPT_HSCROLL
Definition: viewopti.hxx:38
@ VOPT_OUTLINER
Definition: viewopti.hxx:40
@ VOPT_GRID
Definition: viewopti.hxx:42
@ VOPT_THEMEDCURSOR
Definition: viewopti.hxx:48
@ VOPT_HEADER
Definition: viewopti.hxx:41
@ VOPT_SYNTAX
Definition: viewopti.hxx:34
@ VOPT_VSCROLL
Definition: viewopti.hxx:37
BOOL IsMinimized(HWND hWnd)
SvxZoomType