blob: a0017ef70c0c94ab79954cd9f796b1497a7a4e99 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
/* -*- 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
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef OOX_XLS_COMMENTSBUFFER_HXX
#define OOX_XLS_COMMENTSBUFFER_HXX
#include "oox/xls/richstring.hxx"
#include "oox/xls/worksheethelper.hxx"
#include <com/sun/star/awt/Rectangle.hpp>
namespace oox {
namespace xls {
// ============================================================================
struct CommentModel
{
::com::sun::star::table::CellRangeAddress
maRange; /// Position of the comment in the worksheet.
RichStringRef mxText; /// Formatted text of the comment.
::rtl::OUString maAuthor; /// Comment author (BIFF8 only).
sal_Int32 mnAuthorId; /// Identifier of the comment's author.
sal_uInt16 mnObjId; /// Drawing object identifier (BIFF8 only).
sal_Bool mbAutoFill; /// Auto Selection of comment object's fill style
sal_Bool mbAutoScale; /// Auto Scale comment text
sal_Bool mbColHidden; /// Comment cell's Column is Hidden
sal_Bool mbLocked; /// Comment changes Locked
sal_Bool mbRowHidden; /// Comment cell's Row is Hidden
sal_Int32 mnTHA; /// Horizontal Alignment
sal_Int32 mnTVA; /// Vertical Alignment
::com::sun::star::awt::Rectangle
maAnchor; /// Anchor parameters
bool mbVisible; /// True = comment is always shown (BIFF2-BIFF8 only).
explicit CommentModel();
};
// ----------------------------------------------------------------------------
class Comment : public WorksheetHelper
{
public:
explicit Comment( const WorksheetHelper& rHelper );
/** Imports a cell comment from the passed attributes of the comment element. */
void importComment( const AttributeList& rAttribs );
/** Imports a cell comment Properties from the passed attributes of the comment element. */
void importCommentPr( const AttributeList& rAttribs );
/** Imports the anchor points in CommentPr */
void importAnchor( bool bFrom, sal_Int32 nWhich, const ::rtl::OUString &rChars );
/** Imports a cell comment from the passed stream of a COMMENT record. */
void importComment( SequenceInputStream& rStrm );
/** Imports a cell comment from the passed stream of a NOTE record. */
void importNote( BiffInputStream& rStrm );
/** Creates and returns a new rich-string object for the comment text. */
RichStringRef createText();
/** Finalizes the formatted string of the comment. */
void finalizeImport();
private:
/** Reads a BIFF2-BIFF5 NOTE record. */
void importNoteBiff2( BiffInputStream& rStrm );
/** Reads a BIFF8 NOTE record. */
void importNoteBiff8( BiffInputStream& rStrm );
/** Reads a NOTESOUND record. */
void importNoteSound( BiffInputStream& rStrm );
private:
CommentModel maModel;
};
typedef ::boost::shared_ptr< Comment > CommentRef;
// ============================================================================
class CommentsBuffer : public WorksheetHelper
{
public:
explicit CommentsBuffer( const WorksheetHelper& rHelper );
/** Appends a new author to the list of comment authors. */
void appendAuthor( const ::rtl::OUString& rAuthor );
/** Creates and returns a new comment. */
CommentRef createComment();
/** Finalizes the formatted string of all comments. */
void finalizeImport();
private:
typedef ::std::vector< ::rtl::OUString > OUStringVector;
typedef RefVector< Comment > CommentVector;
OUStringVector maAuthors;
CommentVector maComments;
};
// ============================================================================
} // namespace xls
} // namespace oox
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|