Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #ifndef _EDITOBJ_HXX
30 : : #define _EDITOBJ_HXX
31 : :
32 : : #include <tools/stream.hxx>
33 : : #include <tools/debug.hxx>
34 : : #include <rsc/rscsfx.hxx>
35 : : #include <svl/itemset.hxx>
36 : : #include <editeng/eeitem.hxx>
37 : : #include <editeng/editdata.hxx>
38 : : #include "editeng/editengdllapi.h"
39 : :
40 : : #include <vector>
41 : :
42 : : DBG_NAMEEX( EE_EditTextObject )
43 : :
44 : : class SfxItemPool;
45 : : class SfxStyleSheetPool;
46 : : class SvxFieldItem;
47 : :
48 : : namespace editeng {
49 : :
50 : : class FieldUpdater;
51 : :
52 : : }
53 : :
54 : : class EDITENG_DLLPUBLIC EditTextObject
55 : : {
56 : : private:
57 : : sal_uInt16 nWhich;
58 : : EDITENG_DLLPRIVATE EditTextObject& operator=( const EditTextObject& );
59 : :
60 : : protected:
61 : : EditTextObject( sal_uInt16 nWhich );
62 : : EditTextObject( const EditTextObject& r );
63 : :
64 : : virtual void StoreData( SvStream& rOStream ) const;
65 : : virtual void CreateData( SvStream& rIStream );
66 : :
67 : : public:
68 : : virtual ~EditTextObject();
69 : :
70 : 3606 : sal_uInt16 Which() const { return nWhich; }
71 : :
72 : : virtual sal_uInt16 GetUserType() const; // For OutlinerMode, it can however not save in compatible format
73 : : virtual void SetUserType( sal_uInt16 n );
74 : :
75 : : virtual sal_uLong GetObjectSettings() const;
76 : : virtual void SetObjectSettings( sal_uLong n );
77 : :
78 : : virtual bool IsVertical() const;
79 : : virtual void SetVertical( bool bVertical );
80 : :
81 : : virtual sal_uInt16 GetScriptType() const;
82 : :
83 : : virtual sal_uInt16 GetVersion() const; // As long as the outliner does not store any record length.
84 : :
85 : : virtual EditTextObject* Clone() const = 0;
86 : :
87 : : sal_Bool Store( SvStream& rOStream ) const;
88 : : static EditTextObject* Create( SvStream& rIStream,
89 : : SfxItemPool* pGlobalTextObjectPool = 0 );
90 : :
91 : : virtual size_t GetParagraphCount() const;
92 : :
93 : : virtual String GetText(size_t nParagraph) const;
94 : : virtual void Insert(const EditTextObject& rObj, size_t nPara);
95 : : virtual void RemoveParagraph(size_t nPara);
96 : : virtual EditTextObject* CreateTextObject(size_t nPara, size_t nParas = 1) const;
97 : :
98 : : virtual sal_Bool HasPortionInfo() const;
99 : : virtual void ClearPortionInfo();
100 : :
101 : : virtual sal_Bool HasOnlineSpellErrors() const;
102 : :
103 : : virtual sal_Bool HasCharAttribs( sal_uInt16 nWhich = 0 ) const;
104 : : virtual void GetCharAttribs( sal_uInt16 nPara, std::vector<EECharAttrib>& rLst ) const;
105 : :
106 : : virtual sal_Bool RemoveCharAttribs( sal_uInt16 nWhich = 0 );
107 : : virtual sal_Bool RemoveParaAttribs( sal_uInt16 nWhich = 0 );
108 : :
109 : : virtual void MergeParaAttribs( const SfxItemSet& rAttribs, sal_uInt16 nStart = EE_CHAR_START, sal_uInt16 nEnd = EE_CHAR_END );
110 : :
111 : : virtual sal_Bool IsFieldObject() const;
112 : : virtual const SvxFieldItem* GetField() const;
113 : : virtual sal_Bool HasField( TypeId aType = NULL ) const;
114 : :
115 : : virtual SfxItemSet GetParaAttribs(size_t nPara) const;
116 : : virtual void SetParaAttribs(size_t nPara, const SfxItemSet& rAttribs);
117 : :
118 : : virtual sal_Bool HasStyleSheet( const XubString& rName, SfxStyleFamily eFamily ) const;
119 : : virtual void GetStyleSheet(size_t nPara, String& rName, SfxStyleFamily& eFamily) const;
120 : : virtual void SetStyleSheet(size_t nPara, const String& rName, const SfxStyleFamily& eFamily);
121 : : virtual sal_Bool ChangeStyleSheets( const XubString& rOldName, SfxStyleFamily eOldFamily,
122 : : const XubString& rNewName, SfxStyleFamily eNewFamily );
123 : : virtual void ChangeStyleSheetName( SfxStyleFamily eFamily, const XubString& rOldName, const XubString& rNewName );
124 : :
125 : : virtual editeng::FieldUpdater GetFieldUpdater() = 0;
126 : :
127 : : bool operator==( const EditTextObject& rCompare ) const;
128 : :
129 : : // #i102062#
130 : : bool isWrongListEqual(const EditTextObject& rCompare) const;
131 : : };
132 : :
133 : : #endif // _EDITOBJ_HXX
134 : :
135 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|