1*e1d5bd03SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*e1d5bd03SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*e1d5bd03SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*e1d5bd03SAndrew Rist * distributed with this work for additional information 6*e1d5bd03SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*e1d5bd03SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*e1d5bd03SAndrew Rist * "License"); you may not use this file except in compliance 9*e1d5bd03SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*e1d5bd03SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*e1d5bd03SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*e1d5bd03SAndrew Rist * software distributed under the License is distributed on an 15*e1d5bd03SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*e1d5bd03SAndrew Rist * KIND, either express or implied. See the License for the 17*e1d5bd03SAndrew Rist * specific language governing permissions and limitations 18*e1d5bd03SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*e1d5bd03SAndrew Rist *************************************************************/ 21*e1d5bd03SAndrew Rist 22*e1d5bd03SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_xmlscript.hxx" 26cdf0e10cSrcweir #include "exp_share.hxx" 27cdf0e10cSrcweir 28cdf0e10cSrcweir #include <rtl/ustrbuf.hxx> 29cdf0e10cSrcweir #include <tools/diagnose_ex.h> 30cdf0e10cSrcweir 31cdf0e10cSrcweir #include <com/sun/star/awt/CharSet.hpp> 32cdf0e10cSrcweir #include <com/sun/star/awt/FontFamily.hpp> 33cdf0e10cSrcweir #include <com/sun/star/awt/FontPitch.hpp> 34cdf0e10cSrcweir #include <com/sun/star/awt/FontSlant.hpp> 35cdf0e10cSrcweir #include <com/sun/star/awt/FontStrikeout.hpp> 36cdf0e10cSrcweir #include <com/sun/star/awt/FontType.hpp> 37cdf0e10cSrcweir #include <com/sun/star/awt/FontUnderline.hpp> 38cdf0e10cSrcweir #include <com/sun/star/awt/FontWeight.hpp> 39cdf0e10cSrcweir #include <com/sun/star/awt/FontWidth.hpp> 40cdf0e10cSrcweir #include <com/sun/star/awt/ImagePosition.hpp> 41cdf0e10cSrcweir #include <com/sun/star/awt/LineEndFormat.hpp> 42cdf0e10cSrcweir #include <com/sun/star/awt/PushButtonType.hpp> 43cdf0e10cSrcweir #include <com/sun/star/awt/VisualEffect.hpp> 44cdf0e10cSrcweir 45cdf0e10cSrcweir #include <com/sun/star/script/XScriptEventsSupplier.hpp> 46cdf0e10cSrcweir #include <com/sun/star/script/ScriptEventDescriptor.hpp> 47cdf0e10cSrcweir 48cdf0e10cSrcweir #include <com/sun/star/style/VerticalAlignment.hpp> 49cdf0e10cSrcweir 50cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp> 51cdf0e10cSrcweir #include <com/sun/star/lang/Locale.hpp> 52cdf0e10cSrcweir #include <com/sun/star/util/NumberFormat.hpp> 53cdf0e10cSrcweir 54cdf0e10cSrcweir #include <com/sun/star/view/SelectionType.hpp> 55cdf0e10cSrcweir 56cdf0e10cSrcweir 57cdf0e10cSrcweir using namespace ::com::sun::star; 58cdf0e10cSrcweir using namespace ::com::sun::star::uno; 59cdf0e10cSrcweir using ::rtl::OUString; 60cdf0e10cSrcweir using ::rtl::OUStringBuffer; 61cdf0e10cSrcweir 62cdf0e10cSrcweir namespace xmlscript 63cdf0e10cSrcweir { 64cdf0e10cSrcweir 65cdf0e10cSrcweir //__________________________________________________________________________________________________ 66cdf0e10cSrcweir Reference< xml::sax::XAttributeList > Style::createElement() 67cdf0e10cSrcweir { 68cdf0e10cSrcweir ElementDescriptor * pStyle = new ElementDescriptor( 69cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style") ) ); 70cdf0e10cSrcweir 71cdf0e10cSrcweir // style-id 72cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":style-id") ), _id ); 73cdf0e10cSrcweir 74cdf0e10cSrcweir // background-color 75cdf0e10cSrcweir if (_set & 0x1) 76cdf0e10cSrcweir { 77cdf0e10cSrcweir OUStringBuffer buf( 16 ); 78cdf0e10cSrcweir buf.append( (sal_Unicode)'0' ); 79cdf0e10cSrcweir buf.append( (sal_Unicode)'x' ); 80cdf0e10cSrcweir buf.append( OUString::valueOf( (sal_Int64)(sal_uInt64)_backgroundColor, 16 ) ); 81cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":background-color") ), 82cdf0e10cSrcweir buf.makeStringAndClear() ); 83cdf0e10cSrcweir } 84cdf0e10cSrcweir 85cdf0e10cSrcweir // text-color 86cdf0e10cSrcweir if (_set & 0x2) 87cdf0e10cSrcweir { 88cdf0e10cSrcweir OUStringBuffer buf( 16 ); 89cdf0e10cSrcweir buf.append( (sal_Unicode)'0' ); 90cdf0e10cSrcweir buf.append( (sal_Unicode)'x' ); 91cdf0e10cSrcweir buf.append( OUString::valueOf( (sal_Int64)(sal_uInt64)_textColor, 16 ) ); 92cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":text-color") ), 93cdf0e10cSrcweir buf.makeStringAndClear() ); 94cdf0e10cSrcweir } 95cdf0e10cSrcweir 96cdf0e10cSrcweir // textline-color 97cdf0e10cSrcweir if (_set & 0x20) 98cdf0e10cSrcweir { 99cdf0e10cSrcweir OUStringBuffer buf( 16 ); 100cdf0e10cSrcweir buf.append( (sal_Unicode)'0' ); 101cdf0e10cSrcweir buf.append( (sal_Unicode)'x' ); 102cdf0e10cSrcweir buf.append( OUString::valueOf( (sal_Int64)(sal_uInt64)_textLineColor, 16 ) ); 103cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":textline-color") ), 104cdf0e10cSrcweir buf.makeStringAndClear() ); 105cdf0e10cSrcweir } 106cdf0e10cSrcweir 107cdf0e10cSrcweir // fill-color 108cdf0e10cSrcweir if (_set & 0x10) 109cdf0e10cSrcweir { 110cdf0e10cSrcweir OUStringBuffer buf( 16 ); 111cdf0e10cSrcweir buf.append( (sal_Unicode)'0' ); 112cdf0e10cSrcweir buf.append( (sal_Unicode)'x' ); 113cdf0e10cSrcweir buf.append( OUString::valueOf( (sal_Int64)(sal_uInt64)_fillColor, 16 ) ); 114cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":fill-color") ), 115cdf0e10cSrcweir buf.makeStringAndClear() ); 116cdf0e10cSrcweir } 117cdf0e10cSrcweir 118cdf0e10cSrcweir // border 119cdf0e10cSrcweir if (_set & 0x4) 120cdf0e10cSrcweir { 121cdf0e10cSrcweir switch (_border) 122cdf0e10cSrcweir { 123cdf0e10cSrcweir case BORDER_NONE: 124cdf0e10cSrcweir pStyle->addAttribute( OUSTR(XMLNS_DIALOGS_PREFIX ":border"), 125cdf0e10cSrcweir OUSTR("none") ); 126cdf0e10cSrcweir break; 127cdf0e10cSrcweir case BORDER_3D: 128cdf0e10cSrcweir pStyle->addAttribute( OUSTR(XMLNS_DIALOGS_PREFIX ":border"), 129cdf0e10cSrcweir OUSTR("3d") ); 130cdf0e10cSrcweir break; 131cdf0e10cSrcweir case BORDER_SIMPLE: 132cdf0e10cSrcweir pStyle->addAttribute( OUSTR(XMLNS_DIALOGS_PREFIX ":border"), 133cdf0e10cSrcweir OUSTR("simple") ); 134cdf0e10cSrcweir break; 135cdf0e10cSrcweir case BORDER_SIMPLE_COLOR: { 136cdf0e10cSrcweir OUStringBuffer buf; 137cdf0e10cSrcweir buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("0x") ); 138cdf0e10cSrcweir buf.append( OUString::valueOf( 139cdf0e10cSrcweir (sal_Int64)(sal_uInt64)_borderColor, 16 ) ); 140cdf0e10cSrcweir pStyle->addAttribute( OUSTR(XMLNS_DIALOGS_PREFIX ":border"), 141cdf0e10cSrcweir buf.makeStringAndClear() ); 142cdf0e10cSrcweir break; 143cdf0e10cSrcweir } 144cdf0e10cSrcweir default: 145cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected border value!" ); 146cdf0e10cSrcweir break; 147cdf0e10cSrcweir } 148cdf0e10cSrcweir } 149cdf0e10cSrcweir 150cdf0e10cSrcweir // visual effect (look) 151cdf0e10cSrcweir if (_set & 0x40) 152cdf0e10cSrcweir { 153cdf0e10cSrcweir switch (_visualEffect) 154cdf0e10cSrcweir { 155cdf0e10cSrcweir case awt::VisualEffect::NONE: 156cdf0e10cSrcweir pStyle->addAttribute( OUSTR(XMLNS_DIALOGS_PREFIX ":look"), 157cdf0e10cSrcweir OUSTR("none") ); 158cdf0e10cSrcweir break; 159cdf0e10cSrcweir case awt::VisualEffect::LOOK3D: 160cdf0e10cSrcweir pStyle->addAttribute( OUSTR(XMLNS_DIALOGS_PREFIX ":look"), 161cdf0e10cSrcweir OUSTR("3d") ); 162cdf0e10cSrcweir break; 163cdf0e10cSrcweir case awt::VisualEffect::FLAT: 164cdf0e10cSrcweir pStyle->addAttribute( OUSTR(XMLNS_DIALOGS_PREFIX ":look"), 165cdf0e10cSrcweir OUSTR("simple") ); 166cdf0e10cSrcweir break; 167cdf0e10cSrcweir default: 168cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected visual effect value!" ); 169cdf0e10cSrcweir break; 170cdf0e10cSrcweir } 171cdf0e10cSrcweir } 172cdf0e10cSrcweir 173cdf0e10cSrcweir // font- 174cdf0e10cSrcweir if (_set & 0x8) 175cdf0e10cSrcweir { 176cdf0e10cSrcweir awt::FontDescriptor def_descr; 177cdf0e10cSrcweir 178cdf0e10cSrcweir // dialog:font-name CDATA #IMPLIED 179cdf0e10cSrcweir if (def_descr.Name != _descr.Name) 180cdf0e10cSrcweir { 181cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-name") ), 182cdf0e10cSrcweir _descr.Name ); 183cdf0e10cSrcweir } 184cdf0e10cSrcweir // dialog:font-height %numeric; #IMPLIED 185cdf0e10cSrcweir if (def_descr.Height != _descr.Height) 186cdf0e10cSrcweir { 187cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-height") ), 188cdf0e10cSrcweir OUString::valueOf( (sal_Int32)_descr.Height ) ); 189cdf0e10cSrcweir } 190cdf0e10cSrcweir // dialog:font-width %numeric; #IMPLIED 191cdf0e10cSrcweir if (def_descr.Width != _descr.Width) 192cdf0e10cSrcweir { 193cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-width") ), 194cdf0e10cSrcweir OUString::valueOf( (sal_Int32)_descr.Width ) ); 195cdf0e10cSrcweir } 196cdf0e10cSrcweir // dialog:font-stylename CDATA #IMPLIED 197cdf0e10cSrcweir if (def_descr.StyleName != _descr.StyleName) 198cdf0e10cSrcweir { 199cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-stylename") ), 200cdf0e10cSrcweir _descr.StyleName ); 201cdf0e10cSrcweir } 202cdf0e10cSrcweir // dialog:font-family "(decorative|modern|roman|script|swiss|system)" #IMPLIED 203cdf0e10cSrcweir if (def_descr.Family != _descr.Family) 204cdf0e10cSrcweir { 205cdf0e10cSrcweir switch (_descr.Family) 206cdf0e10cSrcweir { 207cdf0e10cSrcweir case awt::FontFamily::DECORATIVE: 208cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-family") ), 209cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("decorative") ) ); 210cdf0e10cSrcweir break; 211cdf0e10cSrcweir case awt::FontFamily::MODERN: 212cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-family") ), 213cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("modern") ) ); 214cdf0e10cSrcweir break; 215cdf0e10cSrcweir case awt::FontFamily::ROMAN: 216cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-family") ), 217cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("roman") ) ); 218cdf0e10cSrcweir break; 219cdf0e10cSrcweir case awt::FontFamily::SCRIPT: 220cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-family") ), 221cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("script") ) ); 222cdf0e10cSrcweir break; 223cdf0e10cSrcweir case awt::FontFamily::SWISS: 224cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-family") ), 225cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("swiss") ) ); 226cdf0e10cSrcweir break; 227cdf0e10cSrcweir case awt::FontFamily::SYSTEM: 228cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-family") ), 229cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("system") ) ); 230cdf0e10cSrcweir break; 231cdf0e10cSrcweir default: 232cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected font-family!" ); 233cdf0e10cSrcweir break; 234cdf0e10cSrcweir } 235cdf0e10cSrcweir } 236cdf0e10cSrcweir // dialog:font-charset "(ansi|mac|ibmpc_437|ibmpc_850|ibmpc_860|ibmpc_861|ibmpc_863|ibmpc_865|system|symbol)" #IMPLIED 237cdf0e10cSrcweir if (def_descr.CharSet != _descr.CharSet) 238cdf0e10cSrcweir { 239cdf0e10cSrcweir switch (_descr.CharSet) 240cdf0e10cSrcweir { 241cdf0e10cSrcweir case awt::CharSet::ANSI: 242cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 243cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("ansi") ) ); 244cdf0e10cSrcweir break; 245cdf0e10cSrcweir case awt::CharSet::MAC: 246cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 247cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("mac") ) ); 248cdf0e10cSrcweir break; 249cdf0e10cSrcweir case awt::CharSet::IBMPC_437: 250cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 251cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("ibmpc_437") ) ); 252cdf0e10cSrcweir break; 253cdf0e10cSrcweir case awt::CharSet::IBMPC_850: 254cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 255cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("ibmpc_850") ) ); 256cdf0e10cSrcweir break; 257cdf0e10cSrcweir case awt::CharSet::IBMPC_860: 258cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 259cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("ibmpc_860") ) ); 260cdf0e10cSrcweir break; 261cdf0e10cSrcweir case awt::CharSet::IBMPC_861: 262cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 263cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("ibmpc_861") ) ); 264cdf0e10cSrcweir break; 265cdf0e10cSrcweir case awt::CharSet::IBMPC_863: 266cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 267cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("ibmpc_863") ) ); 268cdf0e10cSrcweir break; 269cdf0e10cSrcweir case awt::CharSet::IBMPC_865: 270cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 271cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("ibmpc_865") ) ); 272cdf0e10cSrcweir break; 273cdf0e10cSrcweir case awt::CharSet::SYSTEM: 274cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 275cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("system") ) ); 276cdf0e10cSrcweir break; 277cdf0e10cSrcweir case awt::CharSet::SYMBOL: 278cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charset") ), 279cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("symbol") ) ); 280cdf0e10cSrcweir break; 281cdf0e10cSrcweir default: 282cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected font-charset!" ); 283cdf0e10cSrcweir break; 284cdf0e10cSrcweir } 285cdf0e10cSrcweir } 286cdf0e10cSrcweir // dialog:font-pitch "(fixed|variable)" #IMPLIED 287cdf0e10cSrcweir if (def_descr.Pitch != _descr.Pitch) 288cdf0e10cSrcweir { 289cdf0e10cSrcweir switch (_descr.Pitch) 290cdf0e10cSrcweir { 291cdf0e10cSrcweir case awt::FontPitch::FIXED: 292cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-pitch") ), 293cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("fixed") ) ); 294cdf0e10cSrcweir break; 295cdf0e10cSrcweir case awt::FontPitch::VARIABLE: 296cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-pitch") ), 297cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("variable") ) ); 298cdf0e10cSrcweir break; 299cdf0e10cSrcweir default: 300cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected font-pitch!" ); 301cdf0e10cSrcweir break; 302cdf0e10cSrcweir } 303cdf0e10cSrcweir } 304cdf0e10cSrcweir // dialog:font-charwidth CDATA #IMPLIED 305cdf0e10cSrcweir if (def_descr.CharacterWidth != _descr.CharacterWidth) 306cdf0e10cSrcweir { 307cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-charwidth") ), 308cdf0e10cSrcweir OUString::valueOf( (float)_descr.CharacterWidth ) ); 309cdf0e10cSrcweir } 310cdf0e10cSrcweir // dialog:font-weight CDATA #IMPLIED 311cdf0e10cSrcweir if (def_descr.Weight != _descr.Weight) 312cdf0e10cSrcweir { 313cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-weight") ), 314cdf0e10cSrcweir OUString::valueOf( (float)_descr.Weight ) ); 315cdf0e10cSrcweir } 316cdf0e10cSrcweir // dialog:font-slant "(oblique|italic|reverse_oblique|reverse_italic)" #IMPLIED 317cdf0e10cSrcweir if (def_descr.Slant != _descr.Slant) 318cdf0e10cSrcweir { 319cdf0e10cSrcweir switch (_descr.Slant) 320cdf0e10cSrcweir { 321cdf0e10cSrcweir case awt::FontSlant_OBLIQUE: 322cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-slant") ), 323cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("oblique") ) ); 324cdf0e10cSrcweir break; 325cdf0e10cSrcweir case awt::FontSlant_ITALIC: 326cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-slant") ), 327cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("italic") ) ); 328cdf0e10cSrcweir break; 329cdf0e10cSrcweir case awt::FontSlant_REVERSE_OBLIQUE: 330cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-slant") ), 331cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("reverse_oblique") ) ); 332cdf0e10cSrcweir break; 333cdf0e10cSrcweir case awt::FontSlant_REVERSE_ITALIC: 334cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-slant") ), 335cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("reverse_italic") ) ); 336cdf0e10cSrcweir break; 337cdf0e10cSrcweir default: 338cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected font-slant!" ); 339cdf0e10cSrcweir break; 340cdf0e10cSrcweir } 341cdf0e10cSrcweir } 342cdf0e10cSrcweir // dialog:font-underline "(single|double|dotted|dash|longdash|dashdot|dashdotdot|smallwave|wave|doublewave|bold|bolddotted|bolddash|boldlongdash|bolddashdot|bolddashdotdot|boldwave)" #IMPLIED 343cdf0e10cSrcweir if (def_descr.Underline != _descr.Underline) 344cdf0e10cSrcweir { 345cdf0e10cSrcweir switch (_descr.Underline) 346cdf0e10cSrcweir { 347cdf0e10cSrcweir case awt::FontUnderline::SINGLE: 348cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 349cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("single") ) ); 350cdf0e10cSrcweir break; 351cdf0e10cSrcweir case awt::FontUnderline::DOUBLE: 352cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 353cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("double") ) ); 354cdf0e10cSrcweir break; 355cdf0e10cSrcweir case awt::FontUnderline::DOTTED: 356cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 357cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("dotted") ) ); 358cdf0e10cSrcweir break; 359cdf0e10cSrcweir case awt::FontUnderline::DASH: 360cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 361cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("dash") ) ); 362cdf0e10cSrcweir break; 363cdf0e10cSrcweir case awt::FontUnderline::LONGDASH: 364cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 365cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("longdash") ) ); 366cdf0e10cSrcweir break; 367cdf0e10cSrcweir case awt::FontUnderline::DASHDOT: 368cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 369cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("dashdot") ) ); 370cdf0e10cSrcweir break; 371cdf0e10cSrcweir case awt::FontUnderline::DASHDOTDOT: 372cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 373cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("dashdotdot") ) ); 374cdf0e10cSrcweir break; 375cdf0e10cSrcweir case awt::FontUnderline::SMALLWAVE: 376cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 377cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("smallwave") ) ); 378cdf0e10cSrcweir break; 379cdf0e10cSrcweir case awt::FontUnderline::WAVE: 380cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 381cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("wave") ) ); 382cdf0e10cSrcweir break; 383cdf0e10cSrcweir case awt::FontUnderline::DOUBLEWAVE: 384cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 385cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("doublewave") ) ); 386cdf0e10cSrcweir break; 387cdf0e10cSrcweir case awt::FontUnderline::BOLD: 388cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 389cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("bold") ) ); 390cdf0e10cSrcweir break; 391cdf0e10cSrcweir case awt::FontUnderline::BOLDDOTTED: 392cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 393cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("bolddotted") ) ); 394cdf0e10cSrcweir break; 395cdf0e10cSrcweir case awt::FontUnderline::BOLDDASH: 396cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 397cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("bolddash") ) ); 398cdf0e10cSrcweir break; 399cdf0e10cSrcweir case awt::FontUnderline::BOLDLONGDASH: 400cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 401cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("boldlongdash") ) ); 402cdf0e10cSrcweir break; 403cdf0e10cSrcweir case awt::FontUnderline::BOLDDASHDOT: 404cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 405cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("bolddashdot") ) ); 406cdf0e10cSrcweir break; 407cdf0e10cSrcweir case awt::FontUnderline::BOLDDASHDOTDOT: 408cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 409cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("bolddashdotdot") ) ); 410cdf0e10cSrcweir break; 411cdf0e10cSrcweir case awt::FontUnderline::BOLDWAVE: 412cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-underline") ), 413cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("boldwave") ) ); 414cdf0e10cSrcweir break; 415cdf0e10cSrcweir default: 416cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected font-underline!" ); 417cdf0e10cSrcweir break; 418cdf0e10cSrcweir } 419cdf0e10cSrcweir } 420cdf0e10cSrcweir // dialog:font-strikeout "(single|double|bold|slash|x)" #IMPLIED 421cdf0e10cSrcweir if (def_descr.Strikeout != _descr.Strikeout) 422cdf0e10cSrcweir { 423cdf0e10cSrcweir switch (_descr.Strikeout) 424cdf0e10cSrcweir { 425cdf0e10cSrcweir case awt::FontStrikeout::SINGLE: 426cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-strikeout") ), 427cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("single") ) ); 428cdf0e10cSrcweir break; 429cdf0e10cSrcweir case awt::FontStrikeout::DOUBLE: 430cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-strikeout") ), 431cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("double") ) ); 432cdf0e10cSrcweir break; 433cdf0e10cSrcweir case awt::FontStrikeout::BOLD: 434cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-strikeout") ), 435cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("bold") ) ); 436cdf0e10cSrcweir break; 437cdf0e10cSrcweir case awt::FontStrikeout::SLASH: 438cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-strikeout") ), 439cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("slash") ) ); 440cdf0e10cSrcweir break; 441cdf0e10cSrcweir case awt::FontStrikeout::X: 442cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-strikeout") ), 443cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("x") ) ); 444cdf0e10cSrcweir break; 445cdf0e10cSrcweir default: 446cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected font-strikeout!" ); 447cdf0e10cSrcweir break; 448cdf0e10cSrcweir } 449cdf0e10cSrcweir } 450cdf0e10cSrcweir // dialog:font-orientation CDATA #IMPLIED 451cdf0e10cSrcweir if (def_descr.Orientation != _descr.Orientation) 452cdf0e10cSrcweir { 453cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-orientation") ), 454cdf0e10cSrcweir OUString::valueOf( (float)_descr.Orientation ) ); 455cdf0e10cSrcweir } 456cdf0e10cSrcweir // dialog:font-kerning %boolean; #IMPLIED 457cdf0e10cSrcweir if ((def_descr.Kerning != sal_False) != (_descr.Kerning != sal_False)) 458cdf0e10cSrcweir { 459cdf0e10cSrcweir pStyle->addBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-kerning") ), 460cdf0e10cSrcweir _descr.Kerning ); 461cdf0e10cSrcweir } 462cdf0e10cSrcweir // dialog:font-wordlinemode %boolean; #IMPLIED 463cdf0e10cSrcweir if ((def_descr.WordLineMode != sal_False) != (_descr.WordLineMode != sal_False)) 464cdf0e10cSrcweir { 465cdf0e10cSrcweir pStyle->addBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-wordlinemode") ), 466cdf0e10cSrcweir _descr.WordLineMode ); 467cdf0e10cSrcweir } 468cdf0e10cSrcweir // dialog:font-type "(raster|device|scalable)" #IMPLIED 469cdf0e10cSrcweir if (def_descr.Type != _descr.Type) 470cdf0e10cSrcweir { 471cdf0e10cSrcweir switch (_descr.Type) 472cdf0e10cSrcweir { 473cdf0e10cSrcweir case awt::FontType::RASTER: 474cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-type") ), 475cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("raster") ) ); 476cdf0e10cSrcweir break; 477cdf0e10cSrcweir case awt::FontType::DEVICE: 478cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-type") ), 479cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("device") ) ); 480cdf0e10cSrcweir break; 481cdf0e10cSrcweir case awt::FontType::SCALABLE: 482cdf0e10cSrcweir pStyle->addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-type") ), 483cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("scalable") ) ); 484cdf0e10cSrcweir break; 485cdf0e10cSrcweir default: 486cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected font-type!" ); 487cdf0e10cSrcweir break; 488cdf0e10cSrcweir } 489cdf0e10cSrcweir } 490cdf0e10cSrcweir 491cdf0e10cSrcweir // additional attributes not in FontDescriptor struct 492cdf0e10cSrcweir // dialog:font-relief (none|embossed|engraved) #IMPLIED 493cdf0e10cSrcweir switch (_fontRelief) 494cdf0e10cSrcweir { 495cdf0e10cSrcweir case awt::FontRelief::NONE: // dont export default 496cdf0e10cSrcweir break; 497cdf0e10cSrcweir case awt::FontRelief::EMBOSSED: 498cdf0e10cSrcweir pStyle->addAttribute( 499cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-relief") ), 500cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("embossed") ) ); 501cdf0e10cSrcweir break; 502cdf0e10cSrcweir case awt::FontRelief::ENGRAVED: 503cdf0e10cSrcweir pStyle->addAttribute( 504cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-relief") ), 505cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("engraved") ) ); 506cdf0e10cSrcweir break; 507cdf0e10cSrcweir default: 508cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected font-relief!" ); 509cdf0e10cSrcweir break; 510cdf0e10cSrcweir } 511cdf0e10cSrcweir // dialog:font-emphasismark (none|dot|circle|disc|accent|above|below) #IMPLIED 512cdf0e10cSrcweir switch (_fontEmphasisMark) 513cdf0e10cSrcweir { 514cdf0e10cSrcweir case awt::FontEmphasisMark::NONE: // dont export default 515cdf0e10cSrcweir break; 516cdf0e10cSrcweir case awt::FontEmphasisMark::DOT: 517cdf0e10cSrcweir pStyle->addAttribute( 518cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-emphasismark") ), 519cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("dot") ) ); 520cdf0e10cSrcweir break; 521cdf0e10cSrcweir case awt::FontEmphasisMark::CIRCLE: 522cdf0e10cSrcweir pStyle->addAttribute( 523cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-emphasismark") ), 524cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("circle") ) ); 525cdf0e10cSrcweir break; 526cdf0e10cSrcweir case awt::FontEmphasisMark::DISC: 527cdf0e10cSrcweir pStyle->addAttribute( 528cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-emphasismark") ), 529cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("disc") ) ); 530cdf0e10cSrcweir break; 531cdf0e10cSrcweir case awt::FontEmphasisMark::ACCENT: 532cdf0e10cSrcweir pStyle->addAttribute( 533cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-emphasismark") ), 534cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("accent") ) ); 535cdf0e10cSrcweir break; 536cdf0e10cSrcweir case awt::FontEmphasisMark::ABOVE: 537cdf0e10cSrcweir pStyle->addAttribute( 538cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-emphasismark") ), 539cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("above") ) ); 540cdf0e10cSrcweir break; 541cdf0e10cSrcweir case awt::FontEmphasisMark::BELOW: 542cdf0e10cSrcweir pStyle->addAttribute( 543cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":font-emphasismark") ), 544cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("below") ) ); 545cdf0e10cSrcweir break; 546cdf0e10cSrcweir default: 547cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected font-emphasismark!" ); 548cdf0e10cSrcweir break; 549cdf0e10cSrcweir } 550cdf0e10cSrcweir } 551cdf0e10cSrcweir 552cdf0e10cSrcweir return pStyle; 553cdf0e10cSrcweir } 554cdf0e10cSrcweir 555cdf0e10cSrcweir //################################################################################################## 556cdf0e10cSrcweir 557cdf0e10cSrcweir //__________________________________________________________________________________________________ 558cdf0e10cSrcweir void ElementDescriptor::addNumberFormatAttr( 559cdf0e10cSrcweir Reference< beans::XPropertySet > const & xFormatProperties, 560cdf0e10cSrcweir OUString const & /*rAttrName*/ ) 561cdf0e10cSrcweir { 562cdf0e10cSrcweir Reference< beans::XPropertyState > xState( xFormatProperties, UNO_QUERY ); 563cdf0e10cSrcweir OUString sFormat; 564cdf0e10cSrcweir lang::Locale locale; 565cdf0e10cSrcweir OSL_VERIFY( xFormatProperties->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("FormatString") ) ) >>= sFormat ); 566cdf0e10cSrcweir OSL_VERIFY( xFormatProperties->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("Locale") ) ) >>= locale ); 567cdf0e10cSrcweir 568cdf0e10cSrcweir addAttribute( 569cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":format-code") ), 570cdf0e10cSrcweir sFormat ); 571cdf0e10cSrcweir 572cdf0e10cSrcweir // format-locale 573cdf0e10cSrcweir OUStringBuffer buf( 48 ); 574cdf0e10cSrcweir buf.append( locale.Language ); 575cdf0e10cSrcweir if (locale.Country.getLength()) 576cdf0e10cSrcweir { 577cdf0e10cSrcweir buf.append( (sal_Unicode)';' ); 578cdf0e10cSrcweir buf.append( locale.Country ); 579cdf0e10cSrcweir if (locale.Variant.getLength()) 580cdf0e10cSrcweir { 581cdf0e10cSrcweir buf.append( (sal_Unicode)';' ); 582cdf0e10cSrcweir buf.append( locale.Variant ); 583cdf0e10cSrcweir } 584cdf0e10cSrcweir } 585cdf0e10cSrcweir addAttribute( 586cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":format-locale") ), 587cdf0e10cSrcweir buf.makeStringAndClear() ); 588cdf0e10cSrcweir } 589cdf0e10cSrcweir //__________________________________________________________________________________________________ 590cdf0e10cSrcweir Any ElementDescriptor::readProp( OUString const & rPropName ) 591cdf0e10cSrcweir { 592cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 593cdf0e10cSrcweir { 594cdf0e10cSrcweir return _xProps->getPropertyValue( rPropName ); 595cdf0e10cSrcweir } 596cdf0e10cSrcweir return Any(); 597cdf0e10cSrcweir } 598cdf0e10cSrcweir 599cdf0e10cSrcweir //______________________________________________________________________________ 600cdf0e10cSrcweir void ElementDescriptor::readStringAttr( 601cdf0e10cSrcweir OUString const & rPropName, OUString const & rAttrName ) 602cdf0e10cSrcweir { 603cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != 604cdf0e10cSrcweir _xPropState->getPropertyState( rPropName )) 605cdf0e10cSrcweir { 606cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 607cdf0e10cSrcweir OUString v; 608cdf0e10cSrcweir if (a >>= v) 609cdf0e10cSrcweir addAttribute( rAttrName, v ); 610cdf0e10cSrcweir else 611cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected property type!" ); 612cdf0e10cSrcweir } 613cdf0e10cSrcweir } 614cdf0e10cSrcweir 615cdf0e10cSrcweir //__________________________________________________________________________________________________ 616cdf0e10cSrcweir void ElementDescriptor::readHexLongAttr( OUString const & rPropName, OUString const & rAttrName ) 617cdf0e10cSrcweir { 618cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 619cdf0e10cSrcweir { 620cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 621cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_LONG) 622cdf0e10cSrcweir { 623cdf0e10cSrcweir OUStringBuffer buf( 16 ); 624cdf0e10cSrcweir buf.append( (sal_Unicode)'0' ); 625cdf0e10cSrcweir buf.append( (sal_Unicode)'x' ); 626cdf0e10cSrcweir buf.append( OUString::valueOf( (sal_Int64)(sal_uInt64)*(sal_uInt32 *)a.getValue(), 16 ) ); 627cdf0e10cSrcweir addAttribute( rAttrName, buf.makeStringAndClear() ); 628cdf0e10cSrcweir } 629cdf0e10cSrcweir } 630cdf0e10cSrcweir } 631cdf0e10cSrcweir 632cdf0e10cSrcweir //__________________________________________________________________________________________________ 633cdf0e10cSrcweir void ElementDescriptor::readDateFormatAttr( OUString const & rPropName, OUString const & rAttrName ) 634cdf0e10cSrcweir { 635cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 636cdf0e10cSrcweir { 637cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 638cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_SHORT) 639cdf0e10cSrcweir { 640cdf0e10cSrcweir switch (*(sal_Int16 const *)a.getValue()) 641cdf0e10cSrcweir { 642cdf0e10cSrcweir case 0: 643cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("system_short") ) ); 644cdf0e10cSrcweir break; 645cdf0e10cSrcweir case 1: 646cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("system_short_YY") ) ); 647cdf0e10cSrcweir break; 648cdf0e10cSrcweir case 2: 649cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("system_short_YYYY") ) ); 650cdf0e10cSrcweir break; 651cdf0e10cSrcweir case 3: 652cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("system_long") ) ); 653cdf0e10cSrcweir break; 654cdf0e10cSrcweir case 4: 655cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("short_DDMMYY") ) ); 656cdf0e10cSrcweir break; 657cdf0e10cSrcweir case 5: 658cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("short_MMDDYY") ) ); 659cdf0e10cSrcweir break; 660cdf0e10cSrcweir case 6: 661cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("short_YYMMDD") ) ); 662cdf0e10cSrcweir break; 663cdf0e10cSrcweir case 7: 664cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("short_DDMMYYYY") ) ); 665cdf0e10cSrcweir break; 666cdf0e10cSrcweir case 8: 667cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("short_MMDDYYYY") ) ); 668cdf0e10cSrcweir break; 669cdf0e10cSrcweir case 9: 670cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("short_YYYYMMDD") ) ); 671cdf0e10cSrcweir break; 672cdf0e10cSrcweir case 10: 673cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("short_YYMMDD_DIN5008") ) ); 674cdf0e10cSrcweir break; 675cdf0e10cSrcweir case 11: 676cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("short_YYYYMMDD_DIN5008") ) ); 677cdf0e10cSrcweir break; 678cdf0e10cSrcweir default: 679cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected date format!" ); 680cdf0e10cSrcweir break; 681cdf0e10cSrcweir } 682cdf0e10cSrcweir } 683cdf0e10cSrcweir } 684cdf0e10cSrcweir } 685cdf0e10cSrcweir //__________________________________________________________________________________________________ 686cdf0e10cSrcweir void ElementDescriptor::readTimeFormatAttr( OUString const & rPropName, OUString const & rAttrName ) 687cdf0e10cSrcweir { 688cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 689cdf0e10cSrcweir { 690cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 691cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_SHORT) 692cdf0e10cSrcweir { 693cdf0e10cSrcweir switch (*(sal_Int16 const *)a.getValue()) 694cdf0e10cSrcweir { 695cdf0e10cSrcweir case 0: 696cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("24h_short") ) ); 697cdf0e10cSrcweir break; 698cdf0e10cSrcweir case 1: 699cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("24h_long") ) ); 700cdf0e10cSrcweir break; 701cdf0e10cSrcweir case 2: 702cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("12h_short") ) ); 703cdf0e10cSrcweir break; 704cdf0e10cSrcweir case 3: 705cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("12h_long") ) ); 706cdf0e10cSrcweir break; 707cdf0e10cSrcweir case 4: 708cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("Duration_short") ) ); 709cdf0e10cSrcweir break; 710cdf0e10cSrcweir case 5: 711cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("Duration_long") ) ); 712cdf0e10cSrcweir break; 713cdf0e10cSrcweir default: 714cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected time format!" ); 715cdf0e10cSrcweir break; 716cdf0e10cSrcweir } 717cdf0e10cSrcweir } 718cdf0e10cSrcweir } 719cdf0e10cSrcweir } 720cdf0e10cSrcweir //__________________________________________________________________________________________________ 721cdf0e10cSrcweir void ElementDescriptor::readAlignAttr( OUString const & rPropName, OUString const & rAttrName ) 722cdf0e10cSrcweir { 723cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 724cdf0e10cSrcweir { 725cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 726cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_SHORT) 727cdf0e10cSrcweir { 728cdf0e10cSrcweir switch (*(sal_Int16 const *)a.getValue()) 729cdf0e10cSrcweir { 730cdf0e10cSrcweir case 0: 731cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("left") ) ); 732cdf0e10cSrcweir break; 733cdf0e10cSrcweir case 1: 734cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("center") ) ); 735cdf0e10cSrcweir break; 736cdf0e10cSrcweir case 2: 737cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("right") ) ); 738cdf0e10cSrcweir break; 739cdf0e10cSrcweir default: 740cdf0e10cSrcweir OSL_ENSURE( 0, "### illegal alignment value!" ); 741cdf0e10cSrcweir break; 742cdf0e10cSrcweir } 743cdf0e10cSrcweir } 744cdf0e10cSrcweir } 745cdf0e10cSrcweir } 746cdf0e10cSrcweir //__________________________________________________________________________________________________ 747cdf0e10cSrcweir void ElementDescriptor::readVerticalAlignAttr( OUString const & rPropName, OUString const & rAttrName ) 748cdf0e10cSrcweir { 749cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 750cdf0e10cSrcweir { 751cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 752cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_ENUM && a.getValueType() == ::getCppuType( (style::VerticalAlignment*)0 )) 753cdf0e10cSrcweir { 754cdf0e10cSrcweir style::VerticalAlignment eAlign; 755cdf0e10cSrcweir a >>= eAlign; 756cdf0e10cSrcweir switch (eAlign) 757cdf0e10cSrcweir { 758cdf0e10cSrcweir case style::VerticalAlignment_TOP: 759cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("top") ) ); 760cdf0e10cSrcweir break; 761cdf0e10cSrcweir case style::VerticalAlignment_MIDDLE: 762cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("center") ) ); 763cdf0e10cSrcweir break; 764cdf0e10cSrcweir case style::VerticalAlignment_BOTTOM: 765cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("bottom") ) ); 766cdf0e10cSrcweir break; 767cdf0e10cSrcweir default: 768cdf0e10cSrcweir OSL_ENSURE( 0, "### illegal vertical alignment value!" ); 769cdf0e10cSrcweir break; 770cdf0e10cSrcweir } 771cdf0e10cSrcweir } 772cdf0e10cSrcweir } 773cdf0e10cSrcweir } 774cdf0e10cSrcweir //__________________________________________________________________________________________________ 775cdf0e10cSrcweir void ElementDescriptor::readImageAlignAttr( OUString const & rPropName, OUString const & rAttrName ) 776cdf0e10cSrcweir { 777cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 778cdf0e10cSrcweir { 779cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 780cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_SHORT) 781cdf0e10cSrcweir { 782cdf0e10cSrcweir switch (*(sal_Int16 const *)a.getValue()) 783cdf0e10cSrcweir { 784cdf0e10cSrcweir case 0: 785cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("left") ) ); 786cdf0e10cSrcweir break; 787cdf0e10cSrcweir case 1: 788cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("top") ) ); 789cdf0e10cSrcweir break; 790cdf0e10cSrcweir case 2: 791cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("right") ) ); 792cdf0e10cSrcweir break; 793cdf0e10cSrcweir case 3: 794cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("bottom") ) ); 795cdf0e10cSrcweir break; 796cdf0e10cSrcweir default: 797cdf0e10cSrcweir OSL_ENSURE( 0, "### illegal image alignment value!" ); 798cdf0e10cSrcweir break; 799cdf0e10cSrcweir } 800cdf0e10cSrcweir } 801cdf0e10cSrcweir } 802cdf0e10cSrcweir } 803cdf0e10cSrcweir //__________________________________________________________________________________________________ 804cdf0e10cSrcweir void ElementDescriptor::readImagePositionAttr( OUString const & rPropName, OUString const & rAttrName ) 805cdf0e10cSrcweir { 806cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 807cdf0e10cSrcweir { 808cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 809cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_SHORT) 810cdf0e10cSrcweir { 811cdf0e10cSrcweir switch (*(sal_Int16 const *)a.getValue()) 812cdf0e10cSrcweir { 813cdf0e10cSrcweir case awt::ImagePosition::LeftTop: 814cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("left-top") ) ); 815cdf0e10cSrcweir break; 816cdf0e10cSrcweir case awt::ImagePosition::LeftCenter: 817cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("left-center") ) ); 818cdf0e10cSrcweir break; 819cdf0e10cSrcweir case awt::ImagePosition::LeftBottom: 820cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("left-bottom") ) ); 821cdf0e10cSrcweir break; 822cdf0e10cSrcweir case awt::ImagePosition::RightTop: 823cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("right-top") ) ); 824cdf0e10cSrcweir break; 825cdf0e10cSrcweir case awt::ImagePosition::RightCenter: 826cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("right-center") ) ); 827cdf0e10cSrcweir break; 828cdf0e10cSrcweir case awt::ImagePosition::RightBottom: 829cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("right-bottom") ) ); 830cdf0e10cSrcweir break; 831cdf0e10cSrcweir case awt::ImagePosition::AboveLeft: 832cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("top-left") ) ); 833cdf0e10cSrcweir break; 834cdf0e10cSrcweir case awt::ImagePosition::AboveCenter: 835cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("top-center") ) ); 836cdf0e10cSrcweir break; 837cdf0e10cSrcweir case awt::ImagePosition::AboveRight: 838cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("top-right") ) ); 839cdf0e10cSrcweir break; 840cdf0e10cSrcweir case awt::ImagePosition::BelowLeft: 841cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("bottom-left") ) ); 842cdf0e10cSrcweir break; 843cdf0e10cSrcweir case awt::ImagePosition::BelowCenter: 844cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("bottom-center") ) ); 845cdf0e10cSrcweir break; 846cdf0e10cSrcweir case awt::ImagePosition::BelowRight: 847cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("bottom-right") ) ); 848cdf0e10cSrcweir break; 849cdf0e10cSrcweir case awt::ImagePosition::Centered: 850cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("center") ) ); 851cdf0e10cSrcweir break; 852cdf0e10cSrcweir default: 853cdf0e10cSrcweir OSL_ENSURE( 0, "### illegal image position value!" ); 854cdf0e10cSrcweir break; 855cdf0e10cSrcweir } 856cdf0e10cSrcweir } 857cdf0e10cSrcweir } 858cdf0e10cSrcweir } 859cdf0e10cSrcweir //__________________________________________________________________________________________________ 860cdf0e10cSrcweir void ElementDescriptor::readButtonTypeAttr( OUString const & rPropName, OUString const & rAttrName ) 861cdf0e10cSrcweir { 862cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 863cdf0e10cSrcweir { 864cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 865cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_SHORT) 866cdf0e10cSrcweir { 867cdf0e10cSrcweir switch (*(sal_Int16 const *)a.getValue()) 868cdf0e10cSrcweir { 869cdf0e10cSrcweir case awt::PushButtonType_STANDARD: 870cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("standard") ) ); 871cdf0e10cSrcweir break; 872cdf0e10cSrcweir case awt::PushButtonType_OK: 873cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("ok") ) ); 874cdf0e10cSrcweir break; 875cdf0e10cSrcweir case awt::PushButtonType_CANCEL: 876cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("cancel") ) ); 877cdf0e10cSrcweir break; 878cdf0e10cSrcweir case awt::PushButtonType_HELP: 879cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("help") ) ); 880cdf0e10cSrcweir break; 881cdf0e10cSrcweir default: 882cdf0e10cSrcweir OSL_ENSURE( 0, "### illegal button-type value!" ); 883cdf0e10cSrcweir break; 884cdf0e10cSrcweir } 885cdf0e10cSrcweir } 886cdf0e10cSrcweir } 887cdf0e10cSrcweir } 888cdf0e10cSrcweir //__________________________________________________________________________________________________ 889cdf0e10cSrcweir void ElementDescriptor::readOrientationAttr( OUString const & rPropName, OUString const & rAttrName ) 890cdf0e10cSrcweir { 891cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 892cdf0e10cSrcweir { 893cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 894cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_LONG) 895cdf0e10cSrcweir { 896cdf0e10cSrcweir switch (*(sal_Int32 const *)a.getValue()) 897cdf0e10cSrcweir { 898cdf0e10cSrcweir case 0: 899cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("horizontal") ) ); 900cdf0e10cSrcweir break; 901cdf0e10cSrcweir case 1: 902cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("vertical") ) ); 903cdf0e10cSrcweir break; 904cdf0e10cSrcweir default: 905cdf0e10cSrcweir OSL_ENSURE( 0, "### illegal orientation value!" ); 906cdf0e10cSrcweir break; 907cdf0e10cSrcweir } 908cdf0e10cSrcweir } 909cdf0e10cSrcweir } 910cdf0e10cSrcweir } 911cdf0e10cSrcweir //__________________________________________________________________________________________________ 912cdf0e10cSrcweir void ElementDescriptor::readLineEndFormatAttr( OUString const & rPropName, OUString const & rAttrName ) 913cdf0e10cSrcweir { 914cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 915cdf0e10cSrcweir { 916cdf0e10cSrcweir Any a( _xProps->getPropertyValue( rPropName ) ); 917cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_SHORT) 918cdf0e10cSrcweir { 919cdf0e10cSrcweir switch (*(sal_Int16 const *)a.getValue()) 920cdf0e10cSrcweir { 921cdf0e10cSrcweir case awt::LineEndFormat::CARRIAGE_RETURN: 922cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("carriage-return") ) ); 923cdf0e10cSrcweir break; 924cdf0e10cSrcweir case awt::LineEndFormat::LINE_FEED: 925cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("line-feed") ) ); 926cdf0e10cSrcweir break; 927cdf0e10cSrcweir case awt::LineEndFormat::CARRIAGE_RETURN_LINE_FEED: 928cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("carriage-return-line-feed") ) ); 929cdf0e10cSrcweir break; 930cdf0e10cSrcweir default: 931cdf0e10cSrcweir OSL_ENSURE( 0, "### illegal line end format value!" ); 932cdf0e10cSrcweir break; 933cdf0e10cSrcweir } 934cdf0e10cSrcweir } 935cdf0e10cSrcweir } 936cdf0e10cSrcweir } 937cdf0e10cSrcweir //__________________________________________________________________________________________________ 938cdf0e10cSrcweir void ElementDescriptor::readSelectionTypeAttr( OUString const & rPropName, OUString const & rAttrName ) 939cdf0e10cSrcweir { 940cdf0e10cSrcweir if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName )) 941cdf0e10cSrcweir { 942cdf0e10cSrcweir Any aSelectionType ( _xProps->getPropertyValue( rPropName ) ); 943cdf0e10cSrcweir 944cdf0e10cSrcweir if (aSelectionType.getValueTypeClass() == TypeClass_ENUM && aSelectionType.getValueType() == ::getCppuType( (::view::SelectionType*)0 )) 945cdf0e10cSrcweir { 946cdf0e10cSrcweir ::view::SelectionType eSelectionType; 947cdf0e10cSrcweir aSelectionType >>= eSelectionType; 948cdf0e10cSrcweir 949cdf0e10cSrcweir switch (eSelectionType) 950cdf0e10cSrcweir { 951cdf0e10cSrcweir case ::view::SelectionType_NONE: 952cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("none") ) ); 953cdf0e10cSrcweir break; 954cdf0e10cSrcweir case ::view::SelectionType_SINGLE: 955cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("single") ) ); 956cdf0e10cSrcweir break; 957cdf0e10cSrcweir case ::view::SelectionType_MULTI: 958cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("multi") ) ); 959cdf0e10cSrcweir break; 960cdf0e10cSrcweir case ::view::SelectionType_RANGE: 961cdf0e10cSrcweir addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("range") ) ); 962cdf0e10cSrcweir break; 963cdf0e10cSrcweir default: 964cdf0e10cSrcweir OSL_ENSURE( 0, "### illegal selection type value!" ); 965cdf0e10cSrcweir break; 966cdf0e10cSrcweir } 967cdf0e10cSrcweir } 968cdf0e10cSrcweir } 969cdf0e10cSrcweir } 970cdf0e10cSrcweir //__________________________________________________________________________________________________ 971cdf0e10cSrcweir void ElementDescriptor::readDefaults( bool supportPrintable, bool supportVisible ) 972cdf0e10cSrcweir { 973cdf0e10cSrcweir Any a( _xProps->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("Name") ) ) ); 974cdf0e10cSrcweir addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":id") ), 975cdf0e10cSrcweir * reinterpret_cast< const OUString * >( a.getValue() ) ); 976cdf0e10cSrcweir readShortAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("TabIndex") ), 977cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tab-index") ) ); 978cdf0e10cSrcweir 979cdf0e10cSrcweir sal_Bool bEnabled = sal_False; 980cdf0e10cSrcweir if (_xProps->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("Enabled") ) ) >>= bEnabled) 981cdf0e10cSrcweir { 982cdf0e10cSrcweir if (! bEnabled) 983cdf0e10cSrcweir { 984cdf0e10cSrcweir addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":disabled") ), 985cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("true") ) ); 986cdf0e10cSrcweir } 987cdf0e10cSrcweir } 988cdf0e10cSrcweir else 989cdf0e10cSrcweir { 990cdf0e10cSrcweir OSL_ENSURE( 0, "unexpected property type for \"Enabled\": not bool!" ); 991cdf0e10cSrcweir } 992cdf0e10cSrcweir 993cdf0e10cSrcweir sal_Bool bVisible = sal_True; 994cdf0e10cSrcweir if (supportVisible) try 995cdf0e10cSrcweir { 996cdf0e10cSrcweir if (_xProps->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("EnableVisible") ) ) >>= bVisible) 997cdf0e10cSrcweir { 998cdf0e10cSrcweir 999cdf0e10cSrcweir // only write out the non default case 1000cdf0e10cSrcweir if (! bVisible) 1001cdf0e10cSrcweir { 1002cdf0e10cSrcweir addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":visible") ), 1003cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("false") ) ); 1004cdf0e10cSrcweir } 1005cdf0e10cSrcweir } 1006cdf0e10cSrcweir } 1007cdf0e10cSrcweir catch( Exception& ) 1008cdf0e10cSrcweir { 1009cdf0e10cSrcweir DBG_UNHANDLED_EXCEPTION(); 1010cdf0e10cSrcweir } 1011cdf0e10cSrcweir // force writing of pos/size 1012cdf0e10cSrcweir a = _xProps->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("PositionX") ) ); 1013cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_LONG) 1014cdf0e10cSrcweir { 1015cdf0e10cSrcweir addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":left") ), 1016cdf0e10cSrcweir OUString::valueOf( *(sal_Int32 const *)a.getValue() ) ); 1017cdf0e10cSrcweir } 1018cdf0e10cSrcweir a = _xProps->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("PositionY") ) ); 1019cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_LONG) 1020cdf0e10cSrcweir { 1021cdf0e10cSrcweir addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":top") ), 1022cdf0e10cSrcweir OUString::valueOf( *(sal_Int32 const *)a.getValue() ) ); 1023cdf0e10cSrcweir } 1024cdf0e10cSrcweir a = _xProps->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("Width") ) ); 1025cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_LONG) 1026cdf0e10cSrcweir { 1027cdf0e10cSrcweir addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":width") ), 1028cdf0e10cSrcweir OUString::valueOf( *(sal_Int32 const *)a.getValue() ) ); 1029cdf0e10cSrcweir } 1030cdf0e10cSrcweir a = _xProps->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("Height") ) ); 1031cdf0e10cSrcweir if (a.getValueTypeClass() == TypeClass_LONG) 1032cdf0e10cSrcweir { 1033cdf0e10cSrcweir addAttribute( OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":height") ), 1034cdf0e10cSrcweir OUString::valueOf( *(sal_Int32 const *)a.getValue() ) ); 1035cdf0e10cSrcweir } 1036cdf0e10cSrcweir 1037cdf0e10cSrcweir if (supportPrintable) 1038cdf0e10cSrcweir { 1039cdf0e10cSrcweir readBoolAttr( 1040cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM("Printable") ), 1041cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":printable") ) ); 1042cdf0e10cSrcweir } 1043cdf0e10cSrcweir readLongAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Step") ), 1044cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":page") ) ); 1045cdf0e10cSrcweir readStringAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tag") ), 1046cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":tag") ) ); 1047cdf0e10cSrcweir readStringAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("HelpText") ), 1048cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":help-text") ) ); 1049cdf0e10cSrcweir readStringAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("HelpURL") ), 1050cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":help-url") ) ); 1051cdf0e10cSrcweir } 1052cdf0e10cSrcweir 1053cdf0e10cSrcweir struct StringTriple 1054cdf0e10cSrcweir { 1055cdf0e10cSrcweir char const * first; 1056cdf0e10cSrcweir char const * second; 1057cdf0e10cSrcweir char const * third; 1058cdf0e10cSrcweir }; 1059cdf0e10cSrcweir extern StringTriple const * const g_pEventTranslations; 1060cdf0e10cSrcweir 1061cdf0e10cSrcweir //__________________________________________________________________________________________________ 1062cdf0e10cSrcweir void ElementDescriptor::readEvents() 1063cdf0e10cSrcweir SAL_THROW( (Exception) ) 1064cdf0e10cSrcweir { 1065cdf0e10cSrcweir Reference< script::XScriptEventsSupplier > xSupplier( _xProps, UNO_QUERY ); 1066cdf0e10cSrcweir if (xSupplier.is()) 1067cdf0e10cSrcweir { 1068cdf0e10cSrcweir Reference< container::XNameContainer > xEvents( xSupplier->getEvents() ); 1069cdf0e10cSrcweir if (xEvents.is()) 1070cdf0e10cSrcweir { 1071cdf0e10cSrcweir Sequence< OUString > aNames( xEvents->getElementNames() ); 1072cdf0e10cSrcweir OUString const * pNames = aNames.getConstArray(); 1073cdf0e10cSrcweir for ( sal_Int32 nPos = 0; nPos < aNames.getLength(); ++nPos ) 1074cdf0e10cSrcweir { 1075cdf0e10cSrcweir script::ScriptEventDescriptor descr; 1076cdf0e10cSrcweir if (xEvents->getByName( pNames[ nPos ] ) >>= descr) 1077cdf0e10cSrcweir { 1078cdf0e10cSrcweir OSL_ENSURE( descr.ListenerType.getLength() > 0 && 1079cdf0e10cSrcweir descr.EventMethod.getLength() > 0 && 1080cdf0e10cSrcweir descr.ScriptCode.getLength() > 0 && 1081cdf0e10cSrcweir descr.ScriptType.getLength() > 0, 1082cdf0e10cSrcweir "### invalid event descr!" ); 1083cdf0e10cSrcweir 1084cdf0e10cSrcweir OUString aEventName; 1085cdf0e10cSrcweir 1086cdf0e10cSrcweir if (! descr.AddListenerParam.getLength()) 1087cdf0e10cSrcweir { 1088cdf0e10cSrcweir // detection of event-name 1089cdf0e10cSrcweir ::rtl::OString listenerType( 1090cdf0e10cSrcweir ::rtl::OUStringToOString( 1091cdf0e10cSrcweir descr.ListenerType, 1092cdf0e10cSrcweir RTL_TEXTENCODING_ASCII_US ) ); 1093cdf0e10cSrcweir ::rtl::OString eventMethod( 1094cdf0e10cSrcweir ::rtl::OUStringToOString( 1095cdf0e10cSrcweir descr.EventMethod, 1096cdf0e10cSrcweir RTL_TEXTENCODING_ASCII_US ) ); 1097cdf0e10cSrcweir StringTriple const * p = g_pEventTranslations; 1098cdf0e10cSrcweir while (p->first) 1099cdf0e10cSrcweir { 1100cdf0e10cSrcweir if (0 == ::rtl_str_compare( p->second, eventMethod.getStr() ) && 1101cdf0e10cSrcweir 0 == ::rtl_str_compare( p->first, listenerType.getStr() )) 1102cdf0e10cSrcweir { 1103cdf0e10cSrcweir aEventName = OUString( p->third, ::rtl_str_getLength( p->third ), RTL_TEXTENCODING_ASCII_US ); 1104cdf0e10cSrcweir break; 1105cdf0e10cSrcweir } 1106cdf0e10cSrcweir ++p; 1107cdf0e10cSrcweir } 1108cdf0e10cSrcweir } 1109cdf0e10cSrcweir 1110cdf0e10cSrcweir ElementDescriptor * pElem; 1111cdf0e10cSrcweir Reference< xml::sax::XAttributeList > xElem; 1112cdf0e10cSrcweir 1113cdf0e10cSrcweir if (aEventName.getLength()) // script:event 1114cdf0e10cSrcweir { 1115cdf0e10cSrcweir pElem = new ElementDescriptor( 1116cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":event") ) ); 1117cdf0e10cSrcweir xElem = pElem; 1118cdf0e10cSrcweir 1119cdf0e10cSrcweir pElem->addAttribute( 1120cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":event-name") ), 1121cdf0e10cSrcweir aEventName ); 1122cdf0e10cSrcweir } 1123cdf0e10cSrcweir else // script:listener-event 1124cdf0e10cSrcweir { 1125cdf0e10cSrcweir pElem = new ElementDescriptor( 1126cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":listener-event") ) ); 1127cdf0e10cSrcweir xElem = pElem; 1128cdf0e10cSrcweir 1129cdf0e10cSrcweir pElem->addAttribute( 1130cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":listener-type") ), 1131cdf0e10cSrcweir descr.ListenerType ); 1132cdf0e10cSrcweir pElem->addAttribute( 1133cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":listener-method") ), 1134cdf0e10cSrcweir descr.EventMethod ); 1135cdf0e10cSrcweir 1136cdf0e10cSrcweir if (descr.AddListenerParam.getLength()) 1137cdf0e10cSrcweir { 1138cdf0e10cSrcweir pElem->addAttribute( 1139cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":listener-param") ), 1140cdf0e10cSrcweir descr.AddListenerParam ); 1141cdf0e10cSrcweir } 1142cdf0e10cSrcweir } 1143cdf0e10cSrcweir if ( descr.ScriptType.equals( OUString( RTL_CONSTASCII_USTRINGPARAM( "StarBasic" ) ) ) ) 1144cdf0e10cSrcweir { 1145cdf0e10cSrcweir // separate optional location 1146cdf0e10cSrcweir sal_Int32 nIndex = descr.ScriptCode.indexOf( (sal_Unicode)':' ); 1147cdf0e10cSrcweir if (nIndex >= 0) 1148cdf0e10cSrcweir { 1149cdf0e10cSrcweir pElem->addAttribute( 1150cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":location") ), 1151cdf0e10cSrcweir descr.ScriptCode.copy( 0, nIndex ) ); 1152cdf0e10cSrcweir pElem->addAttribute( 1153cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":macro-name") ), 1154cdf0e10cSrcweir descr.ScriptCode.copy( nIndex +1 ) ); 1155cdf0e10cSrcweir } 1156cdf0e10cSrcweir else 1157cdf0e10cSrcweir { 1158cdf0e10cSrcweir pElem->addAttribute( 1159cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":macro-name") ), 1160cdf0e10cSrcweir descr.ScriptCode ); 1161cdf0e10cSrcweir } 1162cdf0e10cSrcweir } 1163cdf0e10cSrcweir else 1164cdf0e10cSrcweir { 1165cdf0e10cSrcweir pElem->addAttribute( 1166cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":macro-name") ), 1167cdf0e10cSrcweir descr.ScriptCode ); 1168cdf0e10cSrcweir } 1169cdf0e10cSrcweir 1170cdf0e10cSrcweir // language 1171cdf0e10cSrcweir pElem->addAttribute( 1172cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_SCRIPT_PREFIX ":language") ), 1173cdf0e10cSrcweir descr.ScriptType ); 1174cdf0e10cSrcweir 1175cdf0e10cSrcweir addSubElement( xElem ); 1176cdf0e10cSrcweir } 1177cdf0e10cSrcweir else 1178cdf0e10cSrcweir { 1179cdf0e10cSrcweir OSL_ENSURE( 0, "### unexpected event type in container!" ); 1180cdf0e10cSrcweir } 1181cdf0e10cSrcweir } 1182cdf0e10cSrcweir } 1183cdf0e10cSrcweir } 1184cdf0e10cSrcweir } 1185cdf0e10cSrcweir 1186cdf0e10cSrcweir //################################################################################################## 1187cdf0e10cSrcweir 1188cdf0e10cSrcweir inline bool equalFont( Style const & style1, Style const & style2 ) 1189cdf0e10cSrcweir { 1190cdf0e10cSrcweir awt::FontDescriptor const & f1 = style1._descr; 1191cdf0e10cSrcweir awt::FontDescriptor const & f2 = style2._descr; 1192cdf0e10cSrcweir return ( 1193cdf0e10cSrcweir f1.Name == f2.Name && 1194cdf0e10cSrcweir f1.Height == f2.Height && 1195cdf0e10cSrcweir f1.Width == f2.Width && 1196cdf0e10cSrcweir f1.StyleName == f2.StyleName && 1197cdf0e10cSrcweir f1.Family == f2.Family && 1198cdf0e10cSrcweir f1.CharSet == f2.CharSet && 1199cdf0e10cSrcweir f1.Pitch == f2.CharSet && 1200cdf0e10cSrcweir f1.CharacterWidth == f2.CharacterWidth && 1201cdf0e10cSrcweir f1.Weight == f2.Weight && 1202cdf0e10cSrcweir f1.Slant == f2.Slant && 1203cdf0e10cSrcweir f1.Underline == f2.Underline && 1204cdf0e10cSrcweir f1.Strikeout == f2.Strikeout && 1205cdf0e10cSrcweir f1.Orientation == f2.Orientation && 1206cdf0e10cSrcweir (f1.Kerning != sal_False) == (f2.Kerning != sal_False) && 1207cdf0e10cSrcweir (f1.WordLineMode != sal_False) == (f2.WordLineMode != sal_False) && 1208cdf0e10cSrcweir f1.Type == f2.Type && 1209cdf0e10cSrcweir style1._fontRelief == style2._fontRelief && 1210cdf0e10cSrcweir style1._fontEmphasisMark == style2._fontEmphasisMark 1211cdf0e10cSrcweir ); 1212cdf0e10cSrcweir } 1213cdf0e10cSrcweir //__________________________________________________________________________________________________ 1214cdf0e10cSrcweir OUString StyleBag::getStyleId( Style const & rStyle ) 1215cdf0e10cSrcweir SAL_THROW( () ) 1216cdf0e10cSrcweir { 1217cdf0e10cSrcweir if (! rStyle._set) // nothin set 1218cdf0e10cSrcweir { 1219cdf0e10cSrcweir return OUString(); // everything default: no need to export a specific style 1220cdf0e10cSrcweir } 1221cdf0e10cSrcweir 1222cdf0e10cSrcweir // lookup existing style 1223cdf0e10cSrcweir for ( size_t nStylesPos = 0; nStylesPos < _styles.size(); ++nStylesPos ) 1224cdf0e10cSrcweir { 1225cdf0e10cSrcweir Style * pStyle = _styles[ nStylesPos ]; 1226cdf0e10cSrcweir 1227cdf0e10cSrcweir short demanded_defaults = ~rStyle._set & rStyle._all; 1228cdf0e10cSrcweir // test, if defaults are not set 1229cdf0e10cSrcweir if ((~pStyle->_set & demanded_defaults) == demanded_defaults && 1230cdf0e10cSrcweir (rStyle._set & (pStyle->_all & ~pStyle->_set)) == 0) 1231cdf0e10cSrcweir { 1232cdf0e10cSrcweir short bset = rStyle._set & pStyle->_set; 1233cdf0e10cSrcweir if ((bset & 0x1) && 1234cdf0e10cSrcweir rStyle._backgroundColor != pStyle->_backgroundColor) 1235cdf0e10cSrcweir continue; 1236cdf0e10cSrcweir if ((bset & 0x2) && 1237cdf0e10cSrcweir rStyle._textColor != pStyle->_textColor) 1238cdf0e10cSrcweir continue; 1239cdf0e10cSrcweir if ((bset & 0x20) && 1240cdf0e10cSrcweir rStyle._textLineColor != pStyle->_textLineColor) 1241cdf0e10cSrcweir continue; 1242cdf0e10cSrcweir if ((bset & 0x10) && 1243cdf0e10cSrcweir rStyle._fillColor != pStyle->_fillColor) 1244cdf0e10cSrcweir continue; 1245cdf0e10cSrcweir if ((bset & 0x4) && 1246cdf0e10cSrcweir (rStyle._border != pStyle->_border || 1247cdf0e10cSrcweir (rStyle._border == BORDER_SIMPLE_COLOR && 1248cdf0e10cSrcweir rStyle._borderColor != pStyle->_borderColor))) 1249cdf0e10cSrcweir continue; 1250cdf0e10cSrcweir if ((bset & 0x8) && 1251cdf0e10cSrcweir !equalFont( rStyle, *pStyle )) 1252cdf0e10cSrcweir continue; 1253cdf0e10cSrcweir if ((bset & 0x40) && 1254cdf0e10cSrcweir rStyle._visualEffect != pStyle->_visualEffect) 1255cdf0e10cSrcweir continue; 1256cdf0e10cSrcweir 1257cdf0e10cSrcweir // merge in 1258cdf0e10cSrcweir short bnset = rStyle._set & ~pStyle->_set; 1259cdf0e10cSrcweir if (bnset & 0x1) 1260cdf0e10cSrcweir pStyle->_backgroundColor = rStyle._backgroundColor; 1261cdf0e10cSrcweir if (bnset & 0x2) 1262cdf0e10cSrcweir pStyle->_textColor = rStyle._textColor; 1263cdf0e10cSrcweir if (bnset & 0x20) 1264cdf0e10cSrcweir pStyle->_textLineColor = rStyle._textLineColor; 1265cdf0e10cSrcweir if (bnset & 0x10) 1266cdf0e10cSrcweir pStyle->_fillColor = rStyle._fillColor; 1267cdf0e10cSrcweir if (bnset & 0x4) { 1268cdf0e10cSrcweir pStyle->_border = rStyle._border; 1269cdf0e10cSrcweir pStyle->_borderColor = rStyle._borderColor; 1270cdf0e10cSrcweir } 1271cdf0e10cSrcweir if (bnset & 0x8) { 1272cdf0e10cSrcweir pStyle->_descr = rStyle._descr; 1273cdf0e10cSrcweir pStyle->_fontRelief = rStyle._fontRelief; 1274cdf0e10cSrcweir pStyle->_fontEmphasisMark = rStyle._fontEmphasisMark; 1275cdf0e10cSrcweir } 1276cdf0e10cSrcweir if (bnset & 0x40) 1277cdf0e10cSrcweir pStyle->_visualEffect = rStyle._visualEffect; 1278cdf0e10cSrcweir 1279cdf0e10cSrcweir pStyle->_all |= rStyle._all; 1280cdf0e10cSrcweir pStyle->_set |= rStyle._set; 1281cdf0e10cSrcweir 1282cdf0e10cSrcweir return pStyle->_id; 1283cdf0e10cSrcweir } 1284cdf0e10cSrcweir } 1285cdf0e10cSrcweir 1286cdf0e10cSrcweir // no appr style found, append new 1287cdf0e10cSrcweir Style * pStyle = new Style( rStyle ); 1288cdf0e10cSrcweir pStyle->_id = OUString::valueOf( (sal_Int32)_styles.size() ); 1289cdf0e10cSrcweir _styles.push_back( pStyle ); 1290cdf0e10cSrcweir return pStyle->_id; 1291cdf0e10cSrcweir } 1292cdf0e10cSrcweir //__________________________________________________________________________________________________ 1293cdf0e10cSrcweir StyleBag::~StyleBag() SAL_THROW( () ) 1294cdf0e10cSrcweir { 1295cdf0e10cSrcweir for ( size_t nPos = 0; nPos < _styles.size(); ++nPos ) 1296cdf0e10cSrcweir { 1297cdf0e10cSrcweir delete _styles[ nPos ]; 1298cdf0e10cSrcweir } 1299cdf0e10cSrcweir } 1300cdf0e10cSrcweir //__________________________________________________________________________________________________ 1301cdf0e10cSrcweir void StyleBag::dump( Reference< xml::sax::XExtendedDocumentHandler > const & xOut ) 1302cdf0e10cSrcweir { 1303cdf0e10cSrcweir if (! _styles.empty()) 1304cdf0e10cSrcweir { 1305cdf0e10cSrcweir OUString aStylesName( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":styles") ); 1306cdf0e10cSrcweir xOut->ignorableWhitespace( OUString() ); 1307cdf0e10cSrcweir xOut->startElement( aStylesName, Reference< xml::sax::XAttributeList >() ); 1308cdf0e10cSrcweir // export styles 1309cdf0e10cSrcweir for ( size_t nPos = 0; nPos < _styles.size(); ++nPos ) 1310cdf0e10cSrcweir { 1311cdf0e10cSrcweir Reference< xml::sax::XAttributeList > xAttr( _styles[ nPos ]->createElement() ); 1312cdf0e10cSrcweir static_cast< ElementDescriptor * >( xAttr.get() )->dump( xOut.get() ); 1313cdf0e10cSrcweir } 1314cdf0e10cSrcweir xOut->ignorableWhitespace( OUString() ); 1315cdf0e10cSrcweir xOut->endElement( aStylesName ); 1316cdf0e10cSrcweir } 1317cdf0e10cSrcweir } 1318cdf0e10cSrcweir 1319cdf0e10cSrcweir //################################################################################################## 1320cdf0e10cSrcweir 1321cdf0e10cSrcweir //================================================================================================== 1322cdf0e10cSrcweir void SAL_CALL exportDialogModel( 1323cdf0e10cSrcweir Reference< xml::sax::XExtendedDocumentHandler > const & xOut, 1324cdf0e10cSrcweir Reference< container::XNameContainer > const & xDialogModel ) 1325cdf0e10cSrcweir SAL_THROW( (Exception) ) 1326cdf0e10cSrcweir { 1327cdf0e10cSrcweir StyleBag all_styles; 1328cdf0e10cSrcweir ::std::vector< Reference< xml::sax::XAttributeList > > all_elements; 1329cdf0e10cSrcweir 1330cdf0e10cSrcweir // read out all props 1331cdf0e10cSrcweir 1332cdf0e10cSrcweir Sequence< OUString > aElements( xDialogModel->getElementNames() ); 1333cdf0e10cSrcweir OUString const * pElements = aElements.getConstArray(); 1334cdf0e10cSrcweir 1335cdf0e10cSrcweir ElementDescriptor * pRadioGroup = 0; 1336cdf0e10cSrcweir 1337cdf0e10cSrcweir sal_Int32 nPos; 1338cdf0e10cSrcweir for ( nPos = 0; nPos < aElements.getLength(); ++nPos ) 1339cdf0e10cSrcweir { 1340cdf0e10cSrcweir Any aControlModel( xDialogModel->getByName( pElements[ nPos ] ) ); 1341cdf0e10cSrcweir Reference< beans::XPropertySet > xProps; 1342cdf0e10cSrcweir OSL_VERIFY( aControlModel >>= xProps ); 1343cdf0e10cSrcweir if (! xProps.is()) 1344cdf0e10cSrcweir continue; 1345cdf0e10cSrcweir Reference< beans::XPropertyState > xPropState( xProps, UNO_QUERY ); 1346cdf0e10cSrcweir OSL_ENSURE( xPropState.is(), "no XPropertyState!" ); 1347cdf0e10cSrcweir if (! xPropState.is()) 1348cdf0e10cSrcweir continue; 1349cdf0e10cSrcweir Reference< lang::XServiceInfo > xServiceInfo( xProps, UNO_QUERY ); 1350cdf0e10cSrcweir OSL_ENSURE( xServiceInfo.is(), "no XServiceInfo!" ); 1351cdf0e10cSrcweir if (! xServiceInfo.is()) 1352cdf0e10cSrcweir continue; 1353cdf0e10cSrcweir 1354cdf0e10cSrcweir ElementDescriptor * pElem = 0; 1355cdf0e10cSrcweir Reference< xml::sax::XAttributeList > xElem; 1356cdf0e10cSrcweir 1357cdf0e10cSrcweir // group up radio buttons 1358cdf0e10cSrcweir if ( xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlRadioButtonModel") ) ) ) 1359cdf0e10cSrcweir { 1360cdf0e10cSrcweir if (! pRadioGroup) // open radiogroup 1361cdf0e10cSrcweir { 1362cdf0e10cSrcweir pRadioGroup = new ElementDescriptor( 1363cdf0e10cSrcweir xProps, xPropState, 1364cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":radiogroup") ) ); 1365cdf0e10cSrcweir all_elements.push_back( pRadioGroup ); 1366cdf0e10cSrcweir } 1367cdf0e10cSrcweir 1368cdf0e10cSrcweir pElem = new ElementDescriptor( 1369cdf0e10cSrcweir xProps, xPropState, 1370cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":radio") ) ); 1371cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1372cdf0e10cSrcweir pElem->readRadioButtonModel( &all_styles ); 1373cdf0e10cSrcweir pRadioGroup->addSubElement( xElem ); 1374cdf0e10cSrcweir } 1375cdf0e10cSrcweir else // no radio 1376cdf0e10cSrcweir { 1377cdf0e10cSrcweir pRadioGroup = 0; // close radiogroup 1378cdf0e10cSrcweir 1379cdf0e10cSrcweir if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlButtonModel") ) ) ) 1380cdf0e10cSrcweir { 1381cdf0e10cSrcweir pElem = new ElementDescriptor( 1382cdf0e10cSrcweir xProps, xPropState, 1383cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":button") ) ); 1384cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1385cdf0e10cSrcweir pElem->readButtonModel( &all_styles ); 1386cdf0e10cSrcweir } 1387cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlCheckBoxModel") ) ) ) 1388cdf0e10cSrcweir { 1389cdf0e10cSrcweir pElem = new ElementDescriptor( 1390cdf0e10cSrcweir xProps, xPropState, 1391cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":checkbox") ) ); 1392cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1393cdf0e10cSrcweir pElem->readCheckBoxModel( &all_styles ); 1394cdf0e10cSrcweir } 1395cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlComboBoxModel") ) ) ) 1396cdf0e10cSrcweir { 1397cdf0e10cSrcweir pElem = new ElementDescriptor( 1398cdf0e10cSrcweir xProps, xPropState, 1399cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":combobox") ) ); 1400cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1401cdf0e10cSrcweir pElem->readComboBoxModel( &all_styles ); 1402cdf0e10cSrcweir } 1403cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlListBoxModel") ) ) ) 1404cdf0e10cSrcweir { 1405cdf0e10cSrcweir pElem = new ElementDescriptor( 1406cdf0e10cSrcweir xProps, xPropState, 1407cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":menulist") ) ); 1408cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1409cdf0e10cSrcweir pElem->readListBoxModel( &all_styles ); 1410cdf0e10cSrcweir } 1411cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlGroupBoxModel") ) ) ) 1412cdf0e10cSrcweir { 1413cdf0e10cSrcweir pElem = new ElementDescriptor( 1414cdf0e10cSrcweir xProps, xPropState, 1415cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":titledbox") ) ); 1416cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1417cdf0e10cSrcweir pElem->readGroupBoxModel( &all_styles ); 1418cdf0e10cSrcweir } 1419cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFixedTextModel") ) ) ) 1420cdf0e10cSrcweir { 1421cdf0e10cSrcweir pElem = new ElementDescriptor( 1422cdf0e10cSrcweir xProps, xPropState, 1423cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":text") ) ); 1424cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1425cdf0e10cSrcweir pElem->readFixedTextModel( &all_styles ); 1426cdf0e10cSrcweir } 1427cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlEditModel") ) ) ) 1428cdf0e10cSrcweir { 1429cdf0e10cSrcweir pElem = new ElementDescriptor( 1430cdf0e10cSrcweir xProps, xPropState, 1431cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":textfield") ) ); 1432cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1433cdf0e10cSrcweir pElem->readEditModel( &all_styles ); 1434cdf0e10cSrcweir } 1435cdf0e10cSrcweir // FixedHyperLink 1436cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFixedHyperlinkModel") ) ) ) 1437cdf0e10cSrcweir { 1438cdf0e10cSrcweir pElem = new ElementDescriptor( 1439cdf0e10cSrcweir xProps, xPropState, 1440cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":linklabel") ) ); 1441cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1442cdf0e10cSrcweir pElem->readFixedHyperLinkModel( &all_styles ); 1443cdf0e10cSrcweir } 1444cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlImageControlModel") ) ) ) 1445cdf0e10cSrcweir { 1446cdf0e10cSrcweir pElem = new ElementDescriptor( 1447cdf0e10cSrcweir xProps, xPropState, 1448cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":img") ) ); 1449cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1450cdf0e10cSrcweir pElem->readImageControlModel( &all_styles ); 1451cdf0e10cSrcweir } 1452cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFileControlModel") ) ) ) 1453cdf0e10cSrcweir { 1454cdf0e10cSrcweir pElem = new ElementDescriptor( 1455cdf0e10cSrcweir xProps, xPropState, 1456cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":filecontrol") ) ); 1457cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1458cdf0e10cSrcweir pElem->readFileControlModel( &all_styles ); 1459cdf0e10cSrcweir } 1460cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.tree.TreeControlModel") ) ) ) 1461cdf0e10cSrcweir { 1462cdf0e10cSrcweir pElem = new ElementDescriptor( 1463cdf0e10cSrcweir xProps, xPropState, 1464cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":treecontrol") ) ); 1465cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1466cdf0e10cSrcweir pElem->readTreeControlModel( &all_styles ); 1467cdf0e10cSrcweir } 1468cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlCurrencyFieldModel") ) ) ) 1469cdf0e10cSrcweir { 1470cdf0e10cSrcweir pElem = new ElementDescriptor( 1471cdf0e10cSrcweir xProps, xPropState, 1472cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":currencyfield") ) ); 1473cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1474cdf0e10cSrcweir pElem->readCurrencyFieldModel( &all_styles ); 1475cdf0e10cSrcweir } 1476cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlDateFieldModel") ) ) ) 1477cdf0e10cSrcweir { 1478cdf0e10cSrcweir pElem = new ElementDescriptor( 1479cdf0e10cSrcweir xProps, xPropState, 1480cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":datefield") ) ); 1481cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1482cdf0e10cSrcweir pElem->readDateFieldModel( &all_styles ); 1483cdf0e10cSrcweir } 1484cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlNumericFieldModel") ) ) ) 1485cdf0e10cSrcweir { 1486cdf0e10cSrcweir pElem = new ElementDescriptor( 1487cdf0e10cSrcweir xProps, xPropState, 1488cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":numericfield") ) ); 1489cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1490cdf0e10cSrcweir pElem->readNumericFieldModel( &all_styles ); 1491cdf0e10cSrcweir } 1492cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlTimeFieldModel") ) ) ) 1493cdf0e10cSrcweir { 1494cdf0e10cSrcweir pElem = new ElementDescriptor( 1495cdf0e10cSrcweir xProps, xPropState, 1496cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":timefield") ) ); 1497cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1498cdf0e10cSrcweir pElem->readTimeFieldModel( &all_styles ); 1499cdf0e10cSrcweir } 1500cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlPatternFieldModel") ) ) ) 1501cdf0e10cSrcweir { 1502cdf0e10cSrcweir pElem = new ElementDescriptor( 1503cdf0e10cSrcweir xProps, xPropState, 1504cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":patternfield") ) ); 1505cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1506cdf0e10cSrcweir pElem->readPatternFieldModel( &all_styles ); 1507cdf0e10cSrcweir } 1508cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFormattedFieldModel") ) ) ) 1509cdf0e10cSrcweir { 1510cdf0e10cSrcweir pElem = new ElementDescriptor( 1511cdf0e10cSrcweir xProps, xPropState, 1512cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":formattedfield") ) ); 1513cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1514cdf0e10cSrcweir pElem->readFormattedFieldModel( &all_styles ); 1515cdf0e10cSrcweir } 1516cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlFixedLineModel") ) ) ) 1517cdf0e10cSrcweir { 1518cdf0e10cSrcweir pElem = new ElementDescriptor( 1519cdf0e10cSrcweir xProps, xPropState, 1520cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":fixedline") ) ); 1521cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1522cdf0e10cSrcweir pElem->readFixedLineModel( &all_styles ); 1523cdf0e10cSrcweir } 1524cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlScrollBarModel") ) ) ) 1525cdf0e10cSrcweir { 1526cdf0e10cSrcweir pElem = new ElementDescriptor( 1527cdf0e10cSrcweir xProps, xPropState, 1528cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":scrollbar") ) ); 1529cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1530cdf0e10cSrcweir pElem->readScrollBarModel( &all_styles ); 1531cdf0e10cSrcweir } 1532cdf0e10cSrcweir else if (xServiceInfo->supportsService( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.UnoControlProgressBarModel") ) ) ) 1533cdf0e10cSrcweir { 1534cdf0e10cSrcweir pElem = new ElementDescriptor( 1535cdf0e10cSrcweir xProps, xPropState, 1536cdf0e10cSrcweir OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":progressmeter") ) ); 1537cdf0e10cSrcweir xElem = static_cast< xml::sax::XAttributeList * >( pElem ); 1538cdf0e10cSrcweir pElem->readProgressBarModel( &all_styles ); 1539cdf0e10cSrcweir } 1540cdf0e10cSrcweir // 1541cdf0e10cSrcweir 1542cdf0e10cSrcweir OSL_ASSERT( xElem.is() ); 1543cdf0e10cSrcweir if (xElem.is()) 1544cdf0e10cSrcweir { 1545cdf0e10cSrcweir all_elements.push_back( xElem ); 1546cdf0e10cSrcweir } 1547cdf0e10cSrcweir else 1548cdf0e10cSrcweir { 1549cdf0e10cSrcweir OSL_ENSURE( sal_False, "unknown control type!" ); 1550cdf0e10cSrcweir continue; 1551cdf0e10cSrcweir } 1552cdf0e10cSrcweir } 1553cdf0e10cSrcweir } 1554cdf0e10cSrcweir 1555cdf0e10cSrcweir xOut->startDocument(); 1556cdf0e10cSrcweir 1557cdf0e10cSrcweir OUString aDocTypeStr( RTL_CONSTASCII_USTRINGPARAM( 1558cdf0e10cSrcweir "<!DOCTYPE dlg:window PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\"" 1559cdf0e10cSrcweir " \"dialog.dtd\">" ) ); 1560cdf0e10cSrcweir xOut->unknown( aDocTypeStr ); 1561cdf0e10cSrcweir xOut->ignorableWhitespace( OUString() ); 1562cdf0e10cSrcweir 1563cdf0e10cSrcweir // window 1564cdf0e10cSrcweir Reference< beans::XPropertySet > xProps( xDialogModel, UNO_QUERY ); 1565cdf0e10cSrcweir OSL_ASSERT( xProps.is() ); 1566cdf0e10cSrcweir Reference< beans::XPropertyState > xPropState( xProps, UNO_QUERY ); 1567cdf0e10cSrcweir OSL_ASSERT( xPropState.is() ); 1568cdf0e10cSrcweir 1569cdf0e10cSrcweir OUString aWindowName( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":window") ); 1570cdf0e10cSrcweir ElementDescriptor * pWindow = new ElementDescriptor( xProps, xPropState, aWindowName ); 1571cdf0e10cSrcweir Reference< xml::sax::XAttributeList > xWindow( pWindow ); 1572cdf0e10cSrcweir pWindow->readDialogModel( &all_styles ); 1573cdf0e10cSrcweir xOut->ignorableWhitespace( OUString() ); 1574cdf0e10cSrcweir xOut->startElement( aWindowName, xWindow ); 1575cdf0e10cSrcweir // dump out events 1576cdf0e10cSrcweir pWindow->dumpSubElements( xOut.get() ); 1577cdf0e10cSrcweir // dump out stylebag 1578cdf0e10cSrcweir all_styles.dump( xOut ); 1579cdf0e10cSrcweir 1580cdf0e10cSrcweir if (! all_elements.empty()) 1581cdf0e10cSrcweir { 1582cdf0e10cSrcweir // open up bulletinboard 1583cdf0e10cSrcweir OUString aBBoardName( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":bulletinboard") ); 1584cdf0e10cSrcweir xOut->ignorableWhitespace( OUString() ); 1585cdf0e10cSrcweir xOut->startElement( aBBoardName, Reference< xml::sax::XAttributeList >() ); 1586cdf0e10cSrcweir 1587cdf0e10cSrcweir // export control elements 1588cdf0e10cSrcweir for ( std::size_t n = 0; n < all_elements.size(); ++n ) 1589cdf0e10cSrcweir { 1590cdf0e10cSrcweir ElementDescriptor * pElem = static_cast< ElementDescriptor * >( all_elements[ n ].get() ); 1591cdf0e10cSrcweir pElem->dump( xOut.get() ); 1592cdf0e10cSrcweir } 1593cdf0e10cSrcweir 1594cdf0e10cSrcweir // end bulletinboard 1595cdf0e10cSrcweir xOut->ignorableWhitespace( OUString() ); 1596cdf0e10cSrcweir xOut->endElement( aBBoardName ); 1597cdf0e10cSrcweir } 1598cdf0e10cSrcweir 1599cdf0e10cSrcweir // end window 1600cdf0e10cSrcweir xOut->ignorableWhitespace( OUString() ); 1601cdf0e10cSrcweir xOut->endElement( aWindowName ); 1602cdf0e10cSrcweir 1603cdf0e10cSrcweir xOut->endDocument(); 1604cdf0e10cSrcweir } 1605cdf0e10cSrcweir 1606cdf0e10cSrcweir } 1607