blob: 0a9d6fd4e68b0547c49f3a2311f4de3d292f1a09 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef SC_XIPAGE_HXX
#define SC_XIPAGE_HXX
#include "xlpage.hxx"
#include "xiroot.hxx"
// Page settings ==============================================================
/** Contains all page (print) settings for a single sheet.
@descr Supports reading all related records and creating a page style sheet. */
class XclImpPageSettings : protected XclImpRoot
{
public:
explicit XclImpPageSettings( const XclImpRoot& rRoot );
/** Returns read-only access to the page data. */
inline const XclPageData& GetPageData() const { return maData; }
/** Initializes the object to be used for a new sheet. */
void Initialize();
/** Reads a SETUP record and inserts contained data. */
void ReadSetup( XclImpStream& rStrm );
/** Reads a ***MARGIN record (reads all 4 margin records). */
void ReadMargin( XclImpStream& rStrm );
/** Reads a HCENTER or VCENTER record. */
void ReadCenter( XclImpStream& rStrm );
/** Reads a HEADER or FOOTER record. */
void ReadHeaderFooter( XclImpStream& rStrm );
/** Reads a HORIZONTALPAGEBREAKS or VERTICALPAGEBREAKS record. */
void ReadPageBreaks( XclImpStream& rStrm );
/** Reads a PRINTHEADERS record. */
void ReadPrintHeaders( XclImpStream& rStrm );
/** Reads a PRINTGRIDLINES record. */
void ReadPrintGridLines( XclImpStream& rStrm );
/** Reads an IMGDATA record and creates the SvxBrushItem. */
void ReadImgData( XclImpStream& rStrm );
/** Overrides paper size and orientation (used in sheet-charts). */
void SetPaperSize( sal_uInt16 nXclPaperSize, bool bPortrait );
/** Sets or clears the fit-to-pages setting (contained in WSBOOL record). */
inline void SetFitToPages( bool bFitToPages ) { maData.mbFitToPages = bFitToPages; }
/** Creates a page stylesheet from current settings and sets it at current sheet. */
void Finalize();
private:
XclPageData maData; /// Page settings data.
bool mbValidPaper; /// true = Paper size and orientation valid.
};
// ============================================================================
#endif