| /************************************************************** |
| * |
| * 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. |
| * |
| *************************************************************/ |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_xmloff.hxx" |
| |
| #include "PageMasterPropHdlFactory.hxx" |
| #include <xmloff/xmltypes.hxx> |
| #include <xmloff/xmltoken.hxx> |
| #include "xmlbahdl.hxx" |
| #include <xmloff/NamedBoolPropertyHdl.hxx> |
| #include "XMLTextColumnsPropertyHandler.hxx" |
| #include <xmloff/XMLConstantsPropertyHandler.hxx> |
| #include "PageMasterPropHdl.hxx" |
| #include <xmloff/PageMasterStyleMap.hxx> |
| #include <com/sun/star/text/TextGridMode.hpp> |
| |
| //UUUU |
| #include <xmloff/EnumPropertyHdl.hxx> |
| #include <com/sun/star/drawing/FillStyle.hpp> |
| #include "XMLFillBitmapSizePropertyHandler.hxx" |
| #include "XMLBitmapLogicalSizePropertyHandler.hxx" |
| #include <com/sun/star/drawing/RectanglePoint.hpp> |
| #include <com/sun/star/drawing/BitmapMode.hpp> |
| #include "XMLBitmapRepeatOffsetPropertyHandler.hxx" |
| |
| using ::rtl::OUString; |
| using ::rtl::OUStringBuffer; |
| |
| using namespace ::xmloff::token; |
| using namespace ::com::sun::star; |
| //UUUU |
| using namespace ::com::sun::star::drawing; |
| |
| //UUUU |
| extern SvXMLEnumMapEntry aXML_FillStyle_EnumMap[]; |
| extern SvXMLEnumMapEntry aXML_RefPoint_EnumMap[]; |
| extern SvXMLEnumMapEntry aXML_BitmapMode_EnumMap[]; |
| |
| SvXMLEnumMapEntry aXML_TextGridMode_ConstantMap[] = |
| { |
| { XML_NONE, text::TextGridMode::NONE }, |
| { XML_LINE, text::TextGridMode::LINES }, |
| { XML_BOTH, text::TextGridMode::LINES_AND_CHARS }, |
| { XML_TOKEN_INVALID, 0 } |
| }; |
| |
| //______________________________________________________________________________ |
| |
| XMLPageMasterPropHdlFactory::XMLPageMasterPropHdlFactory() : |
| XMLPropertyHandlerFactory() |
| { |
| } |
| |
| XMLPageMasterPropHdlFactory::~XMLPageMasterPropHdlFactory() |
| { |
| } |
| |
| const XMLPropertyHandler* XMLPageMasterPropHdlFactory::GetPropertyHandler( sal_Int32 nType ) const |
| { |
| nType &= MID_FLAG_MASK; |
| |
| XMLPropertyHandler* pHdl = (XMLPropertyHandler*) XMLPropertyHandlerFactory::GetPropertyHandler( nType ); |
| if( !pHdl ) |
| { |
| switch( nType ) |
| { |
| case XML_PM_TYPE_PAGESTYLELAYOUT: |
| pHdl = new XMLPMPropHdl_PageStyleLayout(); |
| break; |
| case XML_PM_TYPE_NUMFORMAT: |
| pHdl = new XMLPMPropHdl_NumFormat(); |
| break; |
| case XML_PM_TYPE_NUMLETTERSYNC: |
| pHdl = new XMLPMPropHdl_NumLetterSync(); |
| break; |
| case XML_PM_TYPE_PAPERTRAYNUMBER: |
| pHdl = new XMLPMPropHdl_PaperTrayNumber(); |
| break; |
| case XML_PM_TYPE_PRINTORIENTATION: |
| pHdl = new XMLNamedBoolPropertyHdl( |
| GetXMLToken( XML_LANDSCAPE ), |
| GetXMLToken( XML_PORTRAIT ) ); |
| break; |
| case XML_PM_TYPE_PRINTANNOTATIONS: |
| pHdl = new XMLPMPropHdl_Print( XML_ANNOTATIONS ); |
| break; |
| case XML_PM_TYPE_PRINTCHARTS: |
| pHdl = new XMLPMPropHdl_Print( XML_CHARTS ); |
| break; |
| case XML_PM_TYPE_PRINTDRAWING: |
| pHdl = new XMLPMPropHdl_Print( XML_DRAWINGS ); |
| break; |
| case XML_PM_TYPE_PRINTFORMULAS: |
| pHdl = new XMLPMPropHdl_Print( XML_FORMULAS ); |
| break; |
| case XML_PM_TYPE_PRINTGRID: |
| pHdl = new XMLPMPropHdl_Print( XML_GRID ); |
| break; |
| case XML_PM_TYPE_PRINTHEADERS: |
| pHdl = new XMLPMPropHdl_Print( XML_HEADERS ); |
| break; |
| case XML_PM_TYPE_PRINTOBJECTS: |
| pHdl = new XMLPMPropHdl_Print( XML_OBJECTS ); |
| break; |
| case XML_PM_TYPE_PRINTZEROVALUES: |
| pHdl = new XMLPMPropHdl_Print( XML_ZERO_VALUES ); |
| break; |
| case XML_PM_TYPE_PRINTPAGEORDER: |
| pHdl = new XMLNamedBoolPropertyHdl( GetXMLToken( XML_TTB ), |
| GetXMLToken( XML_LTR ) ); |
| break; |
| case XML_PM_TYPE_FIRSTPAGENUMBER: |
| pHdl = new XMLNumberNonePropHdl( XML_CONTINUE, 2 ); |
| break; |
| case XML_PM_TYPE_CENTER_HORIZONTAL: |
| pHdl = new XMLPMPropHdl_CenterHorizontal(); |
| break; |
| case XML_PM_TYPE_CENTER_VERTICAL: |
| pHdl = new XMLPMPropHdl_CenterVertical(); |
| break; |
| case XML_TYPE_TEXT_COLUMNS: |
| pHdl = new XMLTextColumnsPropertyHandler; |
| break; |
| case XML_TYPE_LAYOUT_GRID_MODE: |
| pHdl = new XMLConstantsPropertyHandler( |
| aXML_TextGridMode_ConstantMap, XML_NONE ); |
| break; |
| |
| //UUUU |
| case XML_SW_TYPE_FILLSTYLE: |
| pHdl = new XMLEnumPropertyHdl( aXML_FillStyle_EnumMap, ::getCppuType((const FillStyle*)0) ); |
| break; |
| case XML_SW_TYPE_FILLBITMAPSIZE: |
| pHdl = new XMLFillBitmapSizePropertyHandler(); |
| break; |
| case XML_SW_TYPE_LOGICAL_SIZE: |
| pHdl = new XMLBitmapLogicalSizePropertyHandler(); |
| break; |
| case XML_SW_TYPE_BITMAP_REFPOINT: |
| pHdl = new XMLEnumPropertyHdl( aXML_RefPoint_EnumMap, getCppuType((const RectanglePoint*)0) ); |
| break; |
| case XML_SW_TYPE_BITMAP_MODE: |
| pHdl = new XMLEnumPropertyHdl( aXML_BitmapMode_EnumMap, getCppuType((const BitmapMode*)0) ); |
| break; |
| case XML_SW_TYPE_BITMAPREPOFFSETX: |
| case XML_SW_TYPE_BITMAPREPOFFSETY: |
| pHdl = new XMLBitmapRepeatOffsetPropertyHandler(XML_SW_TYPE_BITMAPREPOFFSETX == nType); |
| break; |
| |
| //UUUU |
| default: |
| { |
| OSL_ENSURE(false, "XMLPropertyHandler missing (!)"); |
| break; |
| } |
| } |
| |
| if( pHdl ) |
| PutHdlCache( nType, pHdl ); |
| } |
| return pHdl; |
| } |
| |
| |