LibreOffice Module sc (master) 1
|
Contains the position of a shape in the spreadsheet. More...
#include <drawingbase.hxx>
Public Types | |
enum | AnchorType { ANCHOR_INVALID , ANCHOR_ABSOLUTE , ANCHOR_ONECELL , ANCHOR_TWOCELL , ANCHOR_VML } |
Public Types inherited from oox::xls::WorkbookHelper | |
typedef std::pair< ScRangeData *, bool > | RangeDataRet |
Public Member Functions | |
ShapeAnchor (const WorksheetHelper &rHelper) | |
void | importAnchor (sal_Int32 nElement, const AttributeList &rAttribs) |
Imports the shape anchor (one of the elements xdr:absoluteAnchor, xdr:oneCellAnchor, xdr:twoCellAnchor). More... | |
void | importPos (const AttributeList &rAttribs) |
Imports the absolute anchor position from the xdr:pos element. More... | |
void | importExt (const AttributeList &rAttribs) |
Imports the absolute anchor size from the xdr:ext element. More... | |
void | importClientData (const AttributeList &rAttribs) |
Imports the shape client data from the xdr:clientData element. More... | |
void | setCellPos (sal_Int32 nElement, sal_Int32 nParentContext, std::u16string_view rValue) |
Sets an attribute of the cell-dependent anchor position from xdr:from and xdr:to elements. More... | |
void | importVmlAnchor (std::u16string_view rAnchor) |
Imports the client anchor settings from a VML element. More... | |
bool | isAnchorValid () const |
Checks whether the shape is visible based on the anchor. More... | |
::oox::drawingml::EmuRectangle | calcAnchorRectEmu (const css::awt::Size &rPageSizeHmm) const |
Calculates the resulting shape anchor in EMUs. More... | |
css::awt::Rectangle | calcAnchorRectHmm (const css::awt::Size &rPageSizeHmm) const |
Calculates the resulting shape anchor in 1/100 mm. More... | |
AnchorType | getEditAs () const |
Public Member Functions inherited from oox::xls::WorksheetHelper | |
WorksheetHelper (WorksheetGlobals &rSheetGlob) | |
WorksheetType | getSheetType () const |
Returns the type of this sheet. More... | |
SCTAB | getSheetIndex () const |
Returns the index of the current sheet. More... | |
const css::uno::Reference< css::sheet::XSpreadsheet > & | getSheet () const |
Returns the XSpreadsheet interface of the current sheet. More... | |
css::uno::Reference< css::table::XCell > | getCell (const ScAddress &rAddress) const |
Returns the XCell interface for the passed cell address. More... | |
css::uno::Reference< css::table::XCellRange > | getCellRange (const ScRange &rRange) const |
Returns the XCellRange interface for the passed cell range address. More... | |
css::uno::Reference< css::drawing::XDrawPage > | getDrawPage () const |
Returns the XDrawPage interface of the draw page of the current sheet. More... | |
css::awt::Point | getCellPosition (sal_Int32 nCol, sal_Int32 nRow) const |
Returns the absolute cell position in 1/100 mm. More... | |
const css::awt::Size & | getDrawPageSize () const |
Returns the size of the entire drawing page in 1/100 mm. More... | |
SheetDataBuffer & | getSheetData () const |
Returns the buffer for cell contents and cell formatting. More... | |
CondFormatBuffer & | getCondFormats () const |
Returns the conditional formatting in this sheet. More... | |
CommentsBuffer & | getComments () const |
Returns the buffer for all cell comments in this sheet. More... | |
AutoFilterBuffer & | getAutoFilters () const |
Returns the auto filters for the sheet. More... | |
QueryTableBuffer & | getQueryTables () const |
Returns the buffer for all web query tables in this sheet. More... | |
WorksheetSettings & | getWorksheetSettings () const |
Returns the worksheet settings object. More... | |
PageSettings & | getPageSettings () const |
Returns the page/print settings for this sheet. More... | |
SheetViewSettings & | getSheetViewSettings () const |
Returns the view settings for this sheet. More... | |
VmlDrawing & | getVmlDrawing () const |
Returns the VML drawing page for this sheet (OOXML/BIFF12 only). More... | |
ExtLst & | getExtLst () const |
void | setPageBreak (const PageBreakModel &rModel, bool bRowBreak) |
Sets a column or row page break described in the passed struct. More... | |
void | setHyperlink (const HyperlinkModel &rModel) |
Inserts the hyperlink URL into the spreadsheet. More... | |
void | setValidation (const ValidationModel &rModel) |
Inserts the data validation settings into the spreadsheet. More... | |
void | setDrawingPath (const OUString &rDrawingPath) |
Sets the path to the DrawingML fragment of this sheet. More... | |
void | setVmlDrawingPath (const OUString &rVmlDrawingPath) |
Sets the path to the legacy VML drawing fragment of this sheet. More... | |
void | extendUsedArea (const ScAddress &rAddress) |
Extends the used area of this sheet by the passed cell position. More... | |
void | extendUsedArea (const ScRange &rRange) |
Extends the used area of this sheet by the passed cell range. More... | |
void | extendShapeBoundingBox (const css::awt::Rectangle &rShapeRect) |
Extends the shape bounding box by the position and size of the passed rectangle (in 1/100 mm). More... | |
void | setBaseColumnWidth (sal_Int32 nWidth) |
Sets base width for all columns (without padding pixels). More... | |
void | setDefaultColumnWidth (double fWidth) |
Sets default width for all columns. More... | |
void | setColumnModel (const ColumnModel &rModel) |
Sets column settings for a specific range of columns. More... | |
void | setDefaultRowSettings (double fHeight, bool bCustomHeight, bool bHidden, bool bThickTop, bool bThickBottom) |
Sets default height and hidden state for all unused rows in the sheet. More... | |
void | setRowModel (const RowModel &rModel) |
Sets row settings for a specific range of rows. More... | |
void | putRichString (const ScAddress &rAddress, RichString &rString, const oox::xls::Font *pFirstPortionFont, bool bSingleLine=false) |
Inserts a rich-string cell directly into the Calc sheet. More... | |
void | putFormulaTokens (const ScAddress &rAddress, const ApiTokenSequence &rTokens) |
Inserts a formula cell directly into the Calc sheet. More... | |
void | initializeWorksheetImport () |
Initial conversion before importing the worksheet. More... | |
void | finalizeWorksheetImport () |
Final conversion after importing the worksheet. More... | |
void | finalizeDrawingImport () |
Final import of drawing objects. More... | |
void | setCellFormula (const ScAddress &rTokenAddress, const OUString &) |
void | setCellFormula (const ScAddress &rAddr, sal_Int32 nSharedId, const OUString &rCellValue, sal_Int32 nValueType) |
void | setCellArrayFormula (const ScRange &rRangeAddress, const ScAddress &rTokenAddress, const OUString &rTokenStr) |
void | createSharedFormulaMapEntry (const ScAddress &rAddress, sal_Int32 nSharedId, const OUString &rTokens) |
void | setCellFormulaValue (const ScAddress &rAddress, const OUString &rValueStr, sal_Int32 nCellType) |
ScDocument & | getScDocument () |
Public Member Functions inherited from oox::xls::WorkbookHelper | |
WorkbookHelper (WorkbookGlobals &rBookGlob) | |
virtual | ~WorkbookHelper () |
WorkbookHelper (WorkbookHelper const &)=default | |
WorkbookHelper (WorkbookHelper &&)=default | |
WorkbookHelper & | operator= (WorkbookHelper const &)=delete |
WorkbookHelper & | operator= (WorkbookHelper &&)=delete |
::oox::core::FilterBase & | getBaseFilter () const |
Returns the base filter object (base class of all filters). More... | |
SegmentProgressBar & | getProgressBar () const |
Returns the filter progress bar. More... | |
sal_Int16 | getCurrentSheetIndex () const |
Returns the index of the current Calc sheet, if filter currently processes a sheet. More... | |
bool | isGeneratorKnownGood () const |
Returns true when reading a file generated by a known good generator. More... | |
bool | hasCalculatedFormulaCells () const |
Returns true if any formula cell is calculated. More... | |
void | setCalculatedFormulaCells () |
Set if any formula cell is calculated. More... | |
void | setVbaProjectStorage (const StorageRef &rxVbaPrjStrg) |
Sets the VBA project storage used to import VBA source code and forms. More... | |
void | setCurrentSheetIndex (SCTAB nSheet) |
Sets the index of the current Calc sheet, if filter currently processes a sheet. More... | |
void | finalizeWorkbookImport () |
Final conversion after importing the workbook. More... | |
void | useInternalChartDataTable (bool bInternal) |
ScDocument & | getScDocument () |
const ScDocument & | getScDocument () const |
ScDocumentImport & | getDocImport () |
const ScDocumentImport & | getDocImport () const |
ScEditEngineDefaulter & | getEditEngine () const |
const css::uno::Reference< css::sheet::XSpreadsheetDocument > & | getDocument () const |
Returns a reference to the source/target spreadsheet document model. More... | |
css::uno::Reference< css::sheet::XSpreadsheet > | getSheetFromDoc (sal_Int32 nSheet) const |
Returns a reference to the specified spreadsheet in the document model. More... | |
css::uno::Reference< css::sheet::XSpreadsheet > | getSheetFromDoc (const OUString &rSheet) const |
Returns a reference to the specified spreadsheet in the document model. More... | |
css::uno::Reference< css::table::XCellRange > | getCellRangeFromDoc (const ScRange &rRange) const |
Returns the XCellRange interface for the passed cell range address. More... | |
css::uno::Reference< css::container::XNameContainer > | getCellStyleFamily () const |
Returns the cell styles container from the Calc document. More... | |
css::uno::Reference< css::style::XStyle > | getStyleObject (const OUString &rStyleName, bool bPageStyle) const |
Returns the specified cell or page style from the Calc document. More... | |
RangeDataRet | createNamedRangeObject (OUString &orName, sal_Int32 nIndex, sal_Int32 nNameFlags, bool bHidden) const |
Creates and returns a defined name on-the-fly in the Calc document. More... | |
RangeDataRet | createLocalNamedRangeObject (OUString &orName, sal_Int32 nIndex, sal_Int32 nNameFlags, sal_Int32 nTab, bool bHidden) const |
Creates and returns a defined name on-the-fly in the sheet. More... | |
css::uno::Reference< css::sheet::XDatabaseRange > | createDatabaseRangeObject (OUString &orName, const ScRange &rRangeAddr) const |
Creates and returns a database range on-the-fly in the Calc document. More... | |
css::uno::Reference< css::sheet::XDatabaseRange > | createUnnamedDatabaseRangeObject (const ScRange &rRangeAddr) const |
Creates and returns an unnamed database range on-the-fly in the Calc document. More... | |
ScDBData * | findDatabaseRangeByIndex (sal_uInt16 nIndex) const |
Finds the (already existing) database range of the given formula token index. More... | |
css::uno::Reference< css::style::XStyle > | createStyleObject (OUString &orStyleName, bool bPageStyle) const |
Creates and returns a com.sun.star.style.Style object for cells or pages. More... | |
FormulaBuffer & | getFormulaBuffer () const |
WorkbookSettings & | getWorkbookSettings () const |
Returns the global workbook settings object. More... | |
ViewSettings & | getViewSettings () const |
Returns the workbook and sheet view settings object. More... | |
WorksheetBuffer & | getWorksheets () const |
Returns the worksheet buffer containing sheet names and properties. More... | |
ThemeBuffer & | getTheme () const |
Returns the office theme object read from the theme substorage. More... | |
StylesBuffer & | getStyles () const |
Returns all cell formatting objects read from the styles substream. More... | |
SharedStringsBuffer & | getSharedStrings () const |
Returns the shared strings read from the shared strings substream. More... | |
ExternalLinkBuffer & | getExternalLinks () const |
Returns the external links read from the external links substream. More... | |
DefinedNamesBuffer & | getDefinedNames () const |
Returns the defined names read from the workbook globals. More... | |
TableBuffer & | getTables () const |
Returns the tables collection (equivalent to Calc's database ranges). More... | |
ScenarioBuffer & | getScenarios () const |
Returns the scenarios collection. More... | |
ConnectionsBuffer & | getConnections () const |
Returns the collection of external data connections. More... | |
PivotCacheBuffer & | getPivotCaches () const |
Returns the collection of pivot caches. More... | |
PivotTableBuffer & | getPivotTables () const |
Returns the collection of pivot tables. More... | |
FormulaParser & | getFormulaParser () const |
Returns a shared import formula parser (import filter only!). More... | |
FormulaParser * | createFormulaParser () const |
Returns an unshared import formula parser (import filter only!). More... | |
UnitConverter & | getUnitConverter () const |
Returns the measurement unit converter. More... | |
AddressConverter & | getAddressConverter () const |
Returns the converter for string to cell address/range conversion. More... | |
oox::drawingml::chart::ChartConverter * | getChartConverter () const |
Returns the chart object converter. More... | |
PageSettingsConverter & | getPageSettingsConverter () const |
Returns the page and print settings converter. More... | |
::oox::core::XmlFilterBase & | getOoxFilter () const |
Returns the base OOXML/BIFF12 filter object. More... | |
bool | importOoxFragment (const rtl::Reference< oox::core::FragmentHandler > &rxHandler) |
Imports a fragment using the passed fragment handler, which contains the full path to the fragment stream. More... | |
bool | importOoxFragment (const rtl::Reference< oox::core::FragmentHandler > &rxHandler, oox::core::FastParser &rParser) |
rtl_TextEncoding | getTextEncoding () const |
Returns the text encoding used to import/export byte strings. More... | |
Private Types | |
enum class | CellAnchorType { Emu , Pixel } |
Specifies how cell positions from CellAnchorModel have to be processed. More... | |
Private Member Functions | |
::oox::drawingml::EmuPoint | calcCellAnchorEmu (const CellAnchorModel &rModel) const |
Converts the passed anchor to an absolute position in EMUs. More... | |
Private Attributes | |
AnchorType | meAnchorType |
CellAnchorType | meCellAnchorType |
Type of this shape anchor. More... | |
AnchorPointModel | maPos |
Type of the cell anchor models. More... | |
AnchorSizeModel | maSize |
Top-left position, if anchor is of type absolute. More... | |
CellAnchorModel | maFrom |
Anchor size, if anchor is not of type two-cell. More... | |
CellAnchorModel | maTo |
Top-left position, if anchor is not of type absolute. More... | |
AnchorClientDataModel | maClientData |
Bottom-right position, if anchor is of type two-cell. More... | |
AnchorType | meEditAs |
Shape client data. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from oox::xls::WorksheetHelper | |
static WorksheetGlobalsRef | constructGlobals (const WorkbookHelper &rHelper, const ISegmentProgressBarRef &rxProgressBar, WorksheetType eSheetType, SCTAB nSheet) |
static IWorksheetProgress * | getWorksheetInterface (const WorksheetGlobalsRef &xRef) |
Static Public Member Functions inherited from oox::xls::WorkbookHelper | |
static WorkbookGlobalsRef | constructGlobals (ExcelFilter &rFilter) |
Contains the position of a shape in the spreadsheet.
Supports different shape anchor modes (absolute, one-cell, two-cell).
Definition at line 66 of file drawingbase.hxx.
Definition at line 69 of file drawingbase.hxx.
|
strongprivate |
Specifies how cell positions from CellAnchorModel have to be processed.
Enumerator | |
---|---|
Emu | |
Pixel | Offsets are given in EMUs. |
Definition at line 115 of file drawingbase.hxx.
|
explicit |
Definition at line 65 of file drawingbase.cxx.
References oox::xls::Emu.
EmuRectangle oox::xls::ShapeAnchor::calcAnchorRectEmu | ( | const css::awt::Size & | rPageSizeHmm | ) | const |
Calculates the resulting shape anchor in EMUs.
Definition at line 190 of file drawingbase.cxx.
References ANCHOR_ABSOLUTE, ANCHOR_INVALID, ANCHOR_ONECELL, ANCHOR_TWOCELL, ANCHOR_VML, calcCellAnchorEmu(), oox::xls::AddressConverter::checkCol(), oox::xls::AddressConverter::checkRow(), ScAddress::Col(), oox::xls::AddressConverter::createValidCellAddress(), oox::xls::WorkbookHelper::getAddressConverter(), oox::xls::WorksheetHelper::getSheetIndex(), oox::drawingml::EmuSize::Height, oox::xls::AnchorPointModel::isValid(), oox::xls::AnchorSizeModel::isValid(), oox::xls::CellAnchorModel::isValid(), maFrom, maPos, maSize, maTo, meAnchorType, oox::xls::CellAnchorModel::mnCol, oox::xls::CellAnchorModel::mnRow, ScAddress::Row(), oox::drawingml::EmuSize::Width, oox::drawingml::EmuPoint::X, and oox::drawingml::EmuPoint::Y.
Referenced by calcAnchorRectHmm().
css::awt::Rectangle oox::xls::ShapeAnchor::calcAnchorRectHmm | ( | const css::awt::Size & | rPageSizeHmm | ) | const |
Calculates the resulting shape anchor in 1/100 mm.
Definition at line 261 of file drawingbase.cxx.
References calcAnchorRectEmu().
Referenced by oox::xls::VmlDrawing::convertClientAnchor().
|
private |
Converts the passed anchor to an absolute position in EMUs.
Definition at line 267 of file drawingbase.cxx.
References Emu, oox::xls::Emu, oox::xls::WorksheetHelper::getCellPosition(), oox::xls::WorkbookHelper::getUnitConverter(), meCellAnchorType, oox::xls::CellAnchorModel::mnCol, oox::xls::CellAnchorModel::mnColOffset, oox::xls::CellAnchorModel::mnRow, oox::xls::CellAnchorModel::mnRowOffset, Pixel, oox::xls::UnitConverter::scaleValue(), oox::xls::ScreenX, and oox::xls::ScreenY.
Referenced by calcAnchorRectEmu().
|
inline |
Definition at line 107 of file drawingbase.hxx.
References meEditAs.
void oox::xls::ShapeAnchor::importAnchor | ( | sal_Int32 | nElement, |
const AttributeList & | rAttribs | ||
) |
Imports the shape anchor (one of the elements xdr:absoluteAnchor, xdr:oneCellAnchor, xdr:twoCellAnchor).
Definition at line 73 of file drawingbase.cxx.
References ANCHOR_ABSOLUTE, ANCHOR_ONECELL, ANCHOR_TWOCELL, Emu, oox::AttributeList::getXString(), meAnchorType, meCellAnchorType, and meEditAs.
void oox::xls::ShapeAnchor::importClientData | ( | const AttributeList & | rAttribs | ) |
Imports the shape client data from the xdr:clientData element.
Definition at line 120 of file drawingbase.cxx.
References oox::AttributeList::getBool(), maClientData, oox::xls::AnchorClientDataModel::mbLocksWithSheet, and oox::xls::AnchorClientDataModel::mbPrintsWithSheet.
void oox::xls::ShapeAnchor::importExt | ( | const AttributeList & | rAttribs | ) |
Imports the absolute anchor size from the xdr:ext element.
Definition at line 113 of file drawingbase.cxx.
References ANCHOR_ABSOLUTE, ANCHOR_ONECELL, oox::AttributeList::getHyper(), oox::drawingml::EmuSize::Height, maSize, meAnchorType, and oox::drawingml::EmuSize::Width.
void oox::xls::ShapeAnchor::importPos | ( | const AttributeList & | rAttribs | ) |
Imports the absolute anchor position from the xdr:pos element.
Definition at line 106 of file drawingbase.cxx.
References ANCHOR_ABSOLUTE, oox::AttributeList::getHyper(), maPos, meAnchorType, oox::drawingml::EmuPoint::X, and oox::drawingml::EmuPoint::Y.
void oox::xls::ShapeAnchor::importVmlAnchor | ( | std::u16string_view | rAnchor | ) |
Imports the client anchor settings from a VML element.
Definition at line 152 of file drawingbase.cxx.
References ANCHOR_VML, o3tl::getToken(), maFrom, maTo, meAnchorType, meCellAnchorType, oox::xls::CellAnchorModel::mnCol, oox::xls::CellAnchorModel::mnColOffset, oox::xls::CellAnchorModel::mnRow, oox::xls::CellAnchorModel::mnRowOffset, nIndex, Pixel, and o3tl::toInt32().
Referenced by oox::xls::VmlDrawing::convertClientAnchor().
bool oox::xls::ShapeAnchor::isAnchorValid | ( | ) | const |
Checks whether the shape is visible based on the anchor.
If From and To anchor has the same attribute values, the shape will not have width and height and thus we can assume that such kind of shape will be not be visible
Definition at line 180 of file drawingbase.cxx.
References ANCHOR_TWOCELL, maFrom, maTo, meAnchorType, oox::xls::CellAnchorModel::mnCol, oox::xls::CellAnchorModel::mnColOffset, oox::xls::CellAnchorModel::mnRow, and oox::xls::CellAnchorModel::mnRowOffset.
void oox::xls::ShapeAnchor::setCellPos | ( | sal_Int32 | nElement, |
sal_Int32 | nParentContext, | ||
std::u16string_view | rValue | ||
) |
Sets an attribute of the cell-dependent anchor position from xdr:from and xdr:to elements.
Definition at line 126 of file drawingbase.cxx.
References ANCHOR_ONECELL, ANCHOR_TWOCELL, col, from, maFrom, maTo, meAnchorType, oox::xls::CellAnchorModel::mnCol, oox::xls::CellAnchorModel::mnColOffset, oox::xls::CellAnchorModel::mnRow, oox::xls::CellAnchorModel::mnRowOffset, to(), o3tl::toInt32(), and o3tl::toInt64().
|
private |
Bottom-right position, if anchor is of type two-cell.
Definition at line 127 of file drawingbase.hxx.
Referenced by importClientData().
|
private |
Anchor size, if anchor is not of type two-cell.
Definition at line 125 of file drawingbase.hxx.
Referenced by calcAnchorRectEmu(), importVmlAnchor(), isAnchorValid(), and setCellPos().
|
private |
Type of the cell anchor models.
Definition at line 123 of file drawingbase.hxx.
Referenced by calcAnchorRectEmu(), and importPos().
|
private |
Top-left position, if anchor is of type absolute.
Definition at line 124 of file drawingbase.hxx.
Referenced by calcAnchorRectEmu(), and importExt().
|
private |
Top-left position, if anchor is not of type absolute.
Definition at line 126 of file drawingbase.hxx.
Referenced by calcAnchorRectEmu(), importVmlAnchor(), isAnchorValid(), and setCellPos().
|
private |
Definition at line 121 of file drawingbase.hxx.
Referenced by calcAnchorRectEmu(), importAnchor(), importExt(), importPos(), importVmlAnchor(), isAnchorValid(), and setCellPos().
|
private |
Type of this shape anchor.
Definition at line 122 of file drawingbase.hxx.
Referenced by calcCellAnchorEmu(), importAnchor(), and importVmlAnchor().
|
private |
Shape client data.
Definition at line 128 of file drawingbase.hxx.
Referenced by getEditAs(), and importAnchor().