diff options
Diffstat (limited to 'oox/inc/oox/ole/olehelper.hxx')
-rw-r--r-- | oox/inc/oox/ole/olehelper.hxx | 79 |
1 files changed, 73 insertions, 6 deletions
diff --git a/oox/inc/oox/ole/olehelper.hxx b/oox/inc/oox/ole/olehelper.hxx index 91ca73a38a67..ba46d3baf6df 100644 --- a/oox/inc/oox/ole/olehelper.hxx +++ b/oox/inc/oox/ole/olehelper.hxx @@ -31,13 +31,49 @@ #include <rtl/ustring.hxx> #include "oox/helper/binarystreambase.hxx" -namespace oox { class BinaryInputStream; } +namespace oox { + class BinaryInputStream; + class GraphicHelper; +} namespace oox { namespace ole { // ============================================================================ +const sal_Char* const OLE_GUID_STDFONT = "{0BE35203-8F91-11CE-9DE3-00AA004BB851}"; +const sal_Char* const OLE_GUID_STDPIC = "{0BE35204-8F91-11CE-9DE3-00AA004BB851}"; +const sal_Char* const OLE_GUID_STDHLINK = "{79EAC9D0-BAF9-11CE-8C82-00AA004BA90B}"; + +// ============================================================================ + +const sal_uInt16 OLE_STDFONT_NORMAL = 400; +const sal_uInt16 OLE_STDFONT_BOLD = 700; + +const sal_uInt8 OLE_STDFONT_ITALIC = 0x02; +const sal_uInt8 OLE_STDFONT_UNDERLINE = 0x04; +const sal_uInt8 OLE_STDFONT_STRIKE = 0x08; + +/** Stores data about a StdFont font structure. */ +struct StdFontInfo +{ + ::rtl::OUString maName; /// Font name. + sal_uInt32 mnHeight; /// Font height (1/10,000 points). + sal_uInt16 mnWeight; /// Font weight (normal/bold). + sal_uInt16 mnCharSet; /// Font charset. + sal_uInt8 mnFlags; /// Font flags. + + explicit StdFontInfo(); + explicit StdFontInfo( + const ::rtl::OUString& rName, + sal_uInt32 nHeight, + sal_uInt16 nWeight = OLE_STDFONT_NORMAL, + sal_uInt16 nCharSet = WINDOWS_CHARSET_ANSI, + sal_uInt8 nFlags = 0 ); +}; + +// ============================================================================ + /** Stores data about a StdHlink hyperlink. */ struct StdHlinkInfo { @@ -53,14 +89,45 @@ struct StdHlinkInfo class OleHelper { public: - /** Imports a GUID from the passed binary stream and returns its string representation. */ + /** Returns the UNO RGB color from the passed encoded OLE color. + + @param bDefaultColorBgr + True = OLE default color type is treated as BGR color. + False = OLE default color type is treated as palette color. + */ + static sal_Int32 decodeOleColor( + const GraphicHelper& rGraphicHelper, + sal_uInt32 nOleColor, + bool bDefaultColorBgr = true ); + + /** Imports a GUID from the passed binary stream and returns its string + representation (in uppercase characters). + */ static ::rtl::OUString importGuid( BinaryInputStream& rInStrm ); - /** Imports an OLE StdPic picture from the current position of the passed binary stream. */ - static bool importStdPic( StreamDataSequence& orGraphicData, BinaryInputStream& rInStrm, bool bWithGuid ); + /** Imports an OLE StdFont font structure from the current position of the + passed binary stream. + */ + static bool importStdFont( + StdFontInfo& orFontInfo, + BinaryInputStream& rInStrm, + bool bWithGuid ); + + /** Imports an OLE StdPic picture from the current position of the passed + binary stream. + */ + static bool importStdPic( + StreamDataSequence& orGraphicData, + BinaryInputStream& rInStrm, + bool bWithGuid ); - /** Imports an OLE StdHlink from the current position of the passed binary stream. */ - static bool importStdHlink( StdHlinkInfo& orHlinkInfo, BinaryInputStream& rInStrm, rtl_TextEncoding eTextEnc, bool bWithGuid ); + /** Imports an OLE StdHlink from the current position of the passed binary + stream. + */ + static bool importStdHlink( + StdHlinkInfo& orHlinkInfo, + BinaryInputStream& rInStrm, + bool bWithGuid ); private: OleHelper(); // not implemented |