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 #ifndef INCLUDED_SW_INC_LINEINFO_HXX 20 #define INCLUDED_SW_INC_LINEINFO_HXX 21 22 #include "calbck.hxx" 23 #include <editeng/numitem.hxx> 24 #include "swdllapi.h" 25 26 class SwCharFormat; 27 class IDocumentStylePoolAccess; 28 29 enum LineNumberPosition 30 { 31 LINENUMBER_POS_LEFT, 32 LINENUMBER_POS_RIGHT, 33 LINENUMBER_POS_INSIDE, 34 LINENUMBER_POS_OUTSIDE 35 }; 36 37 class SW_DLLPUBLIC SwLineNumberInfo final : public SwClient /**< purpose of derivation from SwClient: 38 character style for displaying the numbers. */ 39 { 40 SvxNumberType aType; ///< e.g. roman linenumbers 41 OUString aDivider; ///< String for additional interval (vert. lines user defined) 42 sal_uInt16 nPosFromLeft; ///< Position for paint 43 sal_uInt16 nCountBy; ///< Paint only for every n line 44 sal_uInt16 nDividerCountBy; /**< Interval for display of an user defined 45 string every n lines */ 46 LineNumberPosition ePos; ///< Where should the display occur (number and divider) 47 bool bPaintLineNumbers; ///< Should anything be displayed? 48 bool bCountBlankLines; ///< Count empty lines? 49 bool bCountInFlys; ///< Count also within FlyFrames? 50 bool bRestartEachPage; /**< Restart counting at the first paragraph of each page 51 (even on follows when paragraphs are split) */ 52 virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ) override; 53 54 public: 55 SwLineNumberInfo(); 56 SwLineNumberInfo(const SwLineNumberInfo&); 57 58 SwLineNumberInfo& operator=(const SwLineNumberInfo&); 59 60 SwCharFormat *GetCharFormat( IDocumentStylePoolAccess& rIDSPA ) const; 61 void SetCharFormat( SwCharFormat* ); 62 GetNumType() const63 const SvxNumberType &GetNumType() const { return aType; } SetNumType(SvxNumberType aNew)64 void SetNumType( SvxNumberType aNew ){ aType = aNew; } 65 GetDivider() const66 const OUString& GetDivider() const { return aDivider; } SetDivider(const OUString & r)67 void SetDivider( const OUString &r ) { aDivider = r; } GetDividerCountBy() const68 sal_uInt16 GetDividerCountBy() const { return nDividerCountBy; } SetDividerCountBy(sal_uInt16 n)69 void SetDividerCountBy( sal_uInt16 n ) { nDividerCountBy = n; } 70 GetPosFromLeft() const71 sal_uInt16 GetPosFromLeft() const { return nPosFromLeft; } SetPosFromLeft(sal_uInt16 n)72 void SetPosFromLeft( sal_uInt16 n) { nPosFromLeft = n; } 73 GetCountBy() const74 sal_uInt16 GetCountBy() const { return nCountBy; } SetCountBy(sal_uInt16 n)75 void SetCountBy( sal_uInt16 n) { nCountBy = n; } 76 GetPos() const77 LineNumberPosition GetPos() const { return ePos; } SetPos(LineNumberPosition eP)78 void SetPos( LineNumberPosition eP ){ ePos = eP; } 79 IsPaintLineNumbers() const80 bool IsPaintLineNumbers() const { return bPaintLineNumbers; } SetPaintLineNumbers(bool b)81 void SetPaintLineNumbers( bool b ){ bPaintLineNumbers = b; } 82 IsCountBlankLines() const83 bool IsCountBlankLines() const { return bCountBlankLines; } SetCountBlankLines(bool b)84 void SetCountBlankLines( bool b ) { bCountBlankLines = b; } 85 IsCountInFlys() const86 bool IsCountInFlys() const { return bCountInFlys; } SetCountInFlys(bool b)87 void SetCountInFlys( bool b ) { bCountInFlys = b; } 88 IsRestartEachPage() const89 bool IsRestartEachPage() const { return bRestartEachPage; } SetRestartEachPage(bool b)90 void SetRestartEachPage( bool b ) { bRestartEachPage = b; } 91 HasCharFormat() const92 bool HasCharFormat() const { return GetRegisteredIn() != nullptr; } 93 }; 94 95 #endif 96 97 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 98