LibreOffice Module sc (master) 1
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
oox::xls::ShapeAnchor Class Referencefinal

Contains the position of a shape in the spreadsheet. More...

#include <drawingbase.hxx>

Inheritance diagram for oox::xls::ShapeAnchor:
[legend]
Collaboration diagram for oox::xls::ShapeAnchor:
[legend]

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...
 
SheetDataBuffergetSheetData () const
 Returns the buffer for cell contents and cell formatting. More...
 
CondFormatBuffergetCondFormats () const
 Returns the conditional formatting in this sheet. More...
 
CommentsBuffergetComments () const
 Returns the buffer for all cell comments in this sheet. More...
 
AutoFilterBuffergetAutoFilters () const
 Returns the auto filters for the sheet. More...
 
QueryTableBuffergetQueryTables () const
 Returns the buffer for all web query tables in this sheet. More...
 
WorksheetSettingsgetWorksheetSettings () const
 Returns the worksheet settings object. More...
 
PageSettingsgetPageSettings () const
 Returns the page/print settings for this sheet. More...
 
SheetViewSettingsgetSheetViewSettings () const
 Returns the view settings for this sheet. More...
 
VmlDrawinggetVmlDrawing () const
 Returns the VML drawing page for this sheet (OOXML/BIFF12 only). More...
 
ExtLstgetExtLst () 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)
 
ScDocumentgetScDocument ()
 
- Public Member Functions inherited from oox::xls::WorkbookHelper
 WorkbookHelper (WorkbookGlobals &rBookGlob)
 
virtual ~WorkbookHelper ()
 
 WorkbookHelper (WorkbookHelper const &)=default
 
 WorkbookHelper (WorkbookHelper &&)=default
 
WorkbookHelperoperator= (WorkbookHelper const &)=delete
 
WorkbookHelperoperator= (WorkbookHelper &&)=delete
 
::oox::core::FilterBasegetBaseFilter () const
 Returns the base filter object (base class of all filters). More...
 
SegmentProgressBargetProgressBar () 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)
 
ScDocumentgetScDocument ()
 
const ScDocumentgetScDocument () const
 
ScDocumentImportgetDocImport ()
 
const ScDocumentImportgetDocImport () const
 
ScEditEngineDefaultergetEditEngine () 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...
 
