blob: 63d3b27e93b3a5e12c450d6619c94b457efbf7af [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 OOX_XLS_WORKSHEETSETTINGS_HXX
#define OOX_XLS_WORKSHEETSETTINGS_HXX
#include "oox/xls/richstring.hxx"
#include "oox/xls/worksheethelper.hxx"
namespace oox {
namespace xls {
// ============================================================================
/** Sheet and outline settings. */
struct SheetSettingsModel
{
::rtl::OUString maCodeName; /// VBA module codename.
Color maTabColor; /// Sheet tab color.
bool mbFilterMode; /// True = sheet contains active filter.
bool mbApplyStyles; /// True = automatic styles when creating outlines.
bool mbSummaryBelow; /// True = row outline symbols below group.
bool mbSummaryRight; /// True = column outline symbols right of group.
explicit SheetSettingsModel();
};
// ============================================================================
/** Sheet protection settings. */
struct SheetProtectionModel
{
sal_uInt16 mnPasswordHash; /// Hash value from sheet protection password.
bool mbSheet; /// True = sheet protection enabled, locked cells are protcted.
bool mbObjects; /// True = objects locked.
bool mbScenarios; /// True = scenarios locked.
bool mbFormatCells; /// True = format cells locked.
bool mbFormatColumns; /// True = format columns locked.
bool mbFormatRows; /// True = format rows locked.
bool mbInsertColumns; /// True = insert columns locked.
bool mbInsertRows; /// True = insert rows locked.
bool mbInsertHyperlinks; /// True = insert hyperlinks locked.
bool mbDeleteColumns; /// True = delete columns locked.
bool mbDeleteRows; /// True = delete rows locked.
bool mbSelectLocked; /// True = select locked cells locked.
bool mbSort; /// True = sorting locked.
bool mbAutoFilter; /// True = autofilters locked.
bool mbPivotTables; /// True = pivot tables locked.
bool mbSelectUnlocked; /// True = select unlocked cells locked.
explicit SheetProtectionModel();
};
// ============================================================================
class WorksheetSettings : public WorksheetHelper
{
public:
explicit WorksheetSettings( const WorksheetHelper& rHelper );
/** Imports sheet settings from the sheetPr element. */
void importSheetPr( const AttributeList& rAttribs );
/** Imports chart sheet settings from the sheetPr element. */
void importChartSheetPr( const AttributeList& rAttribs );
/** Imports the sheet tab color from the tabColor element. */
void importTabColor( const AttributeList& rAttribs );
/** Imports outline settings from the outlinePr element. */
void importOutlinePr( const AttributeList& rAttribs );
/** Imports protection settings from the sheetProtection element. */
void importSheetProtection( const AttributeList& rAttribs );
/** Imports protection settings from the sheetProtection element of a chart sheet. */
void importChartProtection( const AttributeList& rAttribs );
/** Imports phonetic settings from the phoneticPr element. */
void importPhoneticPr( const AttributeList& rAttribs );
/** Imports sheet properties from the SHEETPR record. */
void importSheetPr( SequenceInputStream& rStrm );
/** Imports sheet properties from the CHARTSHEETPR record. */
void importChartSheetPr( SequenceInputStream& rStrm );
/** Imports sheet protection settings from the SHEETPROTECTION record. */
void importSheetProtection( SequenceInputStream& rStrm );
/** Imports chart sheet protection settings from the CHARTPROTECTION record. */
void importChartProtection( SequenceInputStream& rStrm );
/** Imports phonetic settings from the PHONETICPR record. */
void importPhoneticPr( SequenceInputStream& rStrm );
/** Imports sheet properties from a SHEETEXT record. */
void importSheetExt( BiffInputStream& rStrm );
/** Imports sheet properties from a SHEETPR record. */
void importSheetPr( BiffInputStream& rStrm );
/** Imports protection status from the PROTECT record. */
void importProtect( BiffInputStream& rStrm );
/** Imports object protection status from the OBJECTPROTECT record. */
void importObjectProtect( BiffInputStream& rStrm );
/** Imports scenario protection status from the SCENPROTECT record. */
void importScenProtect( BiffInputStream& rStrm );
/** Imports sheet password hash from the PASSWORD record. */
void importPassword( BiffInputStream& rStrm );
/** Imports protection settings from the SHEETPROTECTION record. */
void importSheetProtection( BiffInputStream& rStrm );
/** Imports the VBA code module name from the CODENAME record. */
void importCodeName( BiffInputStream& rStrm );
/** Imports phonetic settings from the PHONETICPR record. */
void importPhoneticPr( BiffInputStream& rStrm );
/** Converts the imported worksheet settings. */
void finalizeImport();
private:
PhoneticSettings maPhoneticSett;
SheetSettingsModel maSheetSettings;
SheetProtectionModel maSheetProt;
};
// ============================================================================
} // namespace xls
} // namespace oox
#endif