LibreOffice Module sc (master)  1
xichart.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #pragma once
21 
23 #include <set>
24 #include <map>
25 #include <memory>
26 #include <vector>
27 
28 #include <types.hxx>
29 #include "xlchart.hxx"
30 #include "xlstyle.hxx"
31 #include "xiescher.hxx"
32 #include "xistring.hxx"
33 
34 namespace com::sun::star {
35  namespace awt
36  {
37  struct Rectangle;
38  }
39  namespace frame
40  {
41  class XModel;
42  }
43  namespace drawing
44  {
45  class XShape;
46  }
47  namespace chart2
48  {
49  struct ScaleData;
50  class XChartDocument;
51  class XDiagram;
52  class XCoordinateSystem;
53  class XChartType;
54  class XDataSeries;
55  class XRegressionCurve;
56  class XAxis;
57  class XLegend;
58  class XTitle;
59  class XFormattedString;
60  namespace data
61  {
62  class XDataProvider;
63  class XDataSequence;
64  class XLabeledDataSequence;
65  }
66  }
67 }
68 
69 struct XclObjLineData;
70 struct XclObjFillData;
71 
72 // Common =====================================================================
73 
74 struct XclImpChRootData;
75 class XclImpChChart;
76 class ScTokenArray;
77 
79 class XclImpChRoot : public XclImpRoot
80 {
81 public:
82  explicit XclImpChRoot( const XclImpRoot& rRoot, XclImpChChart& rChartData );
83  virtual ~XclImpChRoot() override;
84 
85  XclImpChRoot(XclImpChRoot const &) = default;
86  XclImpChRoot(XclImpChRoot &&) = default;
87  XclImpChRoot & operator =(XclImpChRoot const &) = delete; // due to XclImpRoot
88  XclImpChRoot & operator =(XclImpChRoot &&) = delete; // due to XclImpRoot
89 
91  const XclImpChRoot& GetChRoot() const { return *this; }
93  XclImpChChart& GetChartData() const;
95  const XclChTypeInfo& GetChartTypeInfo( XclChTypeId eType ) const;
97  const XclChTypeInfo& GetChartTypeInfo( sal_uInt16 nRecId ) const;
99  const XclChFormatInfo& GetFormatInfo( XclChObjectType eObjType ) const;
100 
102  Color GetFontAutoColor() const;
104  Color GetSeriesLineAutoColor( sal_uInt16 nFormatIdx ) const;
106  Color GetSeriesFillAutoColor( sal_uInt16 nFormatIdx ) const;
107 
109  void InitConversion(
110  const css::uno::Reference< css::chart2::XChartDocument>& xChartDoc,
111  const tools::Rectangle& rChartRect ) const;
112 
114  void FinishConversion( XclImpDffConverter& rDffConv ) const;
115 
117  css::uno::Reference< css::chart2::data::XDataProvider >
118  GetDataProvider() const;
120  css::uno::Reference< css::drawing::XShape >
121  GetTitleShape( const XclChTextKey& rTitleKey ) const;
122 
124  sal_Int32 CalcHmmFromChartX( sal_Int32 nPosX ) const;
126  sal_Int32 CalcHmmFromChartY( sal_Int32 nPosY ) const;
128  css::awt::Rectangle CalcHmmFromChartRect( const XclChRectangle& rRect ) const;
129 
131  double CalcRelativeFromHmmX( sal_Int32 nPosX ) const;
133  double CalcRelativeFromHmmY( sal_Int32 nPosY ) const;
134 
136  double CalcRelativeFromChartX( sal_Int32 nPosX ) const;
138  double CalcRelativeFromChartY( sal_Int32 nPosY ) const;
139 
141  void ConvertLineFormat(
142  ScfPropertySet& rPropSet,
143  const XclChLineFormat& rLineFmt,
144  XclChPropertyMode ePropMode ) const;
146  void ConvertAreaFormat(
147  ScfPropertySet& rPropSet,
148  const XclChAreaFormat& rAreaFmt,
149  XclChPropertyMode ePropMode ) const;
151  void ConvertEscherFormat(
152  ScfPropertySet& rPropSet,
153  const XclChEscherFormat& rEscherFmt,
154  const XclChPicFormat* pPicFmt,
155  sal_uInt32 nDffFillType,
156  XclChPropertyMode ePropMode ) const;
158  void ConvertFont(
159  ScfPropertySet& rPropSet,
160  sal_uInt16 nFontIdx,
161  const Color* pFontColor = nullptr ) const;
162 
164  static void ConvertPieRotation(
165  ScfPropertySet& rPropSet,
166  sal_uInt16 nAngle );
167 
168 private:
169  typedef std::shared_ptr< XclImpChRootData > XclImpChRootDataRef;
170  XclImpChRootDataRef mxChData;
171 };
172 
179 {
180 public:
181  XclImpChGroupBase() = default;
182  XclImpChGroupBase(XclImpChGroupBase const &) = default;
183  XclImpChGroupBase(XclImpChGroupBase &&) = default;
184  XclImpChGroupBase & operator =(XclImpChGroupBase const &) = default;
186 
187  virtual ~XclImpChGroupBase();
188 
195 
197  static void SkipBlock( XclImpStream& rStrm );
198 
200  virtual void ReadHeaderRecord( XclImpStream& rStrm ) = 0;
202  virtual void ReadSubRecord( XclImpStream& rStrm ) = 0;
203 };
204 
205 // Frame formatting ===========================================================
206 
208 {
209 public:
212 
214  const XclChFramePos& GetFramePosData() const { return maData; }
215 
216 private:
218 };
219 
220 typedef std::shared_ptr< XclImpChFramePos > XclImpChFramePosRef;
221 
224 {
225 public:
227  explicit XclImpChLineFormat() {}
229  explicit XclImpChLineFormat( const XclChLineFormat& rLineFmt ) : maData( rLineFmt ) {}
230 
231  // this class is stored both ref-counted and by value
235  : salhelper::SimpleReferenceObject(), maData(std::move(rOther.maData)) {}
237  { maData = rOther.maData; return *this; }
239  { maData = std::move(rOther.maData); return *this; }
240 
242  void ReadChLineFormat( XclImpStream& rStrm );
243 
247  bool HasLine() const { return IsAuto() || (maData.mnPattern != EXC_CHLINEFORMAT_NONE); }
249  sal_Int16 GetWeight() const { return (IsAuto() || !HasLine()) ? EXC_CHLINEFORMAT_SINGLE : maData.mnWeight; }
252 
254  void Convert( const XclImpChRoot& rRoot,
255  ScfPropertySet& rPropSet, XclChObjectType eObjType,
256  sal_uInt16 nFormatIdx = EXC_CHDATAFORMAT_UNKNOWN ) const;
257 
258 private:
260 };
261 
263 
266 {
267 public:
269  explicit XclImpChAreaFormat() {}
271  explicit XclImpChAreaFormat( const XclChAreaFormat& rAreaFmt ) : maData( rAreaFmt ) {}
272 
274  void ReadChAreaFormat( XclImpStream& rStrm );
275 
279  bool HasArea() const { return IsAuto() || (maData.mnPattern != EXC_PATT_NONE); }
280 
282  void Convert( const XclImpChRoot& rRoot,
283  ScfPropertySet& rPropSet, XclChObjectType eObjType,
284  sal_uInt16 nFormatIdx ) const;
285 
286 private:
288 };
289 
290 typedef std::shared_ptr< XclImpChAreaFormat > XclImpChAreaFormatRef;
291 
294 {
295 public:
296  explicit XclImpChEscherFormat( const XclImpRoot& rRoot );
297 
299  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
301  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
302 
304  void Convert( const XclImpChRoot& rRoot, ScfPropertySet& rPropSet,
305  XclChObjectType eObjType, bool bUsePicFmt ) const;
306 
307 private:
310  sal_uInt32 mnDffFillType;
311 };
312 
313 typedef std::shared_ptr< XclImpChEscherFormat > XclImpChEscherFormatRef;
314 
322 {
323 public:
325  explicit XclImpChFrameBase() {}
327  explicit XclImpChFrameBase( const XclChFormatInfo& rFmtInfo );
328 
330  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
331 
333  bool IsAutoLine() const { return !mxLineFmt || mxLineFmt->IsAuto(); }
335  bool HasLine() const { return IsAutoLine() || mxLineFmt->HasLine(); }
337  sal_Int16 GetLineWeight() const { return mxLineFmt ? mxLineFmt->GetWeight() : EXC_CHLINEFORMAT_SINGLE; }
338 
340  bool IsAutoArea() const { return !mxEscherFmt && (!mxAreaFmt || mxAreaFmt->IsAuto()); }
341 
342 protected:
344  void ConvertLineBase( const XclImpChRoot& rRoot,
345  ScfPropertySet& rPropSet, XclChObjectType eObjType,
346  sal_uInt16 nFormatIdx = EXC_CHDATAFORMAT_UNKNOWN ) const;
348  void ConvertAreaBase( const XclImpChRoot& rRoot,
349  ScfPropertySet& rPropSet, XclChObjectType eObjType,
350  sal_uInt16 nFormatIdx = EXC_CHDATAFORMAT_UNKNOWN, bool bUsePicFmt = false ) const;
352  void ConvertFrameBase( const XclImpChRoot& rRoot,
353  ScfPropertySet& rPropSet, XclChObjectType eObjType,
354  sal_uInt16 nFormatIdx = EXC_CHDATAFORMAT_UNKNOWN, bool bUsePicFmt = false ) const;
355 
356 protected:
360 };
361 
368 {
369 public:
371  explicit XclImpChFrame(
372  const XclImpChRoot& rRoot,
373  XclChObjectType eObjType );
374 
376  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
377 
379  void UpdateObjFrame( const XclObjLineData& rLineData, const XclObjFillData& rFillData );
380 
382  void Convert( ScfPropertySet& rPropSet, bool bUsePicFmt = false ) const;
383 
384 private:
387 };
388 
389 typedef std::shared_ptr< XclImpChFrame > XclImpChFrameRef;
390 
391 // Source links ===============================================================
392 
394 {
395 public:
396  explicit XclImpChSourceLink( const XclImpChRoot& rRoot );
397  virtual ~XclImpChSourceLink() override;
398 
402  void SetString( const OUString& rString );
404  void SetTextFormats( const XclFormatRunVec& rFormats );
405 
410 
412  bool HasString() const { return mxString && !mxString->IsEmpty(); }
414  OUString GetString() const {
415  if (mxString) return mxString->GetText();
416  return OUString();
417  }
419  sal_uInt16 GetCellCount() const;
420 
422  void ConvertNumFmt( ScfPropertySet& rPropSet, bool bPercent ) const;
423 
425  css::uno::Reference< css::chart2::data::XDataSequence >
426  CreateDataSequence( const OUString& rRole ) const;
428  css::uno::Sequence< css::uno::Reference< css::chart2::XFormattedString > >
429  CreateStringSequence( const XclImpChRoot& rRoot,
430  sal_uInt16 nLeadFontIdx, const Color& rLeadFontColor ) const;
431 
432  void FillSourceLink(::std::vector<ScTokenRef>& rTokens) const;
433 
434 private:
437  std::shared_ptr< ScTokenArray> mxTokenArray;
438 };
439 
440 typedef std::shared_ptr< XclImpChSourceLink > XclImpChSourceLinkRef;
441 
442 // Text =======================================================================
443 
446 {
447 public:
448  XclImpChFontBase() = default;
449  XclImpChFontBase(XclImpChFontBase const &) = default;
450  XclImpChFontBase(XclImpChFontBase &&) = default;
451  XclImpChFontBase & operator =(XclImpChFontBase const &) = default;
453 
454  virtual ~XclImpChFontBase();
455 
457  virtual sal_uInt16 GetFontIndex() const = 0;
459  virtual Color GetFontColor() const = 0;
461  virtual sal_uInt16 GetRotation() const = 0;
462 
464  void ConvertFontBase( const XclImpChRoot& rRoot, ScfPropertySet& rPropSet ) const;
466  void ConvertRotationBase( ScfPropertySet& rPropSet, bool bSupportsStacked ) const;
467 };
468 
471 {
472 public:
473  explicit XclImpChFont();
475  void ReadChFont( XclImpStream& rStrm );
476 
478  sal_uInt16 GetFontIndex() const { return mnFontIdx; }
479 
480 private:
481  sal_uInt16 mnFontIdx;
482 };
483 
484 typedef std::shared_ptr< XclImpChFont > XclImpChFontRef;
485 
492 {
493 public:
494  explicit XclImpChText( const XclImpChRoot& rRoot );
495 
497  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
499  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
500 
502  virtual sal_uInt16 GetFontIndex() const override;
504  virtual Color GetFontColor() const override;
506  virtual sal_uInt16 GetRotation() const override;
507 
509  void SetString( const OUString& rString );
511  void UpdateText( const XclImpChText* pParentText );
513  void UpdateDataLabel( bool bCateg, bool bValue, bool bPercent );
514 
516  sal_uInt16 GetLinkTarget() const { return maObjLink.mnTarget; }
520  bool HasString() const { return mxSrcLink && mxSrcLink->HasString(); }
523 
525  void ConvertFont( ScfPropertySet& rPropSet ) const;
527  void ConvertRotation( ScfPropertySet& rPropSet, bool bSupportsStacked ) const;
529  void ConvertFrame( ScfPropertySet& rPropSet ) const;
531  void ConvertNumFmt( ScfPropertySet& rPropSet, bool bPercent ) const;
533  void ConvertDataLabel( ScfPropertySet& rPropSet, const XclChTypeInfo& rTypeInfo, const ScfPropertySet* pGlobalPropSet ) const;
535  css::uno::Reference< css::chart2::XTitle >
536  CreateTitle() const;
538  void ConvertTitlePosition( const XclChTextKey& rTitleKey ) const;
539 
540 private:
542 
544  void ReadChFrLabelProps( XclImpStream& rStrm );
545 
546 private:
547  typedef std::shared_ptr< XclChFrLabelProps > XclChFrLabelPropsRef;
548 
556  XclChFrLabelPropsRef mxLabelProps;
557 };
558 
559 typedef std::shared_ptr< XclImpChText > XclImpChTextRef;
560 
561 // Data series ================================================================
562 
565 {
566 public:
569 
572 
574  void Convert( const XclImpChRoot& rRoot, ScfPropertySet& rPropSet,
575  sal_uInt16 nFormatIdx, sal_Int16 nLineWeight ) const;
577  void ConvertColor( const XclImpChRoot& rRoot,
578  ScfPropertySet& rPropSet, sal_uInt16 nFormatIdx ) const;
579 
580 private:
582 };
583 
584 typedef std::shared_ptr< XclImpChMarkerFormat > XclImpChMarkerFormatRef;
585 
588 {
589 public:
590  explicit XclImpChPieFormat();
594  void Convert( ScfPropertySet& rPropSet ) const;
595 
596 private:
597  sal_uInt16 mnPieDist;
598 };
599 
600 typedef std::shared_ptr< XclImpChPieFormat > XclImpChPieFormatRef;
601 
604 {
605 public:
606  explicit XclImpChSeriesFormat();
611 
612 private:
613  sal_uInt16 mnFlags;
614 };
615 
616 typedef std::shared_ptr< XclImpChSeriesFormat > XclImpChSeriesFormatRef;
617 
620 {
621 public:
625  void Convert( ScfPropertySet& rPropSet ) const;
626 
627 private:
629 };
630 
631 typedef std::shared_ptr< XclImpCh3dDataFormat > XclImpCh3dDataFormatRef;
632 
635 {
636 public:
637  explicit XclImpChAttachedLabel( const XclImpChRoot& rRoot );
641  XclImpChTextRef CreateDataLabel( const XclImpChText* pParent ) const;
642 
643 private:
644  sal_uInt16 mnFlags;
645 };
646 
647 typedef std::shared_ptr< XclImpChAttachedLabel > XclImpChAttLabelRef;
648 
656 {
657 public:
658  explicit XclImpChDataFormat( const XclImpChRoot& rRoot );
659 
661  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
663  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
664 
666  void SetPointPos( const XclChDataPointPos& rPointPos, sal_uInt16 nFormatIdx );
668  void SetDataLabel( XclImpChTextRef xLabel ) { mxLabel = xLabel; }
669 
671  void UpdateGroupFormat( const XclChExtTypeInfo& rTypeInfo );
673  void UpdateSeriesFormat( const XclChExtTypeInfo& rTypeInfo, const XclImpChDataFormat* pGroupFmt );
675  void UpdatePointFormat( const XclChExtTypeInfo& rTypeInfo, const XclImpChDataFormat* pSeriesFmt );
677  void UpdateTrendLineFormat();
678 
680  const XclChDataPointPos& GetPointPos() const { return maData.maPointPos; }
682  sal_uInt16 GetFormatIdx() const { return maData.mnFormatIdx; }
684  bool IsAutoMarker() const { return !mxMarkerFmt || mxMarkerFmt->IsAuto(); }
686  bool HasSpline() const { return mxSeriesFmt && mxSeriesFmt->HasSpline(); }
688  const XclImpChText* GetDataLabel() const { return mxLabel.get(); }
689 
691  void Convert( ScfPropertySet& rPropSet, const XclChExtTypeInfo& rTypeInfo, const ScfPropertySet* pGlobalPropSet = nullptr ) const;
693  void ConvertLine( ScfPropertySet& rPropSet, XclChObjectType eObjType ) const;
695  void ConvertArea( ScfPropertySet& rPropSet, sal_uInt16 nFormatIdx ) const;
696 
697 private:
699  void RemoveUnusedFormats( const XclChExtTypeInfo& rTypeInfo );
701  void UpdateDataLabel( const XclImpChDataFormat* pParentFmt );
702 
703 private:
711 };
712 
713 typedef std::shared_ptr< XclImpChDataFormat > XclImpChDataFormatRef;
714 
717 {
718 public:
719  explicit XclImpChSerTrendLine( const XclImpChRoot& rRoot );
720 
724  void SetDataFormat( XclImpChDataFormatRef xDataFmt ) { mxDataFmt = xDataFmt; }
725 
726  void SetTrendlineName( const OUString& aTrendlineName) { maTrendLineName = aTrendlineName; }
727 
729  css::uno::Reference< css::chart2::XRegressionCurve >
730  CreateRegressionCurve() const;
731 
732 private:
733  OUString maTrendLineName;
736 };
737 
738 typedef std::shared_ptr< XclImpChSerTrendLine > XclImpChSerTrendLineRef;
739 
742 {
743 public:
744  explicit XclImpChSerErrorBar( const XclImpChRoot& rRoot );
745 
749  void SetSeriesData(
750  XclImpChSourceLinkRef const & xValueLink,
751  XclImpChDataFormatRef const & xDataFmt );
752 
754  sal_uInt8 GetBarType() const { return maData.mnBarType; }
756  css::uno::Reference< css::chart2::data::XLabeledDataSequence >
757  CreateValueSequence() const;
758 
760  static css::uno::Reference< css::beans::XPropertySet >
762  const XclImpChSerErrorBar* pPosBar,
763  const XclImpChSerErrorBar* pNegBar );
764 
765 private:
769 };
770 
771 
779 {
780 public:
781  explicit XclImpChSeries( const XclImpChRoot& rRoot, sal_uInt16 nSeriesIdx );
782 
784  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
786  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
787 
789  void SetDataFormat( const XclImpChDataFormatRef& xDataFmt );
791  void SetDataLabel( const XclImpChTextRef& xLabel );
793  void AddChildSeries( const XclImpChSeries& rSeries );
795  void FinalizeDataFormats();
796 
798  sal_uInt16 GetGroupIdx() const { return mnGroupIdx; }
800  sal_uInt16 GetParentIdx() const { return mnParentIdx; }
804  bool HasChildSeries() const { return !maTrendLines.empty() || !m_ErrorBars.empty(); }
806  OUString GetTitle() const { return mxTitleLink ? mxTitleLink->GetString() : OUString(); }
807 
809  bool HasSpline() const { return mxSeriesFmt && mxSeriesFmt->HasSpline(); }
810 
812  css::uno::Reference< css::chart2::data::XLabeledDataSequence >
813  CreateValueSequence( const OUString& rValueRole ) const;
815  css::uno::Reference< css::chart2::data::XLabeledDataSequence >
816  CreateCategSequence( const OUString& rCategRole ) const;
818  css::uno::Reference< css::chart2::XDataSeries >
819  CreateDataSeries() const;
820 
821  void FillAllSourceLinks(::std::vector<ScTokenRef>& rTokens) const;
822 
823 private:
825  void ReadChSourceLink( XclImpStream& rStrm );
827  void ReadChDataFormat( XclImpStream& rStrm );
829  void ReadChSerParent( XclImpStream& rStrm );
831  void ReadChSerTrendLine( XclImpStream& rStrm );
833  void ReadChSerErrorBar( XclImpStream& rStrm );
834 
835  void ReadChLegendException( XclImpStream& rStrm );
837  XclImpChDataFormatRef CreateDataFormat( sal_uInt16 nPointIdx, sal_uInt16 nFormatIdx );
838 
840  void ConvertTrendLines( css::uno::Reference< css::chart2::XDataSeries > const & xDataSeries ) const;
842  css::uno::Reference< css::beans::XPropertySet >
843  CreateErrorBar( sal_uInt8 nPosBarId, sal_uInt8 nNegBarId ) const;
844 
845 private:
846  typedef ::std::map<sal_uInt16, XclImpChDataFormatRef> XclImpChDataFormatMap;
847  typedef ::std::map<sal_uInt16, XclImpChTextRef> XclImpChTextMap;
848  typedef ::std::map<sal_uInt8, std::unique_ptr<XclImpChSerErrorBar>> XclImpChSerErrorBarMap;
849 
856  XclImpChDataFormatMap maPointFmts;
857  XclImpChTextMap maLabels;
858  std::vector< XclImpChSerTrendLineRef > maTrendLines;
859  XclImpChSerErrorBarMap m_ErrorBars;
860  sal_uInt16 mnGroupIdx;
861  sal_uInt16 mnSeriesIdx;
862  sal_uInt16 mnParentIdx;
864 };
865 
866 typedef std::shared_ptr< XclImpChSeries > XclImpChSeriesRef;
867 
868 // Chart type groups ==========================================================
869 
870 class XclImpChType : protected XclImpChRoot
871 {
872 public:
873  explicit XclImpChType( const XclImpChRoot& rRoot );
874 
876  void ReadChType( XclImpStream& rStrm );
878  void Finalize( bool bStockChart );
879 
881  sal_uInt16 GetRecId() const { return mnRecId; }
883  const XclChTypeInfo& GetTypeInfo() const { return maTypeInfo; }
885  bool IsStacked() const;
887  bool IsPercent() const;
889  bool HasCategoryLabels() const;
890 
892  css::uno::Reference< css::chart2::XCoordinateSystem >
893  CreateCoordSystem( bool b3dChart ) const;
895  css::uno::Reference< css::chart2::XChartType >
896  CreateChartType( css::uno::Reference< css::chart2::XDiagram > const & xDiagram, bool b3dChart ) const;
897 
898 private:
900  sal_uInt16 mnRecId;
902 };
903 
906 {
907 public:
913  void Convert( ScfPropertySet& rPropSet, bool b3dWallChart ) const;
914 
915 private:
917 };
918 
919 typedef std::shared_ptr< XclImpChChart3d > XclImpChChart3dRef;
920 
927 {
928 public:
929  explicit XclImpChLegend( const XclImpChRoot& rRoot );
930 
932  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
934  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
936  void Finalize();
937 
939  css::uno::Reference< css::chart2::XLegend >
940  CreateLegend() const;
941 
942 private:
947 };
948 
949 typedef std::shared_ptr< XclImpChLegend > XclImpChLegendRef;
950 
957 {
958 public:
959  explicit XclImpChDropBar( sal_uInt16 nDropBar );
960 
962  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
963 
965  void Convert( const XclImpChRoot& rRoot, ScfPropertySet& rPropSet ) const;
966 
967 private:
968  sal_uInt16 mnDropBar;
969  sal_uInt16 mnBarDist;
970 };
971 
972 
982 {
983 public:
984  explicit XclImpChTypeGroup( const XclImpChRoot& rRoot );
985 
987  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
989  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
991  void Finalize();
992 
994  void AddSeries( XclImpChSeriesRef const & xSeries );
996  void SetUsedFormatIndex( sal_uInt16 nFormatIdx );
998  sal_uInt16 PopUnusedFormatIndex();
999 
1001  sal_uInt16 GetGroupIdx() const { return maData.mnGroupIdx; }
1003  const XclChExtTypeInfo& GetTypeInfo() const { return maTypeInfo; }
1005  bool IsValidGroup() const { return !maSeries.empty(); }
1007  bool IsPercent() const { return maType.IsPercent(); }
1009  bool Is3dChart() const { return mxChart3d && maTypeInfo.mbSupports3d; }
1013  bool Is3dDeepChart() const { return Is3dWallChart() && mxChart3d && !mxChart3d->IsClustered(); }
1015  bool HasCategoryLabels() const { return maType.HasCategoryLabels(); }
1017  bool HasVarPointFormat() const;
1019  bool HasConnectorLines() const;
1020 
1022  const XclImpChLegendRef& GetLegend() const { return mxLegend; }
1026  OUString GetSingleSeriesTitle() const;
1027 
1029  void ConvertChart3d( ScfPropertySet& rPropSet ) const;
1031  css::uno::Reference< css::chart2::XCoordinateSystem >
1032  CreateCoordSystem() const;
1034  css::uno::Reference< css::chart2::XChartType >
1035  CreateChartType( css::uno::Reference< css::chart2::XDiagram > const & xDiagram, sal_Int32 nApiAxesSetIdx ) const;
1037  css::uno::Reference< css::chart2::data::XLabeledDataSequence >
1038  CreateCategSequence() const;
1039 
1040 private:
1042  void ReadChDropBar( XclImpStream& rStrm );
1044  void ReadChChartLine( XclImpStream& rStrm );
1046  void ReadChDataFormat( XclImpStream& rStrm );
1047 
1049  bool HasDropBars() const { return !m_DropBars.empty(); }
1050 
1052  void InsertDataSeries( css::uno::Reference< css::chart2::XChartType > const & xChartType,
1053  css::uno::Reference< css::chart2::XDataSeries > const & xSeries,
1054  sal_Int32 nApiAxesSetIdx ) const;
1056  void CreateDataSeries( css::uno::Reference< css::chart2::XChartType > const & xChartType,
1057  sal_Int32 nApiAxesSetIdx ) const;
1059  void CreateStockSeries( css::uno::Reference< css::chart2::XChartType > const & xChartType,
1060  sal_Int32 nApiAxesSetIdx ) const;
1061 
1062 private:
1063  typedef ::std::vector< XclImpChSeriesRef > XclImpChSeriesVec;
1064  typedef ::std::map<sal_uInt16, std::unique_ptr<XclImpChDropBar>> XclImpChDropBarMap;
1065  typedef ::std::map<sal_uInt16, XclImpChLineFormat> XclImpChLineFormatMap;
1066 
1070  XclImpChSeriesVec maSeries;
1074  XclImpChDropBarMap m_DropBars;
1075  XclImpChLineFormatMap m_ChartLines;
1077  std::set< sal_uInt16 >
1079 };
1080 
1081 typedef std::shared_ptr< XclImpChTypeGroup > XclImpChTypeGroupRef;
1082 
1083 // Axes =======================================================================
1084 
1086 {
1087 public:
1088  explicit XclImpChLabelRange( const XclImpChRoot& rRoot );
1092  void ReadChDateRange( XclImpStream& rStrm );
1094  void Convert( ScfPropertySet& rPropSet, css::chart2::ScaleData& rScaleData, bool bMirrorOrient ) const;
1096  void ConvertAxisPosition( ScfPropertySet& rPropSet, bool b3dChart ) const;
1097 
1098 private:
1101 };
1102 
1103 typedef std::shared_ptr< XclImpChLabelRange > XclImpChLabelRangeRef;
1104 
1106 {
1107 public:
1108  explicit XclImpChValueRange( const XclImpChRoot& rRoot );
1112  void Convert( css::chart2::ScaleData& rScaleData, bool bMirrorOrient ) const;
1114  void ConvertAxisPosition( ScfPropertySet& rPropSet ) const;
1115 
1116 private:
1118 };
1119 
1120 typedef std::shared_ptr< XclImpChValueRange > XclImpChValueRangeRef;
1121 
1122 class XclImpChTick : protected XclImpChRoot
1123 {
1124 public:
1125  explicit XclImpChTick( const XclImpChRoot& rRoot );
1127  void ReadChTick( XclImpStream& rStrm );
1128 
1130  bool HasLabels() const { return maData.mnLabelPos != EXC_CHTICK_NOLABEL; }
1132  Color GetFontColor() const;
1134  sal_uInt16 GetRotation() const;
1135 
1137  void Convert( ScfPropertySet& rPropSet ) const;
1138 
1139 private:
1141 };
1142 
1143 typedef std::shared_ptr< XclImpChTick > XclImpChTickRef;
1144 
1152 {
1153 public:
1154  explicit XclImpChAxis( const XclImpChRoot& rRoot, sal_uInt16 nAxisType = EXC_CHAXIS_NONE );
1155 
1157  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
1159  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
1161  void Finalize();
1162 
1164  virtual sal_uInt16 GetFontIndex() const override;
1166  virtual Color GetFontColor() const override;
1168  virtual sal_uInt16 GetRotation() const override;
1169 
1171  sal_uInt16 GetAxisType() const { return maData.mnType; }
1173  sal_Int32 GetApiAxisDimension() const { return maData.GetApiAxisDimension(); }
1174 
1176  css::uno::Reference< css::chart2::XAxis >
1177  CreateAxis( const XclImpChTypeGroup& rTypeGroup, const XclImpChAxis* pCrossingAxis ) const;
1179  void ConvertWall( ScfPropertySet& rPropSet ) const;
1181  void ConvertAxisPosition( ScfPropertySet& rPropSet, const XclImpChTypeGroup& rTypeGroup ) const;
1182 
1183 private:
1185  void ReadChAxisLine( XclImpStream& rStrm );
1187  void CreateWallFrame();
1188 
1189 private:
1199  sal_uInt16 mnNumFmtIdx;
1200 };
1201 
1202 typedef std::shared_ptr< XclImpChAxis > XclImpChAxisRef;
1203 
1211 {
1212 public:
1213  explicit XclImpChAxesSet( const XclImpChRoot& rRoot, sal_uInt16 nAxesSetId );
1214 
1216  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
1218  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
1220  void Finalize();
1221 
1223  bool IsValidAxesSet() const { return !maTypeGroups.empty(); }
1225  sal_uInt16 GetAxesSetId() const { return maData.mnAxesSetId; }
1227  sal_Int32 GetApiAxesSetIndex() const { return maData.GetApiAxesSetIndex(); }
1228 
1232  XclImpChTypeGroupRef GetTypeGroup( sal_uInt16 nGroupIdx ) const;
1236  XclImpChLegendRef GetLegend() const;
1238  OUString GetSingleSeriesTitle() const;
1239 
1241  void Convert( css::uno::Reference< css::chart2::XDiagram > const & xDiagram ) const;
1243  void ConvertTitlePositions() const;
1244 
1245 private:
1247  void ReadChAxis( XclImpStream& rStrm );
1249  void ReadChText( XclImpStream& rStrm );
1251  void ReadChPlotFrame( XclImpStream& rStrm );
1253  void ReadChTypeGroup( XclImpStream& rStrm );
1254 
1256  css::uno::Reference< css::chart2::XCoordinateSystem >
1257  CreateCoordSystem( css::uno::Reference< css::chart2::XDiagram > const & xDiagram ) const;
1259  void ConvertAxis( XclImpChAxisRef const & xChAxis, XclImpChTextRef const & xChAxisTitle,
1260  css::uno::Reference< css::chart2::XCoordinateSystem > const & xCoordSystem,
1261  const XclImpChAxis* pCrossingAxis ) const;
1263  css::uno::Reference< css::chart2::XAxis >
1264  CreateAxis( const XclImpChAxis& rChAxis, const XclImpChAxis* pCrossingAxis ) const;
1266  void ConvertBackground( css::uno::Reference< css::chart2::XDiagram > const & xDiagram ) const;
1267 
1268 private:
1269  typedef ::std::map<sal_uInt16, XclImpChTypeGroupRef> XclImpChTypeGroupMap;
1270 
1280  XclImpChTypeGroupMap maTypeGroups;
1281 };
1282 
1283 typedef std::shared_ptr< XclImpChAxesSet > XclImpChAxesSetRef;
1284 
1285 // The chart object ===========================================================
1286 
1294 {
1295 public:
1296  explicit XclImpChChart( const XclImpRoot& rRoot );
1297  virtual ~XclImpChChart() override;
1298 
1300  virtual void ReadHeaderRecord( XclImpStream& rStrm ) override;
1302  virtual void ReadSubRecord( XclImpStream& rStrm ) override;
1304  void ReadChDefaultText( XclImpStream& rStrm );
1306  void ReadChDataFormat( XclImpStream& rStrm );
1307 
1309  void UpdateObjFrame( const XclObjLineData& rLineData, const XclObjFillData& rFillData );
1310 
1312  XclImpChTypeGroupRef GetTypeGroup( sal_uInt16 nGroupIdx ) const;
1314  const XclImpChText* GetDefaultText( XclChTextType eTextType ) const;
1316  bool IsManualPlotArea() const;
1318  static std::size_t GetProgressSize() { return 2 * EXC_CHART_PROGRESS_SIZE; }
1319 
1321  void Convert(
1322  const css::uno::Reference< css::chart2::XChartDocument>& xChartDoc,
1323  XclImpDffConverter& rDffConv,
1324  const OUString& rObjName,
1325  const tools::Rectangle& rChartRect ) const;
1326 
1327 private:
1329  void ReadChSeries( XclImpStream& rStrm );
1331  void ReadChProperties( XclImpStream& rStrm );
1333  void ReadChAxesSet( XclImpStream& rStrm );
1335  void ReadChText( XclImpStream& rStrm );
1336 
1338  void Finalize();
1340  void FinalizeSeries();
1342  void FinalizeDataFormats();
1344  void FinalizeTitle();
1345 
1347  css::uno::Reference<css::chart2::XDiagram>
1348  CreateDiagram() const;
1349 
1350 private:
1351  typedef ::std::vector< XclImpChSeriesRef > XclImpChSeriesVec;
1352  typedef ::std::map<XclChDataPointPos, XclImpChDataFormatRef> XclImpChDataFormatMap;
1353  typedef ::std::map<sal_uInt16, std::unique_ptr<XclImpChText>> XclImpChTextMap;
1354 
1356  XclImpChSeriesVec maSeries;
1357  XclImpChDataFormatMap maDataFmts;
1360  XclImpChTextMap m_DefTexts;
1365 };
1366 
1367 typedef std::shared_ptr< XclImpChChart > XclImpChChartRef;
1368 
1371 {
1372 public:
1373  explicit XclImpChartDrawing( const XclImpRoot& rRoot, bool bOwnTab );
1374 
1376  void ConvertObjects(
1377  XclImpDffConverter& rDffConv,
1378  const css::uno::Reference< css::frame::XModel >& rxModel,
1379  const tools::Rectangle& rChartRect );
1380 
1382  virtual tools::Rectangle CalcAnchorRect( const XclObjAnchor& rAnchor, bool bDffAnchor ) const override;
1384  virtual void OnObjectInserted( const XclImpDrawObjBase& rDrawObj ) override;
1385 
1386 private:
1389  bool mbOwnTab;
1390 };
1391 
1393 class XclImpChart : protected XclImpRoot
1394 {
1395 public:
1398  explicit XclImpChart( const XclImpRoot& rRoot, bool bOwnTab );
1399  virtual ~XclImpChart() override;
1400 
1405  void UpdateObjFrame( const XclObjLineData& rLineData, const XclObjFillData& rFillData );
1406 
1408  std::size_t GetProgressSize() const;
1410  bool IsPivotChart() const { return mbIsPivotChart; }
1411 
1413  void Convert( css::uno::Reference< css::frame::XModel > const & xModel,
1414  XclImpDffConverter& rDffConv,
1415  const OUString& rObjName,
1416  const tools::Rectangle& rChartRect ) const;
1417 
1418 private:
1422  void ReadChChart( XclImpStream& rStrm );
1423 
1424 private:
1425  typedef std::shared_ptr< XclImpChartDrawing > XclImpChartDrawingRef;
1426 
1428  XclImpChartDrawingRef mxChartDrawing;
1429  bool mbOwnTab;
1431 };
1432 
1433 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHTYPEGROUP group (called by base class).
Definition: xichart.cxx:2686
void UpdateDataLabel(bool bCateg, bool bValue, bool bPercent)
Updates display type of this data point label text object.
Definition: xichart.cxx:1050
XclChPropertyMode
Specifies the type of a formatting.
Definition: xlchart.hxx:1080
bool HasString() const
Returns true, if this text group contains string data.
Definition: xichart.hxx:520
XclImpChLegendRef mxLegend
3D settings (CHCHART3D record).
Definition: xichart.hxx:1073
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHCHART record (called by base class).
Definition: xichart.cxx:3869
XclImpChType(const XclImpChRoot &rRoot)
Definition: xichart.cxx:2212
XclImpChSourceLinkRef mxSrcLink
Relative text frame position (CHFRAMEPOS record).
Definition: xichart.hxx:553
void ConvertAxisPosition(ScfPropertySet &rPropSet) const
Converts position settings of this axis at a crossing axis.
Definition: xichart.cxx:3144
void AddChildSeries(const XclImpChSeries &rSeries)
Adds error bar settings from the passed series to the own series.
Definition: xichart.cxx:1888
void ReadChLegendException(XclImpStream &rStrm)
Definition: xichart.cxx:2203
XclChSeries maData
Definition: xichart.hxx:850
void ConvertRotation(ScfPropertySet &rPropSet, bool bSupportsStacked) const
Converts and writes the contained rotation settings to the passed property set.
Definition: xichart.cxx:1064
void Convert(ScfPropertySet &rPropSet) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:3230
double CalcRelativeFromChartY(sal_Int32 nPosY) const
Converts the passed vertical coordinate from Excel chart units into a relative position.
Definition: xichart.cxx:351
virtual Color GetFontColor() const override
Returns the leading font color for the text object.
Definition: xichart.cxx:1016
void ConvertAxis(XclImpChAxisRef const &xChAxis, XclImpChTextRef const &xChAxisTitle, css::uno::Reference< css::chart2::XCoordinateSystem > const &xCoordSystem, const XclImpChAxis *pCrossingAxis) const
Creates and inserts an axis into the container and registers the coordinate system.
Definition: xichart.cxx:3786
std::shared_ptr< XclImpChRootData > XclImpChRootDataRef
Definition: xichart.hxx:169
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHESCHERFORMAT record (complex fill data) (called by base class).
Definition: xichart.cxx:528
void ReadChSerParent(XclImpStream &rStrm)
Reads a CHSERPARENT record specifying the parent series of this series.
Definition: xichart.cxx:2137
virtual sal_uInt16 GetRotation() const override
Returns the rotation value for the text object.
Definition: xichart.cxx:1021
std::shared_ptr< XclImpChMarkerFormat > XclImpChMarkerFormatRef
Definition: xichart.hxx:584
void UpdateTrendLineFormat()
Updates default data format for trend lines.
Definition: xichart.cxx:1512
const XclImpChText * GetDataLabel() const
Returns the data label text object.
Definition: xichart.hxx:688
bool Is3dChart() const
Returns true, if the chart is three-dimensional.
Definition: xichart.hxx:1009
css::uno::Reference< css::beans::XPropertySet > CreateErrorBar(sal_uInt8 nPosBarId, sal_uInt8 nNegBarId) const
Tries to create an error bar API object from the specified Excel error bars.
Definition: xichart.cxx:2192
void InsertDataSeries(css::uno::Reference< css::chart2::XChartType > const &xChartType, css::uno::Reference< css::chart2::XDataSeries > const &xSeries, sal_Int32 nApiAxesSetIdx) const
Inserts the passed series into the chart type.
Definition: xichart.cxx:2866
XclImpChFramePosRef mxFramePos
Formatting runs (CHFORMATRUNS record).
Definition: xichart.hxx:552
XclImpChAttachedLabel(const XclImpChRoot &rRoot)
Definition: xichart.cxx:1364
std::shared_ptr< XclImpChSeries > XclImpChSeriesRef
Definition: xichart.hxx:866
void ReadChMarkerFormat(XclImpStream &rStrm)
Reads the CHMARKERFORMAT record (data point marker properties).
Definition: xichart.cxx:1272
XclImpChLabelRangeRef mxLabelRange
Contents of the CHAXIS record.
Definition: xichart.hxx:1191
XclChAxesSet maData
Definition: xichart.hxx:1271
sal_uInt16 GetAxesSetId() const
Returns the index of the axes set (primary/secondary).
Definition: xichart.hxx:1225
XclCh3dDataFormat maData
Definition: xichart.hxx:628
bool IsValidGroup() const
Returns true, if this chart type group contains at least one valid series.
Definition: xichart.hxx:1005
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHLEGEND record (called by base class).
Definition: xichart.cxx:2512
bool HasVarPointFormat() const
Returns true, if points of a series show varying automatic area format.
Definition: xichart.cxx:2759
void ConvertWall(ScfPropertySet &rPropSet) const
Converts and writes 3D wall/floor properties to the passed property set.
Definition: xichart.cxx:3453
void ConvertFrame(ScfPropertySet &rPropSet) const
Converts and writes the contained frame data to the passed property set.
Definition: xichart.cxx:1069
bool IsPivotChart() const
Returns true, if the chart is based on a pivot table.
Definition: xichart.hxx:1410
Represents the CHFRAME record group containing object frame properties.
Definition: xichart.hxx:367
XclImpChEscherFormatRef mxEscherFmt
Area format (CHAREAFORMAT record).
Definition: xichart.hxx:359
virtual ~XclImpChChart() override
Definition: xichart.cxx:3865
std::shared_ptr< XclImpChSerTrendLine > XclImpChSerTrendLineRef
Definition: xichart.hxx:738
void ConvertChart3d(ScfPropertySet &rPropSet) const
Converts and writes all 3D settings to the passed diagram.
Definition: xichart.cxx:2784
XclImpChTextRef mxText
Legend frame position (CHFRAMEPOS record).
Definition: xichart.hxx:945
XclImpChAreaFormatRef mxAreaFmt
Line format (CHLINEFORMAT record).
Definition: xichart.hxx:358
const XclChFormatInfo & GetFormatInfo(XclChObjectType eObjType) const
Returns an info struct about auto formatting for the passed object type.
Definition: xichart.cxx:241
void ReadChPieFormat(XclImpStream &rStrm)
Reads the CHPIEFORMAT record (pie segment properties).
Definition: xichart.cxx:1328
Contains information for a chart type.
Definition: xlchart.hxx:1206
sal_uInt16 mnFlags
Marker type (none, diamond, ...).
Definition: xlchart.hxx:892
Color GetFontAutoColor() const
Returns the default text color for charts.
Definition: xichart.cxx:246
XclChText maData
Definition: xichart.hxx:549
void UpdateDataLabel(const XclImpChDataFormat *pParentFmt)
Updates or creates the data point label.
Definition: xichart.cxx:1585
bool HasCategoryLabels() const
Returns true, if chart type has category labels enabled (may be disabled in radar charts)...
Definition: xichart.cxx:2355
void SetSeriesData(XclImpChSourceLinkRef const &xValueLink, XclImpChDataFormatRef const &xDataFmt)
Sets link and formatting information for the error bars.
Definition: xichart.cxx:1698
bool HasLine() const
Returns true, if the line style is set to something visible.
Definition: xichart.hxx:335
void ReadChTypeGroup(XclImpStream &rStrm)
Reads a CHTYPEGROUP record group containing chart type and chart settings.
Definition: xichart.cxx:3719
XclChTypeInfo maTypeInfo
Record identifier for chart type.
Definition: xichart.hxx:901
void Convert(css::uno::Reference< css::frame::XModel > const &xModel, XclImpDffConverter &rDffConv, const OUString &rObjName, const tools::Rectangle &rChartRect) const
Creates the chart object in the passed component.
Definition: xichart.cxx:4391
void Convert(ScfPropertySet &rPropSet, const XclChExtTypeInfo &rTypeInfo, const ScfPropertySet *pGlobalPropSet=nullptr) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:1527
XclImpChDataFormatRef CreateDataFormat(sal_uInt16 nPointIdx, sal_uInt16 nFormatIdx)
Creates a new CHDATAFORMAT group with the specified point index.
Definition: xichart.cxx:2162
void ConvertAxisPosition(ScfPropertySet &rPropSet, bool b3dChart) const
Converts position settings of this axis at a crossing axis.
Definition: xichart.cxx:3052
void ConvertLine(ScfPropertySet &rPropSet, XclChObjectType eObjType) const
Writes the line format only, e.g.
Definition: xichart.cxx:1562
Represents the CHDATAFORMAT record group containing data point properties.
Definition: xichart.hxx:655
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHDATAFORMAT group (called by base class).
Definition: xichart.cxx:1406
void Convert(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, XclChObjectType eObjType, sal_uInt16 nFormatIdx) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:502
XclFormatRunVec maFormats
Link target for this text object.
Definition: xichart.hxx:551
void Convert(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, XclChObjectType eObjType, bool bUsePicFmt) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:553
void ConvertArea(ScfPropertySet &rPropSet, sal_uInt16 nFormatIdx) const
Writes the area format only for the series or a data point.
Definition: xichart.cxx:1567
bool IsManualPlotArea() const
Returns true, if the plot area has benn moved and/or resized manually.
Definition: xichart.cxx:3965
void ReadChSeriesFormat(XclImpStream &rStrm)
Reads the CHSERIESFORMAT record (additional settings for a series).
Definition: xichart.cxx:1344
XclImpChAttLabelRef mxAttLabel
3D bar format (CH3DDATAFORMAT record).
Definition: xichart.hxx:709
bool IsAutoArea() const
Returns true, if the area format is set to automatic.
Definition: xichart.hxx:340
XclImpChDataFormatRef mxSeriesFmt
Link data for series bubble sizes.
Definition: xichart.hxx:855
static void ConvertPieRotation(ScfPropertySet &rPropSet, sal_uInt16 nAngle)
Writes the pie rotation property for the passed angle.
Definition: xichart.cxx:384
std::shared_ptr< XclImpChAreaFormat > XclImpChAreaFormatRef
Definition: xichart.hxx:290
virtual sal_uInt16 GetFontIndex() const override
Returns the leading font index for the text object.
Definition: xichart.cxx:1011
void Convert(css::uno::Reference< css::chart2::XDiagram > const &xDiagram) const
Creates a coordinate system and converts all series and axis settings.
Definition: xichart.cxx:3641
XclImpChDataFormatMap maPointFmts
CHDATAFORMAT group for series format.
Definition: xichart.hxx:856
XclImpChAxesSetRef mxSecnAxesSet
Primary axes set (CHAXESSET group).
Definition: xichart.hxx:1362
bool mbOwnTab
Drawing container for embedded shapes.
Definition: xichart.hxx:1429
bool mbIsPivotChart
true = own sheet; false = embedded object.
Definition: xichart.hxx:1430
sal_uInt16 mnBarDist
Drop bar identifier, needed for auto format.
Definition: xichart.hxx:969
std::shared_ptr< XclImpChartDrawing > XclImpChartDrawingRef
Definition: xichart.hxx:1425
void ConvertAxisPosition(ScfPropertySet &rPropSet, const XclImpChTypeGroup &rTypeGroup) const
Converts position settings of this axis at a crossing axis.
Definition: xichart.cxx:3460
XclImpChValueRangeRef mxValueRange
Category scaling (CHLABELRANGE record).
Definition: xichart.hxx:1192
void SetDataLabel(const XclImpChTextRef &xLabel)
Sets a label text (CHTEXT group) attached to a series or data point.
Definition: xichart.cxx:1870
void ReadChDataFormat(XclImpStream &rStrm)
Reads a CHDATAFORMAT group containing series and point formatting.
Definition: xichart.cxx:2131
XclChObjectType meObjType
Contents of the CHFRAME record.
Definition: xichart.hxx:386
XclImpChSeriesFormatRef mxSeriesFmt
Pie segment format (CHPIEFORMAT record).
Definition: xichart.hxx:707
XclChTypeGroup maData
Definition: xichart.hxx:1067
XclImpChLineFormatRef mxAxisLine
Index into font buffer (CHFONT record).
Definition: xichart.hxx:1195
css::uno::Reference< css::chart2::data::XLabeledDataSequence > CreateValueSequence() const
Creates a labeled data sequence object from value data link.
Definition: xichart.cxx:1704
sal_uInt16 mnNumFmtIdx
Wall/floor format (sub records of CHFRAME group).
Definition: xichart.hxx:1199
XclImpChSerTrendLine(const XclImpChRoot &rRoot)
Definition: xichart.cxx:1603
XclImpChPieFormatRef mxPieFmt
Data point marker (CHMARKERFORMAT record).
Definition: xichart.hxx:706
void ConvertRotationBase(ScfPropertySet &rPropSet, bool bSupportsStacked) const
Converts and writes the contained rotation settings to the passed property set.
Definition: xichart.cxx:927
exports com.sun.star. awt
Contains information about auto formatting of a specific chart object type.
Definition: xlchart.hxx:1138
bool HasSpline() const
Returns true, if the series line is smoothed.
Definition: xichart.hxx:610
std::shared_ptr< XclImpChLegend > XclImpChLegendRef
Definition: xichart.hxx:949
XclImpChChart & GetChartData() const
Returns a reference to the parent chart data object.
Definition: xichart.cxx:226
XclImpChSeriesVec maSeries
Extended chart type info.
Definition: xichart.hxx:1070
void ReadChDropBar(XclImpStream &rStrm)
Reads a CHDROPBAR record group.
Definition: xichart.cxx:2828
const std::size_t EXC_CHART_PROGRESS_SIZE
Definition: xlchart.hxx:151
XclImpChFrameRef mxPlotFrame
The Z axis title (CHTEXT group).
Definition: xichart.hxx:1279
void Finalize(bool bStockChart)
Final processing after reading the entire chart.
Definition: xichart.cxx:2277
XclImpChChart3dRef mxChart3d
First series in this chart type group (CHSERIES groups).
Definition: xichart.hxx:1072
void Convert(ScfPropertySet &rPropSet, bool b3dWallChart) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:2440
sal_uInt8 mnLabelPos
Type of tick marks of minor grid.
Definition: xlchart.hxx:1048
sal_uInt16 GetGroupIdx() const
Returns the axes set identifier this series is assigned to (primary/secondary).
Definition: xichart.hxx:798
static void SkipBlock(XclImpStream &rStrm)
Helper to skip a CHBEGIN/CHEND block, includes nested blocks.
Definition: xichart.cxx:424
bool IsAutoMarker() const
Returns true, if markers are set to automatic format.
Definition: xichart.hxx:684
void Finalize()
Final processing after reading the entire chart.
Definition: xichart.cxx:2715
XclImpChAxesSet(const XclImpChRoot &rRoot, sal_uInt16 nAxesSetId)
Definition: xichart.cxx:3530
std::shared_ptr< XclImpChAxis > XclImpChAxisRef
Definition: xichart.hxx:1202
XclChExtTypeInfo maTypeInfo
Chart type (e.g. CHBAR, CHLINE, ...).
Definition: xichart.hxx:1069
XclChAreaFormat maData
Definition: xichart.hxx:287
Color GetFontColor() const
Returns the leading font color for the axis labels.
Definition: xichart.cxx:3215
std::shared_ptr< XclImpChChart > XclImpChChartRef
Definition: xichart.hxx:1367
XclImpChType maType
Contents of the CHTYPEGROUP record.
Definition: xichart.hxx:1068
sal_Int16 GetWeight() const
Returns the line width of this line format (returns 'single', if the line is invisible).
Definition: xichart.hxx:249
void ReadChLineFormat(XclImpStream &rStrm)
Reads the CHLINEFORMAT record (basic line properties).
Definition: xichart.cxx:453
void ReadChSourceLink(XclImpStream &rStrm)
Reads a CHSOURCELINK record.
Definition: xichart.cxx:2118
sal_uInt16 GetLinkTarget() const
Returns the target object this text is linked to.
Definition: xichart.hxx:516
Represents the CHSERIES record group describing a data series in a chart.
Definition: xichart.hxx:778
XclImpChSeriesRef mxFirstSeries
Series attached to this chart type group (CHSERIES groups).
Definition: xichart.hxx:1071
void ConvertTitlePosition(const XclChTextKey &rTitleKey) const
Converts the manual position of the specified title.
Definition: xichart.cxx:1172
XclChObjectLink maObjLink
Contents of the CHTEXT record.
Definition: xichart.hxx:550
XclImpChChart(const XclImpRoot &rRoot)
Definition: xichart.cxx:3858
XclChValueRange maData
Definition: xichart.hxx:1117
void FinalizeSeries()
Finalizes series list, assigns child series to parent series.
Definition: xichart.cxx:4139
XclImpChSourceLinkRef mxValueLink
Contents of the CHSERIES record.
Definition: xichart.hxx:851
virtual ~XclImpChGroupBase()
Definition: xichart.cxx:390
virtual tools::Rectangle CalcAnchorRect(const XclObjAnchor &rAnchor, bool bDffAnchor) const override
Calculate the resulting rectangle of the passed anchor.
Definition: xichart.cxx:4266
void ReadChType(XclImpStream &rStrm)
Reads a chart type record (e.g.
Definition: xichart.cxx:2219
css::uno::Reference< css::chart2::XDataSeries > CreateDataSeries() const
Creates a data series object with initialized source links.
Definition: xichart.cxx:2022
void Convert(ScfPropertySet &rPropSet, css::chart2::ScaleData &rScaleData, bool bMirrorOrient) const
Converts category axis scaling settings.
Definition: xichart.cxx:3009
const sal_uInt16 EXC_CHSERIES_INVALID
Maximum valid series index.
Definition: xlchart.hxx:232
sal_uInt16 GetAxisType() const
Returns the type of this axis.
Definition: xichart.hxx:1171
XclImpChAxisRef mxXAxis
Outer plot area position (CHFRAMEPOS record).
Definition: xichart.hxx:1273
css::uno::Reference< css::chart2::XRegressionCurve > CreateRegressionCurve() const
Creates an API object representing this trend line.
Definition: xichart.cxx:1619
::std::vector< XclImpChSeriesRef > XclImpChSeriesVec
Definition: xichart.hxx:1063
sal_uInt16 GetParentIdx() const
Returns the 0-based index of the parent series (e.g.
Definition: xichart.hxx:800
sal_uInt8 mnBarType
Number of custom error values.
Definition: xlchart.hxx:931
A map key for text and title objects.
Definition: xlchart.hxx:1277
virtual Color GetFontColor() const override
Returns the font color for the axis labels.
Definition: xichart.cxx:3317
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHESCHERFORMAT group (called by base class).
Definition: xichart.cxx:540
OUString GetTitle() const
Returns series title or an empty string, if the series does not contain a title.
Definition: xichart.hxx:806
void UpdateObjFrame(const XclObjLineData &rLineData, const XclObjFillData &rFillData)
Sets formatting from BIFF3-BIFF5 OBJ record, if own formatting is invisible.
Definition: xichart.cxx:3933
void Convert(ScfPropertySet &rPropSet, bool bUsePicFmt=false) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:697
XclImpChLegendRef GetLegend() const
Looks for a legend in all chart type groups and returns it.
Definition: xichart.cxx:3624
css::awt::Rectangle CalcHmmFromChartRect(const XclChRectangle &rRect) const
Converts the passed rectangle from Excel chart units into 1/100 mm.
Definition: xichart.cxx:321
XclChTextType
Enumerates different text box types for default text formatting and title positioning.
Definition: xlchart.hxx:1267
void FinishConversion(XclImpDffConverter &rDffConv) const
Finishes the API chart document conversion.
Definition: xichart.cxx:289
void ReadChSerTrendLine(XclImpStream &rStrm)
Reads the CHSERTRENDLINE record.
Definition: xichart.cxx:1608
XclImpChTextRef mxXAxisTitle
The Z axis (CHAXIS group).
Definition: xichart.hxx:1276
void ConvertAreaFormat(ScfPropertySet &rPropSet, const XclChAreaFormat &rAreaFmt, XclChPropertyMode ePropMode) const
Writes solid area properties to the passed property set.
Definition: xichart.cxx:363
sal_uInt16 mnFlags
Definition: xichart.hxx:644
The CHATTACHEDLABEL record that contains the type of a data point label.
Definition: xichart.hxx:634
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHDROPBAR record (called by base class).
Definition: xichart.cxx:2653
css::uno::Reference< css::chart2::XAxis > CreateAxis(const XclImpChAxis &rChAxis, const XclImpChAxis *pCrossingAxis) const
Creates and returns an API axis object.
Definition: xichart.cxx:3823
XclImpChAreaFormat()
Creates a new area format object with automatic formatting.
Definition: xichart.hxx:269
bool HasSpline() const
Returns true, if the series line is smoothed.
Definition: xichart.hxx:686
void ReadChFrLabelProps(XclImpStream &rStrm)
Reads a CHFRLABELPROPS record.
Definition: xichart.cxx:1227
XclChDateRange maDateData
Contents of the CHLABELRANGE record.
Definition: xichart.hxx:1100
void ReadChAttachedLabel(XclImpStream &rStrm)
Reads the CHATTACHEDLABEL record (data series/point labels).
Definition: xichart.cxx:1370
bool mbSupports3d
true = Types can be combined in one axes set.
Definition: xlchart.hxx:1215
bool Is3dDeepChart() const
Returns true, if the series in this chart type group are ordered on the Z axis.
Definition: xichart.hxx:1013
bool HasParentSeries() const
Returns true, if the series is child of another series (e.g.
Definition: xichart.hxx:802
void ReadChFont(XclImpStream &rStrm)
Reads the CHFONT record (font index).
Definition: xichart.cxx:937
XclImpChLineFormatRef mxMajorGrid
Axis line format (CHLINEFORMAT record).
Definition: xichart.hxx:1196
void Convert(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, XclChObjectType eObjType, sal_uInt16 nFormatIdx=EXC_CHDATAFORMAT_UNKNOWN) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:466
XclImpChLineFormatRef mxLineFmt
Definition: xichart.hxx:357
double CalcRelativeFromHmmX(sal_Int32 nPosX) const
Converts the passed horizontal coordinate from 1/100 mm into a relative position. ...
Definition: xichart.cxx:330
void Convert(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet) const
Converts and writes the contained frame data to the passed property set.
Definition: xichart.cxx:2658
exports com.sun.star. chart2
Extended chart type information and access functions.
Definition: xlchart.hxx:1228
XclImpChGroupBase()=default
sal_uInt16 mnFlags
Background mode: transparent, opaque.
Definition: xlchart.hxx:877
void ReadChDateRange(XclImpStream &rStrm)
Reads the CHDATERANGE record (date axis scaling properties).
Definition: xichart.cxx:2996
bool HasConnectorLines() const
Returns true, if bars are connected with lines (stacked bar charts only).
Definition: xichart.cxx:2767
void ReadChTick(XclImpStream &rStrm)
Reads the CHTICK record (axis ticks properties).
Definition: xichart.cxx:3190
sal_uInt16 mnPattern
Line color.
Definition: xlchart.hxx:791
void RemoveUnusedFormats(const XclChExtTypeInfo &rTypeInfo)
Removes unused formatting (e.g.
Definition: xichart.cxx:1572
void ConvertBackground(css::uno::Reference< css::chart2::XDiagram > const &xDiagram) const
Writes all properties of the background area to the passed diagram.
Definition: xichart.cxx:3831
std::shared_ptr< XclImpChText > XclImpChTextRef
Definition: xichart.hxx:559
sal_Int32 CalcHmmFromChartY(sal_Int32 nPosY) const
Converts the passed vertical coordinate from Excel chart units into 1/100 mm.
Definition: xichart.cxx:316
void ReadRecordGroup(XclImpStream &rStrm)
Reads the entire record group.
Definition: xichart.cxx:394
sal_uInt16 mnType
Definition: xlchart.hxx:1058
exports com.sun.star. frame
std::shared_ptr< XclChFrLabelProps > XclChFrLabelPropsRef
Definition: xichart.hxx:547
void ConvertEscherFormat(ScfPropertySet &rPropSet, const XclChEscherFormat &rEscherFmt, const XclChPicFormat *pPicFmt, sal_uInt32 nDffFillType, XclChPropertyMode ePropMode) const
Writes gradient or bitmap area properties to the passed property set.
Definition: xichart.cxx:369
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHCHART group (called by base class).
Definition: xichart.cxx:3875
virtual sal_uInt16 GetRotation() const override
Returns the rotation value for axis labels.
Definition: xichart.cxx:3322
const sal_uInt16 EXC_CHAXIS_NONE
Definition: xlchart.hxx:396
OUString maTrendLineName
Definition: xichart.hxx:733
Base class for a container for all objects on a drawing (spreadsheet or embedded chart object)...
Definition: xiescher.hxx:1042
void CreateDataSeries(css::uno::Reference< css::chart2::XChartType > const &xChartType, sal_Int32 nApiAxesSetIdx) const
Creates all data series of any chart type except stock charts.
Definition: xichart.cxx:2897
void ConvertFrameBase(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, XclChObjectType eObjType, sal_uInt16 nFormatIdx=EXC_CHDATAFORMAT_UNKNOWN, bool bUsePicFmt=false) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:631
XclImpChart(const XclImpRoot &rRoot, bool bOwnTab)
Constructs a new chart object.
Definition: xichart.cxx:4287
XclImpChLegend(const XclImpChRoot &rRoot)
Definition: xichart.cxx:2507
sal_uInt16 mnDropBar
Definition: xichart.hxx:968
sal_Int16 mnWeight
Line pattern (solid, dashed, ...).
Definition: xlchart.hxx:792
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHTEXT group (called by base class).
Definition: xichart.cxx:972
void FinalizeDataFormats()
Updates missing series formatting by using default formatting from axes sets.
Definition: xichart.cxx:1907
Represents the CHSERTRENDLINE record containing settings for a trend line.
Definition: xichart.hxx:716
void ReadChChart(XclImpStream &rStrm)
Reads the CHCHART group (entire chart data).
Definition: xichart.cxx:4410
XclChLineFormat maData
Definition: xichart.hxx:259
virtual Color GetFontColor() const =0
Derived classes return the leading font color for the text object.
rtl::Reference< XclImpChLineFormat > XclImpChLineFormatRef
Definition: xichart.hxx:262
XclImpChSourceLinkRef mxBubbleLink
Link data for series title.
Definition: xichart.hxx:854
sal_uInt16 mnFlags
Space between series.
Definition: xlchart.hxx:973
std::set< sal_uInt16 > maUnusedFormats
Default format for all series (CHDATAFORMAT group).
Definition: xichart.hxx:1078
void ConvertFont(ScfPropertySet &rPropSet, sal_uInt16 nFontIdx, const Color *pFontColor=nullptr) const
Writes font properties to the passed property set.
Definition: xichart.cxx:378
bool IsShowAxis() const
Returns true, if the "show axis" flag is set.
Definition: xichart.hxx:251
Base class for record groups containing frame formatting.
Definition: xichart.hxx:321
std::shared_ptr< XclImpChEscherFormat > XclImpChEscherFormatRef
Definition: xichart.hxx:313
css::uno::Reference< css::chart2::XCoordinateSystem > CreateCoordSystem(css::uno::Reference< css::chart2::XDiagram > const &xDiagram) const
Creates a coordinate system that contains all chart types for this axes set.
Definition: xichart.cxx:3733
sal_uInt16 GetRecId() const
Returns the record identifier of the chart type record.
Definition: xichart.hxx:881
sal_uInt16 mnRecId
Contents of the chart type record.
Definition: xichart.hxx:900
const sal_Int16 EXC_CHLINEFORMAT_SINGLE
Definition: xlchart.hxx:260
XclImpChTypeGroupMap maTypeGroups
Plot area (CHPLOTFRAME group).
Definition: xichart.hxx:1280
bool IsStacked() const
Returns true, if the series in this chart type group are stacked on each other (no percentage)...
Definition: xichart.cxx:2315
XclImpChRoot(const XclImpRoot &rRoot, XclImpChChart &rChartData)
Definition: xichart.cxx:216
void SetDataFormat(XclImpChDataFormatRef xDataFmt)
Sets formatting information for the trend line.
Definition: xichart.hxx:724
::std::vector< XclFormatRun > XclFormatRunVec
A vector with all formatting runs for a rich-string.
Definition: xlstring.hxx:84
bool HasCategoryLabels() const
Returns true, if category (X axis) labels are enabled (may be disabled in radar charts).
Definition: xichart.hxx:1015
XclImpChAxis(const XclImpChRoot &rRoot, sal_uInt16 nAxisType=EXC_CHAXIS_NONE)
Definition: xichart.cxx:3238
void ReadChValueRange(XclImpStream &rStrm)
Reads the CHVALUERANGE record (numeric axis scaling properties).
Definition: xichart.cxx:3088
XclImpChFrameRef mxWallFrame
Minor grid line format (CHLINEFORMAT record).
Definition: xichart.hxx:1198
bool IsDeleted() const
Returns true, if the text object is marked as deleted.
Definition: xichart.hxx:522
sal_uInt16 mnFlags
Line weight (hairline, single, ...).
Definition: xlchart.hxx:793
void UpdateObjFrame(const XclObjLineData &rLineData, const XclObjFillData &rFillData)
Sets formatting from BIFF3-BIFF5 OBJ record, if own formatting is invisible.
Definition: xichart.cxx:651
void Convert(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, sal_uInt16 nFormatIdx, sal_Int16 nLineWeight) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:1290
void CreateWallFrame()
Creates a CHFRAME object and stores it into the mxWallFrame member.
Definition: xichart.cxx:3515
XclImpChLineFormat(const XclChLineFormat &rLineFmt)
Creates a new line format object with the passed formatting.
Definition: xichart.hxx:229
bool IsValidAxesSet() const
Returns true, if this axes set exists (returns false if this is a dummy object).
Definition: xichart.hxx:1223
static css::uno::Reference< css::beans::XPropertySet > CreateErrorBar(const XclImpChSerErrorBar *pPosBar, const XclImpChSerErrorBar *pNegBar)
Tries to create an error bar API object from the specified Excel error bars.
Definition: xichart.cxx:1709
void ReadChSerErrorBar(XclImpStream &rStrm)
Reads a CHSERERRORBAR record containing error bar settings.
Definition: xichart.cxx:2154
void ReadChDataFormat(XclImpStream &rStrm)
Reads a CHDATAFORMAT group describing a series format or a data point format.
Definition: xichart.cxx:3915
const XclChDataPointPos & GetPointPos() const
Returns the position of the data point described by this group.
Definition: xichart.hxx:680
sal_uInt16 mnParentIdx
0-based series index.
Definition: xichart.hxx:862
sal_Int32 GetApiAxesSetIndex() const
Returns the axes set index used by the chart API.
Definition: xlchart.cxx:336
bool HasDropBars() const
Returns true, if the chart type group contains drop bar formats.
Definition: xichart.hxx:1049
const XclChDataPointPos & GetPointPos() const
Returns the position of the data point label this text is linked to.
Definition: xichart.hxx:518
void Convert(const css::uno::Reference< css::chart2::XChartDocument > &xChartDoc, XclImpDffConverter &rDffConv, const OUString &rObjName, const tools::Rectangle &rChartRect) const
Converts and writes all properties to the passed chart.
Definition: xichart.cxx:3971
::std::map< sal_uInt16, std::unique_ptr< XclImpChText > > XclImpChTextMap
Definition: xichart.hxx:1353
bool HasSpline() const
Returns true, if the series line is smoothed.
Definition: xichart.hxx:809
std::size_t GetProgressSize() const
Returns the number of units on the progress bar needed for the chart.
Definition: xichart.cxx:4384
virtual ~XclImpChRoot() override
Definition: xichart.cxx:222
std::shared_ptr< XclImpCh3dDataFormat > XclImpCh3dDataFormatRef
Definition: xichart.hxx:631
XclImpChDataFormatMap maDataFmts
List of series data (CHSERIES groups).
Definition: xichart.hxx:1357
css::uno::Reference< css::chart2::XCoordinateSystem > CreateCoordSystem(bool b3dChart) const
Creates a coordinate system according to the contained chart type.
Definition: xichart.cxx:2361
Represents the CHTYPEGROUP record group describing a group of series.
Definition: xichart.hxx:981
::std::map< sal_uInt16, XclImpChTypeGroupRef > XclImpChTypeGroupMap
Definition: xichart.hxx:1269
XclChTick maData
Definition: xichart.hxx:1140
css::uno::Reference< css::chart2::XChartType > CreateChartType(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, bool b3dChart) const
Creates and returns an object that represents the contained chart type.
Definition: xichart.cxx:2391
void ConvertAreaBase(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, XclChObjectType eObjType, sal_uInt16 nFormatIdx=EXC_CHDATAFORMAT_UNKNOWN, bool bUsePicFmt=false) const
Converts and writes the contained area formatting to the passed property set.
Definition: xichart.cxx:618
XclChObjectType
Enumerates different object types for specific automatic formatting behaviour.
Definition: xlchart.hxx:1110
const XclChFramePos & GetFramePosData() const
Returns read-only access to the imported frame position data.
Definition: xichart.hxx:214
void SetDataLabel(XclImpChTextRef xLabel)
Sets type and text formatting for a data point label (CHTEXT group).
Definition: xichart.hxx:668
void ReadChSeries(XclImpStream &rStrm)
Reads a CHSERIES group (data series source and formatting).
Definition: xichart.cxx:4073
css::uno::Reference< css::chart2::data::XDataProvider > GetDataProvider() const
Returns the data provider for the chart document.
Definition: xichart.cxx:301
XclImpChDropBarMap m_DropBars
Chart legend (CHLEGEND group).
Definition: xichart.hxx:1074
The CHLINEFORMAT record containing line formatting data.
Definition: xichart.hxx:223
Base class for drawing objects (OBJ records).
Definition: xiescher.hxx:54
OUString GetSingleSeriesTitle() const
Returns series title, if the axes set contains only one single series.
Definition: xichart.cxx:3636
::std::vector< XclImpChSeriesRef > XclImpChSeriesVec
Definition: xichart.hxx:1351
Radar charts (linear or filled).
Definition: xlchart.hxx:1192
const XclChTypeInfo & GetChartTypeInfo(XclChTypeId eType) const
Returns chart type info for a unique chart type identifier.
Definition: xichart.cxx:231
XclChLabelRange maLabelData
Definition: xichart.hxx:1099
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHDATAFORMAT record (called by base class).
Definition: xichart.cxx:1398
Represents the CHLEGEND record group describing the chart legend.
Definition: xichart.hxx:926
css::uno::Reference< css::chart2::data::XLabeledDataSequence > CreateValueSequence(const OUString &rValueRole) const
Creates a labeled data sequence object from value data link.
Definition: xichart.cxx:2012
The CHESCHERFORMAT record containing complex area formatting data (bitmaps, hatches).
Definition: xichart.hxx:293
sal_uInt16 GetRotation() const
Returns the rotation value for the axis labels.
Definition: xichart.cxx:3220
XclImpChSerErrorBar(const XclImpChRoot &rRoot)
Definition: xichart.cxx:1683
void ReadChDataFormat(XclImpStream &rStrm)
Reads a CHDATAFORMAT record group (default series format).
Definition: xichart.cxx:2855
std::shared_ptr< XclImpChFrame > XclImpChFrameRef
Definition: xichart.hxx:389
const sal_uInt16 EXC_CHLINEFORMAT_NONE
Definition: xlchart.hxx:254
XclChChart3d maData
Definition: xichart.hxx:916
XclChProperties maProps
Chart frame format (CHFRAME group).
Definition: xichart.hxx:1359
sal_uInt16 mnFlags
Fill pattern.
Definition: xlchart.hxx:803
sal_uInt8 GetBarType() const
Returns the type of this error bar (X/Y, plus/minus).
Definition: xichart.hxx:754
Stores global data needed in various classes of the Chart import filter.
Definition: xichart.cxx:209
XclImpChTextRef CreateDataLabel(const XclImpChText *pParent) const
Creates a CHTEXT group for the label.
Definition: xichart.cxx:1375
XclImpChDataFormat(const XclImpChRoot &rRoot)
Definition: xichart.cxx:1393
void ConvertTrendLines(css::uno::Reference< css::chart2::XDataSeries > const &xDataSeries) const
Converts all trend lines and inserts them into the passed API data series object. ...
Definition: xichart.cxx:2169
bool HasArea() const
Returns true, if the area style is set to something visible.
Definition: xichart.hxx:279
XclImpChartDrawingRef mxChartDrawing
The chart data (CHCHART group).
Definition: xichart.hxx:1428
XclChFrLabelPropsRef mxLabelProps
Index into font buffer (CHFONT record).
Definition: xichart.hxx:556
::std::map< sal_uInt16, XclImpChDataFormatRef > XclImpChDataFormatMap
Definition: xichart.hxx:846
XclChDataPointPos maPointPos
Definition: xlchart.hxx:907
Base class for objects with font settings.
Definition: xichart.hxx:445
XclImpChSourceLinkRef mxTitleLink
Link data for series category names.
Definition: xichart.hxx:853
XclImpChSeriesVec maSeries
Position of the chart on the sheet (CHCHART record).
Definition: xichart.hxx:1356
void SetUsedFormatIndex(sal_uInt16 nFormatIdx)
Marks the passed format index as used.
Definition: xichart.cxx:2746
sal_uInt16 GetGroupIdx() const
Returns the index of this chart type group.
Definition: xichart.hxx:1001
bool IsAuto() const
Returns true, if the line format is set to automatic.
Definition: xichart.hxx:245
void CreateStockSeries(css::uno::Reference< css::chart2::XChartType > const &xChartType, sal_Int32 nApiAxesSetIdx) const
Creates all data series of a stock chart.
Definition: xichart.cxx:2914
std::shared_ptr< XclImpChChart3d > XclImpChChart3dRef
Definition: xichart.hxx:919
bool HasLabels() const
Returns true, if the axis shows attached labels.
Definition: xichart.hxx:1130
void UpdateText(const XclImpChText *pParentText)
Updates missing parts of this text object from the passed object.
Definition: xichart.cxx:1033
Represents the entire chart substream (all records in BOF/EOF block).
Definition: xichart.hxx:1393
double CalcRelativeFromChartX(sal_Int32 nPosX) const
Converts the passed horizontal coordinate from Excel chart units into a relative position.
Definition: xichart.cxx:346
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHSERIES record (called by base class).
Definition: xichart.cxx:1794
XclImpChTypeGroupRef GetTypeGroup(sal_uInt16 nGroupIdx) const
Returns the specified chart type group.
Definition: xichart.cxx:3610
void ConvertObjects(XclImpDffConverter &rDffConv, const css::uno::Reference< css::frame::XModel > &rxModel, const tools::Rectangle &rChartRect)
Converts all objects and inserts them into the chart drawing page.
Definition: xichart.cxx:4234
const XclChTypeInfo & GetTypeInfo() const
Returns the chart type info struct for the contained chart type.
Definition: xichart.hxx:883
virtual void ReadHeaderRecord(XclImpStream &rStrm)=0
Derived classes implement to read the group header record.
std::shared_ptr< XclImpChTick > XclImpChTickRef
Definition: xichart.hxx:1143
XclImpChLegendRef mxLegend
Chart title (CHTEXT group).
Definition: xichart.hxx:1364
Represents the position (anchor) of an object in a Calc document.
Definition: xlescher.hxx:283
void SetDataFormat(const XclImpChDataFormatRef &xDataFmt)
Sets a data point or series format (CHDATAFORMAT group) for this series.
Definition: xichart.cxx:1835
void ReadChChart3d(XclImpStream &rStrm)
Reads the CHCHART3D record (properties for 3D charts).
Definition: xichart.cxx:2429
sal_uInt16 mnAxesSetId
Position of the axes set (inner plot area).
Definition: xlchart.hxx:1069
bool get_flag(Type nBitField, Type nMask)
Returns true, if at least one of the bits set in nMask is set in nBitField.
Definition: ftools.hxx:75
::std::map< XclChDataPointPos, XclImpChDataFormatRef > XclImpChDataFormatMap
Definition: xichart.hxx:1352
XclChType maData
Definition: xichart.hxx:899
const XclImpChText * GetDefaultText(XclChTextType eTextType) const
Returns the specified default text.
Definition: xichart.cxx:3948
const sal_uInt16 EXC_CHLINEFORMAT_SHOWAXIS
Definition: xlchart.hxx:265
void ConvertFont(ScfPropertySet &rPropSet) const
Converts and writes the contained font settings to the passed property set.
Definition: xichart.cxx:1059
XclImpChChartRef mxChartData
Definition: xichart.hxx:1427
XclChFramePos maData
Definition: xichart.hxx:217
void Finalize()
Final processing after reading the entire chart data.
Definition: xichart.cxx:4117
void Convert(ScfPropertySet &rPropSet) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:1355
css::uno::Reference< css::chart2::XLegend > CreateLegend() const
Creates a new legend object.
Definition: xichart.cxx:2557
bool mbLabelDeleted
0-based index of parent series (trend lines and error bars).
Definition: xichart.hxx:863
const sal_uInt16 EXC_CHCHART3D_CLUSTER
true = real 3d perspective.
Definition: xlchart.hxx:537
css::uno::Reference< css::chart2::XAxis > CreateAxis(const XclImpChTypeGroup &rTypeGroup, const XclImpChAxis *pCrossingAxis) const
Creates an API axis object.
Definition: xichart.cxx:3327
XclImpChLabelRange(const XclImpChRoot &rRoot)
Definition: xichart.cxx:2983
void SetTrendlineName(const OUString &aTrendlineName)
Definition: xichart.hxx:726
XclImpChTextRef mxLabel
Data point label type (CHATTACHEDLABEL record).
Definition: xichart.hxx:710
void Finalize()
Final processing after reading the entire chart.
Definition: xichart.cxx:2548
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHAXESSET record (called by base class).
Definition: xichart.cxx:3536
const sal_uInt16 EXC_CHSERIESFORMAT_SMOOTHED
Definition: xlchart.hxx:688
Color GetSeriesFillAutoColor(sal_uInt16 nFormatIdx) const
Returns the automatic fill color of filled series.
Definition: xichart.cxx:256
const XclImpChFramePosRef & GetPlotAreaFramePos() const
Returns the outer plot area position, if existing.
Definition: xichart.hxx:1230
The CHAREAFORMAT record containing simple area formatting data (solid or patterns).
Definition: xichart.hxx:265
void ReadChChartLine(XclImpStream &rStrm)
Reads a CHCHARTLINE record group.
Definition: xichart.cxx:2844
void ConvertTitlePositions() const
Converts the manual positions of all axis titles.
Definition: xichart.cxx:3674
void ReadChSerErrorBar(XclImpStream &rStrm)
Reads the CHSERERRORBAR record.
Definition: xichart.cxx:1688
XclImpChFrameRef mxFrame
All series and point formats (CHDATAFORMAT groups).
Definition: xichart.hxx:1358
XclImpChFrameRef mxFrame
Linked data (CHSOURCELINK with CHSTRING record).
Definition: xichart.hxx:554
XclImpChLineFormat(XclImpChLineFormat const &rOther)
Definition: xichart.hxx:232
std::shared_ptr< XclImpChAxesSet > XclImpChAxesSetRef
Definition: xichart.hxx:1283
XclChRectangle maRect
Definition: xichart.hxx:1355
void ConvertColor(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, sal_uInt16 nFormatIdx) const
Sets the marker fill color as main color to the passed property set.
Definition: xichart.cxx:1316
void ReadChProperties(XclImpStream &rStrm)
Reads a CHPROPERTIES record (global chart properties).
Definition: xichart.cxx:4081
const sal_uInt16 EXC_CHLINEFORMAT_AUTO
Definition: xlchart.hxx:264
XclChTypeId
Enumerates all kinds of different chart types.
Definition: xlchart.hxx:1168
sal_uInt16 mnSeriesIdx
Chart type group (CHTYPEGROUP group) this series is assigned to.
Definition: xichart.hxx:861
This is the central instance for converting binary DFF data into shape objects.
Definition: xiescher.hxx:920
The CHSERIESFORMAT record containing additional settings for a data series.
Definition: xichart.hxx:603
XclImpChText(const XclImpChRoot &rRoot)
Definition: xichart.cxx:942
XclChSerErrorBar maData
Definition: xichart.hxx:766
::std::map< sal_uInt16, XclImpChTextRef > XclImpChTextMap
Definition: xichart.hxx:847
sal_uInt16 mnGroupIdx
Error bar settings (CHSERERRORBAR records).
Definition: xichart.hxx:860
::std::map< sal_uInt16, XclImpChLineFormat > XclImpChLineFormatMap
Definition: xichart.hxx:1065
exports com.sun.star.chart2. data
XclImpChRootDataRef mxChData
Definition: xichart.hxx:170
sal_Int32 CalcHmmFromChartX(sal_Int32 nPosX) const
Converts the passed horizontal coordinate from Excel chart units into 1/100 mm.
Definition: xichart.cxx:311
Represents the CHCHART3D record that contains 3D view settings.
Definition: xichart.hxx:905
sal_uInt16 mnFlags
Definition: xichart.hxx:613
bool HasLine() const
Returns true, if the line style is set to something visible.
Definition: xichart.hxx:247
XclImpChFontRef mxFont
Text object frame properties (CHFRAME group).
Definition: xichart.hxx:555
XclChPicFormat maPicFmt
Fill properties for complex areas (CHESCHERFORMAT record).
Definition: xichart.hxx:309
void ReadChLabelRange(XclImpStream &rStrm)
Reads the CHLABELRANGE record (category axis scaling properties).
Definition: xichart.cxx:2988
XclImpChTick(const XclImpChRoot &rRoot)
Definition: xichart.cxx:3185
XclImpChValueRange(const XclImpChRoot &rRoot)
Definition: xichart.cxx:3083
void UpdatePointFormat(const XclChExtTypeInfo &rTypeInfo, const XclImpChDataFormat *pSeriesFmt)
Updates missing data point settings from the passed series format.
Definition: xichart.cxx:1486
bool IsAuto() const
Returns true, if the marker format is set to automatic.
Definition: xichart.hxx:571
void Convert(css::chart2::ScaleData &rScaleData, bool bMirrorOrient) const
Converts value axis scaling settings.
Definition: xichart.cxx:3098
void ReadChSerTrendLine(XclImpStream &rStrm)
Reads a CHSERTRENDLINE record containing trend line settings.
Definition: xichart.cxx:2147
XclImpChTextMap maLabels
CHDATAFORMAT groups for data point formats.
Definition: xichart.hxx:857
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHFRAME record (called by base class).
Definition: xichart.cxx:645
XclImpChartDrawing & GetChartDrawing()
Returns (initially creates) the drawing container for embedded shapes.
Definition: xichart.cxx:4403
const XclChExtTypeInfo & GetTypeInfo() const
Returns the chart type info struct for the contained chart type.
Definition: xichart.hxx:1003
virtual sal_uInt16 GetRotation() const =0
Derived classes return the rotation value for the text object.
XclChMarkerFormat maData
Definition: xichart.hxx:581
std::shared_ptr< XclImpChSourceLink > XclImpChSourceLinkRef
Definition: xichart.hxx:440
Represents the CHAXIS record group describing an entire chart axis.
Definition: xichart.hxx:1151
std::shared_ptr< XclImpChFont > XclImpChFontRef
Definition: xichart.hxx:484
XclImpChLineFormatRef mxMinorGrid
Major grid line format (CHLINEFORMAT record).
Definition: xichart.hxx:1197
A wrapper for a UNO property set.
Definition: fapihelper.hxx:103
const sal_uInt16 EXC_CHMARKERFORMAT_AUTO
Automatic symbol size for triple lines.
Definition: xlchart.hxx:287
XclImpChTypeGroupRef GetTypeGroup(sal_uInt16 nGroupIdx) const
Returns the specified chart type group.
Definition: xichart.cxx:3940
virtual sal_uInt16 GetFontIndex() const =0
Derived classes return the leading font index for the text object.
Color GetSeriesLineAutoColor(sal_uInt16 nFormatIdx) const
Returns the automatic line color of linear series.
Definition: xichart.cxx:251
The CHPIEFORMAT record containing data point formatting data for pie segments.
Definition: xichart.hxx:587
const XclImpChRoot & GetChRoot() const
Returns this root instance - for code readability in derived classes.
Definition: xichart.hxx:91
css::uno::Reference< css::chart2::XCoordinateSystem > CreateCoordSystem() const
Creates a coordinate system according to the contained chart type.
Definition: xichart.cxx:2790
sal_uInt16 mnFontIdx
Definition: xichart.hxx:481
void SetString(const OUString &rString)
Sets explicit string data for this text object.
Definition: xichart.cxx:1026
void ReadChText(XclImpStream &rStrm)
Reads a CHTEXT record group containing an axis title.
Definition: xichart.cxx:3697
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHLEGEND group (called by base class).
Definition: xichart.cxx:2529
::std::map< sal_uInt16, std::unique_ptr< XclImpChDropBar > > XclImpChDropBarMap
Definition: xichart.hxx:1064
Represents the CHAXESSET record group describing an axes set (X/Y/Z axes).
Definition: xichart.hxx:1210
tools::Rectangle maChartRect
Definition: xichart.hxx:1387
void ReadChAreaFormat(XclImpStream &rStrm)
Reads the CHAREAFORMAT record (basic fill properties, e.g.
Definition: xichart.cxx:486
XclImpChAxisRef mxYAxis
The X axis (CHAXIS group).
Definition: xichart.hxx:1274
XclImpChFontRef mxFont
Axis ticks (CHTICK record).
Definition: xichart.hxx:1194
XclImpChTickRef mxTick
Value scaling (CHVALUERANGE record).
Definition: xichart.hxx:1193
XclImpChartDrawing(const XclImpRoot &rRoot, bool bOwnTab)
Definition: xichart.cxx:4227
std::shared_ptr< XclImpChDataFormat > XclImpChDataFormatRef
Definition: xichart.hxx:713
XclImpChTypeGroupRef GetFirstTypeGroup() const
Returns the first chart type group.
Definition: xichart.cxx:3616
void ReadChFramePos(XclImpStream &rStrm)
Reads the CHFRAMEPOS record (frame position and size).
Definition: xichart.cxx:441
void ConvertLineFormat(ScfPropertySet &rPropSet, const XclChLineFormat &rLineFmt, XclChPropertyMode ePropMode) const
Writes all line properties to the passed property set.
Definition: xichart.cxx:356
XclImpChLineFormat(XclImpChLineFormat &&rOther)
Definition: xichart.hxx:234
const sal_uInt16 EXC_CHDATAFORMAT_UNKNOWN
As format index: global default for an axes set.
Definition: xlchart.hxx:240
XclImpChSourceLinkRef mxCategLink
Link data for series values.
Definition: xichart.hxx:852
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHSERIES group (called by base class).
Definition: xichart.cxx:1807
XclImpChFramePosRef mxFramePos
Contents of the CHAXESSET record.
Definition: xichart.hxx:1272
void FillAllSourceLinks(::std::vector< ScTokenRef > &rTokens) const
Definition: xichart.cxx:2106
XclImpChAreaFormat(const XclChAreaFormat &rAreaFmt)
Creates a new area format object with the passed formatting.
Definition: xichart.hxx:271
std::shared_ptr< XclImpChPieFormat > XclImpChPieFormatRef
Definition: xichart.hxx:600
std::shared_ptr< XclImpChLabelRange > XclImpChLabelRangeRef
Definition: xichart.hxx:1103
unsigned char sal_uInt8
css::uno::Reference< css::chart2::XDiagram > CreateDiagram() const
Creates and returns a new diagram object and converts global chart settings.
Definition: xichart.cxx:4205
Specifies the position of a data series or data point.
Definition: xlchart.hxx:753
XclImpChFramePosRef mxFramePos
Contents of the CHLEGEND record.
Definition: xichart.hxx:944
bool Is3dWallChart() const
Returns true, if chart type supports wall and floor format in 3d mode.
Definition: xichart.hxx:1011
XclImpChDataFormatRef mxGroupFmt
Global line formats (CHCHARTLINE group).
Definition: xichart.hxx:1076
const sal_uInt16 EXC_CHTEXT_DELETED
Text object is inserted automatically.
Definition: xlchart.hxx:477
sal_uInt16 mnFormatIdx
Position of the data point or series.
Definition: xlchart.hxx:908
XclImpChTextRef mxZAxisTitle
The Y axis title (CHTEXT group).
Definition: xichart.hxx:1278
std::shared_ptr< XclImpChSeriesFormat > XclImpChSeriesFormatRef
Definition: xichart.hxx:616
void ConvertNumFmt(ScfPropertySet &rPropSet, bool bPercent) const
Converts and writes the contained number format to the passed property set.
Definition: xichart.cxx:1075
sal_Int32 GetApiAxesSetIndex() const
Returns the axes set index used by the chart API.
Definition: xichart.hxx:1227
XclImpChDataFormatRef mxDataFmt
Contents of the CHSERTRENDLINE record.
Definition: xichart.hxx:735
std::shared_ptr< XclImpString > XclImpStringRef
Definition: xiroot.hxx:28
void ReadCh3dDataFormat(XclImpStream &rStrm)
Reads the CH3DDATAFORMAT record (3D bar properties).
Definition: xichart.cxx:1349
XclImpChEscherFormat(const XclImpRoot &rRoot)
Definition: xichart.cxx:521
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHAXIS record (called by base class).
Definition: xichart.cxx:3245
XclChTypeCateg meTypeCateg
Unique chart type identifier.
Definition: xlchart.hxx:1209
XclImpChLineFormatMap m_ChartLines
Dropbars (CHDROPBAR group).
Definition: xichart.hxx:1075
bool IsAutoLine() const
Returns true, if the line format is set to automatic.
Definition: xichart.hxx:333
std::shared_ptr< XclImpChAttachedLabel > XclImpChAttLabelRef
Definition: xichart.hxx:647
Drawing container of a chart.
Definition: xichart.hxx:1370
void ConvertFontBase(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet) const
Converts and writes the contained font settings to the passed property set.
Definition: xichart.cxx:921
XclChLegend maData
Definition: xichart.hxx:943
SCTAB mnScTab
Position and size of the chart shape in 1/100 mm.
Definition: xichart.hxx:1388
XclImpChRoot & operator=(XclImpChRoot const &)=delete
void ReadChPlotFrame(XclImpStream &rStrm)
Reads the CHPLOTFRAME record group containing diagram area formatting.
Definition: xichart.cxx:3710
double CalcRelativeFromHmmY(sal_Int32 nPosY) const
Converts the passed vertical coordinate from 1/100 mm into a relative position.
Definition: xichart.cxx:338
XclChFrame maData
Definition: xichart.hxx:385
XclImpChFrameRef mxFrame
Legend text format (CHTEXT group).
Definition: xichart.hxx:946
XclImpChAxisRef mxZAxis
The Y axis (CHAXIS group).
Definition: xichart.hxx:1275
XclImpChSeries(const XclImpChRoot &rRoot, sal_uInt16 nSeriesIdx)
Definition: xichart.cxx:1785
XclImpChTypeGroup(const XclImpChRoot &rRoot)
Definition: xichart.cxx:2669
XclChDataFormat maData
Definition: xichart.hxx:704
The CH3DDATAFORMAT record containing the bar type in 3D bar charts.
Definition: xichart.hxx:619
Base class for complex chart classes, provides access to other components of the chart.
Definition: xichart.hxx:79
void Convert(ScfPropertySet &rPropSet) const
Converts and writes the contained data to the passed property set.
Definition: xichart.cxx:1333
void UpdateGroupFormat(const XclChExtTypeInfo &rTypeInfo)
Updates default data format for series group.
Definition: xichart.cxx:1441
XclImpChTextRef mxYAxisTitle
The X axis title (CHTEXT group).
Definition: xichart.hxx:1277
Represents the CHSERERRORBAR record containing settings for error bars.
Definition: xichart.hxx:741
virtual sal_uInt16 GetFontIndex() const override
Returns the font index for the axis labels.
Definition: xichart.cxx:3312
void ReadChAxisLine(XclImpStream &rStrm)
Reads a CHAXISLINE record specifying the target for following line properties.
Definition: xichart.cxx:3478
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a frame formatting record (called by base class).
Definition: xichart.cxx:592
bool HasChildSeries() const
Returns true, if the series contains child series (e.g.
Definition: xichart.hxx:804
bool mbOwnTab
Index of the sheet that contains the chart.
Definition: xichart.hxx:1389
std::shared_ptr< XclImpChFramePos > XclImpChFramePosRef
Definition: xichart.hxx:220
XclImpChFontBase & operator=(XclImpChFontBase const &)=default
void FinalizeTitle()
Finalizes chart title, tries to detect title auto-generated from series name.
Definition: xichart.cxx:4183
XclImpChGroupBase & operator=(XclImpChGroupBase const &)=default
The CHMARKERFORMAT record containing data point marker formatting data.
Definition: xichart.hxx:564
bool IsPercent() const
Returns true, if the series in this chart type group are stacked on each other as percentage...
Definition: xichart.hxx:1007
virtual void OnObjectInserted(const XclImpDrawObjBase &rDrawObj) override
Called whenever an object has been inserted into the draw page.
Definition: xichart.cxx:4283
void Finalize()
Final processing after reading the entire chart.
Definition: xichart.cxx:3565
void InitConversion(const css::uno::Reference< css::chart2::XChartDocument > &xChartDoc, const tools::Rectangle &rChartRect) const
Starts the API chart document conversion.
Definition: xichart.cxx:264
const XclImpChLegendRef & GetLegend() const
Returns the legend object.
Definition: xichart.hxx:1022
XclImpChFrameBase()
Creates a new frame object without internal formatting objects.
Definition: xichart.hxx:325
sal_uInt16 GetFormatIdx() const
Returns the format index of the data point described by this group.
Definition: xichart.hxx:682
const sal_uInt8 EXC_PATT_NONE
Definition: xlstyle.hxx:54
void ReadChAxesSet(XclImpStream &rStrm)
Reads a CHAXESSET group (primary/secondary axes set).
Definition: xichart.cxx:4087
XclImpChLineFormat & operator=(XclImpChLineFormat &&rOther) noexcept
Definition: xichart.hxx:238
virtual void ReadSubRecord(XclImpStream &rStrm)=0
Derived classes implement to read a record from the group.
Base class for chart record groups.
Definition: xichart.hxx:178
sal_uInt16 mnPattern
Pattern background color.
Definition: xlchart.hxx:802
XclImpChMarkerFormatRef mxMarkerFmt
Contents of the CHDATAFORMAT record.
Definition: xichart.hxx:705
XclImpChDataFormatRef mxDataFmt
Link data for manual error bar values.
Definition: xichart.hxx:768
::std::map< sal_uInt8, std::unique_ptr< XclImpChSerErrorBar > > XclImpChSerErrorBarMap
Definition: xichart.hxx:848
OUString GetSingleSeriesTitle() const
Returns series title, if the chart type group contains only one single series.
Definition: xichart.cxx:2776
void ConvertDataLabel(ScfPropertySet &rPropSet, const XclChTypeInfo &rTypeInfo, const ScfPropertySet *pGlobalPropSet) const
Converts and writes all contained data to the passed data point label property set.
Definition: xichart.cxx:1081
css::uno::Reference< css::chart2::XTitle > CreateTitle() const
Creates a title text object.
Definition: xichart.cxx:1146
sal_uInt32 mnDffFillType
Image options, e.g. stretched, stacked (CHPICFORMAT record).
Definition: xichart.hxx:310
XclImpCh3dDataFormatRef mx3dDataFmt
Series properties (CHSERIESFORMAT record).
Definition: xichart.hxx:708
bool IsClustered() const
Returns true, if the data points are clustered on the X axis.
Definition: xichart.hxx:911
XclChSerTrendLine maData
Definition: xichart.hxx:734
void ReadChText(XclImpStream &rStrm)
Reads a CHTEXT group (chart title and series/point captions).
Definition: xichart.cxx:4098
XclChAxis maData
Definition: xichart.hxx:1190
void Finalize()
Final processing after reading the entire chart.
Definition: xichart.cxx:3284
XclImpChFrame(const XclImpChRoot &rRoot, XclChObjectType eObjType)
Creates a new frame object with specific default formatting.
Definition: xichart.cxx:638
bool IsAuto() const
Returns true, if the area format is set to automatic.
Definition: xichart.hxx:277
This class is used to import record oriented streams.
Definition: xistream.hxx:277
void ConvertLineBase(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, XclChObjectType eObjType, sal_uInt16 nFormatIdx=EXC_CHDATAFORMAT_UNKNOWN) const
Converts and writes the contained line formatting to the passed property set.
Definition: xichart.cxx:611
void FinalizeDataFormats()
Assigns all imported CHDATAFORMAT groups to the respective series.
Definition: xichart.cxx:4159
XclImpChLineFormat & operator=(XclImpChLineFormat const &rOther)
Definition: xichart.hxx:236
sal_Int32 GetApiAxisDimension() const
Returns the axis dimension index used by the chart API.
Definition: xichart.hxx:1173
XclImpChTextMap m_DefTexts
Chart properties (CHPROPERTIES record).
Definition: xichart.hxx:1360
std::shared_ptr< XclImpChValueRange > XclImpChValueRangeRef
Definition: xichart.hxx:1120
const sal_uInt8 EXC_CHTICK_NOLABEL
Definition: xlchart.hxx:405
css::uno::Reference< css::drawing::XShape > GetTitleShape(const XclChTextKey &rTitleKey) const
Returns the drawing shape interface of the specified title object.
Definition: xichart.cxx:306
void ReadChAxis(XclImpStream &rStrm)
Reads a CHAXIS record group containing a single axis.
Definition: xichart.cxx:3684
sal_uInt16 mnPieDist
Definition: xichart.hxx:597
Represents the CHCHART record group describing the chart contents.
Definition: xichart.hxx:1293
static std::size_t GetProgressSize()
Returns the number of units on the progress bar needed for the chart.
Definition: xichart.hxx:1318
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHTYPEGROUP record (called by base class).
Definition: xichart.cxx:2679
virtual ~XclImpChart() override
Definition: xichart.cxx:4294
Represents the CHDROPBAR record group describing pos/neg bars in line charts.
Definition: xichart.hxx:956
void ReadChDefaultText(XclImpStream &rStrm)
Reads a CHDEFAULTTEXT group (default text formats).
Definition: xichart.cxx:3904
void SvStream & rStrm
sal_uInt16 PopUnusedFormatIndex()
Returns the next unused format index and marks it as used.
Definition: xichart.cxx:2751
Access to global data from other classes.
Definition: xiroot.hxx:125
css::uno::Reference< css::chart2::XChartType > CreateChartType(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, sal_Int32 nApiAxesSetIdx) const
Creates and returns an object that represents the contained chart type.
Definition: xichart.cxx:2795
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHAXIS group (called by base class).
Definition: xichart.cxx:3250
XclImpChTextRef mxTitle
Secondary axes set (CHAXESSET group).
Definition: xichart.hxx:1363
css::uno::Reference< css::chart2::data::XLabeledDataSequence > CreateCategSequence() const
Creates a labeled data sequence object for axis categories.
Definition: xichart.cxx:2819
std::vector< XclImpChSerTrendLineRef > maTrendLines
Data point labels (CHTEXT groups).
Definition: xichart.hxx:858
sal_Int16 GetLineWeight() const
Returns the line weight used for this frame.
Definition: xichart.hxx:337
void UpdateSeriesFormat(const XclChExtTypeInfo &rTypeInfo, const XclImpChDataFormat *pGroupFmt)
Updates missing series settings from the passed chart type group data format.
Definition: xichart.cxx:1447
XclImpChFontBase()=default
sal_Int32 GetApiAxisDimension() const
Returns the axis dimension index used by the chart API.
Definition: xlchart.cxx:319
XclImpChSerErrorBarMap m_ErrorBars
Trend line settings (CHSERTRENDLINE records).
Definition: xichart.hxx:859
XclImpChDropBar(sal_uInt16 nDropBar)
Definition: xichart.cxx:2647
XclImpChAxesSetRef mxPrimAxesSet
Default text objects (CHDEFAULTTEXT groups).
Definition: xichart.hxx:1361
const sal_uInt16 EXC_CHAREAFORMAT_AUTO
Definition: xlchart.hxx:295
void AddSeries(XclImpChSeriesRef const &xSeries)
Inserts a series attached to this chart type group.
Definition: xichart.cxx:2737
sal_uInt16 mnGroupIdx
Additional flags.
Definition: xlchart.hxx:991
const XclImpChDataFormatRef & GetGroupFormat() const
Returns the default series data format.
Definition: xichart.hxx:1024
sal_uInt16 GetFontIndex() const
Returns the contained font index.
Definition: xichart.hxx:478
The CHFONT record containing a font index for text objects.
Definition: xichart.hxx:470
css::uno::Reference< css::chart2::data::XLabeledDataSequence > CreateCategSequence(const OUString &rCategRole) const
Creates a labeled data sequence object from category data link.
Definition: xichart.cxx:2017
XclImpChSourceLinkRef mxValueLink
Contents of the CHSERERRORBAR record.
Definition: xichart.hxx:767
sal_Int16 SCTAB
Definition: types.hxx:22
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHAXESSET group (called by base class).
Definition: xichart.cxx:3542
XclChEscherFormat maData
Definition: xichart.hxx:308
void UpdateObjFrame(const XclObjLineData &rLineData, const XclObjFillData &rFillData)
Sets formatting from BIFF3-BIFF5 OBJ record, if own formatting is invisible.
Definition: xichart.cxx:4377
void ReadChartSubStream(XclImpStream &rStrm)
Reads the complete chart substream (BOF/EOF block).
Definition: xichart.cxx:4298
XclImpChLineFormat()
Creates a new line format object with automatic formatting.
Definition: xichart.hxx:227
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHTEXT record (called by base class).
Definition: xichart.cxx:947
std::shared_ptr< XclImpChTypeGroup > XclImpChTypeGroupRef
Definition: xichart.hxx:1081
void SetPointPos(const XclChDataPointPos &rPointPos, sal_uInt16 nFormatIdx)
Sets this object to the specified data point position.
Definition: xichart.cxx:1435
virtual ~XclImpChFontBase()
Definition: xichart.cxx:917
bool IsPercent() const
Returns true, if the series in this chart type group are stacked on each other as percentage...
Definition: xichart.cxx:2335
Represents the CHTEXT record group containing text object properties.
Definition: xichart.hxx:491