summaryrefslogtreecommitdiff
path: root/sc/inc
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2009-01-06 12:16:56 +0000
committerRüdiger Timm <rt@openoffice.org>2009-01-06 12:16:56 +0000
commit64274b38f6cc50a8bb49f114f1ac9e7c1c3b3c4f (patch)
tree66df089038aab51c9a676f111e7c98e1ffdcdb40 /sc/inc
parent35602b5f0bcbe13fe6896c62360c5bb68309d1df (diff)
CWS-TOOLING: integrate CWS ooxml02
2008-12-18 06:12:51 +0100 jpryor r265657 : Remove valgrind warning about "Conditional jump or move depends on uninitialised value(s)" within XclFontData::SetApiEscapement(short), as nApiEscapement isn't set by maHlpChCommon>>nApiEscapement. Instead, provide a default value. 2008-12-16 21:50:23 +0100 jpryor r265575 : Remove warnings from Mac OSX gcc-4.0.1. 2008-12-11 20:13:08 +0100 jpryor r265356 : Remove warning so that ooxml02 can build on Ubuntu build bots. 2008-12-11 17:18:47 +0100 jpryor r265336 : CWS-TOOLING: rebase CWS ooxml02 to trunk@264807 (milestone: DEV300:m37) 2008-12-10 17:03:09 +0100 kohei r265208 : take out the xls english opcode bits from sc. We'll decide what to do later. 2008-12-10 16:34:30 +0100 kohei r265202 : removed the xls english formula language entry. 2008-12-10 07:03:56 +0100 jpryor r265144 : Generate the PROT4REV, PROT4REVPASS, BACKUP, and HIDEOBJ records. 2008-12-10 05:16:23 +0100 jpryor r265143 : Undo BIFF record reordering. This was originally done to increase code sharing between the BIFF & OOXML export code, and was tested as being compatible between several .xls-supporting apps, but it is now felt that the change in ordering will complicate testing more than is desirable. 2008-12-08 19:37:27 +0100 kohei r265036 : 1) reverted the localized separator bits, to keep the core functionality intact. 2) introduced English XL A1 and R1C1 grammars, which can be used for OOXML export filter (and later for VBA formula parsing). 3) use the English XL A1 grammar for OOXML export. 2008-12-08 19:33:13 +0100 kohei r265030 : added XL_ENGLISH formula language, which is used in OOXML export (and probably useful in the import as well). This will also be used in VBA formulas as well. 2008-12-03 04:23:54 +0100 jpryor r264737 : Revert -Werror changes; these will be handled in a separate CWS. 2008-12-03 04:21:10 +0100 jpryor r264736 : Revert -Werror fixes; these are being handled in a separate CWS. 2008-12-02 15:48:04 +0100 kendy r264709 : Fix even the visibility warnings. 2008-12-02 09:57:16 +0100 kendy r264661 : Deliver also scfiltmi.dll. 2008-12-02 05:19:37 +0100 jpryor r264654 : -Werror fixes... 2008-12-02 05:14:53 +0100 jpryor r264653 : -Werror fixes... 2008-12-02 05:10:36 +0100 jpryor r264652 : -Werror fixes... 2008-12-02 04:07:52 +0100 jpryor r264651 : -Werror fixes... 2008-12-02 04:00:54 +0100 jpryor r264650 : Further -Werror god appeasement... 2008-12-01 20:23:04 +0100 kendy r264637 : Deliver ioox.lib. 2008-12-01 20:13:38 +0100 kendy r264635 : More visibility fixes in sc. 2008-12-01 20:12:09 +0100 kendy r264634 : Fix build in sax, thanks to Tor :-) 2008-12-01 20:03:36 +0100 kendy r264631 : Define OOXLIB even on Windows. 2008-12-01 15:07:45 +0100 kendy r264609 : More visibilility fixes - sc links now even on Win32. 2008-12-01 12:28:18 +0100 kendy r264594 : Fix visibility markup so that it [nearly ;-)] builds on Windows. It should also save some good amount of symbols... 2008-12-01 12:18:21 +0100 kendy r264593 : Add TYPEINFO_VISIBILITY() - it is the same as TYPEINFO(), but you can specify what visibility markup should it use. 2008-11-27 16:34:23 +0100 mmeeks r264504 : revert ppt bits that slipped in by accident. 2008-11-27 16:32:38 +0100 kendy r264503 : Fix visibility markup in oox (SAL_DLLPUBLIC_EXPORT -> OOX_DLLPUBLIC). 2008-11-27 16:10:16 +0100 mmeeks r264502 : revert un-necessary filter changes ... 2008-11-27 15:52:28 +0100 mmeeks r264498 : revert un-intended evoab2 fixes ... 2008-11-27 15:17:59 +0100 mmeeks r264494 : revert apparently unrelated evoab2 fixups that crept in here. 2008-11-27 11:18:26 +0100 mmeeks r264468 : Rename ComplRefData -> ScComplexRefData for dr #96652# 2008-11-26 23:05:57 +0100 kendy r264437 : #i96634# Fix build with --disable-mozilla. 2008-11-26 22:43:25 +0100 kendy r264435 : #i96316# Fix filter signature to fix Win32 build. 2008-11-25 17:05:35 +0100 mmeeks r264316 : distribute new scfilt library 2008-11-25 17:04:56 +0100 mmeeks r264315 : Add visibility markup to allow all filters to be built as a separate module, and tweak the build to build that way. Fix some existing instances of daft symbol naming around the place. Move headers that are now internal into source/filter/inc Saves ~1.4Mb on a normal calc, on Linux 2008-11-21 22:51:08 +0100 jpryor r264178 : Disable OOXML .xlsx export. 2008-11-21 22:49:26 +0100 jpryor r264177 : More -Werror fixes... 2008-11-21 22:05:42 +0100 jpryor r264175 : Appease the great -Werror god. And cry. Warnings fixed: - Duplicate definition of CREATE_OUSTRING. This is caused because of the use of oox within sc/source/filter/excel, and oox has it's own version of CREATE_OUSTRING. Fix things by ensuring that the oox version is always included first, thus allowing the ftools.hxx version to #undef it and provide it's own version. - Addition of braces for `if` blocks, parenthesis to disambiguate & | && ||. - One s/==/&&/ in dpoutput.cxx (as it's the only thing that makes sense). - Changing parameter names so that they don't hide member variables with the same name. 2008-11-21 13:33:25 +0100 jpryor r264131 : Fix the Win32 build by moving the UnknownAttribute declaration into fastattribs.hxx (lest MSVC complain about vector<UnknownAttribute>). 2008-11-20 19:05:27 +0100 jpryor r264095 : fastsax was originally a UNO component, and then turned into a hybrid UNO/C++ library. Undo this hybridization, reverting it to a normal UNO component, and place the C++ classes into saxinstead. Update project references to use $(SAXLIB) instead of $(FASTSAXLIB). * oox/util/makefile.mk, sc/util/makefile.mk: Remove $(FASTSAXLIB) and use $(SAXLIB) instead. * sax/prj/build.lst: Don't build sax\util, as sax\source\tools now builds the sax library. * sax/source/fastparser/exports.map: Remove; no longer needed. * sax/source/fastparser/facreg.cxx: Change path for fastserializer.hxx. * sax/source/fastparser/fastattribs.cxx, sax/source/fastparser/fastserializer.cxx, sax/source/fastparser/fastserializer.hxx, sax/source/fastparser/fshelper.cxx: Moved to sax/source/tools. * sax/source/fastparser/makefile.mk: Use appropriate UNO naming convention; link against $(SAXLIB) (which now contains FastSaxSerializer, etc.); don't compile fastserializer.obj/etc. (now built by tools); use component.map instead of export.map (removed). * sax/source/tools/makefile.mk: Build sax library instead of building a saxtools.lib file. The sax library now contains FastAttributeList, FastSaxSerializer, and FastSerializerHelper. * scp2/source/ooo/file_library_ooo.scp: Install fastsax.uno, not libfastsax. 2008-11-20 19:04:06 +0100 jpryor r264094 : * oox/source/core/xmlfilterbase.cxx: Remove warning. 2008-11-19 22:26:16 +0100 kendy r264025 : #i96333# A better fix for the evoab2 installation problem Actually, it should be built as evoab2, not evoab; it should be possible to have both at the same time... 2008-11-19 21:52:12 +0100 jpryor r264024 : Shouldn't export symbols by-glob anymore, as we're using SAX_DLLPUBLIC now. 2008-11-19 21:50:30 +0100 jpryor r264023 : Fix Win32 linker error as FastAttributeList and FastSerializerHelper need to be accessible from other shared libraries. (Hopefully this'll work...) * sax/inc/sax/fastattribs.hxx, sax/inc/sax/fshelper.hxx: Add SAX_DLLPUBLIC to class declarations so that they'll be visible from other shared libraries. 2008-11-19 06:47:51 +0100 jpryor r263961 : Cope with oox::core::FilterBase changes. * xestream.cxx: FilterBase now requires that an XModel be provided so that FilterBase::filter() will actually _do_ anything useful, so call FilterBase::setSourceDocument() so that it has one. 2008-11-19 06:37:34 +0100 jpryor r263960 : make sure evoab lib is not installed twice (because it breaks install process as 2nd installation try fails). Thanks to Radek Doulik <rodo@novell.com> for the patch. 2008-11-19 01:53:27 +0100 jpryor r263959 : Fix build break under Linux. * connectivity/source/drivers/evoab2/NResultSetMetaData.cxx: Use a proper type declaration (`:.connectivity::SharedResource'? wtf?!), and use a type that actually exists. /me suspects that this was a bad case of regex search & replace without actually making sure things compiled... * connectivity/source/drivers/evoab2/NStatement.cxx: - #include <resource/common_res.hrc> so that the symbol STR_QUERY_TOO_COMPLEX can be found. - Use a variable that actually has the throwGenericSQLException() method... 2008-11-18 21:37:46 +0100 kendy r263956 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> getTableStyles() needs to be a member of XclExpXmlStream... 2008-11-18 21:37:12 +0100 kendy r263955 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix runtime crash due to sending a non-POD type through a ... function. * sc/source/filter/excel/xestyle.cxx: Stupid fix: s/.getStr() FSEND/.getStr(), FSEND/g (commas are important!). 2008-11-18 21:36:47 +0100 kendy r263954 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix sc build problems... * excel/excdoc.cxx, excel/excrecds.cxx: Remove ScTableProtection, XclExpProtection references (these don't exist here); remove compiler warnings & errors (AddSdrPage prototype changed?!). * excel/expop2.cxx: XclEscher constructor changed; deal. * excel/xestream.cxx, inc/xestream.hxx: XmlFilterBase added some additional abstract members; implement them so we're a concrete type. 2008-11-18 21:36:25 +0100 kendy r263953 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> disambiguate 2008-11-18 21:36:00 +0100 kendy r263952 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Flush, Flush, Flush... 2008-11-18 21:35:38 +0100 kendy r263951 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /styleSheet/numFmts/numFmt support. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Generate /styleSheet/numFmts/numFmt. 2008-11-18 21:35:08 +0100 kendy r263950 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /styleSheet/colors/indexedColors/rgbColor. Also generates /worksheet//col/@style. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Generate /styleSheet/colors/indexedColors/rgbColor. * sc/source/filter/excel/xetable.cxx: Generate /worksheet//col/@style. 2008-11-18 21:34:46 +0100 kendy r263949 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Correct /worksheet//row/@s and /worksheet//row/@ht logic. We need an actual /styleSheet/cellXfs index for //row/@s, which mnIndex most certainly was not, and XclExpRow::mnHeight is a value in twips, while OOXML //row/@ht is a value in points, resulting in _huge_ row heights when opening the document in Excel. Oops. * sc/source/filter/excel/xetable.cxx: Fix //row/@s, //row/@ht. 2008-11-18 21:34:15 +0100 kendy r263948 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /styleSheet/cellXfs/xf/@xfId. Now that I understand what this field is supposed to contain... * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Generate /styleSheet/cellXfs/xf/@xfId. 2008-11-18 21:33:52 +0100 kendy r263947 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Document current state of style support. 2008-11-18 21:33:22 +0100 kendy r263946 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Style Index Support, Take 3! The problem is XclExpCellTable and XclExpRkCell: when XclExpCellTable creates XclExpRkCell instances, it sets their style to EXC_XFID_NOTFOUND, which seems to persist for quite some time, and is later "corrected" to the correct style index in XclExpXFBuffer::GetXFIndex(). This leads to all sorts of problems for me, though, as XclExpXFBuffer::maCellIndexes and maStyleIndexes were a nXFId::index map, and it wasn't easy to get a "valid" nXFId value. Hence, Take 3: maCellIndexes and maStyleIndexes aren't nXFId::index maps, but nXFIndex::index maps. (nXFId is the "original" XF index into XclExpXFBuffer::maXFList, while nXFIndex is the index into XclExpXFBuffer::maSortedXFList, which is the order that BIFF Excel export uses.) Since the nXFId::nXFIndex map logic must work (it's required for BIFF support), we can rely on this logic via a nXFIndex::xml-index map, allowing us to export correct style indexes. Now things Just Work (at least until I find another set of bugs...). * sc/source/filter/excel/xestyle.cxx: Rewrite (and simplify) maCellIndexes and maStyleIndexes initialization, so that XclExpRkCell can get proper style indexes. * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Rewrite XclExpBlankCell and XclExpRkCell XML generation to more closely mimic BIFF generation (thus allowing us to more sanely deal with the XclExpMultiCellBase "chaining" semantics). 2008-11-18 21:33:01 +0100 kendy r263945 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Correct font export within xl/styles.xml. The problem is that BIFF export inserts a "blind" font to appease older versions of Excel, but Excel/OOXML does not want the blind font. So instead of making XclExpBlindFont do nothing -- which causes all //*/@fontId values to be wrong because the @fontId is counting a font that isn't present -- we just don't use XclExpBlindFont with OOXML output. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Don't override+implement XclExpBlindFont::SaveXml(), and instead don't add a XclExpBlindFont() record for OOXML export. 2008-11-18 21:32:30 +0100 kendy r263944 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Enable export of blank cells. Blank cells can contain formatting information (background color, borders, etc.), and XclExpBlankCell was previously overlooked. :-( * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Export /worksheet//c elements for blank cells. 2008-11-18 21:32:08 +0100 kendy r263943 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Start implementing /worksheet/cols/col/c/@s attribute. This allows Style information to be set for cells. It currently works for background color on cells with text; still needs work to support ~everything. * sc/source/filter/excel/xetable.cxx: Generate the /worksheet/cols/col/c/@s attribute so that it contains the Cell XF which contains the appropriate formatting information. 2008-11-18 21:31:41 +0100 kendy r263942 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix "Excel yells when importing a document that sets cell background color." i.e. styles weren't quite right (shock!). In this case, the issues were: - I wasn't distinguishing between *Cell* XFs and *Style* XFs. - //cellStyle/@xfId refers to an index into //cellStyleXfs, and I wasn't generating //cellStyleXfs. Thus, if //cellStyle was present, Excel yelled. - "Indexes" were *completely* wrong. BIFF only has a single set of indexes to track, nicely kept in XclExpXFBuffer::maXFIndexVec. OOXML has _two_ sets: //cellXfs and //cellStyleXfs, each of which are referenced "by index" from other XML parts (and from _this_ XML part, via //cellStyle/@xfId - above). - We needed to export builtin styles. So *now*, if you create an empty Calc document, set a cell background color, save, and load into Excel, it will load without error. You *still* won't see the proper cell background color in Excel, but at least it loads w/o error (which wasn't previously true). * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Add XclExpXFBuffer::GetXmlCellIndex(); lots of other changes (see above for the details). 2008-11-18 21:31:19 +0100 kendy r263941 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Er, yeah. 2008-11-18 21:30:54 +0100 kendy r263940 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Remove deliberate segfault-inducing code. 2008-11-18 21:30:29 +0100 kendy r263939 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Allow Excel to open a document that changes a cell background. Note: it still doesn't *work* yet (as we don't set the cell's @s property so Excel reads the appropriate style), but it does LOAD w/o error now. This is progress. * sc/source/filter/excel/xestyle.cxx: Lots 'o changes; - Exclude the <bgColor/> and <fgColor/> children of //patternFill if the colors aren't actually set. - Don't export //xf/@xfId, as I'm not sure wtf this is supposed to contain yet. - Enhance the Border/Fill lists created last time so it behaves properly: use custom predicates to check for equality (no idea what the default operator== does; it's probably wrong); don't use AddBorderAndFill() at all the "entry" points as this misses cells, instead process all cells within XclExpXFBuffer::Finalize() and add borders/fills there (thus ensuring we hit all cells); Assert that the border/fill id values are valid. - Add a default set of fills. Excel complains loudly if you're missing these fills, so make sure they're always present. - //borders/@count should contain the *Borders* count, not the Fills count. Oops. 2008-11-18 21:30:04 +0100 kendy r263938 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Continue style support. Excel can now (again!) open Calc-generated spreadsheets. Compared to other parts, this was a mess, mostly because (for the first time) the XML format did NOT closely match the pre-existing binary format. It's reasonably close, but some additional mapping is necessary. In particular, in BIFF the XF records contain "inline" the border and fill information. In OOXML this information is referred to "by-index"; consequently we need to create an internal table of borders & fills so that we can then determine the by-index value for borders and fills. :-( Furthermore, my previous `font support` commit was broken: it removed duplicate fonts. While this *sounds* like a good idea (look ma, smaller files!), it's not (currently) a good idea as the XclExpXF::mnXclFont value is an index into this font list (_with_ duplicate values). Removing the duplicates results in invalid /styleSheet/cellXfs/xf/@fontId values, which causes Excel to complain (and no end of grief for me). All told, this adds support for: /styleSheet/borders, /styleSheet/borders/border, /styleSheet/borders/border/bottom, /styleSheet/borders/border/diagonal, /styleSheet/borders/border/left, /styleSheet/borders/border/right, /styleSheet/borders/border/top, /styleSheet/cellXfs, /styleSheet/cellXfs/xf, /styleSheet/cellXfs/xf/alignment, /styleSheet/cellXfs/xf/protection, /styleSheet/fills, /styleSheet/fills/fill, /styleSheet/fills/fill/patternFill, /styleSheet/fills/fill/patternFill/bgColor, and /styleSheet/fills/fill/patternFill/fgColor. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Get xl/styles.xml into an actual Excel-loadable condition. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToOString(Color). 2008-11-18 21:29:41 +0100 kendy r263937 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /styleSheet/fonts/font. This generates: /styleSheet/fonts/font/b, /styleSheet/fonts/font/charset, /styleSheet/fonts/font/color, /styleSheet/fonts/font/condense, /styleSheet/fonts/font/extend, /styleSheet/fonts/font/family, /styleSheet/fonts/font/i, /styleSheet/fonts/font/name, /styleSheet/fonts/font/outline, /styleSheet/fonts/font/shadow, /styleSheet/fonts/font/strike, /styleSheet/fonts/font/sz, /styleSheet/fonts/font/u, and /styleSheet/fonts/font/vertAlign. Missing is: /styleSheet/fonts/font/scheme, * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Change WriteFontData() to take a `sal_Int32 nFontId' parameter, which is the element to write to contain the font name. This is necessary as the shared string table wants to use XML_rFont for the font name, while //fonts/font wants XML_name for the font name. * sc/source/filter/excel/xestring.cxx: WriteFontData() change. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Generate </styleSheet> element (oops), and generate /styleSheet/fonts/font/** for all unique fonts. 2008-11-18 21:29:12 +0100 kendy r263936 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Rename XclExpXmlStream::WriteCurrentStreamAttributes() to WriteAttributes(). Also adds XclExpXmlStream::WriteFontData(). The WriteCurrentStreamAttributes() to WriteAttributes() change was done so that method names would have a reasonable length, and adding WriteCurrentStreamFontData() was looking like an ugly pattern continuation. XclExpXmlStream::WriteFontData() is to support code sharing of XclFontData generation. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestring.cxx: s/WriteCurrentStreamAttributes/WriteAttributes/g, add WriteFontData() ("moved" from xestring.cxx). * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/excrecds.cxx, sc/source/filter/excel/xepage.cxx, sc/source/filter/excel/xerecord.cxx, sc/source/filter/excel/xestream.cxx, sc/source/filter/xcl97/xcl97rec.cxx: Deal with above changes. 2008-11-18 21:28:50 +0100 kendy r263935 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Begin style support. * sc/source/filter/excel/excdoc.cxx: For OOXML output, create an XclExpXmlStyleSheet instance instead of generating FONTLIST, FORMATLIST, XFLIST, and PALETTE separately, as these need to be written to a separate .zip part. * sc/source/filter/inc/xestyle.hxx, sc/source/filter/excel/xestyle.cxx: Begin generating the xl/styles.xml part. 2008-11-18 21:28:25 +0100 kendy r263934 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> =?utf-8?q?Partially=20implement=20Comments=20(=C2=A73.7).?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit This generates the /xl/commentsN.xml files (N == sheet index number). This is only a partial generation because Excel requires that a drawing object be associated with the comment in order to display it. No drawing object, and instead Excel displays a dialog warning that the comments could not be displayed. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Create a XclExpComments object to generate the appropriate commentsN.xml file, as the commentsN.xml file needs to write information about *all* of the comments (author information), so we can't just write out the XclExpNotes individually. * sc/source/filter/xcl97/xcl97rec.cxx, * sc/source/filter/excel/xecontent.cxx: Cope with XclExpXmlStream::CreateOutputStream() changes. * sc/source/filter/inc/xeescher.hxx, sc/source/filter/excel/xeescher.cxx: Add and implement XclExpComments, and add XML generation to XclExpNote. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Change XclExpXmlStream::CreateOutputStream() to take full and relative paths (instead of trying to cosntruct a full/relative path based on the parameters). This was necessary because commentsN.xml needs to insert a relative path of e.g. "../comments1.xml", which the previous implementation would have made difficult. I think this makes things clearer and less magical as well. 2008-11-18 21:28:01 +0100 kendy r263933 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement most of the Shared String Table support. Previously we generated /sst/si/t, which supports non-formatted text. Now we support formatting within a cell -- AS LONG AS the formatting isn't applied to the first character/token. (The first character/token requires formal styles support, which is lacking; everything after character position 1 can be handled within the shared string table.) Now we have: /sst/si/r/rPr/b, /sst/si/r/rPr/charset, /sst/si/r/rPr/color, /sst/si/r/rPr/family, /sst/si/r/rPr/i, /sst/si/r/rPr/outline, /sst/si/r/rPr/rFont, /sst/si/r/rPr/scheme, /sst/si/r/rPr/shadow, /sst/si/r/rPr/strike, /sst/si/r/rPr/sz, /sst/si/r/rPr/u, /sst/si/r/rPr/vertAlign, and /sst/si/r/t. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xecontent.cxx: Use XclExpString::WriteXml() to generate string values, instead of assuming everything is unformatted /sst/si/t elements. * sc/source/filter/inc/xestring.hxx, sc/source/filter/excel/xestring.cxx: Add and implement XclExpString::WriteXml(), which now handles formatted text runs. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Change XclXmlUtils::ToOUString(ScfUInt16Vec) to XclXmlUtils::ToOUString(ScfUInt16Vec,int,int) so that it can be easily used for substrings; add asserts to XclXmlUtils::To*String(XclExpString) to ensure that we're not dealing with formatted text there (as formatted text needs to go through XclExpString::WriteXml(), but these methods are often used for attribute values which cannot have formatted text). 2008-11-18 21:27:35 +0100 kendy r263932 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Update of TODO. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. 2008-11-18 21:27:14 +0100 kendy r263931 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Add /Relationships/Relationship/@TargetMode support. This also fixes Calc hyperlink export, allowing Excel to properly read documents containing a hyperlink. * sc/source/filter/excel/xecontent.cxx: Generate "External" for the hyperlink's TargetMode property, so that Excel will load the generated spreadsheet without error. 2008-11-18 21:26:39 +0100 kendy r263930 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> I think this was what was meant 2008-11-18 21:26:18 +0100 kendy r263929 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Allow Excel to open documents w/ all contents selected. Previously, if you selected all cells (Ctrl+A) then saved, the //selection/@sqref attribute would contain "A:IV", which Excel didn't like. * sc/source/filter/excel/xestream.cxx: Don't allow a MAXROW or MAXCOL value to hit ScRange::Format(), thus avoiding the "missing row numbers" issue. 2008-11-18 21:25:46 +0100 kendy r263928 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> (Mostly) Implement /worksheet/hyperlinks/hyperlink. The only piece missing is error-free Excel import, and in order for Excel to import a generated document error-free is for the sheetN.xml.rels document to contain a /Relationships/Relationship/@TargetMode attribute, e.g. <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://www.example.com/" TargetMode="External"/> I'm not sure how to add this functionality yet. * sc/source/filter/excel/excdoc.cxx: Generate the /worksheet/hyperlinks start and end elements, if appropriate. * sc/source/filter/inc/xecontent.hxx, sc/source/filter/excel/xecontent.cxx: Generate the /worksheet/hyperlinks/hyperlink element * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToOUString(XclExpString). 2008-11-18 21:25:24 +0100 kendy r263927 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement AutoFilter support. This includes /worksheet/autoFilter, /worksheet/autoFilter/filterColumn, /worksheet/autoFilter/filterColumn/top10, /worksheet/autofilter/filterColumn/customFilters, and /worksheet/autofilter/filterColumn/customFilter. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Generate //autoFilter/*. * sc/source/filter/excel/xename.cxx: Apparently adding an AutoFilter adds a "defined name" with an empty string (!), so change XclExpName::SaveXml() to skip entries with empty names. * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Declare and implement a specialization for XclExpValueRecord<double>::SaveXml(). This is necessary because Fridrich's change to XclExpValueRecord::SaveXml() (to case maValue to sal_Int32) broke double exports (as it cast the double to a sal_Int32, thus truncating the value). Since we don't want to re-add the ambiguity warning, we need to specialize so that `double' output uses the correct rtl::OString::valueOf() method. 2008-11-18 21:24:55 +0100 kendy r263926 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix OOXML Calc export so that documents containing > 1 feature work. While most previous features worked -- you could create a document using the feature, save it, and open it in Excel w/o issue -- they worked in isolation. So in trying to create a single test document to test as many features as possible, things (expectedly) broke, so this fixes things up. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx, sc/source/filter/excel/excrecds.cxx: Reorder element output to conform to the OOXML XSD (and allow Excel to read features.xlsx). 2008-11-18 21:24:34 +0100 kendy r263925 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/autoFilter. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Generate the /worksheet/autoFilter element. 2008-11-18 21:24:07 +0100 kendy r263924 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> disambiguate OUString::valueOf calls 2008-11-18 21:23:45 +0100 kendy r263923 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> (Hopefully) Make Formula Export Locale-Independent. Nice as Kohei's patch was, it relied on formula export being in the same locale as the user's locale. So import into Excel would work for *me* (en-US user), but fail for ~everyone else (i.e. not very useful). This patch is a hack, but has the added benefit that it appears to work: create an ScCompiler::OpCodeMapPtr that's specific to OOXML output, and not cache the results. Not ideal, but enough to progress further... * sc/inc/grammar.hxx: Add GRAM_OOXML_A1, which is a locale-independent grammar value (forces ENGLISH, which is what Excel expects). * sc/source/core/tool/compiler.cxx: When dealing with GRAM_OOXML_A1, create a new/unique OpCodeMap that always uses ',' for SC_OPCODE_SEP. * sc/source/filter/excel/xestream.cxx: Use GRAM_OOXML_A1 for output. 2008-11-18 21:23:20 +0100 kendy r263922 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix formula export to use ',' to separate parameters instead of ';'. This is just Kohei's calc-formula-variable-separators-sc.diff patch, but it works quite nicely for this. :-) * sc/inc/compiler.hxx, sc/source/core/tool/compiler.cxx: Allow characters other than ';' to be used as the parameter separator within functions. We don't care so much about permitting people to *enter* such formulas, but this also gives us the ability to *export* such formulas using ',' instead of ';', which Excel requires. 2008-11-18 21:22:55 +0100 kendy r263921 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Finish initial support for /worksheet/sheetData/row/c. Support for some attributes is missing (such as those storing formatting information), but we now (almost completely) save cell values, errors, boolean cells, and formulas. The only missing feature is for > 1 formula argument, e.g. "SUM(A1;B1)". This needs to be exported as "SUM(A1,B1)" (note the comma). * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Add formula support for /worksheet/sheetData/row/c. Remove XclExpBlankCell::SaveXml(), as I can't think of anything it would actually need to do. 2008-11-18 21:22:30 +0100 kendy r263920 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement partial support for /worksheet/sheetData/row/c. This is take 1 of string and value support (//c[@t='s' or @t='n']). Boolean (//c[@t='b']) and error (//c[@t='e']) support is also there, but I have no idea how to test bool and error output without formula support. TESTING: Numbers have two serialization paths: - "RK" numbers, which go through XclExpRkCell. - non-RK numbers, which go thorugh XclExpNumberCell. RK numbers are integers or numbers evenly divisible by 100. All other floating point values (e.g. Pi) are non-RK values. Strings are, well, strings. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Generate /worksheet/sheetData/row/c for strings and numeric values, and stub out support for the other //c types (formulas, errors, boolean values, blank values...). 2008-11-18 21:22:08 +0100 kendy r263919 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/sheetData/row. * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Generate /worksheet/sheetData/row; generate <sheetData/> instead of <sheetData></sheetData> if there are no rows. 2008-11-18 21:21:40 +0100 kendy r263918 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> =?utf-8?q?Flush=20sc/source/filter/excel/ooxml-export-TODO.txt;=20completed=20first=20passs=20of=20=C2=A73.3.1.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. 2008-11-18 21:21:15 +0100 kendy r263917 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/sheetViews/sheetView. * sc/source/filter/excel/xeview.cxx: Generate attributes for /worksheet/sheetViews/sheetView. 2008-11-18 21:20:54 +0100 kendy r263916 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/sheetPr/pageSetUpPr. This also partially implements /worksheet/sheetPr, but most of it is TODO. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Alter XclExpWsbool initialization for XML output so we can output additional information. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Generate /worksheet/sheetPr and /worksheet/sheetPtr/pageSetUpPr elements. 2008-11-18 21:20:28 +0100 kendy r263915 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Fix /worksheet/sheetViews/sheetView/selection/@sqref for multi-selection. When multiple cells are selected, //selection/@sqref needs to be space separated ("A1 A3 B2") not comma-separated ("A1,A3,B2"). * sc/source/filter/excel/xestream.cxx: Use space as the separator character between ScRanges. 2008-11-18 21:20:06 +0100 kendy r263914 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /workbook/sheetViews/sheetView/selection. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToOString(XclRangeList). * sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx: Generate /workbook/sheetViews/sheetView/selection. 2008-11-18 21:19:39 +0100 kendy r263913 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> *Actually* implement /worksheet/printOptions. Previously I was emitting /worksheet/printOptions, but neglected to actually emit any attributes for that element. Oops. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xepage.cxx: Use the new 3-argument XclExpBoolRecord constructor to specify the OOXML attribute to generate from SaveXml(). * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Add a `nAttribute' parameter to the constructor (default is disabled) so that the caller can specify which attribute to generate instead of having a horrible special-case HACK in XclExpBoolRecord::SaveXml() (which wasn't a very scalable solution; this is much better). This isn't perfect, as XclExpBoolRecord::SaveXml() still has some special logic, but it's better than it was... 2008-11-18 21:19:17 +0100 kendy r263912 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/sheetViews/sheetView/pane. Slightly more complicated than you'd think, as //pane needs to be after //dimension but *before* //sheetData, and previously //dimension was being generated as part of the //sheetData processing (thus making it difficult to interrupt the generation for //sheetViews). * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/excdoc.hxx, sc/source/filter/excel/excdoc.cxx: Add FillAsXmlTable(); aRecList now gets filled either as a BINARY (FillAsXmlTable) or "XML" (FillAsXmlTable), because trying to juggle eBiff<= BIFF5, ==BIFF8, and GetOutput()!=EXC_OUTPUT_BINARY (XML) was straining my head, and OOXML record ordering is looking to be quite different from BIFF. "Create" a EXC_ID3_DIMENSIONS record so that //dimension is generated before //sheetViews. * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Add XclExpDelegatingRecord. This is needed because I need an ScfRef<XclExpRecordBase> (to insert the DIMENSION record into the correct location), but XclExpDimension is located within another object and thus can't be heap-allocated itself (at least not w/o changing how it works). Thus I instead create an XclExpDelegatingRecord instance which points to the XclExpDimension instance I care about w/o worrying about double freeing or `delete`ing non-`new`d memory... * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToOString(XclAddress). * sc/source/filter/inc/xetable.hxx, sc/source/filter/excel/xetable.cxx: Don't generate //dimension from XclExpRowBuffer::SaveXml(), as this needs to be done earlier; add XclExpRowBuffer::GetDimensions(), used by XclExpCellTable::CreateRecord() to return an XclExpRecordRef to the already existing XclExpDimensions instance; change XclExpCellTable::CreateRecord() to (a) make it non-const, and (b) return the appropriate XclExpDimension instance for the EXC_ID3_DIMENSIONS record type. * sc/source/filter/inc/xeview.hxx, sc/source/filter/excel/xeview.cxx: Implement /worksheet/sheetViews and /worksheet/sheetViews/sheetView/pane, and partially implement /worksheet/sheetViews/sheetView. * sc/source/filter/xcl97/xcl97rec.cxx: Don't emit the /workbook/workbookProtection/@revisionsPassword attribute, as this causes xmllint XSD Schema validation to fail. 2008-11-18 21:18:48 +0100 kendy r263911 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet[pageMargins and pageSetup and printOptions]. Note: this change alters the ordering of records in (binary) .xls files as well as .xlsx files. This change does not seem to cause any repercussions; Excel 2007 and Calc 2.4 still open generated .xls files w/o complaint. (The records were reordered to simplify generation of OOXML, as otherwise we'd either have a conditional mess or we'd have code duplication. This seems to work, but can be worked around if deemed necessary.) * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx: Generate /worksheet/pageMargins, /worksheet/pageSetup, and /worksheet/printOptions elements. * sc/source/filter/inc/xerecord.hxx: Add ExlExpValueRecord<T>::SaveXml() and ExlExpValueRecord<T>::SetAttribute() (needed to generate attributes for some of the above elements). 2008-11-18 21:18:26 +0100 kendy r263910 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/mergeCells/mergeCell. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/inc/xecontent.hxx, sc/source/filter/excel/xecontent.cxx: Generate /worksheet/mergeCells and /worksheet/mergeCells/mergeCell elements. 2008-11-18 21:17:58 +0100 kendy r263909 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/scenarios, //scenario, //inputCells. "Minor" implementation difficulty (making this patch larger than would normally be required): Scenarios implicitly add a new invisible worksheet (as is noticable if you look at the Calc status bar after clicking Tools->Scenarios...->OK; status goes from "Sheet 1/3" to "Sheet 1/4"). This extra sheet foiled my (stupid) resource ID mapping which "just happened" to work, allowing rId1::sheet1 mappings. The problem was that it worked only by "luck" (and I'm not exporting too much), and it was bound to break at some point...like now. Consequently in addition to exporting //scenarios et. al, this also adds additional infrastructure to deal with creating and storing Resource Ids, in particular so that sheet's get valid resource Ids and Excel will still deign to open our files w/o generating errors. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Change the ordering of ExcEScenarioManager & FilterManager to follow the OOXML XSD; ExcTable::WriteXml() no longer creates the sheet stream (this is done by ExcBundlesheet8::SaveXml()), so lookup the correct stream to use instead. * sc/source/filter/excel/xepage.cxx: Flush comments. * sc/source/filter/excel/xetable.cxx: Cleanup. * sc/source/filter/inc/xcl97rec.hxx, sc/source/filter/xcl97/xcl97rec.cxx: Change ExcBundlesheet8::WriteXml() to open the appropriate sheet output stream (so that we can get a valid ResourceId for this output stream to use in //sheet[@r:id]); implement //scenarios, //scenario, and //inputCells for scenario generation. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::GetStreamName(), XclXmlUtils::ToOString(ScAddress), XclXmlUtils::ToOString(ScRange), XclXmlUtils::ToOString(XclExpString), XclExpXmlStream::GetIdForPath(), XclExpXmlStream::GetStreamForPath(). The XclXmlUtils methods are helper routines (code cleanup), while the XclExpXmlStream methods are to permit "registration" of a Path to both a RelationshipId and a FSHelperPtr for later output. This allows e.g. ExcBundlesheet8::SaveXml() to open the output stream, and have ExcTable::WriteXml() grab and use this output stream later. Changed CreateOutputStream() to (optionally) return the ResourceId as an output parameter. 2008-11-18 21:17:35 +0100 kendy r263908 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Move XML character escape logic into FastSerializerHelper. * sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepage.cxx, sc/source/filter/excel/xecontent.cxx: Use writeEscaped() instead of write() in places that require escaping. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Remove XclXmlUtils::Escape(). 2008-11-18 21:17:10 +0100 kendy r263907 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/headerFooter[oddHeader, oddFooter]. Excel distinguishes between left, right, and front page sets, while Calc doesn't (at least, the .xls output doesn't make that distinction). Consequently, we generate "all pages have these headers/footers" output. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Alter record ordering so that the //headerFooter element is inserted into the correct position to allow Excel to open generated documents. * sc/source/filter/inc/xepage.hxx, sc/source/filter/excel/xepage.cxx: Generate the /worksheet/headerFooter, /worksheet/headerFooter/oddHeader, and /worksheet/headerFooter/evenHeader elements. * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Extend the XclExpStartXmlElementRecord and XclExpStartSingleXmlElementRecord types to accept a callback function which is invoked after starting the element. This allows us to ~easily provide the /worksheet/headerFooter attributes w/o creating new XclExpRecordBase subclasses. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::Escape() functions which perform XML character escaping (e.g. s/</&lt;/g) so that we don't generate invalid XML. In particular, the header/footer contains a "formatting code" which contains '&', which must be escaped within the generated XML. 2008-11-18 21:16:47 +0100 kendy r263906 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/dimensions. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx: Implement /worksheet/dimensions. 2008-11-18 21:16:21 +0100 kendy r263905 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/dataValidations/dataValidation[formula1, formula2]. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xecontent.cxx, sc/source/filter/inc/xecontent.hxx: Implement /worksheet/dataValidations, /worksheet/dataValidations/dataValidation, //formula1, //formula2. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add XESTRING_TO_PSZ(), XclXmlUtils::ToOString(ScRangeList), XclXmlUtils::ToOUString(ScDocument&,ScAddress,ScTokenArray*). 2008-11-18 21:15:58 +0100 kendy r263904 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/conditionalFormatting. Note that Excel will NOT currently open files containing this element, as the XML is incomplete: the XSD requires at least one nested /worksheet/conditionalFormatting/cfRule element, which we're not yet generating. We do properly generate //conditionalFormatting/@sqref. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xecontent.cxx, sc/source/filter/inc/xecontent.hxx: Generate /worksheet/conditionalFormatting. 2008-11-18 21:15:31 +0100 kendy r263903 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/cols/col; unstub /worksheet/sheetData. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Remove <sheetData/> stub, as //col needs to come _before_ //sheetData, and emitting //sheetData here makes that impossible (and keeps Excel from loading our files). * sc/source/filter/excel/xetable.cxx, sc/source/filter/inc/xetable.hxx: Implement /worksheet/cols (XclExpColinfoBuffer), /worksheet/cols/col (XclExpColinfo), and stub out /worksheet/sheetData in the correct position to appease Excel. 2008-11-18 21:15:06 +0100 kendy r263902 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/xepage.cxx, sc/source/filter/inc/xepage.hxx: Add XclExpPageSettings::SaveXml() and XclExpPageBreaks::SaveXml() -- the former to call the latter, and the latter to generate /worksheet/colBreaks, /worksheet/rowBreaks, and /worksheet//brk. 2008-11-18 21:14:44 +0100 kendy r263901 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> disambiguate 2008-11-18 21:14:19 +0100 kendy r263900 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement (more-) proper /workbook/calcPr support. Cleanup. Previously, /workbook/calcPr was generated by filling a temporary XclExpXmlCalculationProperties instance, and generating the //calcPr element at the ~end of generation. This was not ideal, as it involved more code (the class to hold the intermediate values, etc.), and it could potentially place the //calcPr element into the wrong position (the XSD requires that it be before //oleSize, //customWorkbookViews, and //pivotCaches, while the previous approach would have placed it after ~everything). * sc/source/filter/excel/excdoc.cxx: Follow the pattern of //workbookProtection and insert the //calcPr BIFF records into the appropriate position based on file type. One minor quirk: the records move from the per-SHEET array into the workbook array. * sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/xestream.hxx: Remove unnecessary code. * sc/source/filter/xcl97/xcl97rec.cxx: Directly emit the attributes instead of filling an intermediate object. 2008-11-18 21:13:56 +0100 kendy r263899 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Enable /workbook/workbookProtection. /workbook/workbookProtection was previously disabled as emitting it would cause Excel to generate an error message. The problem has been resolved: /workbook/workbookProtection *must* be before /workbook/bookviews (which in turn must be before /workbook/sheets), and this wasn't previously the case. Placing the element into the proper location makes Excel happy. * sc/source/filter/excel/excdoc.cxx: Place the workbookProtection-related BIFF records into the correct position to appease the Excel gods. * sc/source/filter/excel/excrecds.cxx, sc/source/filter/xcl97/xcl97rec.cxx: Enable output of the various /workbook/workbookProtection attributes. 2008-11-18 21:13:29 +0100 kendy r263898 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement /workbook/bookviews/workbookView. * sc/source/filter/excel/ooxml-export-TODO.txt: Remove implemented elements. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx, sc/source/filter/excel/xlroot.cxx, sc/source/filter/inc/xlroot.hxx, sc/source/filter/inc/xlconst.hxx: The WINDOW1 record needs to be in one of two different locations, depending on output format. Add a new XclOutput enumeration to contain the output format (we do NOT want to reuse XclBiff for this purpose, as otherwise XML output is a superset of BIFF8, and we don't want to update every existing check for BIFF8 to check for both BIFF8 and XML), and check for this flag so that the WINDOW1 record is created in the appropriate place. * sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/xestream.hxx: Add GetRoot() method and change constructor to take a `const XclExpRoot&`, as XclExpWindow::SaveXml() requires this information. * sc/source/filter/excel/xeview.cxx, sc/source/filter/inc/xeview.hxx: XclExpWindow1::SaveXml() generates the //workbookView element. * sc/source/filter/xcl97/xcl97rec.cxx: Cleanup. 2008-11-18 21:13:04 +0100 kendy r263897 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Remove SIGILL from ExcBundlesheet8::SaveXml(). * sc/source/filter/excel/xestream.cxx: Add some asserts. * sc/source/filter/xcl97/xcl97rec.cxx: Non-POD types cause a SIGILL when passed as a "..." argument to a function. Doh! 2008-11-18 21:12:42 +0100 kendy r263896 : #i96320# xlsx export From: Fridrich Strba <fstrba@novell.com> disambiguate 2008-11-18 21:12:17 +0100 kendy r263895 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> /workbook/workbookProtection, mostly cancelled during rebase. This isn't actually implemented -- the ::SaveXml() methods are `#if 0`d out -- as Excel barfs when this element + attributes are emitted. Funnier, even <workbookProtection/> causes Excel to barf, so until all the semantics are worked out it all needs to be uncommented out. What is useful here is the mapping from BIFF record -> OOXML attribute. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excrecds.cxx, sc/source/filter/inc/excrecds.hxx, sc/source/filter/inc/xcl97rec.hxx, sc/source/filter/xcl97/xcl97rec.cxx: Add method stubs to generate the /workbook/workbookProtection element & attributes. 2008-11-18 21:11:55 +0100 kendy r263894 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Initial /workbook/workbookPr implementation. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sc/source/filter/excel/excdoc.cxx: Add records to start/end the <workbookPr/> element; cleanup & document TODOs. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Declare & Implement Xcl1904::SaveXml(). * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Declare and implement XclExpXmlStartSingleElementRecord, XclExpXmlEndSingleElementRecord, both used to single-style XML elements instead of the "full" start/end XML created by XclExpXmlStartElementRecord and XclExpXmlEndElementRecord, and add XclExpBoolRecord::SaveXml(), which generates some <workbookPr/> attributes. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Declare & implement XclExpXmlStream::WriteCurrentStreamAttributes(). 2008-11-18 21:11:30 +0100 kendy r263893 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement (more-) proper /workbook/sheets support. Refactor. Instead of hacking around "limitations" in NameBuffer to generate /workbook/sheets/sheet elements, use ExcBundlesheet8 to generate the /workbook/sheets/sheet elements. This also allows us to emit the //sheet/@state attribute, which is private to ExcBundlesheet8. In order to generate the /workbook/sheets elements, XclExpXmlStartElementRecord and XclExpXmlEndElementRecord were added around the ExcBundlesheet8 record entries, so that the existing record-based infrastructure could automagically generate the structural XML tags. These records do nothing for existing BIFF output. Finally, XclExpXmlStream::GetWorkbook() has been replaced with XclExpXmlStream::GetCurrentStream(), and PushStream()/PopStream() methods were added. This is hoped to permit nesting of streams, and is currently being used to generate the xl/worksheets/sheetN.xml files (to no effect, as not enough records are generate XML for the results to be visible). * sc/source/filter/excel/excdoc.cxx: Undo the pTabNames/NameBuffer changes, as we no longer use pTabNames to generate //sheets/; add records to emit the <sheets/> element; place the sheet stream on top of the XclExpXmlStream stack. * sc/source/filter/inc/excrecds.hxx, sc/source/filter/excel/excrecds.cxx: Save the tab that ExcBundlesheetBase was constructed for -- needed for <sheet/> generation within ExcBundlesheet8. * sc/source/filter/excel/xecontent.cxx, sc/source/filter/excel/xename.cxx, sc/source/filter/excel/xepivot.cxx: s#GetWorkbook#GetCurrentStream#g; don't emit empty collections. * sc/source/filter/inc/xerecord.hxx, sc/source/filter/excel/xerecord.cxx: Declare and Implement XclExpXmlElementRecord, XclExpXmlStartElementRecord, XclExpXmlEndElementRecord. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Add stream stack methods; remove warning about unused parameter. * sc/source/filter/inc/xcl97rec.hxx, sc/source/filter/xcl97/xcl97rec.cxx: Add ExcBundlesheet8::SaveXml() and generate /workbook/sheets/sheet elements from it. 2008-11-18 21:11:08 +0100 kendy r263892 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Add Calc OOXML TODO list. * sc/source/filter/excel/ooxml-export-TODO.txt: Added. I'm going through ECMA-376 Part 4 Section 3 in a breadth-first fashion (i.e. top-down), and implementing each element as I'm able. I'm not always able to immediately implement an element (frequently because I can't find the equivalent binary export code) within a short period of time, so any such elements are recorded here for later passes. Just because an element isn't here doesn't mean it's been fully implemented; any elements with associated code will have OOXTODO comments specifying what's missing/needed for that particular code. 2008-11-18 21:10:36 +0100 kendy r263891 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Initial /workbook/pivotCaches/pivotCache implementation. * sc/source/filter/excel/xepivot.cxx, sc/source/filter/inc/xepivot.hxx: Declare and implement *Xml() methods so that PivotCaches are saved into xl/workbook.xml. 2008-11-18 21:10:09 +0100 kendy r263890 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Initial <definedName/> implementation. * sc/source/filter/excel/xename.cxx: Generate <definedName/>. * sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::ToPsz(bool). * sc/source/filter/inc/xename.hxx: Declare XclExpNameManager::SaveXml() so we can emit <definedName/> elements. * sc/source/filter/inc/xestream.hxx: Declare XclXmlUtils::ToPsz(bool). 2008-11-18 21:09:47 +0100 kendy r263889 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Initial <calcPr/> implementation; provide count, uniqueCount <sst/> attributes. * sc/source/filter/excel/excdoc.cxx: Initial /workbook/calcPr generation implementation. * sc/source/filter/excel/xecontent.cxx: Provide the count and uniqueCount attributes for the <sst/> element. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: Provide/implement a XclExpXmlStream::GetWorkbookCalculationProperties() method which keeps track of data used by excdoc.cxx for <calcPr/> generation. * sc/source/filter/inc/xcl97rec.hxx, sc/source/filter/xcl97/xcl97rec.cxx: Override SaveXml() for select types to cache the information needed to write <calcPr/>. 2008-11-18 21:09:22 +0100 kendy r263888 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Simplify addRelation/openOutputStream use within sc. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/xecontent.cxx: Use CreateOutputStream() to create sub-streams. * sc/source/filter/excel/xestream.cxx: Implement CreateOutputStream(); use CreateOutputStream() to create xl/workbook.xml. * sc/source/filter/inc/xestream.hxx: Add CreateOutputStream() methods which merge addRelation() w/ openOutputStreamWithSerializer(). 2008-11-18 21:08:59 +0100 kendy r263887 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Allow Excel to open an empty spreadsheet. * sc/source/filter/excel/excdoc.cxx: Use proper sheet names in the relations file so that correct relative paths are present within the .rels file; Use the correct content type when creating sheetN.xml; Insert a <sheetData/> element into the worksheet.xml files; insert the sheetN.xml relational data into the correct .rels file. * sc/source/filter/excel/xestream.cxx: Use the correct content type when creating xl/workbook.xml. 2008-11-18 21:08:28 +0100 kendy r263886 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> More Excel export cleanup. * sc/source/filter/excel/excdoc.cxx: Use addRelation(XOutputStream...) so that the added relation is (hopefully) inserted into the appropriate xl/_rels/workbook.xml.rels file; extra tracing. * sc/source/filter/excel/xecontent.cxx: Cleanup/simplification. * sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/xestream.hxx: Add more ToOString() and ToOUString() helper methods. 2008-11-18 21:08:06 +0100 kendy r263885 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Current work-in-progress for minimal Excel support. * sc/source/filter/excel/excdoc.cxx: Implement ExcTable::WriteXml() to write xl/worksheets/sheetN.xml or the workbook.xml <sheets/> elements, depending on whether we're the header or not. Implement ExcDocument::WriteXml() to stub out xl/workbook.xml. * sc/source/filter/excel/xecontent.cxx: Use the XML Ids instead of strings to speed up XML creation. * sc/source/filter/excel/xestream.cxx: Add XclXmlUtils::To*String() helpers to simplify XML writing; open the xl/workbook.xml file so that it can be written to from multiple locations. * sc/source/filter/inc/xestream.hxx: Add XclXmlUtils class to hold various To*String() helpers; add XclExpXmlStream::GetWorkbook(). 2008-11-18 21:07:41 +0100 kendy r263884 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Generate a correct shared string table. * sc/source/filter/excel/xecontent.cxx: Write proper shared string table entries. * sc/source/filter/inc/xestream.hxx: Include <sax/fshelper.hxx> so we can easily use XmlFilterBase::openOutputStreamWithSerializer(). 2008-11-18 21:07:18 +0100 kendy r263883 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Write an actual ZIP package for .xlsx output, including a (stubbed) shared string table. * sc/prj/build.lst: We now depend on oox to build. * sc/source/filter/inc/xestream.hxx, sc/source/filter/excel/xestream.cxx: XclExpXmlStream how inherits from XmlFilterBase, which produces ZIP package files. This allows increased code sharing. * sc/source/filter/excel/excdoc.cxx: Update XclExpXmlStream construction. * sc/source/filter/excel/excel.cxx: Don't create a SotStorage() instance over pMedStrm (this makes ZipStorage very angry); don't call lcl_ExportExcelBiff(), as we want to preserve our generated file. * sc/source/filter/excel/xecontent.cxx: Write out the XML forr the shared string table (incomplete, as I need to find an easier/more elegant way of inserting strings into the XML, but it'll need updating anyway to use the FastSaxSerializer). * sc/util/makefile.mk: Link against $(OOXLIB) and $(FASTSAXLIB) as well. 2008-11-18 21:06:54 +0100 kendy r263882 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Trace output for the shared string table. This is step forward as we're hooking into the new XclExpRecordBase::SaveXml() to invoke the string table SaveXml() routine. It's still largely proof-of-concept, but we can actually invoke the appropriate code now. * oox/workben/ooxml-export-notes.txt: Flush. * sc/source/filter/inc/exp_op.hxx, sc/source/filter/excel/expop2.cxx: Add and implement the new ExportXml2007 type. * sc/source/filter/excel/excdoc.cxx, sc/source/filter/excel/excel.cxx, sc/source/filter/excel/xecontent.cxx, sc/source/filter/excel/xepivot.cxx, sc/source/filter/excel/xerecord.cxx, sc/source/filter/excel/xestream.cxx, sc/source/filter/inc/excdoc.hxx, sc/source/filter/inc/xecontent.hxx, sc/source/filter/inc/xepivot.hxx, sc/source/filter/inc/xerecord.hxx, sc/source/filter/inc/xestream.hxx, sc/source/filter/inc/xestring.hxx: Implement enough glue to allow XclExpSstImpl::SaveXml() to be invoked from the XML export context and print useful information to the screen. 2008-11-18 21:06:28 +0100 kendy r263881 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Implement support for writing .xlsx files. The .xlsx file written is still a BIFF8 (.xls) file, but a file is now written instead of generating an error message. * sc/inc/filter.hxx: Change the prototype of ScExportExcel5 so that we can specify Excel 2007 XML (Exp2007Xml) as a file format. * sc/source/filter/excel/excel.cxx: Refactor ScExportExcel5() so that Exp2007Xml is a supported format, and stub out Exp2007Xml support so that BIFF8 output is currently generated. * sc/source/ui/docshell/docsh.cxx: Add support for the "MS Excel 2007 XML" filter and the new ScExportExcel5() semantics. 2008-11-18 21:06:03 +0100 kendy r263880 : #i96320# xlsx export From: Jonathan Pryor <jpryor@novell.com> Make the filter names consistent with other filters used in sc/.../docsh.cxx. * filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu, filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu, filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu, filter/source/config/fragments/types/MS_Excel_2007_XML.xcu, filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu: Remove 'Calc ' from the filter names (as none of the other filters mentioned in sc/source/ui/docshell.cxx use that convention), and remove 3RDPARTYFILTER from the filter's Flags property, as this flag causes objstor.cxx to use ExportTo() instead of ConvertTo(), and the existing Calc->Export logic is all within ConvertTo(). 2008-11-18 21:05:41 +0100 kendy r263879 : #i96320# xlsx export From: Radek Doulik <rodo@novell.com> Initial work on ooxml export (xlsx) * filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu: ditto * filter/source/config/fragments/types/MS_Excel_2007_XML.xcu: reverse extensions order so that xlsx is shown in Save dialog as default 2008-11-18 20:53:43 +0100 kendy r263877 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Deliver tablestylelist.hxx so that we can use xmlfilterbase.hxx. And also just do forward declaration of TableStyle instead of including the header - it includes too much in that case. 2008-11-18 20:53:21 +0100 kendy r263876 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Fix build break. * source/ppt/pptimport.cxx: getServiceFactory() was renamed to getGlobalFactory(). 2008-11-18 20:52:49 +0100 kendy r263875 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Add some namespaces so that sax builds again. 2008-11-18 20:52:27 +0100 kendy r263874 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Cleanup in sax (wrt. escaping attribute values). FastSaxSerializer::writeFastAttributeList() didn't properly escape attribute values, which broke number format export if the number format included e.g. '"' (double quote), e.g.: [$$-409]#,##0.00;[RED]-[$$-409]#,##0.00;"" which shows numbers with a currency type, negative numbers in red, and 0 values as the empty string. * sc/source/filter/excel/ooxml-export-TODO.txt: Flush. * sax/source/fastparser/fshelper.cxx, sax/source/fastparser/fastserializer.hxx, sax/source/fastparser/fastserializer.cxx: Move fshelper.cxx's lcl_Escape() to FastSaxSerializer::escapeXml(), and use escapeXml() when writing attribute values. 2008-11-18 20:51:59 +0100 kendy r263873 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Make a bit more obvious what's happenning with AttributeLists. 2008-11-18 20:51:37 +0100 kendy r263872 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> a from-scratch-build reveals some missed changes in include files :( 2008-11-18 20:51:11 +0100 kendy r263871 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> deliver the header too 2008-11-18 20:50:48 +0100 kendy r263870 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> public visibility of FastAttributeList class + some more convenience functions in fshelper 2008-11-18 20:50:26 +0100 kendy r263869 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Add /Relationships/Relationship/@TargetMode support. This also fixes Calc hyperlink export, allowing Excel to properly read documents containing a hyperlink. * oox/inc/oox/core/xmlfilterbase.hxx, oox/source/core/xmlfilterbase.cxx: Add a rTargetMode parameter to XmlFilterBase::addRelation(). 2008-11-18 20:50:04 +0100 kendy r263868 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> add string.h 2008-11-18 20:49:42 +0100 kendy r263867 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Explicitely default construct maMarkStack [to be safe ;-)]. 2008-11-18 20:49:13 +0100 kendy r263866 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Rename writeMarked() to mergeTopMarks() and improve the implementation. Just writing the top mark is not enough; in more complex scenarios it would destroy the order completely. This way we have better control over what's happening, and can nest the mark()/mergeTopMarks()/mergeTopMarks( true ) as necessary directly in the start/end tags. 2008-11-18 20:48:51 +0100 kendy r263865 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Add mark() and writeMarked() methods. These are to be able to change the order of the data being written. If you need to write eg. p, r, rPr, [something], /rPr, t, [text], /r, /p, but get it in order p, r, t, [text], /t, rPr, [something], /rPr, /r, /p, simply do p, r, mark(), t, [text], /t, mark(), rPr, [something], /rPr, writeMarked(), writeMarked(), /r, /p and you are done. 2008-11-18 20:48:24 +0100 kendy r263864 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Move XML character escape logic into FastSerializerHelper. * sax/inc/sax/fshelper.hxx, sax/source/fastparser/fshelper.cxx: Add and implement FastSerializerHelper::writeEscaped(), which escapes any XML characters within the string before writing. 2008-11-18 20:48:02 +0100 kendy r263863 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Introduce writeId(). * sax/inc/sax/fshelper.hxx sax/source/fastparser/fastserializer.cxx, sax/source/fastparser/fastserializer.hxx, sax/source/fastparser/fshelper.cxx: Add/implement FastSerializerHelper::writeId(), which does the "usual" sal_Int32->string conversion but manually, outside of any automatic context. This is done so that XclExpXmlStream::WriteCurrentStreamAttributes() can write element attributes "piecemeal"/on-demand, without needing to store the relevant information into a separate object to generate all the attributes at once. 2008-11-18 20:47:36 +0100 kendy r263862 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Change the semantics of startElement() and singleElement(). * sax/source/fastparser/fshelper.cxx: Change the semantics of startElement() and singleElement(), so that attributes with values that are NULL are _skipped_, instead of ending all attributes. This allows us to have "optional" attributes, in which the attribute won't be generated if the value is null. This is needed so that the //definedName/@localSheetId attribute is only emitted for non-global sheet-specific names. 2008-11-18 20:47:14 +0100 kendy r263861 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> call our pptx export filter from oox/pptimport when needed (yup, it is not only import filter from now ;-) 2008-11-18 20:46:51 +0100 kendy r263860 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> How to install the stuff. 2008-11-18 20:46:29 +0100 kendy r263859 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> Change 'core::addRelation' to 'static addRelation_impl'. To be better readable, and no symbol for that. 2008-11-18 20:46:04 +0100 kendy r263858 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> generate document wide unique Id's 2008-11-18 20:45:40 +0100 kendy r263857 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added standalone="yes" to xml document beginning removed unneccessary ::rtl:: prefix in one case 2008-11-18 20:45:18 +0100 kendy r263856 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added FSHelperPtr here as well 2008-11-18 20:44:56 +0100 kendy r263855 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> call commit on StorageBase substorages rather than only on XStorage of these substorages so that the commit propagates recursively to all substorages 2008-11-18 20:44:34 +0100 kendy r263854 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Implement getOutputStream(), some cleanup. * sax/inc/sax/fshelper.hxx: Add a getOutputStream() method so that excdoc.cxx can easily use the addRelation(XOutputStream, ...) method. * sax/source/fastparser/fastserializer.cxx: Code refactor to remove useless string duplication -- Sequence<byte>(ToString(s).getStr(), ToString(s).getLength()) == bad. * sax/source/fastparser/fastserializer.hxx: Add getOutputStream() (for use in fshelper.cxx); cleanupl. * sax/source/fastparser/fshelper.cxx: Implement getOutputStream(). 2008-11-18 20:44:12 +0100 kendy r263853 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Add write() methods to write inside elements. * sax/inc/sax/fshelper.hxx: Add write() methods to write content to the string inside of elements. * sax/source/fastparser/fshelper.cxx: Implement write() methods. 2008-11-18 20:43:50 +0100 kendy r263852 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> making singleUnknownElement and singleFastElement be a uno method 2008-11-18 20:43:27 +0100 kendy r263851 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added NS versions of fast methods 2008-11-18 20:43:05 +0100 kendy r263850 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> support namespaces in attribute names as well 2008-11-18 20:42:44 +0100 kendy r263849 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> fix content types writting after it got broken somewhere between m4 and m19 when Version was added to properties between MediaType and FullPath 2008-11-18 20:42:21 +0100 kendy r263848 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> fixed FastAttributeList::getUnknownAttributes where a std::for_each wasn't working properly (because of ++ in bind) 2008-11-18 20:41:55 +0100 kendy r263847 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> fix attributes list and its reference creation so that the instance can be freed in Reference::release 2008-11-18 20:41:33 +0100 kendy r263846 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> export tokens added xmlns to tokens 2008-11-18 20:41:08 +0100 kendy r263845 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> instantiate token handler support xml namespaces 2008-11-18 20:40:45 +0100 kendy r263844 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added method to XmlFilterBase which opens stream with media type and returns newly created fast serializer shared ptr 2008-11-18 20:40:23 +0100 kendy r263843 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> * oox/workben/ooxml-export-notes.txt: Flush. 2008-11-18 20:40:01 +0100 kendy r263842 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> beefing up the fshelper 2008-11-18 20:39:40 +0100 kendy r263841 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> export ChartConverterClass - it is now needed in XmlFilterBase 2008-11-18 20:39:17 +0100 kendy r263840 : #i96316# OPC for export filters From: Jan Holesovsky <kendy@suse.cz> fastsax.uno.so was renamed to libfastsaxlx.so 2008-11-18 20:38:54 +0100 kendy r263839 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> trying to do some useful stuff with the serializer 2008-11-18 20:38:26 +0100 kendy r263838 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> use relation id names similar to ms office 2008-11-18 20:38:03 +0100 kendy r263837 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> fixed typo in namespace url 2008-11-18 20:37:38 +0100 kendy r263836 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added 2 new methods to XmlFilterBase for adding relations to base storage and to output streams 2008-11-18 20:37:15 +0100 kendy r263835 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> let writable stream handle relation id's new id can be queried by asking for property "RelId" fixed another issue with writing relations of writable stream - the same one I fixed lately for storages - looks like another cut'n'pasted code :( 2008-11-18 20:36:48 +0100 kendy r263834 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> trying to avoid char* -> OUString and back conversions 2008-11-18 20:36:26 +0100 kendy r263833 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added commit methods to StorageBase and FilterBase to make things easier 2008-11-18 20:35:58 +0100 kendy r263832 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added new openOutputStream method to XmlFilterBase to open output stream of given mediat type (which is then saved to [Content_Types.xml] updated pptx export filter 2008-11-18 20:35:36 +0100 kendy r263831 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> some casts to make compiler happy 2008-11-18 20:35:13 +0100 kendy r263830 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> trying to make the fast serializer a bit less bloated 2008-11-18 20:34:51 +0100 kendy r263829 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> do not get out of bounds of sequence do not overwrite the id tag 2008-11-18 20:34:29 +0100 kendy r263828 : #i96316# OPC for export filters From: Jonathan Pryor <jpryor@novell.com> Notes for trace output for the shared string table. * oox/workben/ooxml-export-notes.txt: Flush. 2008-11-18 20:34:07 +0100 kendy r263827 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added ifdefs to fshelper.hxx to avoid problems when including more than once fixed the constructor namespace added export.map and made FastSerializerHelper class global 2008-11-18 20:33:44 +0100 kendy r263826 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> defined OOXLIB and FASTSAXLIB variables to be used in makefiles 2008-11-18 20:33:18 +0100 kendy r263825 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added constructor and added fshelper.obj to the makefile.mk 2008-11-18 20:32:56 +0100 kendy r263824 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> added fast serializer helper files (not implemented yet) make the fastsax a shared library (fastsax.uno.so --> libfastsaxlx.so) deliver the fast serializer header 2008-11-18 20:32:34 +0100 kendy r263823 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> add fast serializer to the uno component 2008-11-18 20:32:12 +0100 kendy r263822 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> moved uno service and implementation names to headers 2008-11-18 20:31:46 +0100 kendy r263821 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> split fastparser.cxx to fastparser.hxx with class declaration, fastparser.cxx with implementation and facreg.cxx with uno component implementation 2008-11-18 20:31:19 +0100 kendy r263820 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> export storage base class, remove old proof code from xml filter base 2008-11-18 20:30:57 +0100 kendy r263819 : #i96316# OPC for export filters From: Radek Doulik <rodo@novell.com> exported filter base and zipstorage to be used in other module's filters 2008-11-18 20:30:35 +0100 kendy r263818 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> make the FastSerializer as UNO service 2008-11-18 20:30:13 +0100 kendy r263817 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> write out the attributes too 2008-11-18 20:29:51 +0100 kendy r263816 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> some more changes to the fastserializer Originally this also duplicated the offapi changes in unoxml; but the unoxml files were removed recently ;-) 2008-11-18 20:29:24 +0100 kendy r263815 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> move the fastserializer from oox module to sax module 2008-11-18 20:29:01 +0100 kendy r263814 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> Adding a method to XFastAttributeList, in order to get the fast attributes along with unknown ones 2008-11-18 20:28:38 +0100 kendy r263813 : #i96316# OPC for export filters From: Fridrich Strba <fstrba@novell.com> refactor the serializer 2008-11-18 20:28:16 +0100 kendy r263812 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> stuffing the serializer a bit more 2008-11-18 20:25:31 +0100 kendy r263811 : #i95759# docx/xlsx/pptx export filters From: Jan Holesovsky <kendy@suse.cz> More explicit pointers to the export code. 2008-11-18 20:25:04 +0100 kendy r263810 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> adding and removing files up and down 2008-11-18 20:24:42 +0100 kendy r263809 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> adding fastserializer dummy inplementation 2008-11-18 20:24:19 +0100 kendy r263808 : #i95759# docx/xlsx/pptx export filters From: Jan Holesovsky <kendy@suse.cz> Escher pointers. 2008-11-18 20:23:56 +0100 kendy r263807 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> removing the unnecessary FastSerializer service 2008-11-18 20:23:34 +0100 kendy r263806 : #i95759# docx/xlsx/pptx export filters From: Radek Doulik <rodo@novell.com> XStream instead of XOutputStream for OOXML export filter. 2008-04-25 Radek Doulik <rodo@novell.com> * oox/workben/ooxml-export-notes.txt: added odp export trace * oox/source/core/xmlfilterbase.cxx (implCreateStorage): added test code to create test storage and stream, also committing changes here * oox/inc/oox/helper/olestorage.* (class OleStorage): as below * oox/inc/oox/helper/zipstorage.*: as below * oox/inc/oox/helper/storagebase.* (class StorageBase): let export constructor use XStream instead of XOutputStream, change member type as well * oox/inc/oox/core/xmlfilterbase.* (class XmlFilterBase): as below * oox/inc/oox/core/binaryfilterbase.* (class BinaryFilterBase): as below * oox/inc/oox/core/filterbase.*: changed implCreateStorage method to get XStream instead of XOutputStream * sfx2/source/doc/objstor.cxx (ExportTo): added StreamForOutput XStream to media descriptor properties for OOXML export filter * comphelper/source/misc/mediadescriptor.cxx (PROP_STREAMFOROUTPUT): added StreamForOutput property * oox/source/helper/zipstorage.cxx (ZipStorage): open storage with OFOPXMLFormat * oox/source/helper/zipstorage.cxx (implOpenSubStorage): added implementation for export * oox/source/core/filterbase.cxx (setMediaDescriptor): add input stream only on import 2008-11-18 20:23:07 +0100 kendy r263805 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> add FastSerializer Service 2008-11-18 20:22:45 +0100 kendy r263804 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> add FastSerializer service 2008-11-18 20:22:23 +0100 kendy r263803 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> adapting the makefile.mk to build the XFastSerializer 2008-11-18 20:22:02 +0100 kendy r263802 : #i95759# docx/xlsx/pptx export filters From: Fridrich Strba <fstrba@novell.com> Adding the XFastSerializer interface 2008-11-18 20:21:39 +0100 kendy r263801 : #i95759# docx/xlsx/pptx export filters From: Jan Holesovsky <kendy@suse.cz> Added pointers to export code of binary filters. 2008-11-18 20:21:13 +0100 kendy r263800 : #i95759# docx/xlsx/pptx export filters From: Jan Holesovsky <kendy@suse.cz> Implementation notes: affected modules. [Started the implementation notes by asking Fridrich ;-)] 2008-11-18 20:20:51 +0100 kendy r263799 : #i95759# docx/xlsx/pptx export filters From: Radek Doulik <rodo@novell.com> Initial work on ooxml export * oox/source/helper/zipstorage.cxx (implOpenOutputStream): added prototype implementation (ZipStorage): this constructor needs to be implemented (on output stream)
Diffstat (limited to 'sc/inc')
-rw-r--r--sc/inc/addincol.hxx3
-rw-r--r--sc/inc/address.hxx36
-rw-r--r--sc/inc/arealink.hxx3
-rw-r--r--sc/inc/attrib.hxx4
-rw-r--r--sc/inc/autoform.hxx10
-rw-r--r--sc/inc/callform.hxx14
-rw-r--r--sc/inc/cell.hxx11
-rw-r--r--sc/inc/cellform.hxx3
-rw-r--r--sc/inc/cellsuno.hxx1
-rw-r--r--sc/inc/chartarr.hxx12
-rw-r--r--sc/inc/chartlis.hxx8
-rw-r--r--sc/inc/chgtrack.hxx35
-rw-r--r--sc/inc/chgviset.hxx3
-rw-r--r--sc/inc/collect.hxx114
-rw-r--r--sc/inc/column.hxx6
-rw-r--r--sc/inc/compiler.hxx18
-rw-r--r--sc/inc/compressedarray.hxx15
-rw-r--r--sc/inc/conditio.hxx7
-rw-r--r--sc/inc/dbcolect.hxx27
-rw-r--r--sc/inc/detfunc.hxx3
-rw-r--r--sc/inc/dociter.hxx3
-rw-r--r--sc/inc/docpool.hxx3
-rw-r--r--sc/inc/document.hxx373
-rw-r--r--sc/inc/dpcachetable.hxx6
-rw-r--r--sc/inc/dpdimsave.hxx13
-rw-r--r--sc/inc/dpgroup.hxx15
-rw-r--r--sc/inc/dpobject.hxx16
-rw-r--r--sc/inc/dpoutput.hxx4
-rw-r--r--sc/inc/dpsave.hxx54
-rw-r--r--sc/inc/dpsdbtab.hxx2
-rw-r--r--sc/inc/dpshttab.hxx5
-rw-r--r--sc/inc/dptabdat.hxx6
-rw-r--r--sc/inc/drwlayer.hxx2
-rw-r--r--sc/inc/editutil.hxx6
-rw-r--r--sc/inc/eeimport.hxx70
-rw-r--r--sc/inc/filter.hxx90
-rw-r--r--sc/inc/filtopt.hxx5
-rw-r--r--sc/inc/filtuno.hxx2
-rw-r--r--sc/inc/global.hxx50
-rw-r--r--sc/inc/htmlimp.hxx54
-rw-r--r--sc/inc/miscuno.hxx4
-rw-r--r--sc/inc/olinetab.hxx12
-rw-r--r--sc/inc/pivot.hxx34
-rw-r--r--sc/inc/postit.hxx3
-rw-r--r--sc/inc/progress.hxx3
-rw-r--r--sc/inc/rangenam.hxx43
-rw-r--r--sc/inc/rangeutl.hxx2
-rw-r--r--sc/inc/refdata.hxx25
-rw-r--r--sc/inc/refreshtimer.hxx7
-rw-r--r--sc/inc/rtfimp.hxx44
-rw-r--r--sc/inc/scextopt.hxx2
-rw-r--r--sc/inc/scmatrix.hxx3
-rw-r--r--sc/inc/table.hxx6
-rw-r--r--sc/inc/textuno.hxx2
-rw-r--r--sc/inc/token.hxx92
-rw-r--r--sc/inc/tokenarray.hxx11
-rw-r--r--sc/inc/unitconv.hxx4
-rw-r--r--sc/inc/userlist.hxx12
-rw-r--r--sc/inc/validat.hxx9
59 files changed, 647 insertions, 783 deletions
diff --git a/sc/inc/addincol.hxx b/sc/inc/addincol.hxx
index 81286ab24938..1eb9c3051a14 100644
--- a/sc/inc/addincol.hxx
+++ b/sc/inc/addincol.hxx
@@ -42,6 +42,7 @@
#include <tools/string.hxx>
#include <i18npool/lang.h>
#include <rtl/ustring.h>
+#include "scdllapi.h"
#ifndef SC_SCMATRIX_HXX
#include "scmatrix.hxx"
@@ -142,7 +143,7 @@ public:
//------------------------------------------------------------------------
-class ScUnoAddInCollection
+class SC_DLLPUBLIC ScUnoAddInCollection
{
private:
long nFuncCount;
diff --git a/sc/inc/address.hxx b/sc/inc/address.hxx
index 6105b1da00e4..b3cb45a316f6 100644
--- a/sc/inc/address.hxx
+++ b/sc/inc/address.hxx
@@ -248,7 +248,7 @@ inline SCTAB SanitizeTab( SCTAB nTab, SCTAB nMaxTab )
// === ScAddress =============================================================
-class SC_DLLPUBLIC ScAddress
+class ScAddress
{
private:
SCROW nRow;
@@ -290,7 +290,7 @@ public:
Details( const ScDocument* pDoc, const ScAddress & rAddr );
void SetPos( const ScDocument* pDoc, const ScAddress & rAddr );
};
- static const Details detailsOOOa1;
+ SC_DLLPUBLIC static const Details detailsOOOa1;
struct ExternalInfo
{
@@ -331,17 +331,17 @@ public:
inline void GetVars( SCCOL& nColP, SCROW& nRowP, SCTAB& nTabP ) const
{ nColP = nCol; nRowP = nRow; nTabP = nTab; }
- USHORT Parse( const String&, ScDocument* = NULL,
+ USC_DLLPUBLIC USHORT Parse( const String&, ScDocument* = NULL,
const Details& rDetails = detailsOOOa1,
ExternalInfo* pExtInfo = NULL,
const ::com::sun::star::uno::Sequence<
const ::com::sun::star::sheet::ExternalLinkInfo > * pExternalLinks = NULL );
- void Format( String&, USHORT = 0, ScDocument* = NULL,
+ SC_DLLPUBLIC void Format( String&, USHORT = 0, ScDocument* = NULL,
const Details& rDetails = detailsOOOa1) const;
// The document for the maximum defined sheet number
- bool Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* =NULL );
+ SC_DLLPUBLIC bool Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* =NULL );
inline bool operator==( const ScAddress& r ) const;
inline bool operator!=( const ScAddress& r ) const;
inline bool operator<( const ScAddress& r ) const;
@@ -449,7 +449,7 @@ inline size_t ScAddress::hash() const
// === ScRange ===============================================================
-class SC_DLLPUBLIC ScRange
+class ScRange
{
public:
ScAddress aStart, aEnd;
@@ -485,9 +485,9 @@ public:
USHORT ParseAny( const String&, ScDocument* = NULL,
const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 );
- USHORT ParseCols( const String&, ScDocument* = NULL,
+ SC_DLLPUBLIC USHORT ParseCols( const String&, ScDocument* = NULL,
const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 );
- USHORT ParseRows( const String&, ScDocument* = NULL,
+ SC_DLLPUBLIC USHORT ParseRows( const String&, ScDocument* = NULL,
const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 );
/** Parse an Excel style reference up to and including the sheet name
@@ -516,16 +516,16 @@ public:
const ::com::sun::star::uno::Sequence<
const ::com::sun::star::sheet::ExternalLinkInfo > * pExternalLinks = NULL );
- void Format( String&, USHORT = 0, ScDocument* = NULL,
+ SC_DLLPUBLIC void Format( String&, USHORT = 0, ScDocument* = NULL,
const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 ) const;
inline void GetVars( SCCOL& nCol1, SCROW& nRow1, SCTAB& nTab1,
SCCOL& nCol2, SCROW& nRow2, SCTAB& nTab2 ) const;
// The document for the maximum defined sheet number
- bool Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* =NULL );
- void Justify();
- void ExtendTo( const ScRange& rRange );
- bool Intersects( const ScRange& ) const; // do two ranges intersect?
+ SC_DLLPUBLIC bool Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* =NULL );
+ SC_DLLPUBLIC void Justify();
+ SC_DLLPUBLIC void ExtendTo( const ScRange& rRange );
+ SC_DLLPUBLIC bool Intersects( const ScRange& ) const; // do two ranges intersect?
inline bool operator==( const ScRange& r ) const;
inline bool operator!=( const ScRange& r ) const;
inline bool operator<( const ScRange& r ) const;
@@ -776,19 +776,19 @@ bool ConvertDoubleRef(ScDocument* pDoc, const String& rRefString,
const ScAddress::Details& rDetails = ScAddress::detailsOOOa1);
/// append alpha representation of column to buffer
-SC_DLLPUBLIC void ColToAlpha( rtl::OUStringBuffer& rBuffer, SCCOL nCol);
+SC_DLLPUBLIC void ScColToAlpha( rtl::OUStringBuffer& rBuffer, SCCOL nCol);
-inline void ColToAlpha( String& rStr, SCCOL nCol)
+inline void ScColToAlpha( String& rStr, SCCOL nCol)
{
rtl::OUStringBuffer aBuf(2);
- ColToAlpha( aBuf, nCol);
+ ScColToAlpha( aBuf, nCol);
rStr.Append( aBuf.getStr(), static_cast<xub_StrLen>(aBuf.getLength()));
}
-inline String ColToAlpha( SCCOL nCol )
+inline String ScColToAlpha( SCCOL nCol )
{
rtl::OUStringBuffer aBuf(2);
- ColToAlpha( aBuf, nCol);
+ ScColToAlpha( aBuf, nCol);
return aBuf.makeStringAndClear();
}
diff --git a/sc/inc/arealink.hxx b/sc/inc/arealink.hxx
index 57fc52593bcc..ad74f27f651b 100644
--- a/sc/inc/arealink.hxx
+++ b/sc/inc/arealink.hxx
@@ -35,13 +35,14 @@
#include "refreshtimer.hxx"
#include "address.hxx"
#include <sfx2/lnkbase.hxx>
+#include "scdllapi.h"
class ScDocShell;
class SfxObjectShell;
class AbstractScLinkedAreaDlg;
struct AreaLink_Impl;
-class ScAreaLink : public ::sfx2::SvBaseLink, public ScRefreshTimer
+class SC_DLLPUBLIC ScAreaLink : public ::sfx2::SvBaseLink, public ScRefreshTimer
{
private:
AreaLink_Impl* pImpl;
diff --git a/sc/inc/attrib.hxx b/sc/inc/attrib.hxx
index ed8c9719272b..cae72cf30cf5 100644
--- a/sc/inc/attrib.hxx
+++ b/sc/inc/attrib.hxx
@@ -54,11 +54,11 @@
class EditTextObject;
class SvxBorderLine;
-BOOL HasPriority( const SvxBorderLine* pThis, const SvxBorderLine* pOther );
+BOOL SC_DLLPUBLIC ScHasPriority( const SvxBorderLine* pThis, const SvxBorderLine* pOther );
//------------------------------------------------------------------------
-class ScMergeAttr: public SfxPoolItem
+class SC_DLLPUBLIC ScMergeAttr: public SfxPoolItem
{
SCsCOL nColMerge;
SCsROW nRowMerge;
diff --git a/sc/inc/autoform.hxx b/sc/inc/autoform.hxx
index 7171d8fe1cf4..f8df5e9fa236 100644
--- a/sc/inc/autoform.hxx
+++ b/sc/inc/autoform.hxx
@@ -199,7 +199,7 @@ public:
};
-class SC_DLLPUBLIC ScAutoFormatData : public DataObject
+class SC_DLLPUBLIC ScAutoFormatData : public ScDataObject
{
private:
String aName;
@@ -224,7 +224,7 @@ public:
ScAutoFormatData( const ScAutoFormatData& rData );
virtual ~ScAutoFormatData();
- virtual DataObject* Clone() const { return new ScAutoFormatData( *this ); }
+ virtual ScDataObject* Clone() const { return new ScAutoFormatData( *this ); }
void SetName( const String& rName ) { aName = rName; nStrResId = USHRT_MAX; }
void GetName( String& rName ) const { rName = aName; }
@@ -262,7 +262,7 @@ public:
#endif
};
-class SC_DLLPUBLIC ScAutoFormat : public SortedCollection
+class SC_DLLPUBLIC ScAutoFormat : public ScSortedCollection
{
private:
BOOL bSaveLater;
@@ -271,9 +271,9 @@ public:
ScAutoFormat( USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE );
ScAutoFormat( const ScAutoFormat& AutoFormat );
virtual ~ScAutoFormat();
- virtual DataObject* Clone() const { return new ScAutoFormat( *this ); }
+ virtual ScDataObject* Clone() const { return new ScAutoFormat( *this ); }
ScAutoFormatData* operator[]( const USHORT nIndex ) const {return (ScAutoFormatData*)At( nIndex );}
- virtual short Compare( DataObject* pKey1, DataObject* pKey2 ) const;
+ virtual short Compare( ScDataObject* pKey1, ScDataObject* pKey2 ) const;
BOOL Load();
BOOL Save();
USHORT FindIndexPerName( const String& rName ) const;
diff --git a/sc/inc/callform.hxx b/sc/inc/callform.hxx
index 9d1f1a20a91c..aee15caab79c 100644
--- a/sc/inc/callform.hxx
+++ b/sc/inc/callform.hxx
@@ -67,7 +67,7 @@ enum ParamType
//------------------------------------------------------------------------
class ModuleData;
-class FuncData : public DataObject
+class FuncData : public ScDataObject
{
friend class FuncCollection;
const ModuleData* pModuleData;
@@ -88,7 +88,7 @@ public:
const ParamType* peType,
ParamType eType);
FuncData(const FuncData& rData);
- virtual DataObject* Clone() const { return new FuncData(*this); }
+ virtual ScDataObject* Clone() const { return new FuncData(*this); }
const String& GetModuleName() const;
const String& GetInternalName() const { return aInternalName; }
@@ -108,15 +108,15 @@ public:
//------------------------------------------------------------------------
-class FuncCollection : public SortedCollection
+class FuncCollection : public ScSortedCollection
{
public:
- FuncCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE) : SortedCollection ( nLim, nDel, bDup ) {}
- FuncCollection(const FuncCollection& rFuncCollection) : SortedCollection ( rFuncCollection ) {}
+ FuncCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE) : ScSortedCollection ( nLim, nDel, bDup ) {}
+ FuncCollection(const FuncCollection& rFuncCollection) : ScSortedCollection ( rFuncCollection ) {}
- virtual DataObject* Clone() const { return new FuncCollection(*this); }
+ virtual ScDataObject* Clone() const { return new FuncCollection(*this); }
FuncData* operator[]( const USHORT nIndex) const {return (FuncData*)At(nIndex);}
- virtual short Compare(DataObject* pKey1, DataObject* pKey2) const;
+ virtual short Compare(ScDataObject* pKey1, ScDataObject* pKey2) const;
BOOL SearchFunc( const String& rName, USHORT& rIndex ) const;
};
diff --git a/sc/inc/cell.hxx b/sc/inc/cell.hxx
index 810288b56600..81250f73165f 100644
--- a/sc/inc/cell.hxx
+++ b/sc/inc/cell.hxx
@@ -42,6 +42,7 @@
#include "formularesult.hxx"
#include <rtl/ustrbuf.hxx>
#include <vcl/fontcvt.hxx>
+#include "scdllapi.h"
#define USE_MEMPOOL
#define TEXTWIDTH_DIRTY 0xffff
@@ -62,7 +63,7 @@ class ScPostIt;
class ScMultipleReadHeader;
class ScMultipleWriteHeader;
-class ScBaseCell
+class SC_DLLPUBLIC ScBaseCell
{
protected:
ScPostIt* pNote;
@@ -122,7 +123,7 @@ public:
-class ScValueCell : public ScBaseCell
+class SC_DLLPUBLIC ScValueCell : public ScBaseCell
{
private:
double aValue;
@@ -144,7 +145,7 @@ public:
};
-class ScStringCell : public ScBaseCell
+class SC_DLLPUBLIC ScStringCell : public ScBaseCell
{
private:
String aString;
@@ -168,7 +169,7 @@ public:
};
-class ScEditCell : public ScBaseCell
+class SC_DLLPUBLIC ScEditCell : public ScBaseCell
{
private:
EditTextObject* pData;
@@ -215,7 +216,7 @@ enum ScMatrixMode {
class ScIndexMap;
-class ScFormulaCell : public ScBaseCell, public SvtListener
+class SC_DLLPUBLIC ScFormulaCell : public ScBaseCell, public SvtListener
{
private:
ScFormulaResult aResult;
diff --git a/sc/inc/cellform.hxx b/sc/inc/cellform.hxx
index 232aa848fb37..246f1deb30cd 100644
--- a/sc/inc/cellform.hxx
+++ b/sc/inc/cellform.hxx
@@ -32,6 +32,7 @@
#define SC_CELLFORM_HXX
#include <tools/solar.h>
+#include "scdllapi.h"
class String;
@@ -47,7 +48,7 @@ enum ScForceTextFmt {
//------------------------------------------------------------------------
-class ScCellFormat
+class SC_DLLPUBLIC ScCellFormat
{
public:
static void GetString( ScBaseCell* pCell, ULONG nFormat, String& rString,
diff --git a/sc/inc/cellsuno.hxx b/sc/inc/cellsuno.hxx
index d5435c9ed684..be44ba964fbb 100644
--- a/sc/inc/cellsuno.hxx
+++ b/sc/inc/cellsuno.hxx
@@ -95,6 +95,7 @@
#include <com/sun/star/sheet/XExternalSheetName.hpp>
#include <cppuhelper/implbase2.hxx>
#include <cppuhelper/implbase3.hxx>
+#include "scdllapi.h"
#ifndef __SGI_STL_VECTOR
#include <vector>
diff --git a/sc/inc/chartarr.hxx b/sc/inc/chartarr.hxx
index 0cce265866c2..e2650c5652c1 100644
--- a/sc/inc/chartarr.hxx
+++ b/sc/inc/chartarr.hxx
@@ -72,7 +72,7 @@ public:
};
-class ScChartArray : public DataObject // nur noch Parameter-Struct
+class SC_DLLPUBLIC ScChartArray : public ScDataObject // nur noch Parameter-Struct
{
String aName;
ScDocument* pDocument;
@@ -92,7 +92,7 @@ public:
ScChartArray( const ScChartArray& rArr );
virtual ~ScChartArray();
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
const ScRangeListRef& GetRangeList() const { return aPositioner.GetRangeList(); }
void SetRangeList( const ScRangeListRef& rNew ) { aPositioner.SetRangeList(rNew); }
@@ -111,14 +111,14 @@ public:
ScMemChart* CreateMemChart();
};
-class ScChartCollection : public Collection
+class ScChartCollection : public ScCollection
{
public:
- ScChartCollection() : Collection( 4,4 ) {}
+ ScChartCollection() : ScCollection( 4,4 ) {}
ScChartCollection( const ScChartCollection& rColl ):
- Collection( rColl ) {}
+ ScCollection( rColl ) {}
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
ScChartArray* operator[](USHORT nIndex) const
{ return (ScChartArray*)At(nIndex); }
diff --git a/sc/inc/chartlis.hxx b/sc/inc/chartlis.hxx
index 81dbbfbc9cc5..33809951005d 100644
--- a/sc/inc/chartlis.hxx
+++ b/sc/inc/chartlis.hxx
@@ -62,7 +62,7 @@ public:
const ScRangeListRef& rRangeListRef );
ScChartListener( const ScChartListener& );
virtual ~ScChartListener();
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
void SetUno( const com::sun::star::uno::Reference< com::sun::star::chart::XChartDataChangeEventListener >& rListener,
const com::sun::star::uno::Reference< com::sun::star::chart::XChartData >& rSource );
@@ -97,7 +97,7 @@ public:
{ return !operator==( r ); }
};
-class ScChartListenerCollection : public StrCollection
+class ScChartListenerCollection : public ScStrCollection
{
private:
Timer aTimer;
@@ -108,12 +108,12 @@ private:
// not implemented
ScChartListenerCollection& operator=( const ScChartListenerCollection& );
- using StrCollection::operator==;
+ using ScStrCollection::operator==;
public:
ScChartListenerCollection( ScDocument* pDoc );
ScChartListenerCollection( const ScChartListenerCollection& );
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
virtual ~ScChartListenerCollection();
diff --git a/sc/inc/chgtrack.hxx b/sc/inc/chgtrack.hxx
index f455954389c8..c7c35fdc8a3c 100644
--- a/sc/inc/chgtrack.hxx
+++ b/sc/inc/chgtrack.hxx
@@ -43,6 +43,7 @@
#include "global.hxx"
#include "bigrange.hxx"
#include "collect.hxx"
+#include "scdllapi.h"
#ifdef SC_CHGTRACK_CXX
// core/inc
@@ -423,7 +424,7 @@ public:
BOOL IsRejectable() const;
const ScBigRange& GetBigRange() const { return aBigRange; }
- DateTime GetDateTime() const; // local time
+ SC_DLLPUBLIC DateTime GetDateTime() const; // local time
const DateTime& GetDateTimeUTC() const // UTC time
{ return aDateTime; }
const String& GetUser() const { return aUser; }
@@ -729,7 +730,7 @@ public:
{ return pFirstCell; } // only to use in the XML export
const ScBigRange& GetFromRange() const { return aFromRange; }
- void GetDelta( INT32& nDx, INT32& nDy, INT32& nDz ) const;
+ SC_DLLPUBLIC void GetDelta( INT32& nDx, INT32& nDy, INT32& nDz ) const;
virtual void GetDescription( String&, ScDocument*,
BOOL bSplitRange = FALSE, bool bWarning = true ) const;
@@ -1066,7 +1067,7 @@ class ScChangeTrack : public SfxListener
ScChangeTrackMsgQueue aMsgQueue;
ScChangeTrackMsgStack aMsgStackTmp;
ScChangeTrackMsgStack aMsgStackFinal;
- StrCollection aUserCollection;
+ ScStrCollection aUserCollection;
String aUser;
Link aModifiedLink;
ScRange aInDeleteRange;
@@ -1146,7 +1147,7 @@ class ScChangeTrack : public SfxListener
void UpdateReference( ScChangeAction** ppFirstAction,
ScChangeAction* pAct, BOOL bUndo );
void Append( ScChangeAction* pAppend, ULONG nAction );
- void AppendDeleteRange( const ScRange&,
+ SC_DLLPUBLIC void AppendDeleteRange( const ScRange&,
ScDocument* pRefDoc, SCsTAB nDz,
ULONG nRejectingInsert );
void AppendOneDeleteRange( const ScRange& rOrgRange,
@@ -1192,9 +1193,9 @@ public:
return static_cast< SCSIZE >( nRow / nContentRowsPerSlot );
}
- ScChangeTrack( ScDocument* );
+ SC_DLLPUBLIC ScChangeTrack( ScDocument* );
ScChangeTrack( ScDocument*,
- const StrCollection& ); // only to use in the XML import
+ const ScStrCollection& ); // only to use in the XML import
virtual ~ScChangeTrack();
void Clear();
@@ -1229,9 +1230,9 @@ public:
BOOL IsInDeleteTop() const { return bInDeleteTop; }
BOOL IsInDeleteUndo() const { return bInDeleteUndo; }
BOOL IsInPasteCut() const { return bInPasteCut; }
- void SetUser( const String& );
+ SC_DLLPUBLIC void SetUser( const String& );
const String& GetUser() const { return aUser; }
- const StrCollection& GetUserCollection() const
+ const ScStrCollection& GetUserCollection() const
{ return aUserCollection; }
ScDocument* GetDocument() const { return pDoc; }
// for import filter
@@ -1253,7 +1254,7 @@ public:
// pRefDoc may be NULL => no lookup of contents
// => no generation of deleted contents
- void AppendDeleteRange( const ScRange&,
+ SC_DLLPUBLIC void AppendDeleteRange( const ScRange&,
ScDocument* pRefDoc,
ULONG& nStartAction, ULONG& nEndAction,
SCsTAB nDz = 0 );
@@ -1299,7 +1300,7 @@ public:
// The action is returned and may be used to
// set user name, description, date/time et al.
// Takes ownership of the cells!
- ScChangeActionContent* AppendContentOnTheFly( const ScAddress& rPos,
+ SC_DLLPUBLIC ScChangeActionContent* AppendContentOnTheFly( const ScAddress& rPos,
ScBaseCell* pOldCell,
ScBaseCell* pNewCell,
ULONG nOldFormat = 0,
@@ -1317,11 +1318,11 @@ public:
const String& rNewValue,
ScBaseCell* pOldCell );
- void AppendInsert( const ScRange& );
+ SC_DLLPUBLIC void AppendInsert( const ScRange& );
// pRefDoc may be NULL => no lookup of contents
// => no generation of deleted contents
- void AppendMove( const ScRange& rFromRange,
+ SC_DLLPUBLIC void AppendMove( const ScRange& rFromRange,
const ScRange& rToRange,
ScDocument* pRefDoc );
@@ -1342,7 +1343,7 @@ public:
pLastCutMove;
}
- void Undo( ULONG nStartAction, ULONG nEndAction );
+ SC_DLLPUBLIC void Undo( ULONG nStartAction, ULONG nEndAction );
// fuer MergeDocument, Referenzen anpassen,
//! darf nur in einem temporaer geoeffneten
@@ -1365,7 +1366,7 @@ public:
// Deletes einer Reihe gelistet.
// Mit bAllFlat werden auch alle Abhaengigen
// der Abhaengigen flach eingefuegt.
- void GetDependents( ScChangeAction*,
+ SC_DLLPUBLIC void GetDependents( ScChangeAction*,
ScChangeActionTable&,
BOOL bListMasterDelete = FALSE,
BOOL bAllFlat = FALSE ) const;
@@ -1374,7 +1375,7 @@ public:
BOOL Reject( ScChangeAction* );
// Accept visible Action (und abhaengige)
- BOOL Accept( ScChangeAction* );
+ SC_DLLPUBLIC BOOL Accept( ScChangeAction* );
void AcceptAll(); // alle Virgins
BOOL RejectAll(); // alle Virgins
@@ -1397,8 +1398,8 @@ public:
void NotifyModified( ScChangeTrackMsgType eMsgType,
ULONG nStartAction, ULONG nEndAction );
- BOOL Load( SvStream& rStrm, USHORT nVer );
- BOOL Store( SvStream& rStrm );
+ SC_DLLPUBLIC BOOL Load( SvStream& rStrm, USHORT nVer );
+ SC_DLLPUBLIC BOOL Store( SvStream& rStrm );
USHORT GetLoadedFileFormatVersion() const
{ return nLoadedFileFormatVersion; }
diff --git a/sc/inc/chgviset.hxx b/sc/inc/chgviset.hxx
index 7a3c0e3986bf..dda49c8624b1 100644
--- a/sc/inc/chgviset.hxx
+++ b/sc/inc/chgviset.hxx
@@ -33,6 +33,7 @@
#include <tools/datetime.hxx>
#include <tools/string.hxx>
#include "rangelst.hxx"
+#include "scdllapi.h"
enum ScChgsDateMode{ SCDM_DATE_BEFORE=0,SCDM_DATE_SINCE=1,SCDM_DATE_EQUAL=2,
SCDM_DATE_NOTEQUAL=3,SCDM_DATE_BETWEEN=4, SCDM_DATE_SAVE=5,
@@ -44,7 +45,7 @@ namespace utl {
class ScDocument;
-class ScChangeViewSettings
+class SC_DLLPUBLIC ScChangeViewSettings
{
private:
diff --git a/sc/inc/collect.hxx b/sc/inc/collect.hxx
index c5f3d68813ca..855d436f2ff9 100644
--- a/sc/inc/collect.hxx
+++ b/sc/inc/collect.hxx
@@ -49,81 +49,81 @@
class ScDocument;
-class DataObject
+class SC_DLLPUBLIC ScDataObject
{
public:
- DataObject() {}
- virtual ~DataObject();
- virtual DataObject* Clone() const = 0;
+ ScDataObject() {}
+ virtual ~ScDataObject();
+ virtual ScDataObject* Clone() const = 0;
};
-class SC_DLLPUBLIC Collection : public DataObject
+class SC_DLLPUBLIC ScCollection : public ScDataObject
{
protected:
USHORT nCount;
USHORT nLimit;
USHORT nDelta;
- DataObject** pItems;
+ ScDataObject** pItems;
public:
- Collection(USHORT nLim = 4, USHORT nDel = 4);
- Collection(const Collection& rCollection);
- virtual ~Collection();
+ ScCollection(USHORT nLim = 4, USHORT nDel = 4);
+ ScCollection(const ScCollection& rCollection);
+ virtual ~ScCollection();
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
void AtFree(USHORT nIndex);
- void Free(DataObject* pDataObject);
+ void Free(ScDataObject* pScDataObject);
void FreeAll();
- BOOL AtInsert(USHORT nIndex, DataObject* pDataObject);
- virtual BOOL Insert(DataObject* pDataObject);
+ BOOL AtInsert(USHORT nIndex, ScDataObject* pScDataObject);
+ virtual BOOL Insert(ScDataObject* pScDataObject);
- DataObject* At(USHORT nIndex) const;
- virtual USHORT IndexOf(DataObject* pDataObject) const;
+ ScDataObject* At(USHORT nIndex) const;
+ virtual USHORT IndexOf(ScDataObject* pScDataObject) const;
USHORT GetCount() const { return nCount; }
- DataObject* operator[]( const USHORT nIndex) const {return At(nIndex);}
- Collection& operator=( const Collection& rCol );
+ ScDataObject* operator[]( const USHORT nIndex) const {return At(nIndex);}
+ ScCollection& operator=( const ScCollection& rCol );
};
-class SC_DLLPUBLIC SortedCollection : public Collection
+class SC_DLLPUBLIC ScSortedCollection : public ScCollection
{
private:
BOOL bDuplicates;
protected:
- // fuer StrCollection Load/Store
+ // fuer ScStrCollection Load/Store
void SetDups( BOOL bVal ) { bDuplicates = bVal; }
BOOL IsDups() const { return bDuplicates; }
public:
- SortedCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE);
- SortedCollection(const SortedCollection& rSortedCollection) :
- Collection(rSortedCollection),
- bDuplicates(rSortedCollection.bDuplicates) {}
-
- virtual USHORT IndexOf(DataObject* pDataObject) const;
- virtual short Compare(DataObject* pKey1, DataObject* pKey2) const = 0;
- virtual BOOL IsEqual(DataObject* pKey1, DataObject* pKey2) const;
- BOOL Search(DataObject* pDataObject, USHORT& rIndex) const;
- virtual BOOL Insert(DataObject* pDataObject);
- virtual BOOL InsertPos(DataObject* pDataObject, USHORT& nIndex);
-
- BOOL operator==(const SortedCollection& rCmp) const;
+ ScSortedCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE);
+ ScSortedCollection(const ScSortedCollection& rScSortedCollection) :
+ ScCollection(rScSortedCollection),
+ bDuplicates(rScSortedCollection.bDuplicates) {}
+
+ virtual USHORT IndexOf(ScDataObject* pScDataObject) const;
+ virtual short Compare(ScDataObject* pKey1, ScDataObject* pKey2) const = 0;
+ virtual BOOL IsEqual(ScDataObject* pKey1, ScDataObject* pKey2) const;
+ BOOL Search(ScDataObject* pScDataObject, USHORT& rIndex) const;
+ virtual BOOL Insert(ScDataObject* pScDataObject);
+ virtual BOOL InsertPos(ScDataObject* pScDataObject, USHORT& nIndex);
+
+ BOOL operator==(const ScSortedCollection& rCmp) const;
};
//------------------------------------------------------------------------
-class StrData : public DataObject
+class StrData : public ScDataObject
{
-friend class StrCollection;
+friend class ScStrCollection;
String aStr;
public:
StrData(const String& rStr) : aStr(rStr) {}
- StrData(const StrData& rData) : DataObject(), aStr(rData.aStr) {}
- virtual DataObject* Clone() const;
+ StrData(const StrData& rData) : ScDataObject(), aStr(rData.aStr) {}
+ virtual ScDataObject* Clone() const;
const String& GetString() const { return aStr; }
- // SetString nur, wenn StrData nicht in StrCollection ist! !!!
+ // SetString nur, wenn StrData nicht in ScStrCollection ist! !!!
// z.B. fuer Searcher
void SetString( const String& rNew ) { aStr = rNew; }
};
@@ -132,27 +132,27 @@ public:
class SvStream;
-class SC_DLLPUBLIC StrCollection : public SortedCollection
+class SC_DLLPUBLIC ScStrCollection : public ScSortedCollection
{
public:
- StrCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE) :
- SortedCollection ( nLim, nDel, bDup ) {}
- StrCollection(const StrCollection& rStrCollection) :
- SortedCollection ( rStrCollection ) {}
+ ScStrCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE) :
+ ScSortedCollection ( nLim, nDel, bDup ) {}
+ ScStrCollection(const ScStrCollection& rScStrCollection) :
+ ScSortedCollection ( rScStrCollection ) {}
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
StrData* operator[]( const USHORT nIndex) const {return (StrData*)At(nIndex);}
- virtual short Compare(DataObject* pKey1, DataObject* pKey2) const;
+ virtual short Compare(ScDataObject* pKey1, ScDataObject* pKey2) const;
void Load( SvStream& );
void Store( SvStream& ) const;
};
//------------------------------------------------------------------------
-// TypedStrCollection: wie StrCollection, nur, dass Zahlen vor Strings
+// TypedScStrCollection: wie ScStrCollection, nur, dass Zahlen vor Strings
// sortiert werden
-class TypedStrData : public DataObject
+class TypedStrData : public ScDataObject
{
public:
TypedStrData( const String& rStr, double nVal = 0.0,
@@ -165,21 +165,21 @@ public:
//UNUSED2008-05 BOOL bAllStrings );
TypedStrData( const TypedStrData& rCpy )
- : DataObject(),
+ : ScDataObject(),
aStrValue(rCpy.aStrValue),
nValue(rCpy.nValue),
nStrType(rCpy.nStrType) {}
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
BOOL IsStrData() const { return nStrType != 0; }
const String& GetString() const { return aStrValue; }
double GetValue () const { return nValue; }
private:
- friend class TypedStrCollection;
+ friend class TypedScStrCollection;
#if OLD_PIVOT_IMPLEMENTATION
- friend class PivotStrCollection;
+ friend class PivotScStrCollection;
#endif
String aStrValue;
@@ -187,20 +187,20 @@ private:
USHORT nStrType; // 0 = Value
};
-class SC_DLLPUBLIC TypedStrCollection : public SortedCollection
+class SC_DLLPUBLIC TypedScStrCollection : public ScSortedCollection
{
private:
BOOL bCaseSensitive;
public:
- TypedStrCollection( USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE )
- : SortedCollection( nLim, nDel, bDup ) { bCaseSensitive = FALSE; }
+ TypedScStrCollection( USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE )
+ : ScSortedCollection( nLim, nDel, bDup ) { bCaseSensitive = FALSE; }
- TypedStrCollection( const TypedStrCollection& rCpy )
- : SortedCollection( rCpy ) { bCaseSensitive = rCpy.bCaseSensitive; }
+ TypedScStrCollection( const TypedScStrCollection& rCpy )
+ : ScSortedCollection( rCpy ) { bCaseSensitive = rCpy.bCaseSensitive; }
- virtual DataObject* Clone() const;
- virtual short Compare( DataObject* pKey1, DataObject* pKey2 ) const;
+ virtual ScDataObject* Clone() const;
+ virtual short Compare( ScDataObject* pKey1, ScDataObject* pKey2 ) const;
TypedStrData* operator[]( const USHORT nIndex) const
{ return (TypedStrData*)At(nIndex); }
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index f43193c23313..becced059802 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -63,7 +63,7 @@ class ScMultipleWriteHeader;
class ScPatternAttr;
class ScStyleSheet;
class SvtBroadcaster;
-class TypedStrCollection;
+class TypedScStrCollection;
class ScProgress;
class ScPostIt;
struct ScFunctionData;
@@ -369,8 +369,8 @@ public:
/// Including current, may return -1
SCsROW GetNextUnprotected( SCROW nRow, BOOL bUp ) const;
- void GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedStrCollection& rStrings);
- BOOL GetDataEntries(SCROW nRow, TypedStrCollection& rStrings, BOOL bLimit);
+ void GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedScStrCollection& rStrings);
+ BOOL GetDataEntries(SCROW nRow, TypedScStrCollection& rStrings, BOOL bLimit);
//UNUSED2008-05 SCROW NoteCount( SCROW nMaxRow = MAXROW ) const;
diff --git a/sc/inc/compiler.hxx b/sc/inc/compiler.hxx
index c583bb831b19..bc3e5f6994f2 100644
--- a/sc/inc/compiler.hxx
+++ b/sc/inc/compiler.hxx
@@ -154,7 +154,7 @@ public:
BYTE cByte;
bool bHasForceArray;
} sbyte;
- ComplRefData aRef;
+ ScComplexRefData aRef;
struct {
sal_uInt16 nFileId;
sal_Unicode cTabName[MAXSTRLEN+1];
@@ -188,15 +188,15 @@ public:
// since the reference count is cleared!
void SetOpCode( OpCode eCode );
void SetString( const sal_Unicode* pStr );
- void SetSingleReference( const SingleRefData& rRef );
- void SetDoubleReference( const ComplRefData& rRef );
+ void SetSingleReference( const ScSingleRefData& rRef );
+ void SetDoubleReference( const ScComplexRefData& rRef );
void SetDouble( double fVal );
//UNUSED2008-05 void SetInt( int nVal );
//UNUSED2008-05 void SetMatrix( ScMatrix* p );
// These methods are ok to use, reference count not cleared.
-//UNUSED2008-05 ComplRefData& GetReference();
-//UNUSED2008-05 void SetReference( ComplRefData& rRef );
+//UNUSED2008-05 ScComplexRefData& GetReference();
+//UNUSED2008-05 void SetReference( ScComplexRefData& rRef );
void SetName( USHORT n );
void SetExternalSingleRef( sal_uInt16 nFileId, const String& rTabName, const SingleRefData& rRef );
void SetExternalDoubleRef( sal_uInt16 nFileId, const String& rTabName, const ComplRefData& rRef );
@@ -239,7 +239,7 @@ public:
virtual void MakeRefStr( rtl::OUStringBuffer& rBuffer,
const ScCompiler& rCompiler,
- const ComplRefData& rRef,
+ const ScComplexRefData& rRef,
BOOL bSingleRef ) const = 0;
virtual ::com::sun::star::i18n::ParseResult
parseAnyToken( const String& rFormula,
@@ -462,7 +462,7 @@ private:
bool mbExtendedErrorDetection;
BOOL GetToken();
- BOOL NextNewToken(bool bAllowBooleans = false);
+ BOOL NextNewToken(bool bInArray = false);
OpCode NextToken();
void PutCode( ScTokenRef& );
void Factor();
@@ -480,9 +480,9 @@ private:
OpCode Expression();
void SetError(USHORT nError);
- xub_StrLen NextSymbol();
+ xub_StrLen NextSymbol(bool bInArray);
BOOL IsValue( const String& );
- BOOL IsOpCode( const String& );
+ BOOL IsOpCode( const String&, bool bInArray );
BOOL IsOpCode2( const String& );
BOOL IsString();
BOOL IsReference( const String& );
diff --git a/sc/inc/compressedarray.hxx b/sc/inc/compressedarray.hxx
index 15487e0811e8..4d48e8ba510a 100644
--- a/sc/inc/compressedarray.hxx
+++ b/sc/inc/compressedarray.hxx
@@ -40,6 +40,7 @@
#include <algorithm>
#define INCLUDED_ALGORITHM
#endif
+#include "scdllapi.h"
const size_t nScCompressedArrayDelta = 4;
@@ -120,7 +121,7 @@ public:
// methods public for the coupled array sum methods
/** Obtain index into entries for nPos */
- size_t Search( A nPos ) const;
+ SC_DLLPUBLIC size_t Search( A nPos ) const;
/** Get number of entries */
size_t GetEntryCount() const;
/** Get data entry for an index */
@@ -489,7 +490,7 @@ public:
((aValue & rBitMask) == rMaskedCompare), searching between nStart and
nEnd. If no entry meets this condition, ::std::numeric_limits<A>::max()
is returned. */
- A GetFirstForCondition( A nStart, A nEnd,
+ SC_DLLPUBLIC A GetFirstForCondition( A nStart, A nEnd,
const D& rBitMask,
const D& rMaskedCompare ) const;
@@ -497,7 +498,7 @@ public:
((aValue & rBitMask) == rMaskedCompare), searching between nStart and
nEnd. If no entry meets this condition, ::std::numeric_limits<A>::max()
is returned. */
- A GetLastForCondition( A nStart, A nEnd,
+ SC_DLLPUBLIC A GetLastForCondition( A nStart, A nEnd,
const D& rBitMask,
const D& rMaskedCompare ) const;
@@ -509,7 +510,7 @@ public:
/** Whether there is any entry between nStart and nEnd where the condition
is met: ((aValue & rBitMask) == rMaskedCompare) */
- bool HasCondition( A nStart, A nEnd,
+ SC_DLLPUBLIC bool HasCondition( A nStart, A nEnd,
const D& rBitMask,
const D& rMaskedCompare ) const;
@@ -535,7 +536,7 @@ public:
/** Sum values of a ScSummableCompressedArray for each row where in *this*
array the condition is met: ((aValue & rBitMask) == rMaskedCompare). */
template< typename S >
- unsigned long SumCoupledArrayForCondition( A nStart, A nEnd,
+ SC_DLLPUBLIC unsigned long SumCoupledArrayForCondition( A nStart, A nEnd,
const D& rBitMask, const D& rMaskedCompare,
const ScSummableCompressedArray<A,S>& rArray ) const;
@@ -577,7 +578,7 @@ void ScBitMaskCompressedArray<A,D>::OrValue( A nPos, const D& rValueToOr )
template< typename A, typename D, typename S > class ScCoupledCompressedArrayIterator
{
public:
- ScCoupledCompressedArrayIterator(
+ SC_DLLPUBLIC ScCoupledCompressedArrayIterator(
const ScBitMaskCompressedArray<A,D> & rArray1,
A nStart, A nEnd,
const D& rBitMask,
@@ -590,7 +591,7 @@ public:
A GetPos() const;
operator bool() const;
const S& operator *() const;
- bool NextRange();
+ SC_DLLPUBLIC bool NextRange();
A GetRangeStart() const;
A GetRangeEnd() const;
void Resync( A nPos );
diff --git a/sc/inc/conditio.hxx b/sc/inc/conditio.hxx
index a35426090f8f..e9a25c8688aa 100644
--- a/sc/inc/conditio.hxx
+++ b/sc/inc/conditio.hxx
@@ -35,6 +35,7 @@
#include "address.hxx"
#include "grammar.hxx"
#include <svtools/svarray.hxx>
+#include "scdllapi.h"
class ScBaseCell;
class ScFormulaCell;
@@ -74,7 +75,7 @@ enum ScConditionValType
SC_VAL_FORMULA
};
-class ScConditionEntry
+class SC_DLLPUBLIC ScConditionEntry
{
// gespeicherte Daten:
ScConditionMode eOp;
@@ -159,7 +160,7 @@ protected:
class ScConditionalFormat;
-class ScCondFormatEntry : public ScConditionEntry
+class SC_DLLPUBLIC ScCondFormatEntry : public ScConditionEntry
{
String aStyleName;
ScConditionalFormat* pParent;
@@ -194,7 +195,7 @@ protected:
// komplette bedingte Formatierung
//
-class ScConditionalFormat
+class SC_DLLPUBLIC ScConditionalFormat
{
ScDocument* pDoc;
ScRangeList* pAreas; // Bereiche fuer Paint
diff --git a/sc/inc/dbcolect.hxx b/sc/inc/dbcolect.hxx
index 0b3f965ebc96..2056bcb331f1 100644
--- a/sc/inc/dbcolect.hxx
+++ b/sc/inc/dbcolect.hxx
@@ -37,6 +37,7 @@
#include "sortparam.hxx" // MAXSORT
#include "refreshtimer.hxx"
#include "address.hxx"
+#include "scdllapi.h"
//------------------------------------------------------------------------
@@ -46,7 +47,7 @@ class ScMultipleWriteHeader;
//------------------------------------------------------------------------
-class ScDBData : public DataObject, public ScRefreshTimer
+class ScDBData : public ScDataObject, public ScRefreshTimer
{
private:
@@ -124,14 +125,14 @@ private:
using ScRefreshTimer::operator==;
public:
- ScDBData(const String& rName,
+ SC_DLLPUBLIC ScDBData(const String& rName,
SCTAB nTab,
SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
BOOL bByR = TRUE, BOOL bHasH = TRUE);
ScDBData(const ScDBData& rData);
~ScDBData();
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
ScDBData& operator= (const ScDBData& rData);
@@ -166,9 +167,9 @@ public:
void SetSortParam(const ScSortParam& rSortParam);
SC_DLLPUBLIC void GetQueryParam(ScQueryParam& rQueryParam) const;
- void SetQueryParam(const ScQueryParam& rQueryParam);
- BOOL GetAdvancedQuerySource(ScRange& rSource) const;
- void SetAdvancedQuerySource(const ScRange* pSource);
+ SC_DLLPUBLIC void SetQueryParam(const ScQueryParam& rQueryParam);
+ SC_DLLPUBLIC BOOL GetAdvancedQuerySource(ScRange& rSource) const;
+ SC_DLLPUBLIC void SetAdvancedQuerySource(const ScRange* pSource);
void GetSubTotalParam(ScSubTotalParam& rSubTotalParam) const;
void SetSubTotalParam(const ScSubTotalParam& rSubTotalParam);
@@ -196,7 +197,7 @@ public:
//------------------------------------------------------------------------
-class SC_DLLPUBLIC ScDBCollection : public SortedCollection
+class SC_DLLPUBLIC ScDBCollection : public ScSortedCollection
{
private:
@@ -206,20 +207,20 @@ private:
public:
ScDBCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE, ScDocument* pDocument = NULL) :
- SortedCollection ( nLim, nDel, bDup ),
+ ScSortedCollection ( nLim, nDel, bDup ),
pDoc ( pDocument ),
nEntryIndex ( SC_START_INDEX_DB_COLL ) // oberhalb der Namen
{}
ScDBCollection(const ScDBCollection& rScDBCollection) :
- SortedCollection ( rScDBCollection ),
+ ScSortedCollection ( rScDBCollection ),
pDoc ( rScDBCollection.pDoc ),
nEntryIndex ( rScDBCollection.nEntryIndex)
{}
- virtual DataObject* Clone() const { return new ScDBCollection(*this); }
+ virtual ScDataObject* Clone() const { return new ScDBCollection(*this); }
ScDBData* operator[]( const USHORT nIndex) const {return (ScDBData*)At(nIndex);}
- virtual short Compare(DataObject* pKey1, DataObject* pKey2) const;
- virtual BOOL IsEqual(DataObject* pKey1, DataObject* pKey2) const;
+ virtual short Compare(ScDataObject* pKey1, ScDataObject* pKey2) const;
+ virtual BOOL IsEqual(ScDataObject* pKey1, ScDataObject* pKey2) const;
ScDBData* GetDBAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab, BOOL bStartOnly) const;
ScDBData* GetDBAtArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const;
@@ -235,7 +236,7 @@ public:
ScDBData* FindIndex(USHORT nIndex);
USHORT GetEntryIndex() { return nEntryIndex; }
void SetEntryIndex(USHORT nInd) { nEntryIndex = nInd; }
- virtual BOOL Insert(DataObject* pDataObject);
+ virtual BOOL Insert(ScDataObject* pScDataObject);
void SetRefreshHandler( const Link& rLink )
{ aRefreshHandler = rLink; }
diff --git a/sc/inc/detfunc.hxx b/sc/inc/detfunc.hxx
index 2e7c0aaed3ce..4fda448c49c0 100644
--- a/sc/inc/detfunc.hxx
+++ b/sc/inc/detfunc.hxx
@@ -34,6 +34,7 @@
#include "address.hxx"
#include <tools/gen.hxx>
#include <tools/color.hxx>
+#include "scdllapi.h"
class SdrObject;
class SdrPage;
@@ -58,7 +59,7 @@ enum ScDetectiveObjType
SC_DETOBJ_CIRCLE
};
-class ScDetectiveFunc
+class SC_DLLPUBLIC ScDetectiveFunc
{
static ColorData nArrowColor;
static ColorData nErrorColor;
diff --git a/sc/inc/dociter.hxx b/sc/inc/dociter.hxx
index 12d47638b9ae..aaef77ca2ef6 100644
--- a/sc/inc/dociter.hxx
+++ b/sc/inc/dociter.hxx
@@ -34,6 +34,7 @@
#include "address.hxx"
#include <tools/solar.h>
#include "global.hxx"
+#include "scdllapi.h"
class ScDocument;
class ScBaseCell;
@@ -412,7 +413,7 @@ public:
// gibt nichtleere Zellen und Bereiche mit Formatierung zurueck (horizontal)
//
-class ScUsedAreaIterator
+class SC_DLLPUBLIC ScUsedAreaIterator
{
private:
ScHorizontalCellIterator aCellIter;
diff --git a/sc/inc/docpool.hxx b/sc/inc/docpool.hxx
index e16ba2c7993b..ef08f72fb4a8 100644
--- a/sc/inc/docpool.hxx
+++ b/sc/inc/docpool.hxx
@@ -32,12 +32,13 @@
#define SC_SCDOCPOL_HXX
#include <svtools/itempool.hxx>
+#include "scdllapi.h"
class ScStyleSheet;
//------------------------------------------------------------------------
-class ScDocumentPool: public SfxItemPool
+class SC_DLLPUBLIC ScDocumentPool: public SfxItemPool
{
SfxPoolItem** ppPoolDefaults;
SfxItemPool* pSecondary;
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 463ccbfbd7c7..c0879f0c1327 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -43,6 +43,7 @@
#include "tabopparams.hxx"
#include "grammar.hxx"
#include <com/sun/star/chart2/XChartDocument.hpp>
+#include "scdllapi.h"
#include <memory>
#include <map>
@@ -111,8 +112,8 @@ class ScTokenArray;
class ScValidationData;
class ScValidationDataList;
class ScViewOptions;
-class StrCollection;
-class TypedStrCollection;
+class ScStrCollection;
+class TypedScStrCollection;
class ScChangeTrack;
class ScFieldEditEngine;
class ScNoteEditEngine;
@@ -268,7 +269,7 @@ private:
ScFormulaCell* pEOFormulaTrack; // BrodcastTrack Ende, letzte Zelle
ScBroadcastAreaSlotMachine* pBASM; // BroadcastAreas
ScChartListenerCollection* pChartListenerCollection;
- StrCollection* pOtherObjects; // non-chart OLE objects
+ ScStrCollection* pOtherObjects; // non-chart OLE objects
SvMemoryStream* pClipData;
ScDetOpList* pDetOpList;
ScChangeTrack* pChangeTrack;
@@ -416,38 +417,38 @@ private:
inline BOOL RowHidden( SCROW nRow, SCTAB nTab ); // FillInfo
public:
- ULONG GetCellCount() const; // alle Zellen
+ SC_DLLPUBLIC ULONG GetCellCount() const; // alle Zellen
ULONG GetWeightedCount() const; // Formeln und Edit staerker gewichtet
ULONG GetCodeCount() const; // RPN-Code in Formeln
DECL_LINK( GetUserDefinedColor, USHORT * );
// Numberformatter
public:
- ScDocument( ScDocumentMode eMode = SCDOCMODE_DOCUMENT,
+ SC_DLLPUBLIC ScDocument( ScDocumentMode eMode = SCDOCMODE_DOCUMENT,
SfxObjectShell* pDocShell = NULL );
- ~ScDocument();
+ SC_DLLPUBLIC ~ScDocument();
inline ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
GetServiceManager() const { return xServiceManager; }
- const String& GetName() const { return aDocName; }
+ SC_DLLPUBLIC const String& GetName() const { return aDocName; }
void SetName( const String& r ) { aDocName = r; }
void GetDocStat( ScDocStat& rDocStat );
- void InitDrawLayer( SfxObjectShell* pDocShell = NULL );
+ SC_DLLPUBLIC void InitDrawLayer( SfxObjectShell* pDocShell = NULL );
XColorTable* GetColorTable();
SvxLinkManager* GetLinkManager() { return pLinkManager; }
- const ScDocOptions& GetDocOptions() const;
- void SetDocOptions( const ScDocOptions& rOpt );
- const ScViewOptions& GetViewOptions() const;
- void SetViewOptions( const ScViewOptions& rOpt );
+ SC_DLLPUBLIC const ScDocOptions& GetDocOptions() const;
+ SC_DLLPUBLIC void SetDocOptions( const ScDocOptions& rOpt );
+ SC_DLLPUBLIC const ScViewOptions& GetViewOptions() const;
+ SC_DLLPUBLIC void SetViewOptions( const ScViewOptions& rOpt );
void SetPrintOptions();
ScExtDocOptions* GetExtDocOptions() { return pExtDocOptions; }
- void SetExtDocOptions( ScExtDocOptions* pNewOptions );
+ SC_DLLPUBLIC void SetExtDocOptions( ScExtDocOptions* pNewOptions );
void GetLanguage( LanguageType& rLatin, LanguageType& rCjk, LanguageType& rCtl ) const;
void SetLanguage( LanguageType eLatin, LanguageType eCjk, LanguageType eCtl );
@@ -462,7 +463,7 @@ public:
ScFieldEditEngine* CreateFieldEditEngine();
void DisposeFieldEditEngine(ScFieldEditEngine*& rpEditEngine);
-SC_DLLPUBLIC ScRangeName* GetRangeName();
+ SC_DLLPUBLIC ScRangeName* GetRangeName();
void SetRangeName( ScRangeName* pNewRangeName );
SCTAB GetMaxTableNumber() { return nMaxTableNumber; }
void SetMaxTableNumber(SCTAB nNumber) { nMaxTableNumber = nNumber; }
@@ -472,7 +473,7 @@ SC_DLLPUBLIC ScRangeName* GetRangeName();
ScRangePairListRef& GetColNameRangesRef() { return xColNameRanges; }
ScRangePairListRef& GetRowNameRangesRef() { return xRowNameRanges; }
-SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
+ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void SetDBCollection( ScDBCollection* pNewDBCollection,
BOOL bRemoveAutoFilter = FALSE );
ScDBData* GetDBAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab,
@@ -481,9 +482,9 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
//UNUSED2008-05 ScRangeData* GetRangeAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab,
//UNUSED2008-05 BOOL bStartOnly = FALSE) const;
- ScRangeData* GetRangeAtBlock( const ScRange& rBlock, String* pName=NULL ) const;
+ SC_DLLPUBLIC ScRangeData* GetRangeAtBlock( const ScRange& rBlock, String* pName=NULL ) const;
- ScDPCollection* GetDPCollection();
+ SC_DLLPUBLIC ScDPCollection* GetDPCollection();
ScDPObject* GetDPAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab) const;
ScDPObject* GetDPAtBlock( const ScRange& rBlock ) const;
#if OLD_PIVOT_IMPLEMENTATION
@@ -491,7 +492,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void SetPivotCollection(ScPivotCollection* pNewPivotCollection);
ScPivot* GetPivotAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab) const;
#endif
- ScChartCollection* GetChartCollection() const;
+ SC_DLLPUBLIC ScChartCollection* GetChartCollection() const;
void StopTemporaryChartLock();
@@ -501,7 +502,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL HasChartAtPoint( SCTAB nTab, const Point& rPos, String* pName = NULL );
::com::sun::star::uno::Reference< ::com::sun::star::chart2::XChartDocument > GetChartByName( const String& rChartName );
- void GetChartRanges( const String& rChartName, ::std::vector< ScRangeList >& rRanges, ScDocument* pSheetNameDoc );
+ SC_DLLPUBLIC void GetChartRanges( const String& rChartName, ::std::vector< ScRangeList >& rRanges, ScDocument* pSheetNameDoc );
void SetChartRanges( const String& rChartName, const ::std::vector< ScRangeList >& rRanges );
void UpdateChartArea( const String& rChartName, const ScRange& rNewArea,
@@ -515,22 +516,22 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
::com::sun::star::embed::XEmbeddedObject >
FindOleObjectByName( const String& rName );
- void MakeTable( SCTAB nTab );
+ SC_DLLPUBLIC void MakeTable( SCTAB nTab );
SCTAB GetVisibleTab() const { return nVisibleTab; }
- void SetVisibleTab(SCTAB nTab) { nVisibleTab = nTab; }
+ SC_DLLPUBLIC void SetVisibleTab(SCTAB nTab) { nVisibleTab = nTab; }
- BOOL HasTable( SCTAB nTab ) const;
+ SC_DLLPUBLIC BOOL HasTable( SCTAB nTab ) const;
SC_DLLPUBLIC BOOL GetName( SCTAB nTab, String& rName ) const;
- BOOL GetTable( const String& rName, SCTAB& rTab ) const;
- inline SCTAB GetTableCount() const { return nMaxTableNumber; }
+ SC_DLLPUBLIC BOOL GetTable( const String& rName, SCTAB& rTab ) const;
+ SC_DLLPUBLIC inline SCTAB GetTableCount() const { return nMaxTableNumber; }
SvNumberFormatterIndexTable* GetFormatExchangeList() const { return pFormatExchangeList; }
- void SetDocProtection( BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
- void SetTabProtection( SCTAB nTab, BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
- BOOL IsDocProtected() const;
+ SC_DLLPUBLIC void SetDocProtection( BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
+ SC_DLLPUBLIC void SetTabProtection( SCTAB nTab, BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
+ SC_DLLPUBLIC BOOL IsDocProtected() const;
BOOL IsDocEditable() const;
- BOOL IsTabProtected( SCTAB nTab ) const;
+ SC_DLLPUBLIC BOOL IsTabProtected( SCTAB nTab ) const;
const com::sun::star::uno::Sequence <sal_Int8>& GetDocPassword() const;
const com::sun::star::uno::Sequence <sal_Int8>& GetTabPassword( SCTAB nTab ) const;
@@ -559,49 +560,49 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
SC_DLLPUBLIC BOOL ValidTabName( const String& rName ) const;
SC_DLLPUBLIC BOOL ValidNewTabName( const String& rName ) const;
SC_DLLPUBLIC void CreateValidTabName(String& rName) const;
- BOOL InsertTab( SCTAB nPos, const String& rName,
+ SC_DLLPUBLIC BOOL InsertTab( SCTAB nPos, const String& rName,
BOOL bExternalDocument = FALSE );
- BOOL DeleteTab( SCTAB nTab, ScDocument* pRefUndoDoc = NULL );
- BOOL RenameTab( SCTAB nTab, const String& rName,
+ SC_DLLPUBLIC BOOL DeleteTab( SCTAB nTab, ScDocument* pRefUndoDoc = NULL );
+ SC_DLLPUBLIC BOOL RenameTab( SCTAB nTab, const String& rName,
BOOL bUpdateRef = TRUE,
BOOL bExternalDocument = FALSE );
BOOL MoveTab( SCTAB nOldPos, SCTAB nNewPos );
BOOL CopyTab( SCTAB nOldPos, SCTAB nNewPos,
const ScMarkData* pOnlyMarked = NULL );
- ULONG TransferTab(ScDocument* pSrcDoc, SCTAB nSrcPos, SCTAB nDestPos,
+ SC_DLLPUBLIC ULONG TransferTab(ScDocument* pSrcDoc, SCTAB nSrcPos, SCTAB nDestPos,
BOOL bInsertNew = TRUE,
BOOL bResultsOnly = FALSE );
- void TransferDrawPage(ScDocument* pSrcDoc, SCTAB nSrcPos, SCTAB nDestPos);
- void SetVisible( SCTAB nTab, BOOL bVisible );
- BOOL IsVisible( SCTAB nTab ) const;
- void SetLayoutRTL( SCTAB nTab, BOOL bRTL );
- BOOL IsLayoutRTL( SCTAB nTab ) const;
+ SC_DLLPUBLIC void TransferDrawPage(ScDocument* pSrcDoc, SCTAB nSrcPos, SCTAB nDestPos);
+ SC_DLLPUBLIC void SetVisible( SCTAB nTab, BOOL bVisible );
+ SC_DLLPUBLIC BOOL IsVisible( SCTAB nTab ) const;
+ SC_DLLPUBLIC void SetLayoutRTL( SCTAB nTab, BOOL bRTL );
+ SC_DLLPUBLIC BOOL IsLayoutRTL( SCTAB nTab ) const;
BOOL IsNegativePage( SCTAB nTab ) const;
- void SetScenario( SCTAB nTab, BOOL bFlag );
- BOOL IsScenario( SCTAB nTab ) const;
- void GetScenarioData( SCTAB nTab, String& rComment,
+ SC_DLLPUBLIC void SetScenario( SCTAB nTab, BOOL bFlag );
+ SC_DLLPUBLIC BOOL IsScenario( SCTAB nTab ) const;
+ SC_DLLPUBLIC void GetScenarioData( SCTAB nTab, String& rComment,
Color& rColor, USHORT& rFlags ) const;
- void SetScenarioData( SCTAB nTab, const String& rComment,
+ SC_DLLPUBLIC void SetScenarioData( SCTAB nTab, const String& rComment,
const Color& rColor, USHORT nFlags );
void GetScenarioFlags( SCTAB nTab, USHORT& rFlags ) const;
- BOOL IsActiveScenario( SCTAB nTab ) const;
- void SetActiveScenario( SCTAB nTab, BOOL bActive ); // nur fuer Undo etc.
+ SC_DLLPUBLIC BOOL IsActiveScenario( SCTAB nTab ) const;
+ SC_DLLPUBLIC void SetActiveScenario( SCTAB nTab, BOOL bActive ); // nur fuer Undo etc.
SC_DLLPUBLIC ScAddress::Convention GetAddressConvention() const;
- SC_DLLPUBLIC ScGrammar::Grammar GetGrammar() const;
+ ScGrammar::Grammar GetGrammar() const;
void SetGrammar( ScGrammar::Grammar eGram );
- BYTE GetLinkMode( SCTAB nTab ) const;
+ SC_DLLPUBLIC BYTE GetLinkMode( SCTAB nTab ) const;
BOOL IsLinked( SCTAB nTab ) const;
- const String& GetLinkDoc( SCTAB nTab ) const;
+ SC_DLLPUBLIC const String& GetLinkDoc( SCTAB nTab ) const;
const String& GetLinkFlt( SCTAB nTab ) const;
const String& GetLinkOpt( SCTAB nTab ) const;
- const String& GetLinkTab( SCTAB nTab ) const;
+ SC_DLLPUBLIC const String& GetLinkTab( SCTAB nTab ) const;
ULONG GetLinkRefreshDelay( SCTAB nTab ) const;
void SetLink( SCTAB nTab, BYTE nMode, const String& rDoc,
const String& rFilter, const String& rOptions,
const String& rTabName, ULONG nRefreshDelay );
BOOL HasLink( const String& rDoc,
const String& rFilter, const String& rOptions ) const;
- BOOL LinkExternalTab( SCTAB& nTab, const String& aDocTab,
+ SC_DLLPUBLIC BOOL LinkExternalTab( SCTAB& nTab, const String& aDocTab,
const String& aFileName,
const String& aTabName );
@@ -618,7 +619,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void DecInDdeLinkUpdate() { if ( nInDdeLinkUpdate ) --nInDdeLinkUpdate; }
BOOL IsInDdeLinkUpdate() const { return nInDdeLinkUpdate != 0; }
- void CopyDdeLinks( ScDocument* pDestDoc ) const;
+ SC_DLLPUBLIC void CopyDdeLinks( ScDocument* pDestDoc ) const;
void DisconnectDdeLinks();
// Fuer StarOne Api:
@@ -628,7 +629,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
/** Tries to find a DDE link with the specified connection data.
@param rnDdePos (out-param) Returns the index of the DDE link (does not include other links from link manager).
@return true = DDE link found, rnDdePos valid. */
- bool FindDdeLink( const String& rAppl, const String& rTopic, const String& rItem, BYTE nMode, USHORT& rnDdePos );
+ SC_DLLPUBLIC bool FindDdeLink( const String& rAppl, const String& rTopic, const String& rItem, BYTE nMode, USHORT& rnDdePos );
/** Returns the connection data of the specified DDE link.
@param nDdePos Index of the DDE link (does not include other links from link manager).
@@ -645,12 +646,12 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
/** Returns the result matrix of the specified DDE link.
@param nDdePos Index of the DDE link (does not include other links from link manager).
@return The result matrix, if the DDE link has been found, 0 otherwise. */
- const ScMatrix* GetDdeLinkResultMatrix( USHORT nDdePos ) const;
+ SC_DLLPUBLIC const ScMatrix* GetDdeLinkResultMatrix( USHORT nDdePos ) const;
/** Tries to find a DDE link or creates a new, if not extant.
@param pResults If not 0, sets the matrix as as DDE link result matrix (also for existing links).
@return true = DDE link found; false = Unpredictable error occured, no DDE link created. */
- bool CreateDdeLink( const String& rAppl, const String& rTopic, const String& rItem, BYTE nMode, ScMatrix* pResults = NULL );
+ SC_DLLPUBLIC bool CreateDdeLink( const String& rAppl, const String& rTopic, const String& rItem, BYTE nMode, ScMatrix* pResults = NULL );
/** Sets a result matrix for the specified DDE link.
@param nDdePos Index of the DDE link (does not include other links from link manager).
@param pResults The array containing all results of the DDE link (intrusive-ref-counted, do not delete).
@@ -673,7 +674,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
// #109985#
sal_Bool IsChart( const SdrObject* pObject );
- void UpdateAllCharts();
+ SC_DLLPUBLIC void UpdateAllCharts();
void UpdateChartRef( UpdateRefMode eUpdateRefMode,
SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
@@ -690,7 +691,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL HasBackgroundDraw( SCTAB nTab, const Rectangle& rMMRect );
BOOL HasAnyDraw( SCTAB nTab, const Rectangle& rMMRect );
- ScOutlineTable* GetOutlineTable( SCTAB nTab, BOOL bCreate = FALSE );
+ SC_DLLPUBLIC ScOutlineTable* GetOutlineTable( SCTAB nTab, BOOL bCreate = FALSE );
BOOL SetOutlineTable( SCTAB nTab, const ScOutlineTable* pNewOutline );
void DoAutoOutline( SCCOL nStartCol, SCROW nStartRow,
@@ -701,57 +702,57 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL TestRemoveSubTotals( SCTAB nTab, const ScSubTotalParam& rParam );
BOOL HasSubTotalCells( const ScRange& rRange );
- void PutCell( const ScAddress&, ScBaseCell* pCell, BOOL bForceTab = FALSE );
- void PutCell( const ScAddress&, ScBaseCell* pCell,
+ SC_DLLPUBLIC void PutCell( const ScAddress&, ScBaseCell* pCell, BOOL bForceTab = FALSE );
+ SC_DLLPUBLIC void PutCell( const ScAddress&, ScBaseCell* pCell,
ULONG nFormatIndex, BOOL bForceTab = FALSE);
- void PutCell( SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell* pCell,
+ SC_DLLPUBLIC void PutCell( SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell* pCell,
BOOL bForceTab = FALSE );
- void PutCell(SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell* pCell,
+ SC_DLLPUBLIC void PutCell(SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell* pCell,
ULONG nFormatIndex, BOOL bForceTab = FALSE);
// return TRUE = Zahlformat gesetzt
- BOOL SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const String& rString );
- void SetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, const double& rVal );
- void SetNote( SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPostIt& rNote );
+ SC_DLLPUBLIC BOOL SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const String& rString );
+ SC_DLLPUBLIC void SetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, const double& rVal );
+ SC_DLLPUBLIC void SetNote( SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPostIt& rNote );
void SetError( SCCOL nCol, SCROW nRow, SCTAB nTab, const USHORT nError);
- void InsertMatrixFormula(SCCOL nCol1, SCROW nRow1,
+ SC_DLLPUBLIC void InsertMatrixFormula(SCCOL nCol1, SCROW nRow1,
SCCOL nCol2, SCROW nRow2,
const ScMarkData& rMark,
const String& rFormula,
const ScTokenArray* p = NULL,
const ScGrammar::Grammar = ScGrammar::GRAM_DEFAULT );
- void InsertTableOp(const ScTabOpParam& rParam, // Mehrfachoperation
+ SC_DLLPUBLIC void InsertTableOp(const ScTabOpParam& rParam, // Mehrfachoperation
SCCOL nCol1, SCROW nRow1,
SCCOL nCol2, SCROW nRow2, const ScMarkData& rMark);
SC_DLLPUBLIC void GetString( SCCOL nCol, SCROW nRow, SCTAB nTab, String& rString );
- void GetInputString( SCCOL nCol, SCROW nRow, SCTAB nTab, String& rString );
- double GetValue( const ScAddress& );
- void GetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, double& rValue );
- double RoundValueAsShown( double fVal, ULONG nFormat );
- void GetNumberFormat( SCCOL nCol, SCROW nRow, SCTAB nTab,
+ SC_DLLPUBLIC void GetInputString( SCCOL nCol, SCROW nRow, SCTAB nTab, String& rString );
+ SC_DLLPUBLIC double GetValue( const ScAddress& );
+ SC_DLLPUBLIC void GetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, double& rValue );
+ SC_DLLPUBLIC double RoundValueAsShown( double fVal, ULONG nFormat );
+ SC_DLLPUBLIC void GetNumberFormat( SCCOL nCol, SCROW nRow, SCTAB nTab,
sal_uInt32& rFormat );
- sal_uInt32 GetNumberFormat( const ScAddress& ) const;
+ SC_DLLPUBLIC sal_uInt32 GetNumberFormat( const ScAddress& ) const;
/** If no number format attribute is set and the cell
pointer passed is of type formula cell, the calculated
number format of the formula cell is returned. pCell
may be NULL. */
- void GetNumberFormatInfo( short& nType, ULONG& nIndex,
+ SC_DLLPUBLIC void GetNumberFormatInfo( short& nType, ULONG& nIndex,
const ScAddress& rPos, const ScBaseCell* pCell ) const;
void GetFormula( SCCOL nCol, SCROW nRow, SCTAB nTab, String& rFormula,
BOOL bAsciiExport = FALSE ) const;
BOOL GetNote( SCCOL nCol, SCROW nRow, SCTAB nTab, ScPostIt& rNote);
- void GetCellType( SCCOL nCol, SCROW nRow, SCTAB nTab, CellType& rCellType ) const;
- CellType GetCellType( const ScAddress& rPos ) const;
- void GetCell( SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell*& rpCell ) const;
- ScBaseCell* GetCell( const ScAddress& rPos ) const;
+ SC_DLLPUBLIC void GetCellType( SCCOL nCol, SCROW nRow, SCTAB nTab, CellType& rCellType ) const;
+ SC_DLLPUBLIC CellType GetCellType( const ScAddress& rPos ) const;
+ SC_DLLPUBLIC void GetCell( SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell*& rpCell ) const;
+ SC_DLLPUBLIC ScBaseCell* GetCell( const ScAddress& rPos ) const;
//UNUSED2008-05 void RefreshNoteFlags();
BOOL HasNoteObject( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
- BOOL HasData( SCCOL nCol, SCROW nRow, SCTAB nTab );
+ SC_DLLPUBLIC BOOL HasData( SCCOL nCol, SCROW nRow, SCTAB nTab );
SC_DLLPUBLIC BOOL HasStringData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
- BOOL HasValueData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
+ SC_DLLPUBLIC BOOL HasValueData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
BOOL HasStringCells( const ScRange& rRange ) const;
/** Returns true, if there is any data to create a selection list for rPos. */
@@ -765,17 +766,17 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL bRefresh = FALSE, BOOL bAttrs = FALSE );
BOOL ExtendMerge( ScRange& rRange, BOOL bRefresh = FALSE, BOOL bAttrs = FALSE );
BOOL ExtendTotalMerge( ScRange& rRange );
- BOOL ExtendOverlapped( SCCOL& rStartCol, SCROW& rStartRow,
+ SC_DLLPUBLIC BOOL ExtendOverlapped( SCCOL& rStartCol, SCROW& rStartRow,
SCCOL nEndCol, SCROW nEndRow, SCTAB nTab );
- BOOL ExtendOverlapped( ScRange& rRange );
+ SC_DLLPUBLIC BOOL ExtendOverlapped( ScRange& rRange );
BOOL RefreshAutoFilter( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, SCTAB nTab );
- void DoMergeContents( SCTAB nTab, SCCOL nStartCol, SCROW nStartRow,
+ SC_DLLPUBLIC void DoMergeContents( SCTAB nTab, SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow );
// ohne Ueberpruefung:
- void DoMerge( SCTAB nTab, SCCOL nStartCol, SCROW nStartRow,
+ SC_DLLPUBLIC void DoMerge( SCTAB nTab, SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow );
void RemoveMerge( SCCOL nCol, SCROW nRow, SCTAB nTab );
@@ -790,9 +791,9 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL IsHorOverlapped( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
BOOL IsVerOverlapped( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
- BOOL HasAttrib( SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
+ SC_DLLPUBLIC BOOL HasAttrib( SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2, USHORT nMask );
- BOOL HasAttrib( const ScRange& rRange, USHORT nMask );
+ SC_DLLPUBLIC BOOL HasAttrib( const ScRange& rRange, USHORT nMask );
void GetBorderLines( SCCOL nCol, SCROW nRow, SCTAB nTab,
const SvxBorderLine** ppLeft,
@@ -806,7 +807,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void SetDirty( const ScRange& );
void SetTableOpDirty( const ScRange& ); // for Interpreter TableOp
void CalcAll();
- void CalcAfterLoad();
+ SC_DLLPUBLIC void CalcAfterLoad();
void CompileAll();
void CompileXML();
@@ -840,23 +841,23 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld );
- BOOL GetCellArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
- BOOL GetTableArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
- BOOL GetPrintArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow,
+ SC_DLLPUBLIC BOOL GetCellArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
+ SC_DLLPUBLIC BOOL GetTableArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
+ SC_DLLPUBLIC BOOL GetPrintArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow,
BOOL bNotes = TRUE ) const;
- BOOL GetPrintAreaHor( SCTAB nTab, SCROW nStartRow, SCROW nEndRow,
+ SC_DLLPUBLIC BOOL GetPrintAreaHor( SCTAB nTab, SCROW nStartRow, SCROW nEndRow,
SCCOL& rEndCol, BOOL bNotes = TRUE ) const;
- BOOL GetPrintAreaVer( SCTAB nTab, SCCOL nStartCol, SCCOL nEndCol,
+ SC_DLLPUBLIC BOOL GetPrintAreaVer( SCTAB nTab, SCCOL nStartCol, SCCOL nEndCol,
SCROW& rEndRow, BOOL bNotes = TRUE ) const;
void InvalidateTableArea();
- BOOL GetDataStart( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow ) const;
+ SC_DLLPUBLIC BOOL GetDataStart( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow ) const;
void ExtendPrintArea( OutputDevice* pDev, SCTAB nTab,
SCCOL nStartCol, SCROW nStartRow,
SCCOL& rEndCol, SCROW nEndRow );
- SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow, SCTAB nStartTab,
+ SC_DLLPUBLIC SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow, SCTAB nStartTab,
SCCOL nEndCol, SCROW nEndRow, SCTAB nEndTab,
ScDirection eDir );
@@ -874,7 +875,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL InsertRow( SCCOL nStartCol, SCTAB nStartTab,
SCCOL nEndCol, SCTAB nEndTab,
SCROW nStartRow, SCSIZE nSize, ScDocument* pRefUndoDoc = NULL );
- BOOL InsertRow( const ScRange& rRange, ScDocument* pRefUndoDoc = NULL );
+ SC_DLLPUBLIC BOOL InsertRow( const ScRange& rRange, ScDocument* pRefUndoDoc = NULL );
void DeleteRow( SCCOL nStartCol, SCTAB nStartTab,
SCCOL nEndCol, SCTAB nEndTab,
SCROW nStartRow, SCSIZE nSize,
@@ -884,7 +885,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL InsertCol( SCROW nStartRow, SCTAB nStartTab,
SCROW nEndRow, SCTAB nEndTab,
SCCOL nStartCol, SCSIZE nSize, ScDocument* pRefUndoDoc = NULL );
- BOOL InsertCol( const ScRange& rRange, ScDocument* pRefUndoDoc = NULL );
+ SC_DLLPUBLIC BOOL InsertCol( const ScRange& rRange, ScDocument* pRefUndoDoc = NULL );
void DeleteCol( SCROW nStartRow, SCTAB nStartTab,
SCROW nEndRow, SCTAB nEndTab,
SCCOL nStartCol, SCSIZE nSize,
@@ -909,15 +910,15 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void EnableExecuteLink( bool bVal ) { mbExecuteLinkEnabled = bVal; }
bool IsChangeReadOnlyEnabled() const { return mbChangeReadOnlyEnabled; }
void EnableChangeReadOnly( bool bVal ) { mbChangeReadOnlyEnabled = bVal; }
- sal_Int16 GetNamedRangesLockCount() const { return mnNamedRangesLockCount; }
+ SC_DLLPUBLIC sal_Int16 GetNamedRangesLockCount() const { return mnNamedRangesLockCount; }
void SetNamedRangesLockCount( sal_Int16 nCount ) { mnNamedRangesLockCount = nCount; }
- void ResetClip( ScDocument* pSourceDoc, const ScMarkData* pMarks );
- void ResetClip( ScDocument* pSourceDoc, SCTAB nTab );
+ SC_DLLPUBLIC void ResetClip( ScDocument* pSourceDoc, const ScMarkData* pMarks );
+ SC_DLLPUBLIC void ResetClip( ScDocument* pSourceDoc, SCTAB nTab );
void SetCutMode( BOOL bCut );
BOOL IsCutMode();
void SetClipArea( const ScRange& rArea, BOOL bCut = FALSE );
- BOOL IsDocVisible() const { return bIsVisible; }
+ SC_DLLPUBLIC BOOL IsDocVisible() const { return bIsVisible; }
void SetDocVisible( BOOL bSet );
BOOL HasOLEObjectsInArea( const ScRange& rRange, const ScMarkData* pTabMark = NULL );
@@ -969,7 +970,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL IsClipboardSource() const;
- void TransposeClip( ScDocument* pTransClip, USHORT nFlags, BOOL bAsLink );
+ SC_DLLPUBLIC void TransposeClip( ScDocument* pTransClip, USHORT nFlags, BOOL bAsLink );
void MixDocument( const ScRange& rRange, USHORT nFunction, BOOL bSkipEmpty,
ScDocument* pSrcDoc );
@@ -983,11 +984,11 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void TransliterateText( const ScMarkData& rMultiMark, sal_Int32 nType );
- void InitUndo( ScDocument* pSrcDoc, SCTAB nTab1, SCTAB nTab2,
+ SC_DLLPUBLIC void InitUndo( ScDocument* pSrcDoc, SCTAB nTab1, SCTAB nTab2,
BOOL bColInfo = FALSE, BOOL bRowInfo = FALSE );
void AddUndoTab( SCTAB nTab1, SCTAB nTab2,
BOOL bColInfo = FALSE, BOOL bRowInfo = FALSE );
- void InitUndoSelected( ScDocument* pSrcDoc, const ScMarkData& rTabSelection,
+ SC_DLLPUBLIC void InitUndoSelected( ScDocument* pSrcDoc, const ScMarkData& rTabSelection,
BOOL bColInfo = FALSE, BOOL bRowInfo = FALSE );
// nicht mehr benutzen:
@@ -1013,16 +1014,16 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
ScMarkData& rDestMark, BOOL bResetMark = TRUE,
USHORT nNeededBits = 0 ) const;
BOOL HasScenarioRange( SCTAB nTab, const ScRange& rRange ) const;
- const ScRangeList* GetScenarioRanges( SCTAB nTab ) const;
+ SC_DLLPUBLIC const ScRangeList* GetScenarioRanges( SCTAB nTab ) const;
- void CopyUpdated( ScDocument* pPosDoc, ScDocument* pDestDoc );
+ SC_DLLPUBLIC void CopyUpdated( ScDocument* pPosDoc, ScDocument* pDestDoc );
void UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
ScDocument* pUndoDoc = NULL, BOOL bIncludeDraw = TRUE );
- void UpdateTranspose( const ScAddress& rDestPos, ScDocument* pClipDoc,
+ SC_DLLPUBLIC void UpdateTranspose( const ScAddress& rDestPos, ScDocument* pClipDoc,
const ScMarkData& rMark, ScDocument* pUndoDoc = NULL );
void UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY );
@@ -1039,20 +1040,20 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
double& rResult );
SC_DLLPUBLIC const SfxPoolItem* GetAttr( SCCOL nCol, SCROW nRow, SCTAB nTab, USHORT nWhich ) const;
- const ScPatternAttr* GetPattern( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
- const ScPatternAttr* GetMostUsedPattern( SCCOL nCol, SCROW nStartRow, SCROW nEndRow, SCTAB nTab ) const;
+ SC_DLLPUBLIC const ScPatternAttr* GetPattern( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
+ SC_DLLPUBLIC const ScPatternAttr* GetMostUsedPattern( SCCOL nCol, SCROW nStartRow, SCROW nEndRow, SCTAB nTab ) const;
const ScPatternAttr* GetSelectionPattern( const ScMarkData& rMark, BOOL bDeep = TRUE );
ScPatternAttr* CreateSelectionPattern( const ScMarkData& rMark, BOOL bDeep = TRUE );
const ScConditionalFormat* GetCondFormat( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
- const SfxItemSet* GetCondResult( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
+ SC_DLLPUBLIC const SfxItemSet* GetCondResult( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
const SfxPoolItem* GetEffItem( SCCOL nCol, SCROW nRow, SCTAB nTab, USHORT nWhich ) const;
- const ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator >& GetBreakIterator();
+ SC_DLLPUBLIC const ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator >& GetBreakIterator();
BOOL HasStringWeakCharacters( const String& rString );
- BYTE GetStringScriptType( const String& rString );
- BYTE GetCellScriptType( ScBaseCell* pCell, ULONG nNumberFormat );
- BYTE GetScriptType( SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell* pCell = NULL );
+ SC_DLLPUBLIC BYTE GetStringScriptType( const String& rString );
+ SC_DLLPUBLIC BYTE GetCellScriptType( ScBaseCell* pCell, ULONG nNumberFormat );
+ SC_DLLPUBLIC BYTE GetScriptType( SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell* pCell = NULL );
BOOL HasDetectiveOperations() const;
void AddDetectiveOperation( const ScDetOpData& rData );
@@ -1075,14 +1076,14 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void ClearSelectionItems( const USHORT* pWhich, const ScMarkData& rMark );
void ChangeSelectionIndent( BOOL bIncrement, const ScMarkData& rMark );
- ULONG AddCondFormat( const ScConditionalFormat& rNew );
- void FindConditionalFormat( ULONG nKey, ScRangeList& rRanges );
- void FindConditionalFormat( ULONG nKey, ScRangeList& rRanges, SCTAB nTab );
+ SC_DLLPUBLIC ULONG AddCondFormat( const ScConditionalFormat& rNew );
+ SC_DLLPUBLIC void FindConditionalFormat( ULONG nKey, ScRangeList& rRanges );
+ SC_DLLPUBLIC void FindConditionalFormat( ULONG nKey, ScRangeList& rRanges, SCTAB nTab );
void ConditionalChanged( ULONG nKey );
- ULONG AddValidationEntry( const ScValidationData& rNew );
+ SC_DLLPUBLIC ULONG AddValidationEntry( const ScValidationData& rNew );
- const ScValidationData* GetValidationEntry( ULONG nIndex ) const;
+ SC_DLLPUBLIC const ScValidationData* GetValidationEntry( ULONG nIndex ) const;
ScConditionalFormatList* GetCondFormList() const // Ref-Undo
{ return pCondFormList; }
@@ -1093,15 +1094,15 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
SC_DLLPUBLIC void ApplyAttr( SCCOL nCol, SCROW nRow, SCTAB nTab,
const SfxPoolItem& rAttr );
- void ApplyPattern( SCCOL nCol, SCROW nRow, SCTAB nTab,
+ SC_DLLPUBLIC void ApplyPattern( SCCOL nCol, SCROW nRow, SCTAB nTab,
const ScPatternAttr& rAttr );
- void ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow,
+ SC_DLLPUBLIC void ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow,
const ScMarkData& rMark, const ScPatternAttr& rAttr );
- void ApplyPatternAreaTab( SCCOL nStartCol, SCROW nStartRow,
+ SC_DLLPUBLIC void ApplyPatternAreaTab( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, SCTAB nTab,
const ScPatternAttr& rAttr );
- void ApplyPatternIfNumberformatIncompatible(
+ SC_DLLPUBLIC void ApplyPatternIfNumberformatIncompatible(
const ScRange& rRange, const ScMarkData& rMark,
const ScPatternAttr& rPattern, short nNewType );
@@ -1110,7 +1111,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void ApplyStyleArea( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow,
const ScMarkData& rMark, const ScStyleSheet& rStyle);
- void ApplyStyleAreaTab( SCCOL nStartCol, SCROW nStartRow,
+ SC_DLLPUBLIC void ApplyStyleAreaTab( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, SCTAB nTab,
const ScStyleSheet& rStyle);
@@ -1128,16 +1129,16 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL IsStyleSheetUsed( const ScStyleSheet& rStyle, BOOL bGatherAllStyles ) const;
- BOOL ApplyFlagsTab( SCCOL nStartCol, SCROW nStartRow,
+ SC_DLLPUBLIC BOOL ApplyFlagsTab( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow,
SCTAB nTab, INT16 nFlags );
BOOL RemoveFlagsTab( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow,
SCTAB nTab, INT16 nFlags );
- void SetPattern( const ScAddress&, const ScPatternAttr& rAttr,
+ SC_DLLPUBLIC void SetPattern( const ScAddress&, const ScPatternAttr& rAttr,
BOOL bPutToPool = FALSE );
- void SetPattern( SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPatternAttr& rAttr,
+ SC_DLLPUBLIC void SetPattern( SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPatternAttr& rAttr,
BOOL bPutToPool = FALSE );
void DeleteNumberFormat( const sal_uInt32* pDelKeys, sal_uInt32 nCount );
@@ -1165,19 +1166,19 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
//
- void SetColWidth( SCCOL nCol, SCTAB nTab, USHORT nNewWidth );
- void SetRowHeight( SCROW nRow, SCTAB nTab, USHORT nNewHeight );
- void SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, SCTAB nTab,
+ SC_DLLPUBLIC void SetColWidth( SCCOL nCol, SCTAB nTab, USHORT nNewWidth );
+ SC_DLLPUBLIC void SetRowHeight( SCROW nRow, SCTAB nTab, USHORT nNewHeight );
+ SC_DLLPUBLIC void SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, SCTAB nTab,
USHORT nNewHeight );
void SetManualHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, BOOL bManual );
- USHORT GetColWidth( SCCOL nCol, SCTAB nTab ) const;
- USHORT GetRowHeight( SCROW nRow, SCTAB nTab ) const;
- ULONG GetRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab ) const;
+ SC_DLLPUBLIC USHORT GetColWidth( SCCOL nCol, SCTAB nTab ) const;
+ SC_DLLPUBLIC USHORT GetRowHeight( SCROW nRow, SCTAB nTab ) const;
+ SC_DLLPUBLIC ULONG GetRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab ) const;
ULONG GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, double fScale ) const;
- const ScSummableCompressedArray< SCROW, USHORT> & GetRowHeightArray( SCTAB nTab ) const;
- ULONG GetColOffset( SCCOL nCol, SCTAB nTab ) const;
- ULONG GetRowOffset( SCROW nRow, SCTAB nTab ) const;
+ SC_DLLPUBLIC const ScSummableCompressedArray< SCROW, USHORT> & GetRowHeightArray( SCTAB nTab ) const;
+ SC_DLLPUBLIC ULONG GetColOffset( SCCOL nCol, SCTAB nTab ) const;
+ SC_DLLPUBLIC ULONG GetRowOffset( SCROW nRow, SCTAB nTab ) const;
SC_DLLPUBLIC USHORT GetOriginalWidth( SCCOL nCol, SCTAB nTab ) const;
SC_DLLPUBLIC USHORT GetOriginalHeight( SCROW nRow, SCTAB nTab ) const;
@@ -1189,11 +1190,11 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
// single row taking ones in loops to access a sequence of
// single rows is no good idea! Use specialized range
// taking methods instead, or iterators.
- inline ULONG FastGetRowHeight( SCROW nStartRow, SCROW nEndRow,
+ SC_DLLPUBLIC inline ULONG FastGetRowHeight( SCROW nStartRow, SCROW nEndRow,
SCTAB nTab ) const;
inline ULONG FastGetScaledRowHeight( SCROW nStartRow, SCROW nEndRow,
SCTAB nTab, double fScale ) const;
- inline USHORT FastGetRowHeight( SCROW nRow, SCTAB nTab ) const;
+ SC_DLLPUBLIC inline USHORT FastGetRowHeight( SCROW nRow, SCTAB nTab ) const;
inline SCROW FastGetRowForHeight( SCTAB nTab, ULONG nHeight ) const;
inline SCROW FastGetFirstNonHiddenRow( SCROW nStartRow, SCTAB nTab ) const;
/** No check for flags whether row is hidden, height value
@@ -1208,7 +1209,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
BOOL bFormula,
const ScMarkData* pMarkData = NULL,
BOOL bSimpleTextImport = FALSE );
- BOOL SetOptimalHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, USHORT nExtra,
+ SC_DLLPUBLIC BOOL SetOptimalHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, USHORT nExtra,
OutputDevice* pDev,
double nPPTX, double nPPTY,
const Fraction& rZoomX, const Fraction& rZoomY,
@@ -1222,21 +1223,21 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
const Fraction& rZoomX, const Fraction& rZoomY,
BOOL bWidth, BOOL bTotalSize = FALSE );
- void ShowCol(SCCOL nCol, SCTAB nTab, BOOL bShow);
- void ShowRow(SCROW nRow, SCTAB nTab, BOOL bShow);
- void ShowRows(SCROW nRow1, SCROW nRow2, SCTAB nTab, BOOL bShow);
- void SetColFlags( SCCOL nCol, SCTAB nTab, BYTE nNewFlags );
- void SetRowFlags( SCROW nRow, SCTAB nTab, BYTE nNewFlags );
- void SetRowFlags( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, BYTE nNewFlags );
+ SC_DLLPUBLIC void ShowCol(SCCOL nCol, SCTAB nTab, BOOL bShow);
+ SC_DLLPUBLIC void ShowRow(SCROW nRow, SCTAB nTab, BOOL bShow);
+ SC_DLLPUBLIC void ShowRows(SCROW nRow1, SCROW nRow2, SCTAB nTab, BOOL bShow);
+ SC_DLLPUBLIC void SetColFlags( SCCOL nCol, SCTAB nTab, BYTE nNewFlags );
+ SC_DLLPUBLIC void SetRowFlags( SCROW nRow, SCTAB nTab, BYTE nNewFlags );
+ SC_DLLPUBLIC void SetRowFlags( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, BYTE nNewFlags );
SC_DLLPUBLIC BYTE GetColFlags( SCCOL nCol, SCTAB nTab ) const;
SC_DLLPUBLIC BYTE GetRowFlags( SCROW nRow, SCTAB nTab ) const;
- const ScBitMaskCompressedArray< SCROW, BYTE> & GetRowFlagsArray( SCTAB nTab ) const;
- ScBitMaskCompressedArray< SCROW, BYTE> & GetRowFlagsArrayModifiable( SCTAB nTab );
+ SC_DLLPUBLIC const ScBitMaskCompressedArray< SCROW, BYTE> & GetRowFlagsArray( SCTAB nTab ) const;
+ SC_DLLPUBLIC ScBitMaskCompressedArray< SCROW, BYTE> & GetRowFlagsArrayModifiable( SCTAB nTab );
/// @return the index of the last row with any set flags (auto-pagebreak is ignored).
- SCROW GetLastFlaggedRow( SCTAB nTab ) const;
+ SC_DLLPUBLIC SCROW GetLastFlaggedRow( SCTAB nTab ) const;
/// @return the index of the last changed column (flags and column width, auto pagebreak is ignored).
SCCOL GetLastChangedCol( SCTAB nTab ) const;
@@ -1264,13 +1265,13 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void StripHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2, SCTAB nTab );
void ExtendHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2, SCTAB nTab );
- ScPatternAttr* GetDefPattern() const;
- ScDocumentPool* GetPool();
- ScStyleSheetPool* GetStyleSheetPool() const;
+ SC_DLLPUBLIC ScPatternAttr* GetDefPattern() const;
+ SC_DLLPUBLIC ScDocumentPool* GetPool();
+ SC_DLLPUBLIC ScStyleSheetPool* GetStyleSheetPool() const;
// PageStyle:
SC_DLLPUBLIC const String& GetPageStyle( SCTAB nTab ) const;
- void SetPageStyle( SCTAB nTab, const String& rName );
+ SC_DLLPUBLIC void SetPageStyle( SCTAB nTab, const String& rName );
Size GetPageSize( SCTAB nTab ) const;
void SetPageSize( SCTAB nTab, const Size& rSize );
void SetRepeatArea( SCTAB nTab, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow );
@@ -1286,38 +1287,38 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void PageStyleModified( SCTAB nTab, const String& rNewName );
- BOOL NeedPageResetAfterTab( SCTAB nTab ) const;
+ SC_DLLPUBLIC BOOL NeedPageResetAfterTab( SCTAB nTab ) const;
// war vorher im PageStyle untergracht. Jetzt an jeder Tabelle:
- BOOL HasPrintRange();
- USHORT GetPrintRangeCount( SCTAB nTab );
- const ScRange* GetPrintRange( SCTAB nTab, USHORT nPos );
- const ScRange* GetRepeatColRange( SCTAB nTab );
- const ScRange* GetRepeatRowRange( SCTAB nTab );
+ SC_DLLPUBLIC BOOL HasPrintRange();
+ SC_DLLPUBLIC USHORT GetPrintRangeCount( SCTAB nTab );
+ SC_DLLPUBLIC const ScRange* GetPrintRange( SCTAB nTab, USHORT nPos );
+ SC_DLLPUBLIC const ScRange* GetRepeatColRange( SCTAB nTab );
+ SC_DLLPUBLIC const ScRange* GetRepeatRowRange( SCTAB nTab );
/** Returns true, if the specified sheet is always printed. */
BOOL IsPrintEntireSheet( SCTAB nTab ) const;
/** Removes all print ranges. */
- void ClearPrintRanges( SCTAB nTab );
+ SC_DLLPUBLIC void ClearPrintRanges( SCTAB nTab );
/** Adds a new print ranges. */
- void AddPrintRange( SCTAB nTab, const ScRange& rNew );
+ SC_DLLPUBLIC void AddPrintRange( SCTAB nTab, const ScRange& rNew );
/** Removes all old print ranges and sets the passed print ranges. */
void SetPrintRange( SCTAB nTab, const ScRange& rNew );
/** Marks the specified sheet to be printed completely. Deletes old print ranges on the sheet! */
- void SetPrintEntireSheet( SCTAB nTab );
- void SetRepeatColRange( SCTAB nTab, const ScRange* pNew );
- void SetRepeatRowRange( SCTAB nTab, const ScRange* pNew );
+ SC_DLLPUBLIC void SetPrintEntireSheet( SCTAB nTab );
+ SC_DLLPUBLIC void SetRepeatColRange( SCTAB nTab, const ScRange* pNew );
+ SC_DLLPUBLIC void SetRepeatRowRange( SCTAB nTab, const ScRange* pNew );
ScPrintRangeSaver* CreatePrintRangeSaver() const;
void RestorePrintRanges( const ScPrintRangeSaver& rSaver );
- Rectangle GetMMRect( SCCOL nStartCol, SCROW nStartRow,
+ SC_DLLPUBLIC Rectangle GetMMRect( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, SCTAB nTab );
- ScRange GetRange( SCTAB nTab, const Rectangle& rMMRect );
+ SC_DLLPUBLIC ScRange GetRange( SCTAB nTab, const Rectangle& rMMRect );
void UpdStlShtPtrsFrmNms();
void StylesToNames();
- void CopyStdStylesFrom( ScDocument* pSrcDoc );
+ SC_DLLPUBLIC void CopyStdStylesFrom( ScDocument* pSrcDoc );
CharSet GetSrcCharSet() const { return eSrcSet; }
ULONG GetSrcVersion() const { return nSrcVer; }
@@ -1326,30 +1327,30 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
void SetSrcCharSet( CharSet eNew ) { eSrcSet = eNew; }
void UpdateFontCharSet();
- friend SvStream& operator>>( SvStream& rStream, ScDocument& rDocument );
- friend SvStream& operator<<( SvStream& rStream, const ScDocument& rDocument );
+ SC_DLLPUBLIC friend SvStream& operator>>( SvStream& rStream, ScDocument& rDocument );
+ SC_DLLPUBLIC friend SvStream& operator<<( SvStream& rStream, const ScDocument& rDocument );
void FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
SCTAB nTab, double nScaleX, double nScaleY,
BOOL bPageMode, BOOL bFormulaMode,
const ScMarkData* pMarkData = NULL );
-SC_DLLPUBLIC SvNumberFormatter* GetFormatTable() const;
+ SC_DLLPUBLIC SvNumberFormatter* GetFormatTable() const;
void Sort( SCTAB nTab, const ScSortParam& rSortParam, BOOL bKeepQuery );
SCSIZE Query( SCTAB nTab, const ScQueryParam& rQueryParam, BOOL bKeepSub );
BOOL ValidQuery( SCROW nRow, SCTAB nTab, const ScQueryParam& rQueryParam, BOOL* pSpecial = NULL );
- BOOL CreateQueryParam( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
+ SC_DLLPUBLIC BOOL CreateQueryParam( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
SCTAB nTab, ScQueryParam& rQueryParam );
void GetUpperCellString(SCCOL nCol, SCROW nRow, SCTAB nTab, String& rStr);
BOOL GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab,
- TypedStrCollection& rStrings, bool bFilter = false );
+ TypedScStrCollection& rStrings, bool bFilter = false );
SC_DLLPUBLIC BOOL GetFilterEntriesArea( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
- SCTAB nTab, TypedStrCollection& rStrings );
+ SCTAB nTab, TypedScStrCollection& rStrings );
BOOL GetDataEntries( SCCOL nCol, SCROW nRow, SCTAB nTab,
- TypedStrCollection& rStrings, BOOL bLimit = FALSE );
- BOOL GetFormulaEntries( TypedStrCollection& rStrings );
+ TypedScStrCollection& rStrings, BOOL bLimit = FALSE );
+ BOOL GetFormulaEntries( TypedScStrCollection& rStrings );
BOOL HasAutoFilter( SCCOL nCol, SCROW nRow, SCTAB nTab );
@@ -1361,7 +1362,7 @@ SC_DLLPUBLIC SvNumberFormatter* GetFormatTable() const;
SfxPrinter* GetPrinter( BOOL bCreateIfNotExist = TRUE );
void SetPrinter( SfxPrinter* pNewPrinter );
VirtualDevice* GetVirtualDevice_100th_mm();
- OutputDevice* GetRefDevice(); // WYSIWYG: Printer, otherwise VirtualDevice...
+ SC_DLLPUBLIC OutputDevice* GetRefDevice(); // WYSIWYG: Printer, otherwise VirtualDevice...
void EraseNonUsedSharedNames(USHORT nLevel);
BOOL GetNextSpellingCell(SCCOL& nCol, SCROW& nRow, SCTAB nTab,
@@ -1392,7 +1393,7 @@ SC_DLLPUBLIC SvNumberFormatter* GetFormatTable() const;
void RemoveAutoSpellObj();
void SetOnlineSpellPos( const ScAddress& rPos );
- BOOL SetVisibleSpellRange( const ScRange& rRange ); // TRUE = changed
+ SC_DLLPUBLIC BOOL SetVisibleSpellRange( const ScRange& rRange ); // TRUE = changed
BYTE GetMacroCallMode() const { return nMacroCallMode; }
void SetMacroCallMode(BYTE nNew) { nMacroCallMode = nNew; }
@@ -1404,7 +1405,7 @@ SC_DLLPUBLIC SvNumberFormatter* GetFormatTable() const;
void SetRangeOverflowType(sal_uInt32 nType) { nRangeOverflowType = nType; }
sal_Bool HasRangeOverflow() const { return nRangeOverflowType != 0; }
- sal_uInt32 GetRangeOverflowType() const { return nRangeOverflowType; }
+ SC_DLLPUBLIC sal_uInt32 GetRangeOverflowType() const { return nRangeOverflowType; }
// fuer Broadcasting/Listening
void SetNoSetDirty( BOOL bVal ) { bNoSetDirty = bVal; }
@@ -1427,7 +1428,7 @@ SC_DLLPUBLIC SvNumberFormatter* GetFormatTable() const;
BOOL bSetChartRangeLists = FALSE );
void UpdateChart( const String& rName );
void RestoreChartListener( const String& rName );
- void UpdateChartListenerCollection();
+ SC_DLLPUBLIC void UpdateChartListenerCollection();
BOOL IsChartListenerCollectionNeedsUpdate() const
{ return bChartListenerCollectionNeedsUpdate; }
void SetChartListenerCollectionNeedsUpdate( BOOL bFlg )
@@ -1435,7 +1436,7 @@ SC_DLLPUBLIC SvNumberFormatter* GetFormatTable() const;
void AddOLEObjectToCollection(const String& rName);
ScChangeViewSettings* GetChangeViewSettings() const { return pChangeViewSettings; }
- void SetChangeViewSettings(const ScChangeViewSettings& rNew);
+ SC_DLLPUBLIC void SetChangeViewSettings(const ScChangeViewSettings& rNew);
vos::ORef<SvxForbiddenCharactersTable> GetForbiddenCharacters();
void SetForbiddenCharacters( const vos::ORef<SvxForbiddenCharactersTable> xNew );
@@ -1450,7 +1451,7 @@ SC_DLLPUBLIC SvNumberFormatter* GetFormatTable() const;
BYTE GetEditTextDirection(SCTAB nTab) const; // EEHorizontalTextDirection values
- ScLkUpdMode GetLinkMode() const { return eLinkMode ;}
+ SC_DLLPUBLIC ScLkUpdMode GetLinkMode() const { return eLinkMode ;}
void SetLinkMode( ScLkUpdMode nSet ) { eLinkMode = nSet;}
@@ -1485,7 +1486,7 @@ public:
void EndListeningArea( const ScRange& rRange,
SvtListener* pListener );
/** Broadcast wrapper, calls
- rHint.GetCell()->Broadcast() and AreaBroadcast()
+ SC_DLLPUBLIC rHint.GetCell()->Broadcast() and AreaBroadcast()
and TrackFormulas() and conditional format list
SourceChanged().
Preferred.
@@ -1576,8 +1577,8 @@ public:
void SetExpandRefs( BOOL bVal ) { bExpandRefs = bVal; }
BOOL IsExpandRefs() { return bExpandRefs; }
- void IncSizeRecalcLevel( SCTAB nTab );
- void DecSizeRecalcLevel( SCTAB nTab );
+ SC_DLLPUBLIC void IncSizeRecalcLevel( SCTAB nTab );
+ SC_DLLPUBLIC void DecSizeRecalcLevel( SCTAB nTab );
ULONG GetXMLImportedFormulaCount() const { return nXMLImportedFormulaCount; }
void IncXMLImportedFormulaCount( ULONG nVal )
@@ -1620,12 +1621,12 @@ public:
//! only for import filter, deletes any existing ChangeTrack via
//! EndChangeTracking() and takes ownership of new ChangeTrack pTrack
- void SetChangeTrack( ScChangeTrack* pTrack );
+ SC_DLLPUBLIC void SetChangeTrack( ScChangeTrack* pTrack );
void StartChangeTracking();
void EndChangeTracking();
- void CompareDocument( ScDocument& rOtherDoc );
+ SC_DLLPUBLIC void CompareDocument( ScDocument& rOtherDoc );
void AddUnoObject( SfxListener& rObject );
void RemoveUnoObject( SfxListener& rObject );
@@ -1637,10 +1638,10 @@ public:
void SetInLinkUpdate(BOOL bSet); // TableLink or AreaLink
BOOL IsInLinkUpdate() const; // including DdeLink
- SfxItemPool* GetEditPool() const;
- SfxItemPool* GetEnginePool() const;
- ScFieldEditEngine& GetEditEngine();
- ScNoteEditEngine& GetNoteEngine();
+ SC_DLLPUBLIC SfxItemPool* GetEditPool() const;
+ SC_DLLPUBLIC SfxItemPool* GetEnginePool() const;
+ SC_DLLPUBLIC ScFieldEditEngine& GetEditEngine();
+ SC_DLLPUBLIC ScNoteEditEngine& GetNoteEngine();
SfxItemPool& GetNoteItemPool();
ScRefreshTimerControl* GetRefreshTimerControl() const
@@ -1673,14 +1674,14 @@ private: // CLOOK-Impl-Methoden
void DeleteDrawLayer();
void DeleteColorTable();
- BOOL DrawGetPrintArea( ScRange& rRange, BOOL bSetHor, BOOL bSetVer ) const;
+ SC_DLLPUBLIC BOOL DrawGetPrintArea( ScRange& rRange, BOOL bSetHor, BOOL bSetVer ) const;
void DrawMovePage( USHORT nOldPos, USHORT nNewPos );
void DrawCopyPage( USHORT nOldPos, USHORT nNewPos );
void UpdateDrawPrinter();
void UpdateDrawLanguages();
void UpdateDrawDefaults();
- void InitClipPtrs( ScDocument* pSourceDoc );
+ SC_DLLPUBLIC void InitClipPtrs( ScDocument* pSourceDoc );
void LoadDdeLinks(SvStream& rStream);
void SaveDdeLinks(SvStream& rStream) const;
diff --git a/sc/inc/dpcachetable.hxx b/sc/inc/dpcachetable.hxx
index 4817b36e43c7..f011d727de2a 100644
--- a/sc/inc/dpcachetable.hxx
+++ b/sc/inc/dpcachetable.hxx
@@ -186,7 +186,7 @@ public:
/** Get the unique entries for a field specified by index. The caller must
make sure that the table is filled before calling function, or it will
get an empty collection. */
- const TypedStrCollection& getFieldEntries(sal_Int32 nIndex) const;
+ const TypedScStrCollection& getFieldEntries(sal_Int32 nIndex) const;
/** Filter the table based on the specified criteria, and copy the
result to rTabData. This method is used, for example, to generate
@@ -210,7 +210,7 @@ private:
void getValueData(ScDocument* pDoc, const ScAddress& rPos, ScDPCacheCell& rCell);
private:
- typedef ::boost::shared_ptr<TypedStrCollection> TypedStrCollectionPtr;
+ typedef ::boost::shared_ptr<TypedScStrCollection> TypedScStrCollectionPtr;
/** main data table. */
::std::vector< ::std::vector< ::ScDPCacheTable::Cell > > maTable;
@@ -219,7 +219,7 @@ private:
::std::vector<sal_Int32> maHeader;
/** unique field entires for each field (column). */
- ::std::vector<TypedStrCollectionPtr> maFieldEntries;
+ ::std::vector<TypedScStrCollectionPtr> maFieldEntries;
/** used to track visibility of rows. The first row below the header row
has the index of 0. */
diff --git a/sc/inc/dpdimsave.hxx b/sc/inc/dpdimsave.hxx
index b14a4070f09e..076e35763d4e 100644
--- a/sc/inc/dpdimsave.hxx
+++ b/sc/inc/dpdimsave.hxx
@@ -34,11 +34,12 @@
#include <vector>
#include <tools/string.hxx>
#include "dpgroup.hxx" // for ScDPNumGroupInfo
+#include "scdllapi.h"
class ScDPGroupTableData;
class ScDPGroupDimension;
class ScDPObject;
-class StrCollection;
+class ScStrCollection;
class SvNumberFormatter;
class ScDPSaveGroupDimension;
@@ -49,7 +50,7 @@ class ScDPSaveGroupDimension;
// These have to be applied before the other ScDPSaveData settings.
//
-class ScDPSaveGroupItem
+class SC_DLLPUBLIC ScDPSaveGroupItem
{
String aGroupName; // name of group
::std::vector<String> aElements; // names of items in original dimension
@@ -79,7 +80,7 @@ public:
typedef ::std::vector<ScDPSaveGroupItem> ScDPSaveGroupItemVec;
-class ScDPSaveGroupDimension
+class SC_DLLPUBLIC ScDPSaveGroupDimension
{
String aSourceDim; // always the real source from the original data
String aGroupDimName;
@@ -109,7 +110,7 @@ public:
void RemoveFromGroups( const String& rItemName );
void RemoveGroup( const String& rGroupName );
bool IsEmpty() const;
- bool HasOnlyHidden( const StrCollection& rVisible );
+ bool HasOnlyHidden( const ScStrCollection& rVisible );
long GetGroupCount() const;
const ScDPSaveGroupItem* GetGroupByIndex( long nIndex ) const;
@@ -120,7 +121,7 @@ public:
typedef ::std::vector<ScDPSaveGroupDimension> ScDPSaveGroupDimensionVec;
-class ScDPSaveNumGroupDimension
+class SC_DLLPUBLIC ScDPSaveNumGroupDimension
{
String aDimensionName;
ScDPNumGroupInfo aGroupInfo;
@@ -146,7 +147,7 @@ public:
typedef ::std::vector<ScDPSaveNumGroupDimension> ScDPSaveNumGroupDimensionVec;
-class ScDPDimensionSaveData
+class SC_DLLPUBLIC ScDPDimensionSaveData
{
ScDPSaveGroupDimensionVec aGroupDimensions;
ScDPSaveNumGroupDimensionVec aNumGroupDimensions;
diff --git a/sc/inc/dpgroup.hxx b/sc/inc/dpgroup.hxx
index 0fbab349f0a1..c93998e366b1 100644
--- a/sc/inc/dpgroup.hxx
+++ b/sc/inc/dpgroup.hxx
@@ -35,6 +35,7 @@
#include <hash_set>
#include "dptabdat.hxx"
+#include "scdllapi.h"
class ScDocument;
class SvNumberFormatter;
@@ -74,7 +75,7 @@ public:
sal_Int32 GetDatePart() const { return nDatePart; }
const ScDPNumGroupInfo& GetNumInfo() const { return aNumInfo; }
- void FillColumnEntries( TypedStrCollection& rEntries, const TypedStrCollection& rOriginal,
+ void FillColumnEntries( TypedScStrCollection& rEntries, const TypedScStrCollection& rOriginal,
SvNumberFormatter* pFormatter ) const;
};
@@ -109,7 +110,7 @@ class ScDPGroupDimension
String aGroupName;
ScDPDateGroupHelper* pDateHelper;
ScDPGroupItemVec aItems;
- mutable TypedStrCollection* pCollection; // collection of item names (cached)
+ mutable TypedScStrCollection* pCollection; // collection of item names (cached)
public:
ScDPGroupDimension( long nSource, const String& rNewName );
@@ -125,7 +126,7 @@ public:
long GetGroupDim() const { return nGroupDim; }
const String& GetName() const { return aGroupName; }
- const TypedStrCollection& GetColumnEntries( const TypedStrCollection& rOriginal, ScDocument* pDoc ) const;
+ const TypedScStrCollection& GetColumnEntries( const TypedScStrCollection& rOriginal, ScDocument* pDoc ) const;
const ScDPGroupItem* GetGroupForData( const ScDPItemData& rData ) const; // rData = entry in original dim.
const ScDPGroupItem* GetGroupForName( const ScDPItemData& rName ) const; // rName = entry in group dim.
const ScDPGroupItem* GetGroupByIndex( size_t nIndex ) const;
@@ -143,11 +144,11 @@ typedef ::std::vector<ScDPGroupDimension> ScDPGroupDimensionVec;
// --------------------------------------------------------------------
-class ScDPNumGroupDimension
+class SC_DLLPUBLIC ScDPNumGroupDimension
{
ScDPNumGroupInfo aGroupInfo; // settings
ScDPDateGroupHelper* pDateHelper;
- mutable TypedStrCollection* pCollection; // collection of item names (cached)
+ mutable TypedScStrCollection* pCollection; // collection of item names (cached)
mutable bool bHasNonInteger; // initialized in GetNumEntries
mutable sal_Unicode cDecSeparator; // initialized in GetNumEntries
@@ -159,7 +160,7 @@ public:
ScDPNumGroupDimension& operator=( const ScDPNumGroupDimension& rOther );
- const TypedStrCollection& GetNumEntries( const TypedStrCollection& rOriginal, ScDocument* pDoc ) const;
+ const TypedScStrCollection& GetNumEntries( const TypedScStrCollection& rOriginal, ScDocument* pDoc ) const;
const ScDPNumGroupInfo& GetInfo() const { return aGroupInfo; }
bool HasNonInteger() const { return bHasNonInteger; }
@@ -209,7 +210,7 @@ public:
ScDocument* GetDocument() { return pDoc; }
virtual long GetColumnCount();
- virtual const TypedStrCollection& GetColumnEntries(long nColumn);
+ virtual const TypedScStrCollection& GetColumnEntries(long nColumn);
virtual String getDimensionName(long nColumn);
virtual BOOL getIsDataLayoutDimension(long nColumn);
virtual BOOL IsDateDimension(long nDim);
diff --git a/sc/inc/dpobject.hxx b/sc/inc/dpobject.hxx
index 3ba1dfab5e98..3ee9ea767386 100644
--- a/sc/inc/dpobject.hxx
+++ b/sc/inc/dpobject.hxx
@@ -62,8 +62,8 @@ class ScPivotCollection;
struct ScPivotParam;
struct ScImportSourceDesc;
struct ScSheetSourceDesc;
-class StrCollection;
-class TypedStrCollection;
+class ScStrCollection;
+class TypedScStrCollection;
struct PivotField;
class ScDPCacheTable;
@@ -89,7 +89,7 @@ struct ScDPServiceDesc
};
-class SC_DLLPUBLIC ScDPObject : public DataObject
+class SC_DLLPUBLIC ScDPObject : public ScDataObject
{
private:
ScDocument* pDoc;
@@ -119,7 +119,7 @@ public:
ScDPObject(const ScDPObject& r);
virtual ~ScDPObject();
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
void SetAlive(BOOL bSet);
void SetAllowMove(BOOL bSet);
@@ -176,9 +176,9 @@ public:
std::vector< ScDPGetPivotDataField >& rFilters,
const String& rFilterList );
- void GetMemberResultNames( StrCollection& rNames, long nDimension );
+ void GetMemberResultNames( ScStrCollection& rNames, long nDimension );
- void FillPageList( TypedStrCollection& rStrings, long nField );
+ void FillPageList( TypedScStrCollection& rStrings, long nField );
void ToggleDetails(const ::com::sun::star::sheet::DataPilotTableHeaderData& rElemDesc, ScDPObject* pDestObj);
@@ -255,7 +255,7 @@ struct ScDPCacheCell
// ============================================================================
-class ScDPCollection : public Collection
+class ScDPCollection : public ScCollection
{
private:
ScDocument* pDoc;
@@ -278,7 +278,7 @@ public:
ScDPCollection(const ScDPCollection& r);
virtual ~ScDPCollection();
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
ScDPObject* operator[](USHORT nIndex) const {return (ScDPObject*)At(nIndex);}
#if OLD_PIVOT_IMPLEMENTATION
diff --git a/sc/inc/dpoutput.hxx b/sc/inc/dpoutput.hxx
index fe77233261b1..58001e1183a6 100644
--- a/sc/inc/dpoutput.hxx
+++ b/sc/inc/dpoutput.hxx
@@ -51,7 +51,7 @@ namespace com { namespace sun { namespace star { namespace sheet {
class Rectangle;
class SvStream;
class ScDocument;
-class StrCollection;
+class ScStrCollection;
struct ScDPOutLevelData;
@@ -160,7 +160,7 @@ public:
Rectangle& rPosRect, USHORT& rOrient, long& rDimPos );
BOOL IsFilterButton( const ScAddress& rPos );
- void GetMemberResultNames( StrCollection& rNames, long nDimension );
+ void GetMemberResultNames( ScStrCollection& rNames, long nDimension );
static void GetDataDimensionNames( String& rSourceName, String& rGivenName,
const com::sun::star::uno::Reference<
diff --git a/sc/inc/dpsave.hxx b/sc/inc/dpsave.hxx
index 4d1be16e7145..44689bcf0772 100644
--- a/sc/inc/dpsave.hxx
+++ b/sc/inc/dpsave.hxx
@@ -69,10 +69,10 @@ public:
const String& GetName() const { return aName; }
BOOL HasIsVisible() const;
- void SetIsVisible(BOOL bSet);
+ SC_DLLPUBLIC void SetIsVisible(BOOL bSet);
BOOL GetIsVisible() const { return BOOL(nVisibleMode); }
BOOL HasShowDetails() const;
- void SetShowDetails(BOOL bSet);
+ SC_DLLPUBLIC void SetShowDetails(BOOL bSet);
BOOL GetShowDetails() const { return BOOL(nShowDetailsMode); }
void SetName( const String& rNew ); // used if the source member was renamed (groups)
@@ -127,39 +127,39 @@ public:
void SetName( const String& rNew ); // used if the source dim was renamed (groups)
- void SetOrientation(USHORT nNew);
+ SC_DLLPUBLIC void SetOrientation(USHORT nNew);
void SetSubTotals(BOOL bSet); // to be removed!
- void SetSubTotals(long nCount, const USHORT* pFuncs);
+ SC_DLLPUBLIC void SetSubTotals(long nCount, const USHORT* pFuncs);
long GetSubTotalsCount() const { return nSubTotalCount; }
USHORT GetSubTotalFunc(long nIndex) const { return pSubTotalFuncs[nIndex]; }
- void SetShowEmpty(BOOL bSet);
+ SC_DLLPUBLIC void SetShowEmpty(BOOL bSet);
BOOL GetShowEmpty() const { return BOOL(nShowEmptyMode); }
- void SetFunction(USHORT nNew); // enum GeneralFunction
+ SC_DLLPUBLIC void SetFunction(USHORT nNew); // enum GeneralFunction
USHORT GetFunction() const { return nFunction; }
void SetUsedHierarchy(long nNew);
long GetUsedHierarchy() const { return nUsedHierarchy; }
- void SetLayoutName(const String* pName);
- const String& GetLayoutName() const;
- BOOL HasLayoutName() const;
+ SC_DLLPUBLIC void SetLayoutName(const String* pName);
+ SC_DLLPUBLIC const String& GetLayoutName() const;
+ SC_DLLPUBLIC BOOL HasLayoutName() const;
const ::com::sun::star::sheet::DataPilotFieldReference* GetReferenceValue() const { return pReferenceValue; }
- void SetReferenceValue(const ::com::sun::star::sheet::DataPilotFieldReference* pNew);
+ SC_DLLPUBLIC void SetReferenceValue(const ::com::sun::star::sheet::DataPilotFieldReference* pNew);
const ::com::sun::star::sheet::DataPilotFieldSortInfo* GetSortInfo() const { return pSortInfo; }
- void SetSortInfo(const ::com::sun::star::sheet::DataPilotFieldSortInfo* pNew);
+ SC_DLLPUBLIC void SetSortInfo(const ::com::sun::star::sheet::DataPilotFieldSortInfo* pNew);
const ::com::sun::star::sheet::DataPilotFieldAutoShowInfo* GetAutoShowInfo() const { return pAutoShowInfo; }
- void SetAutoShowInfo(const ::com::sun::star::sheet::DataPilotFieldAutoShowInfo* pNew);
+ SC_DLLPUBLIC void SetAutoShowInfo(const ::com::sun::star::sheet::DataPilotFieldAutoShowInfo* pNew);
const ::com::sun::star::sheet::DataPilotFieldLayoutInfo* GetLayoutInfo() const { return pLayoutInfo; }
- void SetLayoutInfo(const ::com::sun::star::sheet::DataPilotFieldLayoutInfo* pNew);
+ SC_DLLPUBLIC void SetLayoutInfo(const ::com::sun::star::sheet::DataPilotFieldLayoutInfo* pNew);
- void SetCurrentPage( const String* pPage ); // NULL = no selection (all)
- BOOL HasCurrentPage() const;
- const String& GetCurrentPage() const;
+ SC_DLLPUBLIC void SetCurrentPage( const String* pPage ); // NULL = no selection (all)
+ SC_DLLPUBLIC BOOL HasCurrentPage() const;
+ SC_DLLPUBLIC const String& GetCurrentPage() const;
USHORT GetOrientation() const { return nOrientation; }
ScDPSaveMember* GetExistingMemberByName(const String& rName);
- ScDPSaveMember* GetMemberByName(const String& rName);
+ SC_DLLPUBLIC ScDPSaveMember* GetMemberByName(const String& rName);
void SetMemberPosition( const String& rName, sal_Int32 nNewPos );
@@ -181,9 +181,9 @@ private:
BOOL bDrillDown; // not passed to DataPilotSource
public:
- ScDPSaveData();
+ SC_DLLPUBLIC ScDPSaveData();
ScDPSaveData(const ScDPSaveData& r);
- ~ScDPSaveData();
+ SC_DLLPUBLIC ~ScDPSaveData();
ScDPSaveData& operator= ( const ScDPSaveData& r );
@@ -193,13 +193,13 @@ public:
void AddDimension(ScDPSaveDimension* pDim) { aDimList.Insert(pDim, LIST_APPEND); }
ScDPSaveDimension* GetDimensionByName(const String& rName);
- ScDPSaveDimension* GetDataLayoutDimension();
+ SC_DLLPUBLIC ScDPSaveDimension* GetDataLayoutDimension();
ScDPSaveDimension* DuplicateDimension(const String& rName);
- ScDPSaveDimension& DuplicateDimension(const ScDPSaveDimension& rDim);
+ SC_DLLPUBLIC ScDPSaveDimension& DuplicateDimension(const ScDPSaveDimension& rDim);
SC_DLLPUBLIC ScDPSaveDimension* GetExistingDimensionByName(const String& rName);
- ScDPSaveDimension* GetNewDimensionByName(const String& rName);
+ SC_DLLPUBLIC ScDPSaveDimension* GetNewDimensionByName(const String& rName);
void RemoveDimensionByName(const String& rName);
@@ -208,18 +208,18 @@ public:
void SetPosition( ScDPSaveDimension* pDim, long nNew );
- void SetColumnGrand( BOOL bSet );
+ SC_DLLPUBLIC void SetColumnGrand( BOOL bSet );
BOOL GetColumnGrand() const { return BOOL(nColumnGrandMode); }
- void SetRowGrand( BOOL bSet );
+ SC_DLLPUBLIC void SetRowGrand( BOOL bSet );
BOOL GetRowGrand() const { return BOOL(nRowGrandMode); }
void SetIgnoreEmptyRows( BOOL bSet );
BOOL GetIgnoreEmptyRows() const { return BOOL(nIgnoreEmptyMode); }
void SetRepeatIfEmpty( BOOL bSet );
BOOL GetRepeatIfEmpty() const { return BOOL(nRepeatEmptyMode); }
- void SetFilterButton( BOOL bSet );
+ SC_DLLPUBLIC void SetFilterButton( BOOL bSet );
BOOL GetFilterButton() const { return bFilterButton; }
- void SetDrillDown( BOOL bSet );
+ SC_DLLPUBLIC void SetDrillDown( BOOL bSet );
BOOL GetDrillDown() const { return bDrillDown; }
void WriteToSource( const com::sun::star::uno::Reference<
@@ -228,7 +228,7 @@ public:
BOOL IsEmpty() const;
const ScDPDimensionSaveData* GetExistingDimensionData() const { return pDimensionData; }
- ScDPDimensionSaveData* GetDimensionData(); // create if not there
+ SC_DLLPUBLIC ScDPDimensionSaveData* GetDimensionData(); // create if not there
void SetDimensionData( const ScDPDimensionSaveData* pNew ); // copied
};
diff --git a/sc/inc/dpsdbtab.hxx b/sc/inc/dpsdbtab.hxx
index 84fd36f65ea6..40a376c7b33a 100644
--- a/sc/inc/dpsdbtab.hxx
+++ b/sc/inc/dpsdbtab.hxx
@@ -74,7 +74,7 @@ public:
virtual ~ScDatabaseDPData();
virtual long GetColumnCount();
- virtual const TypedStrCollection& GetColumnEntries(long nColumn);
+ virtual const TypedScStrCollection& GetColumnEntries(long nColumn);
virtual String getDimensionName(long nColumn);
virtual BOOL getIsDataLayoutDimension(long nColumn);
virtual BOOL IsDateDimension(long nDim);
diff --git a/sc/inc/dpshttab.hxx b/sc/inc/dpshttab.hxx
index 9cc3881e92ab..841517ef7e17 100644
--- a/sc/inc/dpshttab.hxx
+++ b/sc/inc/dpshttab.hxx
@@ -34,6 +34,7 @@
#include "dptabdat.hxx"
#include "global.hxx"
#include "address.hxx"
+#include "scdllapi.h"
#include <vector>
@@ -61,7 +62,7 @@ struct ScSheetSourceDesc
class ScSheetDPData_Impl;
-class ScSheetDPData : public ScDPTableData
+class SC_DLLPUBLIC ScSheetDPData : public ScDPTableData
{
private:
ScSheetDPData_Impl* pImpl;
@@ -71,7 +72,7 @@ public:
virtual ~ScSheetDPData();
virtual long GetColumnCount();
- virtual const TypedStrCollection& GetColumnEntries(long nColumn);
+ virtual const TypedScStrCollection& GetColumnEntries(long nColumn);
virtual String getDimensionName(long nColumn);
virtual BOOL getIsDataLayoutDimension(long nColumn);
virtual BOOL IsDateDimension(long nDim);
diff --git a/sc/inc/dptabdat.hxx b/sc/inc/dptabdat.hxx
index 90953d8c3b4f..e97237186443 100644
--- a/sc/inc/dptabdat.hxx
+++ b/sc/inc/dptabdat.hxx
@@ -45,7 +45,7 @@ namespace com { namespace sun { namespace star { namespace sheet {
struct DataPilotFieldFilter;
}}}}
-class TypedStrCollection;
+class TypedScStrCollection;
class ScSimpleSharedString;
// -----------------------------------------------------------------------
@@ -154,11 +154,11 @@ public:
long GetDatePart( long nDateVal, long nHierarchy, long nLevel );
- //! use (new) typed collection instead of StrCollection
+ //! use (new) typed collection instead of ScStrCollection
//! or separate Str and ValueCollection
virtual long GetColumnCount() = 0;
- virtual const TypedStrCollection& GetColumnEntries(long nColumn) = 0;
+ virtual const TypedScStrCollection& GetColumnEntries(long nColumn) = 0;
virtual String getDimensionName(long nColumn) = 0;
virtual BOOL getIsDataLayoutDimension(long nColumn) = 0;
virtual BOOL IsDateDimension(long nDim) = 0;
diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx
index 9bb4cdc6aa7c..1174571a400c 100644
--- a/sc/inc/drwlayer.hxx
+++ b/sc/inc/drwlayer.hxx
@@ -78,7 +78,7 @@ public:
// -----------------------------------------------------------------------
-class ScDrawLayer: public FmFormModel
+class SC_DLLPUBLIC ScDrawLayer: public FmFormModel
{
private:
//REMOVE SotStorageRef xPictureStorage;
diff --git a/sc/inc/editutil.hxx b/sc/inc/editutil.hxx
index 02e25848af2b..3e1573ac7c89 100644
--- a/sc/inc/editutil.hxx
+++ b/sc/inc/editutil.hxx
@@ -169,7 +169,7 @@ public:
// 1/100 mm
-class ScTabEditEngine : public ScEditEngineDefaulter
+class SC_DLLPUBLIC ScTabEditEngine : public ScEditEngineDefaulter
{
private:
void Init(const ScPatternAttr& rPattern);
@@ -200,7 +200,7 @@ struct ScHeaderFieldData
// fuer Feldbefehle in der Tabelle
-class ScFieldEditEngine : public ScEditEngineDefaulter
+class SC_DLLPUBLIC ScFieldEditEngine : public ScEditEngineDefaulter
{
private:
BOOL bExecuteURL;
@@ -220,7 +220,7 @@ public:
// for headers/footers with fields
-class ScHeaderEditEngine : public ScEditEngineDefaulter
+class SC_DLLPUBLIC ScHeaderEditEngine : public ScEditEngineDefaulter
{
private:
ScHeaderFieldData aData;
diff --git a/sc/inc/eeimport.hxx b/sc/inc/eeimport.hxx
deleted file mode 100644
index 68d7ce2689b4..000000000000
--- a/sc/inc/eeimport.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: eeimport.hxx,v $
- * $Revision: 1.7 $
- *
- * 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 SC_EEIMPORT_HXX
-#define SC_EEIMPORT_HXX
-
-#include "global.hxx"
-#include "address.hxx"
-
-class ScDocument;
-class ScEEParser;
-class ScTabEditEngine;
-class SvStream;
-class Table;
-
-struct ScEEParseEntry;
-
-class ScEEImport
-{
-protected:
- ScRange maRange;
- ScDocument* mpDoc;
- ScEEParser* mpParser;
- ScTabEditEngine* mpEngine;
- Table* mpRowHeights;
-
- BOOL GraphicSize( SCCOL nCol, SCROW nRow, SCTAB nTab,
- ScEEParseEntry* );
- void InsertGraphic( SCCOL nCol, SCROW nRow, SCTAB nTab,
- ScEEParseEntry* );
-
-public:
- ScEEImport( ScDocument* pDoc, const ScRange& rRange );
- virtual ~ScEEImport();
-
- ULONG Read( SvStream& rStream, const String& rBaseURL );
- ScRange GetRange() { return maRange; }
- virtual void WriteToDocument( BOOL bSizeColsRows = FALSE,
- double nOutputFactor = 1.0 );
-};
-
-
-
-#endif
diff --git a/sc/inc/filter.hxx b/sc/inc/filter.hxx
index 3a966f210c38..157795db2a42 100644
--- a/sc/inc/filter.hxx
+++ b/sc/inc/filter.hxx
@@ -71,7 +71,7 @@ enum EXCIMPFORMAT { EIF_AUTO, EIF_BIFF5, EIF_BIFF8, EIF_BIFF_LE4 };
// fuer Export
enum ExportFormatLotus { ExpWK1, ExpWK3, ExpWK4 };
-enum ExportFormatExcel { ExpBiff2, ExpBiff3, ExpBiff4, ExpBiff4W, ExpBiff5 };
+enum ExportFormatExcel { ExpBiff2, ExpBiff3, ExpBiff4, ExpBiff4W, ExpBiff5, ExpBiff8, Exp2007Xml };
// Optionen fuer DIF-Im-/Export (Kombination ueber '|')
@@ -82,49 +82,63 @@ enum ExportFormatExcel { ExpBiff2, ExpBiff3, ExpBiff4, ExpBiff4W, ExpBiff5 };
#define SC_DIFOPT_EXCEL (SC_DIFOPT_DATE|SC_DIFOPT_TIME|SC_DIFOPT_CURRENCY)
-
-// ***********************************************************************
-// Diverse Importfilter
-// ***********************************************************************
-
-FltError ScImportLotus123( SfxMedium&, ScDocument*, CharSet eSrc = RTL_TEXTENCODING_DONTKNOW );
-
-FltError ScImportExcel( SfxMedium&, ScDocument*, const EXCIMPFORMAT );
+// These are implemented inside the scfilt library and lazy loaded
+
+class ScRTFImport;
+class ScHTMLImport;
+
+class ScEEAbsImport {
+ public:
+ virtual ~ScEEAbsImport() {}
+ virtual ULONG Read( SvStream& rStream, const String& rBaseURL ) = 0;
+ virtual ScRange GetRange() = 0;
+ virtual void WriteToDocument( BOOL bSizeColsRows = FALSE, double nOutputFactor = 1.0 ) = 0;
+};
+
+class ScFormatFilterPlugin {
+ public:
+ // various import filters
+ virtual FltError ScImportLotus123( SfxMedium&, ScDocument*, CharSet eSrc = RTL_TEXTENCODING_DONTKNOW ) = 0;
+ virtual FltError ScImportQuattroPro( SfxMedium &rMedium, ScDocument *pDoc ) = 0;
+ virtual FltError ScImportExcel( SfxMedium&, ScDocument*, const EXCIMPFORMAT ) = 0;
// eFormat == EIF_AUTO -> passender Filter wird automatisch verwendet
// eFormat == EIF_BIFF5 -> nur Biff5-Stream fuehrt zum Erfolg (auch wenn in einem Excel97-Doc)
// eFormat == EIF_BIFF8 -> nur Biff8-Stream fuehrt zum Erfolg (nur in Excel97-Docs)
// eFormat == EIF_BIFF_LE4 -> nur Nicht-Storage-Dateien _koennen_ zum Erfolg fuehren
-
-FltError ScImportStarCalc10( SvStream&, ScDocument* );
-
-FltError ScImportDif( SvStream&, ScDocument*, const ScAddress& rInsPos,
- const CharSet eSrc = RTL_TEXTENCODING_DONTKNOW, UINT32 nDifOption = SC_DIFOPT_EXCEL );
-
-FltError ScImportRTF( SvStream&, const String& rBaseURL, ScDocument*, ScRange& rRange );
-
-FltError ScImportHTML( SvStream&, const String& rBaseURL, ScDocument*, ScRange& rRange, double nOutputFactor = 1.0, BOOL bCalcWidthHeight = TRUE );
-
-FltError ScImportQuattroPro( SfxMedium &rMedium, ScDocument *pDoc );
-// ***********************************************************************
-// Diverse Exportfilter
-// ***********************************************************************
-
+ virtual FltError ScImportStarCalc10( SvStream&, ScDocument* ) = 0;
+ virtual FltError ScImportDif( SvStream&, ScDocument*, const ScAddress& rInsPos,
+ const CharSet eSrc = RTL_TEXTENCODING_DONTKNOW, UINT32 nDifOption = SC_DIFOPT_EXCEL ) = 0;
+ virtual FltError ScImportRTF( SvStream&, const String& rBaseURL, ScDocument*, ScRange& rRange ) = 0;
+ virtual FltError ScImportHTML( SvStream&, const String& rBaseURL, ScDocument*, ScRange& rRange, double nOutputFactor = 1.0, BOOL bCalcWidthHeight = TRUE ) = 0;
+
+ // various import helpers
+ virtual ScEEAbsImport *CreateRTFImport( ScDocument* pDoc, const ScRange& rRange ) = 0;
+ virtual ScEEAbsImport *CreateHTMLImport( ScDocument* pDocP, const String& rBaseURL, const ScRange& rRange, BOOL bCalcWidthHeight ) = 0;
+ virtual String GetHTMLRangeNameList( ScDocument* pDoc, const String& rOrigName ) = 0;
+
+ // various export filters
#if ENABLE_LOTUS123_EXPORT
-FltError ScExportLotus123( SvStream&, ScDocument*, ExportFormatLotus, CharSet eDest );
+ virtual FltError ScExportLotus123( SvStream&, ScDocument*, ExportFormatLotus, CharSet eDest ) = 0;
#endif
-
-FltError ScExportExcel5( SfxMedium&, ScDocument*, const BOOL bTuerk, CharSet eDest );
-
-FltError ScExportDif( SvStream&, ScDocument*, const ScAddress& rOutPos, const CharSet eDest,
- UINT32 nDifOption = SC_DIFOPT_EXCEL );
-
-FltError ScExportDif( SvStream&, ScDocument*, const ScRange& rRange, const CharSet eDest,
- UINT32 nDifOption = SC_DIFOPT_EXCEL );
-
-FltError ScExportHTML( SvStream&, const String& rBaseURL, ScDocument*, const ScRange& rRange, const CharSet eDest, BOOL bAll,
- const String& rStreamPath, String& rNonConvertibleChars );
-
-FltError ScExportRTF( SvStream&, ScDocument*, const ScRange& rRange, const CharSet eDest );
+ virtual FltError ScExportExcel5( SfxMedium&, ScDocument*, ExportFormatExcel eFormat, CharSet eDest ) = 0;
+ virtual FltError ScExportDif( SvStream&, ScDocument*, const ScAddress& rOutPos, const CharSet eDest,
+ UINT32 nDifOption = SC_DIFOPT_EXCEL ) = 0;
+ virtual FltError ScExportDif( SvStream&, ScDocument*, const ScRange& rRange, const CharSet eDest,
+ UINT32 nDifOption = SC_DIFOPT_EXCEL ) = 0;
+ virtual FltError ScExportHTML( SvStream&, const String& rBaseURL, ScDocument*, const ScRange& rRange, const CharSet eDest, BOOL bAll,
+ const String& rStreamPath, String& rNonConvertibleChars ) = 0;
+ virtual FltError ScExportRTF( SvStream&, ScDocument*, const ScRange& rRange, const CharSet eDest ) = 0;
+};
+
+// scfilt plugin symbol
+extern "C" {
+ ScFormatFilterPlugin * SAL_CALL ScFilterCreate(void);
+}
+
+class ScFormatFilter {
+ public:
+ static ScFormatFilterPlugin &Get();
+};
#endif
diff --git a/sc/inc/filtopt.hxx b/sc/inc/filtopt.hxx
index c188e3d0415e..9170cca94c57 100644
--- a/sc/inc/filtopt.hxx
+++ b/sc/inc/filtopt.hxx
@@ -31,16 +31,15 @@
#ifndef SC_FILTOPT_HXX
#define SC_FILTOPT_HXX
-
#include <unotools/configitem.hxx>
#include <tools/solar.h>
-
+#include "scdllapi.h"
//==================================================================
// filter options
//==================================================================
-class ScFilterOptions : public utl::ConfigItem
+class SC_DLLPUBLIC ScFilterOptions : public utl::ConfigItem
{
BOOL bWK3Flag;
double fExcelColScale;
diff --git a/sc/inc/filtuno.hxx b/sc/inc/filtuno.hxx
index e233be79515c..eedfa0ffcf70 100644
--- a/sc/inc/filtuno.hxx
+++ b/sc/inc/filtuno.hxx
@@ -37,7 +37,7 @@
#include <com/sun/star/document/XExporter.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <cppuhelper/implbase5.hxx>
-
+#include "scdllapi.h"
namespace com { namespace sun { namespace star { namespace io {
class XInputStream;
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index 3916fa1f6da9..63296c93b96d 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -547,53 +547,53 @@ public:
static ::com::sun::star::lang::Locale* pLocale;
static SvtSysLocale* pSysLocale;
// for faster access a pointer to the single instance provided by SvtSysLocale
- static const CharClass* pCharClass;
+ SC_DLLPUBLIC static const CharClass* pCharClass;
// for faster access a pointer to the single instance provided by SvtSysLocale
- static const LocaleDataWrapper* pLocaleData;
-SC_DLLPUBLIC static const LocaleDataWrapper* GetpLocaleData();
+ SC_DLLPUBLIC static const LocaleDataWrapper* pLocaleData;
+ SC_DLLPUBLIC static const LocaleDataWrapper* GetpLocaleData();
static CalendarWrapper* pCalendar;
- static CollatorWrapper* pCollator;
+ SC_DLLPUBLIC static CollatorWrapper* pCollator;
static CollatorWrapper* pCaseCollator;
static ::utl::TransliterationWrapper* pTransliteration;
-SC_DLLPUBLIC static ::utl::TransliterationWrapper* GetpTransliteration(); //CHINA001
+ SC_DLLPUBLIC static ::utl::TransliterationWrapper* GetpTransliteration(); //CHINA001
static ::utl::TransliterationWrapper* pCaseTransliteration;
static IntlWrapper* pScIntlWrapper;
- static LanguageType eLnge;
+ SC_DLLPUBLIC static LanguageType eLnge;
static sal_Unicode cListDelimiter;
static const String& GetClipDocName();
static void SetClipDocName( const String& rNew );
- static SC_DLLPUBLIC const SvxSearchItem& GetSearchItem();
- static SC_DLLPUBLIC void SetSearchItem( const SvxSearchItem& rNew );
-SC_DLLPUBLIC static ScAutoFormat* GetAutoFormat();
+ SC_DLLPUBLIC static const SvxSearchItem& GetSearchItem();
+ SC_DLLPUBLIC static void SetSearchItem( const SvxSearchItem& rNew );
+ SC_DLLPUBLIC static ScAutoFormat* GetAutoFormat();
static void ClearAutoFormat(); //BugId 54209
static FuncCollection* GetFuncCollection();
- static ScUnoAddInCollection* GetAddInCollection();
-SC_DLLPUBLIC static ScUserList* GetUserList();
+ SC_DLLPUBLIC static ScUnoAddInCollection* GetAddInCollection();
+ SC_DLLPUBLIC static ScUserList* GetUserList();
static void SetUserList( const ScUserList* pNewList );
-SC_DLLPUBLIC static const String& GetRscString( USHORT nIndex );
+ SC_DLLPUBLIC static const String& GetRscString( USHORT nIndex );
static void OpenURL( const String& rURL, const String& rTarget );
- static String GetAbsDocName( const String& rFileName,
+ SC_DLLPUBLIC static String GetAbsDocName( const String& rFileName,
SfxObjectShell* pShell );
- static String GetDocTabName( const String& rFileName,
+ SC_DLLPUBLIC static String GetDocTabName( const String& rFileName,
const String& rTabName );
- static ULONG GetStandardFormat( SvNumberFormatter&,
+ SC_DLLPUBLIC static ULONG GetStandardFormat( SvNumberFormatter&,
ULONG nFormat, short nType );
- static ULONG GetStandardFormat( double, SvNumberFormatter&,
+ SC_DLLPUBLIC static ULONG GetStandardFormat( double, SvNumberFormatter&,
ULONG nFormat, short nType );
- static double nScreenPPTX;
- static double nScreenPPTY;
+ SC_DLLPUBLIC static double nScreenPPTX;
+ SC_DLLPUBLIC static double nScreenPPTY;
static ScDocShellRef* pDrawClipDocShellRef;
static USHORT nDefFontHeight;
static USHORT nStdRowHeight;
- static long nLastRowHeightExtra;
+ SC_DLLPUBLIC static long nLastRowHeightExtra;
static long nLastColWidthExtra;
static void Init(); // am Anfang
@@ -607,7 +607,7 @@ SC_DLLPUBLIC static const String& GetRscString( USHORT nIndex );
static SvxBrushItem* GetButtonBrushItem();
static SvxBrushItem* GetEmbeddedBrushItem() { return pEmbeddedBrushItem; }
static SvxBrushItem* GetProtectedBrushItem() { return pProtectedBrushItem; }
-SC_DLLPUBLIC static const String& GetEmptyString();
+ SC_DLLPUBLIC static const String& GetEmptyString();
static const String& GetScDocString();
/** Returns the specified image list with outline symbols.
@@ -647,13 +647,13 @@ SC_DLLPUBLIC static const String& GetEmptyString();
@param cSep The character to separate the tokens.
@param nSepCount Specifies how often cSep is inserted between two tokens.
@param bForceSep true = Always insert separator; false = Only, if not at begin or end. */
-SC_DLLPUBLIC static void AddToken(
+ SC_DLLPUBLIC static void AddToken(
String& rTokenList, const String& rToken,
sal_Unicode cSep, xub_StrLen nSepCount = 1,
bool bForceSep = false );
/** Returns true, if the first and last character of the string is cQuote. */
-SC_DLLPUBLIC static bool IsQuoted( const String& rString, sal_Unicode cQuote = '\'' );
+ SC_DLLPUBLIC static bool IsQuoted( const String& rString, sal_Unicode cQuote = '\'' );
/** Inserts the character cQuote at beginning and end of rString.
@param bEscapeEmbedded If <TRUE/>, embedded quote characters are
@@ -693,15 +693,15 @@ SC_DLLPUBLIC static const sal_Unicode* FindUnquoted( const sal_Unicode* pStri
static BOOL IsSystemRTL(); // depending on system language
static LanguageType GetEditDefaultLanguage(); // for EditEngine::SetDefaultLanguage
- static BYTE GetDefaultScriptType(); // for all WEAK characters
+ SC_DLLPUBLIC static BYTE GetDefaultScriptType(); // for all WEAK characters
/** Map ATTR_((CJK|CTL)_)?FONT_... to proper WhichIDs.
If more than one SCRIPTTYPE_... values are or'ed together, prefers
first COMPLEX, then ASIAN */
- static USHORT GetScriptedWhichID( BYTE nScriptType, USHORT nWhich );
+ SC_DLLPUBLIC static USHORT GetScriptedWhichID( BYTE nScriptType, USHORT nWhich );
/** Adds a language item to the item set, if the number format item contains
a language that differs from its parent's language. */
- static void AddLanguage( SfxItemSet& rSet, SvNumberFormatter& rFormatter );
+ SC_DLLPUBLIC static void AddLanguage( SfxItemSet& rSet, SvNumberFormatter& rFormatter );
/** Obtain the ordinal suffix for a number according to the system locale */
static String GetOrdinalSuffix( sal_Int32 nNumber);
diff --git a/sc/inc/htmlimp.hxx b/sc/inc/htmlimp.hxx
deleted file mode 100644
index faadf31e8db4..000000000000
--- a/sc/inc/htmlimp.hxx
+++ /dev/null
@@ -1,54 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: htmlimp.hxx,v $
- * $Revision: 1.7 $
- *
- * 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 SC_HTMLIMP_HXX
-#define SC_HTMLIMP_HXX
-
-#include "eeimport.hxx"
-
-class ScHTMLParser;
-
-class ScHTMLImport : public ScEEImport
-{
-private:
- static void InsertRangeName( ScDocument* pDoc, const String& rName, const ScRange& rRange );
-
-public:
- ScHTMLImport( ScDocument* pDoc, const String& rBaseURL, const ScRange& rRange, BOOL bCalcWidthHeight = TRUE );
- ~ScHTMLImport();
- const ScHTMLParser* GetParser() const { return (ScHTMLParser*)mpParser; }
-
- virtual void WriteToDocument( BOOL bSizeColsRows = FALSE, double nOutputFactor = 1.0 );
-
- static String GetHTMLRangeNameList( ScDocument* pDoc, const String& rOrigName );
-};
-
-
-#endif
diff --git a/sc/inc/miscuno.hxx b/sc/inc/miscuno.hxx
index 8eee5df56ebd..1486d3ce480b 100644
--- a/sc/inc/miscuno.hxx
+++ b/sc/inc/miscuno.hxx
@@ -271,10 +271,10 @@ public:
//UNUSED2008-05 };
-class ScUnoHelpFunctions
+class SC_DLLPUBLIC ScUnoHelpFunctions
{
public:
- SC_DLLPUBLIC static com::sun::star::uno::Reference<com::sun::star::uno::XInterface>
+ static com::sun::star::uno::Reference<com::sun::star::uno::XInterface>
AnyToInterface( const com::sun::star::uno::Any& rAny );
static sal_Bool GetBoolProperty( const com::sun::star::uno::Reference<
com::sun::star::beans::XPropertySet>& xProp,
diff --git a/sc/inc/olinetab.hxx b/sc/inc/olinetab.hxx
index 2ef72d67bc10..59846d7717a0 100644
--- a/sc/inc/olinetab.hxx
+++ b/sc/inc/olinetab.hxx
@@ -34,7 +34,7 @@
#include "collect.hxx"
#include "compressedarray.hxx"
-
+#include "scdllapi.h"
#define SC_OL_MAXDEPTH 7
@@ -43,7 +43,7 @@ class ScMultipleReadHeader;
class ScMultipleWriteHeader;
-class ScOutlineEntry : public DataObject
+class ScOutlineEntry : public ScDataObject
{
SCCOLROW nStart;
SCSIZE nSize;
@@ -55,7 +55,7 @@ public:
BOOL bNewHidden = FALSE );
ScOutlineEntry( const ScOutlineEntry& rEntry );
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
SCCOLROW GetStart() const { return nStart; }
SCSIZE GetSize() const { return nSize; }
@@ -71,18 +71,18 @@ public:
};
-class ScOutlineCollection : public SortedCollection
+class ScOutlineCollection : public ScSortedCollection
{
public:
ScOutlineCollection();
- virtual short Compare(DataObject* pKey1, DataObject* pKey2) const;
+ virtual short Compare(ScDataObject* pKey1, ScDataObject* pKey2) const;
USHORT FindStart( SCCOLROW nMinStart );
};
-class ScOutlineArray
+class SC_DLLPUBLIC ScOutlineArray
{
friend class ScSubOutlineIterator;
diff --git a/sc/inc/pivot.hxx b/sc/inc/pivot.hxx
index 3caf946459d2..66e87facfd9a 100644
--- a/sc/inc/pivot.hxx
+++ b/sc/inc/pivot.hxx
@@ -162,19 +162,19 @@ typedef PivotField PivotFieldArr[PIVOT_MAXFIELD];
typedef PivotField PivotPageFieldArr[PIVOT_MAXPAGEFIELD];
#if OLD_PIVOT_IMPLEMENTATION
-class PivotStrCollection : public StrCollection
+class PivotScStrCollection : public ScStrCollection
{
ScUserListData* pUserData;
public:
- PivotStrCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE) :
- StrCollection ( nLim, nDel, bDup ),
+ PivotScStrCollection(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE) :
+ ScStrCollection ( nLim, nDel, bDup ),
pUserData (NULL) { }
- PivotStrCollection(const PivotStrCollection& rPivotStrCollection) :
- StrCollection ( rPivotStrCollection ),
- pUserData ( rPivotStrCollection.pUserData) {}
+ PivotScStrCollection(const PivotScStrCollection& rPivotScStrCollection) :
+ ScStrCollection ( rPivotScStrCollection ),
+ pUserData ( rPivotScStrCollection.pUserData) {}
- virtual DataObject* Clone() const;
- virtual short Compare(DataObject* pKey1, DataObject* pKey2) const;
+ virtual ScDataObject* Clone() const;
+ virtual short Compare(ScDataObject* pKey1, ScDataObject* pKey2) const;
TypedStrData* operator[]( const USHORT nIndex) const
{ return (TypedStrData*)At(nIndex); }
@@ -185,7 +185,7 @@ public:
USHORT GetIndex(TypedStrData* pData) const;
};
-class ScPivot : public DataObject
+class ScPivot : public ScDataObject
{
ScDocument* pDoc;
ScQueryParam aQuery;
@@ -224,9 +224,9 @@ class ScPivot : public DataObject
PivotFieldArr aRowArr;
PivotFieldArr aDataArr;
- PivotStrCollection* pColList[PIVOT_MAXFIELD]; // pro Zeile alle Eintraege
- PivotStrCollection* pRowList[PIVOT_MAXFIELD];
- PivotStrCollection* pDataList; // Shortcut auf Col/RowList mit Daten
+ PivotScStrCollection* pColList[PIVOT_MAXFIELD]; // pro Zeile alle Eintraege
+ PivotScStrCollection* pRowList[PIVOT_MAXFIELD];
+ PivotScStrCollection* pDataList; // Shortcut auf Col/RowList mit Daten
SubTotal** ppDataArr;
SCSIZE nDataColCount;
@@ -246,7 +246,7 @@ public:
ScPivot(const ScPivot& rPivot);
~ScPivot();
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
ScPivot* CreateNew() const;
@@ -332,20 +332,20 @@ private:
};
//------------------------------------------------------------------------
-class ScPivotCollection : public Collection
+class ScPivotCollection : public ScCollection
{
private:
ScDocument* pDoc;
public:
ScPivotCollection(USHORT nLim = 4, USHORT nDel = 4, ScDocument* pDocument = NULL) :
- Collection ( nLim, nDel),
+ ScCollection ( nLim, nDel),
pDoc ( pDocument ) {}
ScPivotCollection(const ScPivotCollection& rScPivotCollection) :
- Collection ( rScPivotCollection ),
+ ScCollection ( rScPivotCollection ),
pDoc ( rScPivotCollection.pDoc ) {}
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
ScPivot* operator[]( const USHORT nIndex) const {return (ScPivot*)At(nIndex);}
ScPivot* GetPivotAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab) const;
diff --git a/sc/inc/postit.hxx b/sc/inc/postit.hxx
index 15ca7ec6a521..4997a456d223 100644
--- a/sc/inc/postit.hxx
+++ b/sc/inc/postit.hxx
@@ -45,6 +45,7 @@
#include <svx/svdocapt.hxx>
#include "global.hxx"
#include <com/sun/star/drawing/XShape.hpp>
+#include "scdllapi.h"
// indicative text length for a note object
#define SC_NOTE_SMALLTEXT 100
@@ -56,7 +57,7 @@ class ScDocument;
// Notes
//==================================================================
-class ScPostIt
+class SC_DLLPUBLIC ScPostIt
{
private:
typedef ::boost::shared_ptr< EditTextObject > EditObjPtr;
diff --git a/sc/inc/progress.hxx b/sc/inc/progress.hxx
index 6796b467aa24..b30cf6d9dc70 100644
--- a/sc/inc/progress.hxx
+++ b/sc/inc/progress.hxx
@@ -32,10 +32,11 @@
#define SC_PROGRESS_HXX
#include <sfx2/progress.hxx>
+#include "scdllapi.h"
class ScDocument;
-class ScProgress
+class SC_DLLPUBLIC ScProgress
{
private:
static SfxProgress* pGlobalProgress;
diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx
index 608f9ec1d868..4b61c4de360d 100644
--- a/sc/inc/rangenam.hxx
+++ b/sc/inc/rangenam.hxx
@@ -35,6 +35,7 @@
#include "address.hxx"
#include "collect.hxx"
#include "grammar.hxx"
+#include "scdllapi.h"
//------------------------------------------------------------------------
@@ -68,7 +69,7 @@ typedef USHORT RangeType;
class ScTokenArray;
class ScIndexMap;
-class ScRangeData : public DataObject
+class ScRangeData : public ScDataObject
{
private:
String aName;
@@ -83,18 +84,18 @@ private:
friend class ScRangeName;
ScRangeData( USHORT nIndex );
public:
- ScRangeData( ScDocument* pDoc,
+ SC_DLLPUBLIC ScRangeData( ScDocument* pDoc,
const String& rName,
const String& rSymbol,
const ScAddress& rAdr = ScAddress(),
RangeType nType = RT_NAME,
const ScGrammar::Grammar eGrammar = ScGrammar::GRAM_DEFAULT );
- ScRangeData( ScDocument* pDoc,
+ SC_DLLPUBLIC ScRangeData( ScDocument* pDoc,
const String& rName,
const ScTokenArray& rArr,
const ScAddress& rAdr = ScAddress(),
RangeType nType = RT_NAME );
- ScRangeData( ScDocument* pDoc,
+ SC_DLLPUBLIC ScRangeData( ScDocument* pDoc,
const String& rName,
const ScAddress& rTarget );
// rTarget ist ABSPOS Sprungmarke
@@ -103,7 +104,7 @@ public:
virtual ~ScRangeData();
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
BOOL operator== (const ScRangeData& rData) const;
@@ -123,7 +124,7 @@ public:
void AddType( RangeType nType ) { eType = eType|nType; }
RangeType GetType() const { return eType; }
BOOL HasType( RangeType nType ) const;
- void GetSymbol( String& rSymbol, const ScGrammar::Grammar eGrammar = ScGrammar::GRAM_DEFAULT ) const;
+ SC_DLLPUBLIC void GetSymbol( String& rSymbol, const ScGrammar::Grammar eGrammar = ScGrammar::GRAM_DEFAULT ) const;
void UpdateSymbol( String& rSymbol, const ScAddress&,
const ScGrammar::Grammar eGrammar = ScGrammar::GRAM_DEFAULT );
void UpdateSymbol( rtl::OUStringBuffer& rBuffer, const ScAddress&,
@@ -133,12 +134,12 @@ public:
SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
BOOL IsModified() const { return bModified; }
- void GuessPosition();
+ SC_DLLPUBLIC void GuessPosition();
void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest );
void UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY );
- BOOL IsReference( ScRange& rRef ) const;
+ SC_DLLPUBLIC BOOL IsReference( ScRange& rRef ) const;
BOOL IsReference( ScRange& rRef, const ScAddress& rPos ) const;
BOOL IsValidReference( ScRange& rRef ) const;
@@ -161,11 +162,7 @@ inline BOOL ScRangeData::HasType( RangeType nType ) const
return ( ( eType & nType ) == nType );
}
-extern "C" int
-#ifdef WNT
-__cdecl
-#endif
-ScRangeData_QsortNameCompare( const void*, const void* );
+extern "C" int SAL_CALL ScRangeData_QsortNameCompare( const void*, const void* );
#if defined( ICC ) && defined( OS2 )
static int _Optlink ICCQsortNameCompare( const void* a, const void* b)
@@ -174,34 +171,34 @@ ScRangeData_QsortNameCompare( const void*, const void* );
//------------------------------------------------------------------------
-class ScRangeName : public SortedCollection
+class ScRangeName : public ScSortedCollection
{
private:
ScDocument* pDoc;
USHORT nSharedMaxIndex;
- using SortedCollection::Clone; // calcwarnings: shouldn't be used
+ using ScSortedCollection::Clone; // calcwarnings: shouldn't be used
public:
ScRangeName(USHORT nLim = 4, USHORT nDel = 4, BOOL bDup = FALSE,
ScDocument* pDocument = NULL) :
- SortedCollection ( nLim, nDel, bDup ),
+ ScSortedCollection ( nLim, nDel, bDup ),
pDoc ( pDocument ),
nSharedMaxIndex ( 1 ) {} // darf nicht 0 sein!!
ScRangeName(const ScRangeName& rScRangeName, ScDocument* pDocument);
- virtual DataObject* Clone(ScDocument* pDocP) const
+ virtual ScDataObject* Clone(ScDocument* pDocP) const
{ return new ScRangeName(*this, pDocP); }
ScRangeData* operator[]( const USHORT nIndex) const
{ return (ScRangeData*)At(nIndex); }
- virtual short Compare(DataObject* pKey1, DataObject* pKey2) const;
- virtual BOOL IsEqual(DataObject* pKey1, DataObject* pKey2) const;
+ virtual short Compare(ScDataObject* pKey1, ScDataObject* pKey2) const;
+ virtual BOOL IsEqual(ScDataObject* pKey1, ScDataObject* pKey2) const;
ScRangeData* GetRangeAtCursor( const ScAddress&, BOOL bStartOnly ) const;
- ScRangeData* GetRangeAtBlock( const ScRange& ) const;
+ SC_DLLPUBLIC ScRangeData* GetRangeAtBlock( const ScRange& ) const;
- BOOL SearchName( const String& rName, USHORT& rPos ) const;
+ SC_DLLPUBLIC BOOL SearchName( const String& rName, USHORT& rPos ) const;
// SearchNameUpper must be called with an upper-case search string
BOOL SearchNameUpper( const String& rUpperName, USHORT& rPos ) const;
void UpdateReference(UpdateRefMode eUpdateRefMode,
@@ -210,8 +207,8 @@ public:
void UpdateTabRef(SCTAB nTable, USHORT nFlag, SCTAB nNewTable = 0);
void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest );
void UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY );
- virtual BOOL Insert(DataObject* pDataObject);
- ScRangeData* FindIndex(USHORT nIndex);
+ virtual BOOL Insert(ScDataObject* pScDataObject);
+ SC_DLLPUBLIC ScRangeData* FindIndex(USHORT nIndex);
USHORT GetSharedMaxIndex() { return nSharedMaxIndex; }
void SetSharedMaxIndex(USHORT nInd) { nSharedMaxIndex = nInd; }
USHORT GetEntryIndex();
diff --git a/sc/inc/rangeutl.hxx b/sc/inc/rangeutl.hxx
index 74c1859fd6d3..16db690f495f 100644
--- a/sc/inc/rangeutl.hxx
+++ b/sc/inc/rangeutl.hxx
@@ -107,7 +107,7 @@ public:
//------------------------------------------------------------------------
-class ScRangeStringConverter
+class SC_DLLPUBLIC ScRangeStringConverter
{
public:
diff --git a/sc/inc/refdata.hxx b/sc/inc/refdata.hxx
index 24c5314de7fb..38baadfd7e55 100644
--- a/sc/inc/refdata.hxx
+++ b/sc/inc/refdata.hxx
@@ -33,6 +33,7 @@
#include "global.hxx"
#include "address.hxx"
+#include "scdllapi.h"
// Ref-Flags for old (until release 3.1) documents
@@ -55,7 +56,7 @@ struct OldSingleRefBools
#define SRF_BITS 0x03 // Mask of possible bits
-struct SingleRefData // Single reference (one address) into the sheet
+struct SC_DLLPUBLIC ScSingleRefData // Single reference (one address) into the sheet
{
SCsCOL nCol; // Absolute values
SCsROW nRow;
@@ -115,11 +116,11 @@ struct SingleRefData // Single reference (one address) into the sheet
//UNUSED2008-05 void OldBoolsToNewFlags( const OldSingleRefBools& );
//UNUSED2008-05 BYTE CreateStoreByteFromFlags() const;
//UNUSED2008-05 void CreateFlagsFromLoadByte( BYTE );
- BOOL operator==( const SingleRefData& ) const;
+ BOOL operator==( const ScSingleRefData& ) const;
bool operator!=( const SingleRefData& ) const;
};
-inline void SingleRefData::InitAddress( SCCOL nColP, SCROW nRowP, SCTAB nTabP )
+inline void ScSingleRefData::InitAddress( SCCOL nColP, SCROW nRowP, SCTAB nTabP )
{
InitFlags();
nCol = nColP;
@@ -127,12 +128,12 @@ inline void SingleRefData::InitAddress( SCCOL nColP, SCROW nRowP, SCTAB nTabP )
nTab = nTabP;
}
-inline void SingleRefData::InitAddress( const ScAddress& rAdr )
+inline void ScSingleRefData::InitAddress( const ScAddress& rAdr )
{
InitAddress( rAdr.Col(), rAdr.Row(), rAdr.Tab());
}
-inline void SingleRefData::InitAddressRel( const ScAddress& rAdr,
+inline void ScSingleRefData::InitAddressRel( const ScAddress& rAdr,
const ScAddress& rPos )
{
InitAddress( rAdr.Col(), rAdr.Row(), rAdr.Tab());
@@ -142,7 +143,7 @@ inline void SingleRefData::InitAddressRel( const ScAddress& rAdr,
CalcRelFromAbs( rPos );
}
-inline BOOL SingleRefData::Valid() const
+inline BOOL ScSingleRefData::Valid() const
{
return nCol >= 0 && nCol <= MAXCOL &&
nRow >= 0 && nRow <= MAXROW &&
@@ -150,10 +151,10 @@ inline BOOL SingleRefData::Valid() const
}
-struct ComplRefData // Complex reference (a range) into the sheet
+struct ScComplexRefData // Complex reference (a range) into the sheet
{
- SingleRefData Ref1;
- SingleRefData Ref2;
+ ScSingleRefData Ref1;
+ ScSingleRefData Ref2;
inline void InitFlags()
{ Ref1.InitFlags(); Ref2.InitFlags(); }
@@ -185,13 +186,13 @@ struct ComplRefData // Complex reference (a range) into the sheet
{ return Ref1.Valid() && Ref2.Valid(); }
/// Absolute references have to be up-to-date when calling this!
void PutInOrder();
- inline BOOL operator==( const ComplRefData& r ) const
+ inline BOOL operator==( const ScComplexRefData& r ) const
{ return Ref1 == r.Ref1 && Ref2 == r.Ref2; }
/** Enlarge range if reference passed is not within existing range.
ScAddress position is used to calculate absolute references from
relative references. */
- ComplRefData& Extend( const SingleRefData & rRef, const ScAddress & rPos );
- ComplRefData& Extend( const ComplRefData & rRef, const ScAddress & rPos );
+ ScComplexRefData& Extend( const ScSingleRefData & rRef, const ScAddress & rPos );
+ ScComplexRefData& Extend( const ScComplexRefData & rRef, const ScAddress & rPos );
};
#endif
diff --git a/sc/inc/refreshtimer.hxx b/sc/inc/refreshtimer.hxx
index ac63128e2a06..e8e213484f96 100644
--- a/sc/inc/refreshtimer.hxx
+++ b/sc/inc/refreshtimer.hxx
@@ -33,9 +33,8 @@
#include <tools/list.hxx>
#include <vcl/timer.hxx>
-#ifndef _VOS_MUTEX_HXX
#include <vos/mutex.hxx>
-#endif
+#include <scdllapi.h>
#define SC_REFRESHTIMER_CONTROL_LIST 0
#if SC_REFRESHTIMER_CONTROL_LIST
@@ -153,8 +152,8 @@ public:
void StopRefreshTimer()
{ Stop(); }
- virtual void SetRefreshDelay( ULONG nSeconds );
- virtual void Timeout();
+ SC_DLLPUBLIC virtual void SetRefreshDelay( ULONG nSeconds );
+ SC_DLLPUBLIC virtual void Timeout();
};
diff --git a/sc/inc/rtfimp.hxx b/sc/inc/rtfimp.hxx
deleted file mode 100644
index 7b05e617f6da..000000000000
--- a/sc/inc/rtfimp.hxx
+++ /dev/null
@@ -1,44 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: rtfimp.hxx,v $
- * $Revision: 1.4 $
- *
- * 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 SC_RTFIMP_HXX
-#define SC_RTFIMP_HXX
-
-#include "eeimport.hxx"
-
-class ScRTFImport : public ScEEImport
-{
-public:
- ScRTFImport( ScDocument* pDoc, const ScRange& rRange );
- ~ScRTFImport();
-};
-
-
-#endif
diff --git a/sc/inc/scextopt.hxx b/sc/inc/scextopt.hxx
index 9023983c79c4..4b3f763b4e8c 100644
--- a/sc/inc/scextopt.hxx
+++ b/sc/inc/scextopt.hxx
@@ -96,7 +96,7 @@ struct ScExtDocOptionsImpl;
(struct ScExtDocSettings), settings for all sheets in the document
(struct ScExtTabSettings), and a list of codenames used for VBA import/export.
*/
-class ScExtDocOptions
+class SC_DLLPUBLIC ScExtDocOptions
{
public:
explicit ScExtDocOptions();
diff --git a/sc/inc/scmatrix.hxx b/sc/inc/scmatrix.hxx
index b8af31dd1621..ca5a80b854f5 100644
--- a/sc/inc/scmatrix.hxx
+++ b/sc/inc/scmatrix.hxx
@@ -35,6 +35,7 @@
#include "intruref.hxx"
#include "errorcodes.hxx"
#include <tools/string.hxx>
+#include "scdllapi.h"
class SvStream;
class ScInterpreter;
@@ -87,7 +88,7 @@ union ScMatrixValue
methods don't reset strings. As a consequence memory leaks may occur if
used wrong.
*/
-class ScMatrix
+class SC_DLLPUBLIC ScMatrix
{
ScMatrixValue* pMat;
ScMatValType* mnValType;
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 3e8325e1793a..59decdf2364f 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -586,9 +586,9 @@ public:
SCSIZE Query(ScQueryParam& rQueryParam, BOOL bKeepSub);
BOOL CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
- void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, TypedStrCollection& rStrings);
- void GetFilteredFilterEntries( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, TypedStrCollection& rStrings );
- BOOL GetDataEntries(SCCOL nCol, SCROW nRow, TypedStrCollection& rStrings, BOOL bLimit);
+ void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, TypedScStrCollection& rStrings);
+ void GetFilteredFilterEntries( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, TypedScStrCollection& rStrings );
+ BOOL GetDataEntries(SCCOL nCol, SCROW nRow, TypedScStrCollection& rStrings, BOOL bLimit);
BOOL HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
BOOL HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
diff --git a/sc/inc/textuno.hxx b/sc/inc/textuno.hxx
index 2d50f575d29f..fdad032b8300 100644
--- a/sc/inc/textuno.hxx
+++ b/sc/inc/textuno.hxx
@@ -42,7 +42,7 @@
#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <cppuhelper/implbase3.hxx>
#include <cppuhelper/implbase5.hxx>
-
+#include "scdllapi.h"
class EditEngine;
class EditTextObject;
diff --git a/sc/inc/token.hxx b/sc/inc/token.hxx
index 6702ba3b8d7b..0dd582504aac 100644
--- a/sc/inc/token.hxx
+++ b/sc/inc/token.hxx
@@ -38,7 +38,7 @@
#include "scmatrix.hxx"
#include "intruref.hxx"
#include <tools/mempool.hxx>
-
+#include "scdllapi.h"
enum StackVarEnum
{
@@ -88,10 +88,10 @@ class ScToken;
typedef ScSimpleIntrusiveReference< class ScToken > ScTokenRef;
typedef ScSimpleIntrusiveReference< const class ScToken > ScConstTokenRef;
-typedef ::std::vector< ComplRefData > ScRefList;
+typedef ::std::vector< ScComplexRefData > ScRefList;
-class ScToken
+class SC_DLLPUBLIC ScToken
{
private:
@@ -154,12 +154,12 @@ public:
virtual double GetDouble() const;
virtual double& GetDoubleAsReference();
virtual const String& GetString() const;
- virtual const SingleRefData& GetSingleRef() const;
- virtual SingleRefData& GetSingleRef();
- virtual const ComplRefData& GetDoubleRef() const;
- virtual ComplRefData& GetDoubleRef();
- virtual const SingleRefData& GetSingleRef2() const;
- virtual SingleRefData& GetSingleRef2();
+ virtual const ScSingleRefData& GetSingleRef() const;
+ virtual ScSingleRefData& GetSingleRef();
+ virtual const ScComplexRefData& GetDoubleRef() const;
+ virtual ScComplexRefData& GetDoubleRef();
+ virtual const ScSingleRefData& GetSingleRef2() const;
+ virtual ScSingleRefData& GetSingleRef2();
virtual void CalcAbsIfRel( const ScAddress& );
virtual void CalcRelFromAbs( const ScAddress& );
virtual const ScMatrix* GetMatrix() const;
@@ -327,14 +327,14 @@ public:
class ScSingleRefToken : public ScToken
{
private:
- SingleRefData aSingleRef;
+ ScSingleRefData aSingleRef;
public:
- ScSingleRefToken( const SingleRefData& r ) :
+ ScSingleRefToken( const ScSingleRefData& r ) :
ScToken( svSingleRef ), aSingleRef( r ) {}
ScSingleRefToken( const ScSingleRefToken& r ) :
ScToken( r ), aSingleRef( r.aSingleRef ) {}
- virtual const SingleRefData& GetSingleRef() const;
- virtual SingleRefData& GetSingleRef();
+ virtual const ScSingleRefData& GetSingleRef() const;
+ virtual ScSingleRefData& GetSingleRef();
virtual void CalcAbsIfRel( const ScAddress& );
virtual void CalcRelFromAbs( const ScAddress& );
virtual BOOL operator==( const ScToken& rToken ) const;
@@ -348,14 +348,14 @@ public:
class ScSingleRefOpToken : public ScOpToken
{
private:
- SingleRefData aSingleRef;
+ ScSingleRefData aSingleRef;
public:
- ScSingleRefOpToken( OpCode e, const SingleRefData& r ) :
+ ScSingleRefOpToken( OpCode e, const ScSingleRefData& r ) :
ScOpToken( e, svSingleRef ), aSingleRef( r ) {}
ScSingleRefOpToken( const ScSingleRefOpToken& r ) :
ScOpToken( r ), aSingleRef( r.aSingleRef ) {}
- virtual const SingleRefData& GetSingleRef() const;
- virtual SingleRefData& GetSingleRef();
+ virtual const ScSingleRefData& GetSingleRef() const;
+ virtual ScSingleRefData& GetSingleRef();
virtual void CalcAbsIfRel( const ScAddress& );
virtual void CalcRelFromAbs( const ScAddress& );
virtual BOOL operator==( const ScToken& rToken ) const;
@@ -365,11 +365,11 @@ public:
class ScDoubleRefToken : public ScToken
{
private:
- ComplRefData aDoubleRef;
+ ScComplexRefData aDoubleRef;
public:
- ScDoubleRefToken( const ComplRefData& r ) :
+ ScDoubleRefToken( const ScComplexRefData& r ) :
ScToken( svDoubleRef ), aDoubleRef( r ) {}
- ScDoubleRefToken( const SingleRefData& r ) :
+ ScDoubleRefToken( const ScSingleRefData& r ) :
ScToken( svDoubleRef )
{
aDoubleRef.Ref1 = r;
@@ -377,12 +377,12 @@ public:
}
ScDoubleRefToken( const ScDoubleRefToken& r ) :
ScToken( r ), aDoubleRef( r.aDoubleRef ) {}
- virtual const SingleRefData& GetSingleRef() const;
- virtual SingleRefData& GetSingleRef();
- virtual const ComplRefData& GetDoubleRef() const;
- virtual ComplRefData& GetDoubleRef();
- virtual const SingleRefData& GetSingleRef2() const;
- virtual SingleRefData& GetSingleRef2();
+ virtual const ScSingleRefData& GetSingleRef() const;
+ virtual ScSingleRefData& GetSingleRef();
+ virtual const ScComplexRefData& GetDoubleRef() const;
+ virtual ScComplexRefData& GetDoubleRef();
+ virtual const ScSingleRefData& GetSingleRef2() const;
+ virtual ScSingleRefData& GetSingleRef2();
virtual void CalcAbsIfRel( const ScAddress& );
virtual void CalcRelFromAbs( const ScAddress& );
virtual BOOL operator==( const ScToken& rToken ) const;
@@ -396,11 +396,11 @@ public:
class ScDoubleRefOpToken : public ScOpToken
{
private:
- ComplRefData aDoubleRef;
+ ScComplexRefData aDoubleRef;
public:
- ScDoubleRefOpToken( OpCode e, const ComplRefData& r ) :
+ ScDoubleRefOpToken( OpCode e, const ScComplexRefData& r ) :
ScOpToken( e, svDoubleRef ), aDoubleRef( r ) {}
- ScDoubleRefOpToken( OpCode e, const SingleRefData& r ) :
+ ScDoubleRefOpToken( OpCode e, const ScSingleRefData& r ) :
ScOpToken( e, svDoubleRef )
{
aDoubleRef.Ref1 = r;
@@ -408,12 +408,12 @@ public:
}
ScDoubleRefOpToken( const ScDoubleRefOpToken& r ) :
ScOpToken( r ), aDoubleRef( r.aDoubleRef ) {}
- virtual const SingleRefData& GetSingleRef() const;
- virtual SingleRefData& GetSingleRef();
- virtual const ComplRefData& GetDoubleRef() const;
- virtual ComplRefData& GetDoubleRef();
- virtual const SingleRefData& GetSingleRef2() const;
- virtual SingleRefData& GetSingleRef2();
+ virtual const ScSingleRefData& GetSingleRef() const;
+ virtual ScSingleRefData& GetSingleRef();
+ virtual const ScComplexRefData& GetDoubleRef() const;
+ virtual ScComplexRefData& GetDoubleRef();
+ virtual const ScSingleRefData& GetSingleRef2() const;
+ virtual ScSingleRefData& GetSingleRef2();
virtual void CalcAbsIfRel( const ScAddress& );
virtual void CalcRelFromAbs( const ScAddress& );
virtual BOOL operator==( const ScToken& rToken ) const;
@@ -572,7 +572,7 @@ public:
};
-class ScExternalToken : public ScOpToken
+class SC_DLLPUBLIC ScExternalToken : public ScOpToken
{
private:
String aExternal;
@@ -753,7 +753,7 @@ public:
};
-class ScHybridCellToken : public ScToken
+class SC_DLLPUBLIC ScHybridCellToken : public ScToken
{
private:
double fDouble;
@@ -780,9 +780,9 @@ public:
// ScDoubleRefToken
class SingleDoubleRefModifier
{
- ComplRefData aDub;
- SingleRefData* pS;
- ComplRefData* pD;
+ ScComplexRefData aDub;
+ ScSingleRefData* pS;
+ ScComplexRefData* pD;
// not implemented, prevent usage
SingleDoubleRefModifier( const SingleDoubleRefModifier& );
@@ -803,7 +803,7 @@ public:
pD = &rT.GetDoubleRef();
}
}
- SingleDoubleRefModifier( SingleRefData& rS )
+ SingleDoubleRefModifier( ScSingleRefData& rS )
{
pS = &rS;
aDub.Ref1 = aDub.Ref2 = *pS;
@@ -814,25 +814,25 @@ public:
if ( pS )
*pS = (*pD).Ref1;
}
- inline ComplRefData& Ref() { return *pD; }
+ inline ScComplexRefData& Ref() { return *pD; }
};
class SingleDoubleRefProvider
{
public:
- const SingleRefData& Ref1;
- const SingleRefData& Ref2;
+ const ScSingleRefData& Ref1;
+ const ScSingleRefData& Ref2;
SingleDoubleRefProvider( const ScToken& r )
: Ref1( r.GetSingleRef() ),
Ref2( r.GetType() == svDoubleRef ?
r.GetDoubleRef().Ref2 : Ref1 )
{}
- SingleDoubleRefProvider( const SingleRefData& r )
+ SingleDoubleRefProvider( const ScSingleRefData& r )
: Ref1( r ), Ref2( r )
{}
- SingleDoubleRefProvider( const ComplRefData& r )
+ SingleDoubleRefProvider( const ScComplexRefData& r )
: Ref1( r.Ref1 ), Ref2( r.Ref2 )
{}
~SingleDoubleRefProvider()
diff --git a/sc/inc/tokenarray.hxx b/sc/inc/tokenarray.hxx
index 2460fe8238e9..39bbd5062072 100644
--- a/sc/inc/tokenarray.hxx
+++ b/sc/inc/tokenarray.hxx
@@ -33,6 +33,7 @@
#include "token.hxx"
#include <tools/solar.h>
+#include "scdllapi.h"
// RecalcMode access only via TokenArray SetRecalcMode / IsRecalcMode...
@@ -50,7 +51,7 @@ typedef BYTE ScRecalcMode;
struct ScRawToken;
-class ScTokenArray
+class SC_DLLPUBLIC ScTokenArray
{
friend class ScCompiler;
friend class ScTokenIterator;
@@ -188,10 +189,10 @@ public:
ScToken* AddString( const String& rStr );
ScToken* AddDouble( double fVal );
/** ScSingleRefToken with ocPush. */
- ScToken* AddSingleReference( const SingleRefData& rRef );
+ ScToken* AddSingleReference( const ScSingleRefData& rRef );
/** ScSingleRefOpToken with ocMatRef. */
- ScToken* AddMatrixSingleReference( const SingleRefData& rRef );
- ScToken* AddDoubleReference( const ComplRefData& rRef );
+ ScToken* AddMatrixSingleReference( const ScSingleRefData& rRef );
+ ScToken* AddDoubleReference( const ScComplexRefData& rRef );
ScToken* AddName( USHORT n );
ScToken* AddMatrix( ScMatrix* p );
ScToken* AddExternalName( sal_uInt16 nFileId, const String& rName );
@@ -202,7 +203,7 @@ public:
Others don't use! */
ScToken* AddExternal( const String& rStr, OpCode eOp = ocExternal );
/** ScSingleRefOpToken with ocColRowName. */
- ScToken* AddColRowName( const SingleRefData& rRef );
+ ScToken* AddColRowName( const ScSingleRefData& rRef );
ScToken* AddBad( const sal_Unicode* pStr ); /// ocBad with String
ScToken* AddBad( const String& rStr ); /// ocBad with String
ScToken* MergeArray( );
diff --git a/sc/inc/unitconv.hxx b/sc/inc/unitconv.hxx
index 7b48e3ac68b2..0310bf884d42 100644
--- a/sc/inc/unitconv.hxx
+++ b/sc/inc/unitconv.hxx
@@ -47,7 +47,7 @@ public:
ScUnitConverterData( const ScUnitConverterData& );
virtual ~ScUnitConverterData() {};
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
double GetValue() const { return fValue; }
@@ -57,7 +57,7 @@ public:
};
-class ScUnitConverter : public StrCollection
+class ScUnitConverter : public ScStrCollection
{
// not implemented
ScUnitConverter( const ScUnitConverter& );
diff --git a/sc/inc/userlist.hxx b/sc/inc/userlist.hxx
index 7554cc13e49b..6d0e3720345b 100644
--- a/sc/inc/userlist.hxx
+++ b/sc/inc/userlist.hxx
@@ -36,7 +36,7 @@
#include "collect.hxx"
//------------------------------------------------------------------------
-class SC_DLLPUBLIC ScUserListData : public DataObject
+class SC_DLLPUBLIC ScUserListData : public ScDataObject
{
friend class ScUserList;
String aStr;
@@ -51,7 +51,7 @@ public:
ScUserListData(const ScUserListData& rData);
virtual ~ScUserListData();
- virtual DataObject* Clone() const { return new ScUserListData(*this); }
+ virtual ScDataObject* Clone() const { return new ScUserListData(*this); }
const String& GetString() const { return aStr; }
void SetString( const String& rStr);
@@ -63,13 +63,13 @@ public:
};
//------------------------------------------------------------------------
-class SC_DLLPUBLIC ScUserList : public Collection
+class SC_DLLPUBLIC ScUserList : public ScCollection
{
public:
ScUserList( USHORT nLim = 4, USHORT nDel = 4);
- ScUserList( const ScUserList& rUserList ) : Collection ( rUserList ) {}
+ ScUserList( const ScUserList& rUserList ) : ScCollection ( rUserList ) {}
- virtual DataObject* Clone() const;
+ virtual ScDataObject* Clone() const;
ScUserListData* GetData( const String& rSubStr ) const;
/// If the list in rStr is already inserted
@@ -82,7 +82,7 @@ public:
};
inline ScUserList& ScUserList::operator=( const ScUserList& r )
- { return (ScUserList&)Collection::operator=( r ); }
+ { return (ScUserList&)ScCollection::operator=( r ); }
inline ScUserListData* ScUserList::operator[]( const USHORT nIndex) const
{ return (ScUserListData*)At(nIndex); }
diff --git a/sc/inc/validat.hxx b/sc/inc/validat.hxx
index 02cdbb8fbd2c..575860d90e2b 100644
--- a/sc/inc/validat.hxx
+++ b/sc/inc/validat.hxx
@@ -33,12 +33,13 @@
#include "conditio.hxx"
#include <com/sun/star/sheet/TableValidationVisibility.hpp>
+#include "scdllapi.h"
namespace ValidListType = ::com::sun::star::sheet::TableValidationVisibility;
class ScPatternAttr;
class ScTokenArray;
-class TypedStrCollection;
+class TypedScStrCollection;
enum ScValidationMode
{
@@ -64,7 +65,7 @@ enum ScValidErrorStyle
// Eintrag fuer Gueltigkeit (es gibt nur eine Bedingung)
//
-class ScValidationData : public ScConditionEntry
+class SC_DLLPUBLIC ScValidationData : public ScConditionEntry
{
sal_uInt32 nKey; // Index in Attributen
@@ -130,7 +131,7 @@ public:
@descr Fills the list only, if this is a list validation and IsShowList() is enabled.
@param rStrings (out-param) The string list to fill with list validation entires.
@return true = rStrings has been filled with at least one entry. */
- bool FillSelectionList( TypedStrCollection& rStrings, const ScAddress& rPos ) const;
+ bool FillSelectionList( TypedScStrCollection& rStrings, const ScAddress& rPos ) const;
// mit String: bei Eingabe, mit Zelle: fuer Detektiv / RC_FORCED
BOOL IsDataValid( const String& rTest, const ScPatternAttr& rPattern,
@@ -164,7 +165,7 @@ private:
@param rTokArr Formula token array.
@param rMatch (out-param) the index of the first item that matched, -1 if nothing matched.
@return true = Cell range found, rRange is valid, or an error entry stuffed into the list if pCell==NULL. */
- bool GetSelectionFromFormula( TypedStrCollection* pStrings,
+ bool GetSelectionFromFormula( TypedScStrCollection* pStrings,
ScBaseCell* pCell, const ScAddress& rPos,
const ScTokenArray& rTokArr, int& rMatch ) const;