ScDBDatafindDatabaseRangeByIndex (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...
 
FormulaBuffergetFormulaBuffer () const
 
WorkbookSettingsgetWorkbookSettings () const
 Returns the global workbook settings object. More...
 
ViewSettingsgetViewSettings () const
 Returns the workbook and sheet view settings object. More...
 
WorksheetBuffergetWorksheets () const
 Returns the worksheet buffer containing sheet names and properties. More...
 
ThemeBuffergetTheme () const
 Returns the office theme object read from the theme substorage. More...
 
StylesBuffergetStyles () const
 Returns all cell formatting objects read from the styles substream. More...
 
SharedStringsBuffergetSharedStrings () const
 Returns the shared strings read from the shared strings substream. More...
 
ExternalLinkBuffergetExternalLinks () const
 Returns the external links read from the external links substream. More...
 
DefinedNamesBuffergetDefinedNames () const
 Returns the defined names read from the workbook globals. More...
 
TableBuffergetTables () const
 Returns the tables collection (equivalent to Calc's database ranges). More...
 
ScenarioBuffergetScenarios () const
 Returns the scenarios collection. More...
 
ConnectionsBuffergetConnections () const
 Returns the collection of external data connections. More...
 
PivotCacheBuffergetPivotCaches () const
 Returns the collection of pivot caches. More...
 
PivotTableBuffergetPivotTables () const
 Returns the collection of pivot tables. More...
 
FormulaParsergetFormulaParser () const
 Returns a shared import formula parser (import filter only!). More...
 
FormulaParsercreateFormulaParser () const
 Returns an unshared import formula parser (import filter only!). More...
 
UnitConvertergetUnitConverter () const
 Returns the measurement unit converter. More...
 
AddressConvertergetAddressConverter () const
 Returns the converter for string to cell address/range conversion. More...
 
oox::drawingml::chart::ChartConvertergetChartConverter () const
 Returns the chart object converter. More...
 
PageSettingsConvertergetPageSettingsConverter () const
 Returns the page and print settings converter. More...
 
::oox::core::XmlFilterBasegetOoxFilter () 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 IWorksheetProgressgetWorksheetInterface (const WorksheetGlobalsRef &xRef)
 
- Static Public Member Functions inherited from oox::xls::WorkbookHelper
static WorkbookGlobalsRef constructGlobals (ExcelFilter &rFilter)
 

Detailed Description

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.

Member Enumeration Documentation

◆ AnchorType

Enumerator
ANCHOR_INVALID 
ANCHOR_ABSOLUTE 

Anchor type is unknown.

ANCHOR_ONECELL 

Absolute anchor (top-left corner and size in absolute units).

Matches our "Page" anchor -> ScAnchorType::SCA_PAGE

ANCHOR_TWOCELL 

One-cell anchor (top-left corner at cell, size in absolute units).

Matches our "Cell" anchor -> ScAnchorType::SCA_CELL

ANCHOR_VML 

Two-cell anchor (top-left and bottom-right corner at cell).

Matches our "Cell (resize with cell)" anchor -> ScAnchorType::SCA_CELL_RESIZE

Definition at line 69 of file drawingbase.hxx.

◆ CellAnchorType

enum class oox::xls::ShapeAnchor::CellAnchorType
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.

Constructor & Destructor Documentation

◆ ShapeAnchor()

oox::xls::ShapeAnchor::ShapeAnchor ( const WorksheetHelper rHelper)
explicit

Definition at line 65 of file drawingbase.cxx.

References oox::xls::Emu.

Member Function Documentation

◆ calcAnchorRectEmu()

EmuRectangle oox::xls::ShapeAnchor::calcAnchorRectEmu ( const css::awt::Size &  rPageSizeHmm) const

◆ 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().

◆ calcCellAnchorEmu()

EmuPoint oox::xls::ShapeAnchor::calcCellAnchorEmu ( const CellAnchorModel rModel) const
private

◆ getEditAs()

AnchorType oox::xls::ShapeAnchor::getEditAs ( ) const
inline

Definition at line 107 of file drawingbase.hxx.

References meEditAs.

◆ importAnchor()

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.

◆ importClientData()

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.

◆ importExt()

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.

◆ importPos()

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.

◆ importVmlAnchor()

void oox::xls::ShapeAnchor::importVmlAnchor ( std::u16string_view  rAnchor)

◆ isAnchorValid()

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.

◆ setCellPos()

void oox::xls::ShapeAnchor::setCellPos ( sal_Int32  nElement,
sal_Int32  nParentContext,
std::u16string_view  rValue 
)

Member Data Documentation

◆ maClientData

AnchorClientDataModel oox::xls::ShapeAnchor::maClientData
private

Bottom-right position, if anchor is of type two-cell.

Definition at line 127 of file drawingbase.hxx.

Referenced by importClientData().

◆ maFrom

CellAnchorModel oox::xls::ShapeAnchor::maFrom
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().

◆ maPos

AnchorPointModel oox::xls::ShapeAnchor::maPos
private

Type of the cell anchor models.

Definition at line 123 of file drawingbase.hxx.

Referenced by calcAnchorRectEmu(), and importPos().

◆ maSize

AnchorSizeModel oox::xls::ShapeAnchor::maSize
private

Top-left position, if anchor is of type absolute.

Definition at line 124 of file drawingbase.hxx.

Referenced by calcAnchorRectEmu(), and importExt().

◆ maTo

CellAnchorModel oox::xls::ShapeAnchor::maTo
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().

◆ meAnchorType

AnchorType oox::xls::ShapeAnchor::meAnchorType
private

◆ meCellAnchorType

CellAnchorType oox::xls::ShapeAnchor::meCellAnchorType
private

Type of this shape anchor.

Definition at line 122 of file drawingbase.hxx.

Referenced by calcCellAnchorEmu(), importAnchor(), and importVmlAnchor().

◆ meEditAs

AnchorType oox::xls::ShapeAnchor::meEditAs
private

Shape client data.

Definition at line 128 of file drawingbase.hxx.

Referenced by getEditAs(), and importAnchor().


The documentation for this class was generated from the following files: