/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef SC_OUTLINETAB_HXX #define SC_OUTLINETAB_HXX #include "collect.hxx" #include "scdllapi.h" #define SC_OL_MAXDEPTH 7 class SvStream; class ScTable; class ScOutlineEntry : public ScDataObject { SCCOLROW nStart; SCSIZE nSize; bool bHidden; bool bVisible; public: ScOutlineEntry( SCCOLROW nNewStart, SCCOLROW nNewSize, bool bNewHidden = false ); ScOutlineEntry( const ScOutlineEntry& rEntry ); virtual ScDataObject* Clone() const; SCCOLROW GetStart() const { return nStart; } SCSIZE GetSize() const { return nSize; } SCCOLROW GetEnd() const { return nStart+nSize-1; } bool IsHidden() const { return bHidden; } // group hidden bool IsVisible() const { return bVisible; } // control visible? void Move( SCsCOLROW nDelta ); void SetSize( SCSIZE nNewSize ); void SetPosSize( SCCOLROW nNewPos, SCSIZE nNewSize ); void SetHidden( bool bNewHidden ); void SetVisible( bool bNewVisible ); }; class ScOutlineCollection : public ScSortedCollection { public: ScOutlineCollection(); virtual short Compare(ScDataObject* pKey1, ScDataObject* pKey2) const; sal_uInt16 FindStart( SCCOLROW nMinStart ); }; class SC_DLLPUBLIC ScOutlineArray { friend class ScSubOutlineIterator; private: sal_uInt16 nDepth; ScOutlineCollection aCollections[SC_OL_MAXDEPTH]; sal_Bool DecDepth(); void FindEntry( SCCOLROW nSearchPos, sal_uInt16& rFindLevel, sal_uInt16& rFindIndex, sal_uInt16 nMaxLevel = SC_OL_MAXDEPTH ); void RemoveSub( SCCOLROW nStartPos, SCCOLROW nEndPos, sal_uInt16 nLevel ); void PromoteSub( SCCOLROW nStartPos, SCCOLROW nEndPos, sal_uInt16 nStartLevel ); public: ScOutlineArray(); ScOutlineArray( const ScOutlineArray& rArray ); sal_uInt16 GetDepth() const { return nDepth; } sal_Bool FindTouchedLevel( SCCOLROW nBlockStart, SCCOLROW nBlockEnd, sal_uInt16& rFindLevel ) const; bool Insert( SCCOLROW nStartPos, SCCOLROW nEndPos, bool& rSizeChanged, bool bHidden = false, bool bVisible = true ); sal_Bool Remove( SCCOLROW nBlockStart, SCCOLROW nBlockEnd, sal_Bool& rSizeChanged ); ScOutlineEntry* GetEntry( sal_uInt16 nLevel, sal_uInt16 nIndex ) const; sal_uInt16 GetCount( sal_uInt16 nLevel ) const; ScOutlineEntry* GetEntryByPos( sal_uInt16 nLevel, SCCOLROW nPos ) const; sal_Bool GetEntryIndex( sal_uInt16 nLevel, SCCOLROW nPos, sal_uInt16& rnIndex ) const; sal_Bool GetEntryIndexInRange( sal_uInt16 nLevel, SCCOLROW nBlockStart, SCCOLROW nBlockEnd, sal_uInt16& rnIndex ) const; void SetVisibleBelow( sal_uInt16 nLevel, sal_uInt16 nEntry, sal_Bool bValue, sal_Bool bSkipHidden = false ); void GetRange( SCCOLROW& rStart, SCCOLROW& rEnd ) const; void ExtendBlock( sal_uInt16 nLevel, SCCOLROW& rBlkStart, SCCOLROW& rBlkEnd ); sal_Bool TestInsertSpace( SCSIZE nSize, SCCOLROW nMaxVal ) const; void InsertSpace( SCCOLROW nStartPos, SCSIZE nSize ); sal_Bool DeleteSpace( SCCOLROW nStartPos, SCSIZE nSize ); bool ManualAction( SCCOLROW nStartPos, SCCOLROW nEndPos, bool bShow, ScTable& rTable, bool bCol ); void RemoveAll(); }; class ScOutlineTable { private: ScOutlineArray aColOutline; ScOutlineArray aRowOutline; public: ScOutlineTable(); ScOutlineTable( const ScOutlineTable& rOutline ); const ScOutlineArray* GetColArray() const { return &aColOutline; } ScOutlineArray* GetColArray() { return &aColOutline; } const ScOutlineArray* GetRowArray() const { return &aRowOutline; } ScOutlineArray* GetRowArray() { return &aRowOutline; } sal_Bool TestInsertCol( SCSIZE nSize ); void InsertCol( SCCOL nStartCol, SCSIZE nSize ); sal_Bool DeleteCol( SCCOL nStartCol, SCSIZE nSize ); // TRUE: Undo only using original sal_Bool TestInsertRow( SCSIZE nSize ); void InsertRow( SCROW nStartRow, SCSIZE nSize ); sal_Bool DeleteRow( SCROW nStartRow, SCSIZE nSize ); }; class ScSubOutlineIterator { private: ScOutlineArray* pArray; SCCOLROW nStart; SCCOLROW nEnd; sal_uInt16 nSubLevel; sal_uInt16 nSubEntry; sal_uInt16 nCount; sal_uInt16 nDepth; public: ScSubOutlineIterator( ScOutlineArray* pOutlineArray ); ScSubOutlineIterator( ScOutlineArray* pOutlineArray, sal_uInt16 nLevel, sal_uInt16 nEntry ); ScOutlineEntry* GetNext(); sal_uInt16 LastLevel() const; sal_uInt16 LastEntry() const; void DeleteLast(); }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ mo/mimo-6-0'>distro/mimo/mimo-6-0 LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/cui/Library_cui.mk
AgeCommit message (Expand)Author
2023-01-12introduce docmodel comp., model::ThemeColor, use it in SvxColorItemTomaž Vajngerl
2022-12-09svx: fix unmaintainable TypeConstant definitionMichael Stahl
2022-11-20jsdialogs: added WidgetTestDialog to test different vcl widgets in online siderash419
2022-10-12new uno command uno:Translate with deepl apiMert Tumer
2022-06-10LanguageTool Grammar Checker implementationMert Tumer
2022-01-20WASM --enable-wasm-strip now skips lots of LO codeArmin Le Grand (Allotropia)
2022-01-05Disable epoxy test with --disable-guiJan-Marek Glogowski
2021-12-14sd: add initial theme UI for master slidesMiklos Vajna
2021-12-10Generally determine Rdb content from gb_*_set_componentfile callsStephan Bergmann
2021-12-01gbuild: introduce plugin + loader conceptsJan-Marek Glogowski
2021-07-16tdf#139654 Font feature sensativityDeb Barkley-Yeung
2021-07-10Added support for viewing results in the VCL tests UI boxhomeboy445
2021-06-29Added a UI dialog box for running the VCL backend testshomeboy445
2021-06-08editengine-columns: Create document model and dialog pageMike Kaganski
2021-04-01tdf#45735 New UI dialog at app startup to check default file formatsMatt K
2021-03-20tdf#139778 Switch to ZXing for generating QR codehomeboy445
2020-10-28Use UCB instead of cURL to download https filesStephan Bergmann
2020-10-07Resolves tdf#117463 - Dialog to show UI optionsHeiko Tietze
2020-09-18Resolves tdf#97918 - Individual UNO commands for distribution optionsHeiko Tietze
2020-07-06cui,cppcanvas: create instances with uno constructorsNoel Grandin
2020-06-28No need for the AdditionsDialog if --disable-extensionsTor Lillqvist
2020-06-25tdf#133026: Tight integration of extensions - Additions Dialog first iterationYusuf Keten
2019-11-16tdf#44462: add a link to Windows Default apps settings appletMike Kaganski
2019-10-02tdf#127711 - A runtime-switch for the MiniCrashDumpJuergen Funk
2019-09-30drop gtk2 supportCaolán McNamara
2019-09-23do not require $(SRCDIR) in every gb_Library_set_precompiled_headerLuboš Luňák
2019-08-23SmartArt: add Edit Diagram dialogGrzegorz Araminowicz
2019-08-01drop newly unused OptHeaderTabListBoxCaolán McNamara
2019-07-30drop newly unused SvxRadioButtonListBoxCaolán McNamara
2019-07-25QRCode Dialog Box featureShubham Goyal
2019-06-21weld SpellDialogCaolán McNamara
2019-06-14UI for the Notebookbar Customization tabSumit Chauhan
2019-06-10Using registrymodifications.xcu for storing customized uiitem dataSumit Chauhan
2019-05-23Add new customize and position merged dialogGülşah Köse
2019-04-10tdf#124238 - Show a Tip-Of-The-Day dialog on startupheiko tietze
2018-12-17kde5: remove older kde/tde plugins, and references to thatThorsten Behrens
2018-10-09loplugin:unusedmethodsNoel Grandin
2018-10-08Try to manage without curl on non-desktop platforms (iOS, for me)Tor Lillqvist
2018-10-08Modernize personas under-the-hood - The searchMuhammet Kara
2018-09-05weld SvxBorderTabPageCaolán McNamara