1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sc.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski
28*b1cdbd2cSJim Jagielski
29*b1cdbd2cSJim Jagielski #include "scitems.hxx"
30*b1cdbd2cSJim Jagielski #include <editeng/memberids.hrc>
31*b1cdbd2cSJim Jagielski #include <svx/algitem.hxx>
32*b1cdbd2cSJim Jagielski #include <editeng/boxitem.hxx>
33*b1cdbd2cSJim Jagielski #include <editeng/langitem.hxx>
34*b1cdbd2cSJim Jagielski #include <editeng/numitem.hxx>
35*b1cdbd2cSJim Jagielski #include <svx/pageitem.hxx>
36*b1cdbd2cSJim Jagielski #include <editeng/pbinitem.hxx>
37*b1cdbd2cSJim Jagielski #include <svx/unomid.hxx>
38*b1cdbd2cSJim Jagielski #include <editeng/unonrule.hxx>
39*b1cdbd2cSJim Jagielski #include <sfx2/bindings.hxx>
40*b1cdbd2cSJim Jagielski #include <sfx2/printer.hxx>
41*b1cdbd2cSJim Jagielski #include <vcl/virdev.hxx>
42*b1cdbd2cSJim Jagielski #include <svl/itempool.hxx>
43*b1cdbd2cSJim Jagielski #include <svl/itemset.hxx>
44*b1cdbd2cSJim Jagielski #include <svl/intitem.hxx>
45*b1cdbd2cSJim Jagielski #include <svl/zformat.hxx>
46*b1cdbd2cSJim Jagielski #include <rtl/uuid.h>
47*b1cdbd2cSJim Jagielski
48*b1cdbd2cSJim Jagielski #include <com/sun/star/table/BorderLine.hpp>
49*b1cdbd2cSJim Jagielski #include <com/sun/star/table/CellVertJustify.hpp>
50*b1cdbd2cSJim Jagielski #include <com/sun/star/table/TableBorder.hpp>
51*b1cdbd2cSJim Jagielski #include <com/sun/star/table/ShadowFormat.hpp>
52*b1cdbd2cSJim Jagielski #include <com/sun/star/table/CellHoriJustify.hpp>
53*b1cdbd2cSJim Jagielski #include <com/sun/star/table/CellOrientation.hpp>
54*b1cdbd2cSJim Jagielski #include <com/sun/star/style/PageStyleLayout.hpp>
55*b1cdbd2cSJim Jagielski #include <com/sun/star/style/GraphicLocation.hpp>
56*b1cdbd2cSJim Jagielski #include <com/sun/star/sheet/XHeaderFooterContent.hpp>
57*b1cdbd2cSJim Jagielski #include <com/sun/star/util/CellProtection.hpp>
58*b1cdbd2cSJim Jagielski #include <com/sun/star/awt/FontSlant.hpp>
59*b1cdbd2cSJim Jagielski #include <com/sun/star/awt/Size.hpp>
60*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/Locale.hpp>
61*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/PropertyAttribute.hpp>
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielski #include "styleuno.hxx"
64*b1cdbd2cSJim Jagielski #include "docsh.hxx"
65*b1cdbd2cSJim Jagielski #include "attrib.hxx"
66*b1cdbd2cSJim Jagielski #include "stlpool.hxx"
67*b1cdbd2cSJim Jagielski #include "docpool.hxx"
68*b1cdbd2cSJim Jagielski #include "unoguard.hxx"
69*b1cdbd2cSJim Jagielski #include "miscuno.hxx"
70*b1cdbd2cSJim Jagielski #include "convuno.hxx"
71*b1cdbd2cSJim Jagielski #include "tablink.hxx"
72*b1cdbd2cSJim Jagielski #include "unonames.hxx"
73*b1cdbd2cSJim Jagielski #include "unowids.hxx"
74*b1cdbd2cSJim Jagielski #include "globstr.hrc"
75*b1cdbd2cSJim Jagielski #include "cellsuno.hxx"
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
78*b1cdbd2cSJim Jagielski
79*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
80*b1cdbd2cSJim Jagielski
lcl_GetCellStyleSet()81*b1cdbd2cSJim Jagielski const SfxItemPropertySet* lcl_GetCellStyleSet()
82*b1cdbd2cSJim Jagielski {
83*b1cdbd2cSJim Jagielski static SfxItemPropertyMapEntry aCellStyleMap_Impl[] =
84*b1cdbd2cSJim Jagielski {
85*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(), 0, 0 },
86*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
87*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CELLBACK), ATTR_BACKGROUND, &::getCppuType((const sal_Int32*)0), 0, MID_BACK_COLOR },
88*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CELLPRO), ATTR_PROTECTION, &::getCppuType((const util::CellProtection*)0), 0, 0 },
89*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CCOLOR), ATTR_FONT_COLOR, &::getCppuType((const sal_Int32*)0), 0, 0 },
90*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_COUTL), ATTR_FONT_CONTOUR, &::getBooleanCppuType(), 0, 0 },
91*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CCROSS), ATTR_FONT_CROSSEDOUT,&::getBooleanCppuType(), 0, MID_CROSSED_OUT },
92*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CEMPHAS), ATTR_FONT_EMPHASISMARK,&getCppuType((sal_Int16*)0), 0, MID_EMPHASIS },
93*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CFONT), ATTR_FONT, &::getCppuType((const sal_Int16*)0), 0, MID_FONT_FAMILY },
94*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CFCHARS), ATTR_FONT, &getCppuType((sal_Int16*)0), 0, MID_FONT_CHAR_SET },
95*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CJK_CFCHARS), ATTR_CJK_FONT, &getCppuType((sal_Int16*)0), 0, MID_FONT_CHAR_SET },
96*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CTL_CFCHARS), ATTR_CTL_FONT, &getCppuType((sal_Int16*)0), 0, MID_FONT_CHAR_SET },
97*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CFFAMIL), ATTR_FONT, &getCppuType((sal_Int16*)0), 0, MID_FONT_FAMILY },
98*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CJK_CFFAMIL), ATTR_CJK_FONT, &getCppuType((sal_Int16*)0), 0, MID_FONT_FAMILY },
99*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CTL_CFFAMIL), ATTR_CTL_FONT, &getCppuType((sal_Int16*)0), 0, MID_FONT_FAMILY },
100*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CFNAME), ATTR_FONT, &getCppuType((rtl::OUString*)0), 0, MID_FONT_FAMILY_NAME },
101*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CJK_CFNAME), ATTR_CJK_FONT, &getCppuType((rtl::OUString*)0), 0, MID_FONT_FAMILY_NAME },
102*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CTL_CFNAME), ATTR_CTL_FONT, &getCppuType((rtl::OUString*)0), 0, MID_FONT_FAMILY_NAME },
103*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CFPITCH), ATTR_FONT, &getCppuType((sal_Int16*)0), 0, MID_FONT_PITCH },
104*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CJK_CFPITCH), ATTR_CJK_FONT, &getCppuType((sal_Int16*)0), 0, MID_FONT_PITCH },
105*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CTL_CFPITCH), ATTR_CTL_FONT, &getCppuType((sal_Int16*)0), 0, MID_FONT_PITCH },
106*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CFSTYLE), ATTR_FONT, &getCppuType((rtl::OUString*)0), 0, MID_FONT_STYLE_NAME },
107*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CJK_CFSTYLE), ATTR_CJK_FONT, &getCppuType((rtl::OUString*)0), 0, MID_FONT_STYLE_NAME },
108*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CTL_CFSTYLE), ATTR_CTL_FONT, &getCppuType((rtl::OUString*)0), 0, MID_FONT_STYLE_NAME },
109*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CHEIGHT), ATTR_FONT_HEIGHT, &::getCppuType((const float*)0), 0, MID_FONTHEIGHT | CONVERT_TWIPS },
110*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CJK_CHEIGHT), ATTR_CJK_FONT_HEIGHT,&::getCppuType((const float*)0), 0, MID_FONTHEIGHT | CONVERT_TWIPS },
111*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CTL_CHEIGHT), ATTR_CTL_FONT_HEIGHT,&::getCppuType((const float*)0), 0, MID_FONTHEIGHT | CONVERT_TWIPS },
112*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CLOCAL), ATTR_FONT_LANGUAGE, &::getCppuType((const lang::Locale*)0), 0, MID_LANG_LOCALE },
113*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CJK_CLOCAL), ATTR_CJK_FONT_LANGUAGE,&::getCppuType((const lang::Locale*)0), 0, MID_LANG_LOCALE },
114*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CTL_CLOCAL), ATTR_CTL_FONT_LANGUAGE,&::getCppuType((const lang::Locale*)0), 0, MID_LANG_LOCALE },
115*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_COVER), ATTR_FONT_OVERLINE, &::getCppuType((const sal_Int16*)0), 0, MID_TL_STYLE },
116*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_COVRLCOL), ATTR_FONT_OVERLINE, &getCppuType((sal_Int32*)0), 0, MID_TL_COLOR },
117*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_COVRLHAS), ATTR_FONT_OVERLINE, &getBooleanCppuType(), 0, MID_TL_HASCOLOR },
118*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CPOST), ATTR_FONT_POSTURE, &::getCppuType((const awt::FontSlant*)0), 0, MID_POSTURE },
119*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CJK_CPOST), ATTR_CJK_FONT_POSTURE,&::getCppuType((const awt::FontSlant*)0), 0, MID_POSTURE },
120*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CTL_CPOST), ATTR_CTL_FONT_POSTURE,&::getCppuType((const awt::FontSlant*)0), 0, MID_POSTURE },
121*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CRELIEF), ATTR_FONT_RELIEF, &getCppuType((sal_Int16*)0), 0, MID_RELIEF },
122*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CSHADD), ATTR_FONT_SHADOWED, &::getBooleanCppuType(), 0, 0 },
123*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CSTRIKE), ATTR_FONT_CROSSEDOUT,&getCppuType((sal_Int16*)0), 0, MID_CROSS_OUT },
124*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CUNDER), ATTR_FONT_UNDERLINE,&::getCppuType((const sal_Int16*)0), 0, MID_TL_STYLE },
125*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CUNDLCOL), ATTR_FONT_UNDERLINE,&getCppuType((sal_Int32*)0), 0, MID_TL_COLOR },
126*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CUNDLHAS), ATTR_FONT_UNDERLINE,&getBooleanCppuType(), 0, MID_TL_HASCOLOR },
127*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CWEIGHT), ATTR_FONT_WEIGHT, &::getCppuType((const float*)0), 0, MID_WEIGHT },
128*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CJK_CWEIGHT), ATTR_CJK_FONT_WEIGHT,&::getCppuType((const float*)0), 0, MID_WEIGHT },
129*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_CTL_CWEIGHT), ATTR_CTL_FONT_WEIGHT,&::getCppuType((const float*)0), 0, MID_WEIGHT },
130*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CWORDMOD), ATTR_FONT_WORDLINE, &getBooleanCppuType(), 0, 0 },
131*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
132*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
133*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_DISPNAME), SC_WID_UNO_DISPNAME,&::getCppuType((rtl::OUString*)0), beans::PropertyAttribute::READONLY, 0 },
134*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS), ATTR_HOR_JUSTIFY, &::getCppuType((const table::CellHoriJustify*)0), 0, MID_HORJUST_HORJUST },
135*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CELLTRAN), ATTR_BACKGROUND, &::getBooleanCppuType(), 0, MID_GRAPHIC_TRANSPARENT },
136*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_WRAP), ATTR_LINEBREAK, &::getBooleanCppuType(), 0, 0 },
137*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
138*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_NUMFMT), ATTR_VALUE_FORMAT, &::getCppuType((const sal_Int32*)0), 0, 0 },
139*b1cdbd2cSJim Jagielski // {MAP_CHAR_LEN(SC_UNONAME_NUMRULES), SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
140*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CELLORI), ATTR_STACKED, &::getCppuType((const table::CellOrientation*)0), 0, 0 },
141*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PADJUST), ATTR_HOR_JUSTIFY, &::getCppuType((const sal_Int16*)0), 0, MID_HORJUST_ADJUST },
142*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PBMARGIN), ATTR_MARGIN, &::getCppuType((const sal_Int32*)0), 0, MID_MARGIN_LO_MARGIN | CONVERT_TWIPS },
143*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PINDENT), ATTR_INDENT, &::getCppuType((const sal_Int16*)0), 0, 0 }, //! CONVERT_TWIPS
144*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PISCHDIST),ATTR_SCRIPTSPACE, &::getBooleanCppuType(), 0, 0 },
145*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PISFORBID),ATTR_FORBIDDEN_RULES,&::getBooleanCppuType(), 0, 0 },
146*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PISHANG), ATTR_HANGPUNCTUATION,&::getBooleanCppuType(), 0, 0 },
147*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PISHYPHEN),ATTR_HYPHENATE, &getBooleanCppuType(), 0, 0 },
148*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PLASTADJ), ATTR_HOR_JUSTIFY, &::getCppuType((const sal_Int16*)0), 0, MID_HORJUST_ADJUST },
149*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PLMARGIN), ATTR_MARGIN, &::getCppuType((const sal_Int32*)0), 0, MID_MARGIN_L_MARGIN | CONVERT_TWIPS },
150*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PRMARGIN), ATTR_MARGIN, &::getCppuType((const sal_Int32*)0), 0, MID_MARGIN_R_MARGIN | CONVERT_TWIPS },
151*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_PTMARGIN), ATTR_MARGIN, &::getCppuType((const sal_Int32*)0), 0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
152*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
153*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_ROTANG), ATTR_ROTATE_VALUE, &::getCppuType((const sal_Int32*)0), 0, 0 },
154*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_ROTREF), ATTR_ROTATE_MODE, &::getCppuType((const table::CellVertJustify*)0), 0, 0 },
155*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_SHADOW), ATTR_SHADOW, &::getCppuType((const table::ShadowFormat*)0), 0, 0 | CONVERT_TWIPS },
156*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(), 0, 0 },
157*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_TBLBORD), SC_WID_UNO_TBLBORD, &::getCppuType((const table::TableBorder*)0), 0, 0 | CONVERT_TWIPS },
158*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
159*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_USERDEF), ATTR_USERDEF, &getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
160*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_CELLVJUS), ATTR_VER_JUSTIFY, &::getCppuType((const table::CellVertJustify*)0), 0, 0 },
161*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_WRITING), ATTR_WRITINGDIR, &getCppuType((sal_Int16*)0), 0, 0 },
162*b1cdbd2cSJim Jagielski {0,0,0,0,0,0}
163*b1cdbd2cSJim Jagielski };
164*b1cdbd2cSJim Jagielski static SfxItemPropertySet aCellStyleSet_Impl( aCellStyleMap_Impl );
165*b1cdbd2cSJim Jagielski return &aCellStyleSet_Impl;
166*b1cdbd2cSJim Jagielski }
167*b1cdbd2cSJim Jagielski
168*b1cdbd2cSJim Jagielski // Map mit allen Seitenattributen, incl. Kopf-/Fusszeilenattribute
169*b1cdbd2cSJim Jagielski
lcl_GetPageStyleSet()170*b1cdbd2cSJim Jagielski const SfxItemPropertySet * lcl_GetPageStyleSet()
171*b1cdbd2cSJim Jagielski {
172*b1cdbd2cSJim Jagielski static SfxItemPropertyMapEntry aPageStyleMap_Impl[] =
173*b1cdbd2cSJim Jagielski {
174*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_BACKCOLOR), ATTR_BACKGROUND, &::getCppuType((const sal_Int32*)0), 0, MID_BACK_COLOR },
175*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_GRAPHICFILT), ATTR_BACKGROUND, &::getCppuType((const ::rtl::OUString*)0), 0, MID_GRAPHIC_FILTER },
176*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_GRAPHICLOC), ATTR_BACKGROUND, &::getCppuType((const style::GraphicLocation*)0), 0, MID_GRAPHIC_POSITION },
177*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_GRAPHICURL), ATTR_BACKGROUND, &::getCppuType((const ::rtl::OUString*)0), 0, MID_GRAPHIC_URL },
178*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_BACKTRANS), ATTR_BACKGROUND, &::getBooleanCppuType(), 0, MID_GRAPHIC_TRANSPARENT },
179*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_BACKCOLOR), ATTR_BACKGROUND, &::getCppuType((const sal_Int32*)0), 0, MID_BACK_COLOR },
180*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_BORDERDIST), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, BORDER_DISTANCE | CONVERT_TWIPS },
181*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_BOTTBORDER), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
182*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_BOTTBRDDIST), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, BOTTOM_BORDER_DISTANCE | CONVERT_TWIPS },
183*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_BOTTMARGIN), ATTR_ULSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_LO_MARGIN | CONVERT_TWIPS },
184*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_CENTERHOR), ATTR_PAGE_HORCENTER,&::getBooleanCppuType(), 0, 0 },
185*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_CENTERVER), ATTR_PAGE_VERCENTER,&::getBooleanCppuType(), 0, 0 },
186*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_DISPNAME), SC_WID_UNO_DISPNAME,&::getCppuType((rtl::OUString*)0), beans::PropertyAttribute::READONLY, 0 },
187*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FIRSTPAGE), ATTR_PAGE_FIRSTPAGENO,&::getCppuType((const sal_Int16*)0), 0, 0 },
188*b1cdbd2cSJim Jagielski //
189*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBACKCOL), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
190*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRGRFFILT), SC_WID_UNO_FOOTERSET,&::getCppuType((const ::rtl::OUString*)0), 0, 0 },
191*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRGRFLOC), SC_WID_UNO_FOOTERSET,&::getCppuType((const style::GraphicLocation*)0), 0, 0 },
192*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRGRFURL), SC_WID_UNO_FOOTERSET,&::getCppuType((const ::rtl::OUString*)0), 0, 0 },
193*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBACKTRAN), SC_WID_UNO_FOOTERSET,&::getBooleanCppuType(), 0, 0 },
194*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRBACKCOL), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
195*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBODYDIST), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
196*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBRDDIST), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
197*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBOTTBOR), SC_WID_UNO_FOOTERSET,&::getCppuType((const table::BorderLine*)0), 0, 0 },
198*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBOTTBDIS), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
199*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRDYNAMIC), SC_WID_UNO_FOOTERSET,&::getBooleanCppuType(), 0, 0 },
200*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRHEIGHT), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
201*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRDYNAMIC), SC_WID_UNO_FOOTERSET,&::getBooleanCppuType(), 0, 0 },
202*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRON), SC_WID_UNO_FOOTERSET,&::getBooleanCppuType(), 0, 0 },
203*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRSHARED), SC_WID_UNO_FOOTERSET,&::getBooleanCppuType(), 0, 0 },
204*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRLEFTBOR), SC_WID_UNO_FOOTERSET,&::getCppuType((const table::BorderLine*)0), 0, 0 },
205*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRLEFTBDIS), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
206*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRLEFTMAR), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
207*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRON), SC_WID_UNO_FOOTERSET,&::getBooleanCppuType(), 0, 0 },
208*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRRIGHTBOR), SC_WID_UNO_FOOTERSET,&::getCppuType((const table::BorderLine*)0), 0, 0 },
209*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRRIGHTBDIS),SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
210*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRRIGHTMAR), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
211*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRSHADOW), SC_WID_UNO_FOOTERSET,&::getCppuType((const table::ShadowFormat*)0), 0, 0 },
212*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRSHARED), SC_WID_UNO_FOOTERSET,&::getBooleanCppuType(), 0, 0 },
213*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRTOPBOR), SC_WID_UNO_FOOTERSET,&::getCppuType((const table::BorderLine*)0), 0, 0 },
214*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRTOPBDIS), SC_WID_UNO_FOOTERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
215*b1cdbd2cSJim Jagielski //
216*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBACKCOL), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
217*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRGRFFILT), SC_WID_UNO_HEADERSET,&::getCppuType((const ::rtl::OUString*)0), 0, 0 },
218*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRGRFLOC), SC_WID_UNO_HEADERSET,&::getCppuType((const style::GraphicLocation*)0), 0, 0 },
219*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRGRFURL), SC_WID_UNO_HEADERSET,&::getCppuType((const ::rtl::OUString*)0), 0, 0 },
220*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBACKTRAN), SC_WID_UNO_HEADERSET,&::getBooleanCppuType(), 0, 0 },
221*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRBACKCOL), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
222*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBODYDIST), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
223*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBRDDIST), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
224*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBOTTBOR), SC_WID_UNO_HEADERSET,&::getCppuType((const table::BorderLine*)0), 0, 0 },
225*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBOTTBDIS), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
226*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRDYNAMIC), SC_WID_UNO_HEADERSET,&::getBooleanCppuType(), 0, 0 },
227*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRHEIGHT), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
228*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRDYNAMIC), SC_WID_UNO_HEADERSET,&::getBooleanCppuType(), 0, 0 },
229*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRON), SC_WID_UNO_HEADERSET,&::getBooleanCppuType(), 0, 0 },
230*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRSHARED), SC_WID_UNO_HEADERSET,&::getBooleanCppuType(), 0, 0 },
231*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRLEFTBOR), SC_WID_UNO_HEADERSET,&::getCppuType((const table::BorderLine*)0), 0, 0 },
232*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRLEFTBDIS), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
233*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRLEFTMAR), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
234*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRON), SC_WID_UNO_HEADERSET,&::getBooleanCppuType(), 0, 0 },
235*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRRIGHTBOR), SC_WID_UNO_HEADERSET,&::getCppuType((const table::BorderLine*)0), 0, 0 },
236*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRRIGHTBDIS),SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
237*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRRIGHTMAR), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
238*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRSHADOW), SC_WID_UNO_HEADERSET,&::getCppuType((const table::ShadowFormat*)0), 0, 0 },
239*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRSHARED), SC_WID_UNO_HEADERSET,&::getBooleanCppuType(), 0, 0 },
240*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRTOPBOR), SC_WID_UNO_HEADERSET,&::getCppuType((const table::BorderLine*)0), 0, 0 },
241*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRTOPBDIS), SC_WID_UNO_HEADERSET,&::getCppuType((const sal_Int32*)0), 0, 0 },
242*b1cdbd2cSJim Jagielski //
243*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HEIGHT), ATTR_PAGE_SIZE, &::getCppuType((const sal_Int32*)0), 0, MID_SIZE_HEIGHT | CONVERT_TWIPS },
244*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_BACKTRANS), ATTR_BACKGROUND, &::getBooleanCppuType(), 0, MID_GRAPHIC_TRANSPARENT },
245*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_LANDSCAPE), ATTR_PAGE, &::getBooleanCppuType(), 0, MID_PAGE_ORIENTATION },
246*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_LEFTBORDER), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
247*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_LEFTBRDDIST), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, LEFT_BORDER_DISTANCE | CONVERT_TWIPS },
248*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_LEFTMARGIN), ATTR_LRSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_L_MARGIN | CONVERT_TWIPS },
249*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_LEFTFTRCONT), ATTR_PAGE_FOOTERLEFT,&::getCppuType((const uno::Reference< sheet::XHeaderFooterContent >*)0), 0, 0 },
250*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_LEFTHDRCONT), ATTR_PAGE_HEADERLEFT,&::getCppuType((const uno::Reference< sheet::XHeaderFooterContent >*)0), 0, 0 },
251*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_NUMBERTYPE), ATTR_PAGE, &::getCppuType((const sal_Int16*)0), 0, MID_PAGE_NUMTYPE },
252*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_SCALEVAL), ATTR_PAGE_SCALE, &::getCppuType((const sal_Int16*)0), 0, 0 },
253*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_SYTLELAYOUT), ATTR_PAGE, &::getCppuType((const style::PageStyleLayout*)0), 0, MID_PAGE_LAYOUT },
254*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PRINTANNOT), ATTR_PAGE_NOTES, &::getBooleanCppuType(), 0, 0 },
255*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PRINTCHARTS), ATTR_PAGE_CHARTS, &::getBooleanCppuType(), 0, 0 },
256*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PRINTDOWN), ATTR_PAGE_TOPDOWN, &::getBooleanCppuType(), 0, 0 },
257*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PRINTDRAW), ATTR_PAGE_DRAWINGS, &::getBooleanCppuType(), 0, 0 },
258*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PRINTFORMUL), ATTR_PAGE_FORMULAS, &::getBooleanCppuType(), 0, 0 },
259*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PRINTGRID), ATTR_PAGE_GRID, &::getBooleanCppuType(), 0, 0 },
260*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PRINTHEADER), ATTR_PAGE_HEADERS, &::getBooleanCppuType(), 0, 0 },
261*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PRINTOBJS), ATTR_PAGE_OBJECTS, &::getBooleanCppuType(), 0, 0 },
262*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PRINTZERO), ATTR_PAGE_NULLVALS, &::getBooleanCppuType(), 0, 0 },
263*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_PAPERTRAY), ATTR_PAGE_PAPERBIN, &::getCppuType((const ::rtl::OUString*)0), 0, 0 },
264*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_RIGHTBORDER), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
265*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_RIGHTBRDDIST),ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, RIGHT_BORDER_DISTANCE | CONVERT_TWIPS },
266*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_RIGHTMARGIN), ATTR_LRSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_R_MARGIN | CONVERT_TWIPS },
267*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_RIGHTFTRCON), ATTR_PAGE_FOOTERRIGHT,&::getCppuType((const uno::Reference< sheet::XHeaderFooterContent >*)0), 0, 0 },
268*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_RIGHTHDRCON), ATTR_PAGE_HEADERRIGHT,&::getCppuType((const uno::Reference< sheet::XHeaderFooterContent >*)0), 0, 0 },
269*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_SCALETOPAG), ATTR_PAGE_SCALETOPAGES,&::getCppuType((const sal_Int16*)0), 0, 0 },
270*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_SCALETOX), ATTR_PAGE_SCALETO, &::getCppuType((const sal_Int16*)0), 0, 0 },
271*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_SCALETOY), ATTR_PAGE_SCALETO, &::getCppuType((const sal_Int16*)0), 0, 0 },
272*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_SHADOWFORM), ATTR_SHADOW, &::getCppuType((const table::ShadowFormat*)0), 0, 0 | CONVERT_TWIPS },
273*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_SIZE), ATTR_PAGE_SIZE, &::getCppuType((const awt::Size*)0), 0, MID_SIZE_SIZE | CONVERT_TWIPS },
274*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_TOPBORDER), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
275*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_TOPBRDDIST), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, TOP_BORDER_DISTANCE | CONVERT_TWIPS },
276*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_TOPMARGIN), ATTR_ULSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_UP_MARGIN | CONVERT_TWIPS },
277*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRBACKTRAN),SC_WID_UNO_FOOTERSET,&::getBooleanCppuType(), 0, 0 },
278*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRBACKTRAN),SC_WID_UNO_HEADERSET,&::getBooleanCppuType(), 0, 0 },
279*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_USERDEF), ATTR_USERDEF, &getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
280*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_WIDTH), ATTR_PAGE_SIZE, &::getCppuType((const sal_Int32*)0), 0, MID_SIZE_WIDTH | CONVERT_TWIPS },
281*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNONAME_WRITING), ATTR_WRITINGDIR, &getCppuType((sal_Int16*)0), 0, 0 },
282*b1cdbd2cSJim Jagielski {0,0,0,0,0,0}
283*b1cdbd2cSJim Jagielski };
284*b1cdbd2cSJim Jagielski static SfxItemPropertySet aPageStyleSet_Impl( aPageStyleMap_Impl );
285*b1cdbd2cSJim Jagielski return &aPageStyleSet_Impl;
286*b1cdbd2cSJim Jagielski }
287*b1cdbd2cSJim Jagielski
288*b1cdbd2cSJim Jagielski // Map mit Inhalten des Header-Item-Sets
289*b1cdbd2cSJim Jagielski
lcl_GetHeaderStyleMap()290*b1cdbd2cSJim Jagielski const SfxItemPropertyMap* lcl_GetHeaderStyleMap()
291*b1cdbd2cSJim Jagielski {
292*b1cdbd2cSJim Jagielski static SfxItemPropertyMapEntry aHeaderStyleMap_Impl[] =
293*b1cdbd2cSJim Jagielski {
294*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBACKCOL), ATTR_BACKGROUND, &::getCppuType((const sal_Int32*)0), 0, MID_BACK_COLOR },
295*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRGRFFILT), ATTR_BACKGROUND, &::getCppuType((const ::rtl::OUString*)0), 0, MID_GRAPHIC_FILTER },
296*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRGRFLOC), ATTR_BACKGROUND, &::getCppuType((const style::GraphicLocation*)0), 0, MID_GRAPHIC_POSITION },
297*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRGRFURL), ATTR_BACKGROUND, &::getCppuType((const ::rtl::OUString*)0), 0, MID_GRAPHIC_URL },
298*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBACKTRAN), ATTR_BACKGROUND, &::getBooleanCppuType(), 0, MID_GRAPHIC_TRANSPARENT },
299*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRBACKCOL), ATTR_BACKGROUND, &::getCppuType((const sal_Int32*)0), 0, MID_BACK_COLOR },
300*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBODYDIST), ATTR_ULSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_LO_MARGIN | CONVERT_TWIPS },
301*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBRDDIST), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, BORDER_DISTANCE | CONVERT_TWIPS },
302*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBOTTBOR), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
303*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRBOTTBDIS), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, BOTTOM_BORDER_DISTANCE | CONVERT_TWIPS },
304*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRDYNAMIC), ATTR_PAGE_DYNAMIC, &::getBooleanCppuType(), 0, 0 },
305*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRHEIGHT), ATTR_PAGE_SIZE, &::getCppuType((const sal_Int32*)0), 0, MID_SIZE_HEIGHT | CONVERT_TWIPS },
306*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRDYNAMIC), ATTR_PAGE_DYNAMIC, &::getBooleanCppuType(), 0, 0 },
307*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRON), ATTR_PAGE_ON, &::getBooleanCppuType(), 0, 0 },
308*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRSHARED), ATTR_PAGE_SHARED, &::getBooleanCppuType(), 0, 0 },
309*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRLEFTBOR), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
310*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRLEFTBDIS), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, LEFT_BORDER_DISTANCE | CONVERT_TWIPS },
311*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRLEFTMAR), ATTR_LRSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_L_MARGIN | CONVERT_TWIPS },
312*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRON), ATTR_PAGE_ON, &::getBooleanCppuType(), 0, 0 },
313*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRRIGHTBOR), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
314*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRRIGHTBDIS),ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, RIGHT_BORDER_DISTANCE | CONVERT_TWIPS },
315*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRRIGHTMAR), ATTR_LRSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_R_MARGIN | CONVERT_TWIPS },
316*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRSHADOW), ATTR_SHADOW, &::getCppuType((const table::ShadowFormat*)0), 0, 0 | CONVERT_TWIPS },
317*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRSHARED), ATTR_PAGE_SHARED, &::getBooleanCppuType(), 0, 0 },
318*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRTOPBOR), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
319*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_HDRTOPBDIS), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, TOP_BORDER_DISTANCE | CONVERT_TWIPS },
320*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_HDRBACKTRAN),ATTR_BACKGROUND, &::getBooleanCppuType(), 0, MID_GRAPHIC_TRANSPARENT },
321*b1cdbd2cSJim Jagielski {0,0,0,0,0,0}
322*b1cdbd2cSJim Jagielski };
323*b1cdbd2cSJim Jagielski static SfxItemPropertyMap aHeaderStyleMap( aHeaderStyleMap_Impl );
324*b1cdbd2cSJim Jagielski return &aHeaderStyleMap;
325*b1cdbd2cSJim Jagielski }
326*b1cdbd2cSJim Jagielski
327*b1cdbd2cSJim Jagielski // Map mit Inhalten des Footer-Item-Sets
328*b1cdbd2cSJim Jagielski
lcl_GetFooterStyleMap()329*b1cdbd2cSJim Jagielski const SfxItemPropertyMap* lcl_GetFooterStyleMap()
330*b1cdbd2cSJim Jagielski {
331*b1cdbd2cSJim Jagielski static SfxItemPropertyMapEntry aFooterStyleMap_Impl[] =
332*b1cdbd2cSJim Jagielski {
333*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBACKCOL), ATTR_BACKGROUND, &::getCppuType((const sal_Int32*)0), 0, MID_BACK_COLOR },
334*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRGRFFILT), ATTR_BACKGROUND, &::getCppuType((const ::rtl::OUString*)0), 0, MID_GRAPHIC_FILTER },
335*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRGRFLOC), ATTR_BACKGROUND, &::getCppuType((const style::GraphicLocation*)0), 0, MID_GRAPHIC_POSITION },
336*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRGRFURL), ATTR_BACKGROUND, &::getCppuType((const ::rtl::OUString*)0), 0, MID_GRAPHIC_URL },
337*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBACKTRAN), ATTR_BACKGROUND, &::getBooleanCppuType(), 0, MID_GRAPHIC_TRANSPARENT },
338*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRBACKCOL), ATTR_BACKGROUND, &::getCppuType((const sal_Int32*)0), 0, MID_BACK_COLOR },
339*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBODYDIST), ATTR_ULSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_UP_MARGIN | CONVERT_TWIPS },
340*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBRDDIST), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, BORDER_DISTANCE | CONVERT_TWIPS },
341*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBOTTBOR), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
342*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRBOTTBDIS), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, BOTTOM_BORDER_DISTANCE | CONVERT_TWIPS },
343*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRDYNAMIC), ATTR_PAGE_DYNAMIC, &::getBooleanCppuType(), 0, 0 },
344*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRHEIGHT), ATTR_PAGE_SIZE, &::getCppuType((const sal_Int32*)0), 0, MID_SIZE_HEIGHT | CONVERT_TWIPS },
345*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRDYNAMIC), ATTR_PAGE_DYNAMIC, &::getBooleanCppuType(), 0, 0 },
346*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRON), ATTR_PAGE_ON, &::getBooleanCppuType(), 0, 0 },
347*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRSHARED), ATTR_PAGE_SHARED, &::getBooleanCppuType(), 0, 0 },
348*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRLEFTBOR), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
349*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRLEFTBDIS), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, LEFT_BORDER_DISTANCE | CONVERT_TWIPS },
350*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRLEFTMAR), ATTR_LRSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_L_MARGIN | CONVERT_TWIPS },
351*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRON), ATTR_PAGE_ON, &::getBooleanCppuType(), 0, 0 },
352*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRRIGHTBOR), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
353*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRRIGHTBDIS),ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, RIGHT_BORDER_DISTANCE | CONVERT_TWIPS },
354*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRRIGHTMAR), ATTR_LRSPACE, &::getCppuType((const sal_Int32*)0), 0, MID_R_MARGIN | CONVERT_TWIPS },
355*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRSHADOW), ATTR_SHADOW, &::getCppuType((const table::ShadowFormat*)0), 0, 0 | CONVERT_TWIPS },
356*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRSHARED), ATTR_PAGE_SHARED, &::getBooleanCppuType(), 0, 0 },
357*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRTOPBOR), ATTR_BORDER, &::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
358*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(SC_UNO_PAGE_FTRTOPBDIS), ATTR_BORDER, &::getCppuType((const sal_Int32*)0), 0, TOP_BORDER_DISTANCE | CONVERT_TWIPS },
359*b1cdbd2cSJim Jagielski {MAP_CHAR_LEN(OLD_UNO_PAGE_FTRBACKTRAN),ATTR_BACKGROUND, &::getBooleanCppuType(), 0, MID_GRAPHIC_TRANSPARENT },
360*b1cdbd2cSJim Jagielski {0,0,0,0,0,0}
361*b1cdbd2cSJim Jagielski };
362*b1cdbd2cSJim Jagielski static SfxItemPropertyMap aFooterStyleMap( aFooterStyleMap_Impl );
363*b1cdbd2cSJim Jagielski return &aFooterStyleMap;
364*b1cdbd2cSJim Jagielski }
365*b1cdbd2cSJim Jagielski
366*b1cdbd2cSJim Jagielski
367*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
368*b1cdbd2cSJim Jagielski
369*b1cdbd2cSJim Jagielski // Index-Access auf die Style-Typen: 0 = Cell, 1 = Page
370*b1cdbd2cSJim Jagielski
371*b1cdbd2cSJim Jagielski #define SC_STYLE_FAMILY_COUNT 2
372*b1cdbd2cSJim Jagielski
373*b1cdbd2cSJim Jagielski #define SC_FAMILYNAME_CELL "CellStyles"
374*b1cdbd2cSJim Jagielski #define SC_FAMILYNAME_PAGE "PageStyles"
375*b1cdbd2cSJim Jagielski
376*b1cdbd2cSJim Jagielski static sal_uInt16 aStyleFamilyTypes[SC_STYLE_FAMILY_COUNT] = { SFX_STYLE_FAMILY_PARA, SFX_STYLE_FAMILY_PAGE };
377*b1cdbd2cSJim Jagielski
378*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
379*b1cdbd2cSJim Jagielski
380*b1cdbd2cSJim Jagielski //! diese Funktionen in einen allgemeinen Header verschieben
TwipsToHMM(long nTwips)381*b1cdbd2cSJim Jagielski inline long TwipsToHMM(long nTwips) { return (nTwips * 127 + 36) / 72; }
HMMToTwips(long nHMM)382*b1cdbd2cSJim Jagielski inline long HMMToTwips(long nHMM) { return (nHMM * 72 + 63) / 127; }
383*b1cdbd2cSJim Jagielski
384*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
385*b1cdbd2cSJim Jagielski
386*b1cdbd2cSJim Jagielski #define SCSTYLE_SERVICE "com.sun.star.style.Style"
387*b1cdbd2cSJim Jagielski #define SCCELLSTYLE_SERVICE "com.sun.star.style.CellStyle"
388*b1cdbd2cSJim Jagielski #define SCPAGESTYLE_SERVICE "com.sun.star.style.PageStyle"
389*b1cdbd2cSJim Jagielski
390*b1cdbd2cSJim Jagielski SC_SIMPLE_SERVICE_INFO( ScStyleFamiliesObj, "ScStyleFamiliesObj", "com.sun.star.style.StyleFamilies" )
391*b1cdbd2cSJim Jagielski SC_SIMPLE_SERVICE_INFO( ScStyleFamilyObj, "ScStyleFamilyObj", "com.sun.star.style.StyleFamily" )
392*b1cdbd2cSJim Jagielski
393*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
394*b1cdbd2cSJim Jagielski
395*b1cdbd2cSJim Jagielski #define SC_PAPERBIN_DEFAULTNAME "[From printer settings]"
396*b1cdbd2cSJim Jagielski
397*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
398*b1cdbd2cSJim Jagielski
399*b1cdbd2cSJim Jagielski // conversion programmatic <-> display (visible) name
400*b1cdbd2cSJim Jagielski // currently, the core always has the visible names
401*b1cdbd2cSJim Jagielski // the api is required to use programmatic names for default styles
402*b1cdbd2cSJim Jagielski // these programmatic names must never change!
403*b1cdbd2cSJim Jagielski
404*b1cdbd2cSJim Jagielski #define SC_STYLE_PROG_STANDARD "Default"
405*b1cdbd2cSJim Jagielski #define SC_STYLE_PROG_RESULT "Result"
406*b1cdbd2cSJim Jagielski #define SC_STYLE_PROG_RESULT1 "Result2"
407*b1cdbd2cSJim Jagielski #define SC_STYLE_PROG_HEADLINE "Heading"
408*b1cdbd2cSJim Jagielski #define SC_STYLE_PROG_HEADLINE1 "Heading1"
409*b1cdbd2cSJim Jagielski #define SC_STYLE_PROG_REPORT "Report"
410*b1cdbd2cSJim Jagielski
411*b1cdbd2cSJim Jagielski struct ScDisplayNameMap
412*b1cdbd2cSJim Jagielski {
413*b1cdbd2cSJim Jagielski String aDispName;
414*b1cdbd2cSJim Jagielski String aProgName;
415*b1cdbd2cSJim Jagielski };
416*b1cdbd2cSJim Jagielski
lcl_GetStyleNameMap(sal_uInt16 nType)417*b1cdbd2cSJim Jagielski const ScDisplayNameMap* lcl_GetStyleNameMap( sal_uInt16 nType )
418*b1cdbd2cSJim Jagielski {
419*b1cdbd2cSJim Jagielski if ( nType == SFX_STYLE_FAMILY_PARA )
420*b1cdbd2cSJim Jagielski {
421*b1cdbd2cSJim Jagielski static sal_Bool bCellMapFilled = sal_False;
422*b1cdbd2cSJim Jagielski static ScDisplayNameMap aCellMap[6];
423*b1cdbd2cSJim Jagielski if ( !bCellMapFilled )
424*b1cdbd2cSJim Jagielski {
425*b1cdbd2cSJim Jagielski aCellMap[0].aDispName = ScGlobal::GetRscString( STR_STYLENAME_STANDARD );
426*b1cdbd2cSJim Jagielski aCellMap[0].aProgName = String::CreateFromAscii( SC_STYLE_PROG_STANDARD );
427*b1cdbd2cSJim Jagielski
428*b1cdbd2cSJim Jagielski aCellMap[1].aDispName = ScGlobal::GetRscString( STR_STYLENAME_RESULT );
429*b1cdbd2cSJim Jagielski aCellMap[1].aProgName = String::CreateFromAscii( SC_STYLE_PROG_RESULT );
430*b1cdbd2cSJim Jagielski
431*b1cdbd2cSJim Jagielski aCellMap[2].aDispName = ScGlobal::GetRscString( STR_STYLENAME_RESULT1 );
432*b1cdbd2cSJim Jagielski aCellMap[2].aProgName = String::CreateFromAscii( SC_STYLE_PROG_RESULT1 );
433*b1cdbd2cSJim Jagielski
434*b1cdbd2cSJim Jagielski aCellMap[3].aDispName = ScGlobal::GetRscString( STR_STYLENAME_HEADLINE );
435*b1cdbd2cSJim Jagielski aCellMap[3].aProgName = String::CreateFromAscii( SC_STYLE_PROG_HEADLINE );
436*b1cdbd2cSJim Jagielski
437*b1cdbd2cSJim Jagielski aCellMap[4].aDispName = ScGlobal::GetRscString( STR_STYLENAME_HEADLINE1 );
438*b1cdbd2cSJim Jagielski aCellMap[4].aProgName = String::CreateFromAscii( SC_STYLE_PROG_HEADLINE1 );
439*b1cdbd2cSJim Jagielski
440*b1cdbd2cSJim Jagielski // last entry remains empty
441*b1cdbd2cSJim Jagielski
442*b1cdbd2cSJim Jagielski bCellMapFilled = sal_True;
443*b1cdbd2cSJim Jagielski }
444*b1cdbd2cSJim Jagielski return aCellMap;
445*b1cdbd2cSJim Jagielski }
446*b1cdbd2cSJim Jagielski else if ( nType == SFX_STYLE_FAMILY_PAGE )
447*b1cdbd2cSJim Jagielski {
448*b1cdbd2cSJim Jagielski static sal_Bool bPageMapFilled = sal_False;
449*b1cdbd2cSJim Jagielski static ScDisplayNameMap aPageMap[3];
450*b1cdbd2cSJim Jagielski if ( !bPageMapFilled )
451*b1cdbd2cSJim Jagielski {
452*b1cdbd2cSJim Jagielski aPageMap[0].aDispName = ScGlobal::GetRscString( STR_STYLENAME_STANDARD );
453*b1cdbd2cSJim Jagielski aPageMap[0].aProgName = String::CreateFromAscii( SC_STYLE_PROG_STANDARD );
454*b1cdbd2cSJim Jagielski
455*b1cdbd2cSJim Jagielski aPageMap[1].aDispName = ScGlobal::GetRscString( STR_STYLENAME_REPORT );
456*b1cdbd2cSJim Jagielski aPageMap[1].aProgName = String::CreateFromAscii( SC_STYLE_PROG_REPORT );
457*b1cdbd2cSJim Jagielski
458*b1cdbd2cSJim Jagielski // last entry remains empty
459*b1cdbd2cSJim Jagielski
460*b1cdbd2cSJim Jagielski bPageMapFilled = sal_True;
461*b1cdbd2cSJim Jagielski }
462*b1cdbd2cSJim Jagielski return aPageMap;
463*b1cdbd2cSJim Jagielski }
464*b1cdbd2cSJim Jagielski DBG_ERROR("invalid family");
465*b1cdbd2cSJim Jagielski return NULL;
466*b1cdbd2cSJim Jagielski }
467*b1cdbd2cSJim Jagielski
468*b1cdbd2cSJim Jagielski // programmatic name suffix for display names that match other programmatic names
469*b1cdbd2cSJim Jagielski // is " (user)" including a space
470*b1cdbd2cSJim Jagielski
471*b1cdbd2cSJim Jagielski #define SC_SUFFIX_USER " (user)"
472*b1cdbd2cSJim Jagielski #define SC_SUFFIX_USER_LEN 7
473*b1cdbd2cSJim Jagielski
lcl_EndsWithUser(const String & rString)474*b1cdbd2cSJim Jagielski sal_Bool lcl_EndsWithUser( const String& rString )
475*b1cdbd2cSJim Jagielski {
476*b1cdbd2cSJim Jagielski const sal_Unicode *pChar = rString.GetBuffer();
477*b1cdbd2cSJim Jagielski xub_StrLen nLen = rString.Len();
478*b1cdbd2cSJim Jagielski return nLen >= SC_SUFFIX_USER_LEN &&
479*b1cdbd2cSJim Jagielski pChar[nLen-7] == ' ' &&
480*b1cdbd2cSJim Jagielski pChar[nLen-6] == '(' &&
481*b1cdbd2cSJim Jagielski pChar[nLen-5] == 'u' &&
482*b1cdbd2cSJim Jagielski pChar[nLen-4] == 's' &&
483*b1cdbd2cSJim Jagielski pChar[nLen-3] == 'e' &&
484*b1cdbd2cSJim Jagielski pChar[nLen-2] == 'r' &&
485*b1cdbd2cSJim Jagielski pChar[nLen-1] == ')';
486*b1cdbd2cSJim Jagielski }
487*b1cdbd2cSJim Jagielski
488*b1cdbd2cSJim Jagielski // static
DisplayToProgrammaticName(const String & rDispName,sal_uInt16 nType)489*b1cdbd2cSJim Jagielski String ScStyleNameConversion::DisplayToProgrammaticName( const String& rDispName, sal_uInt16 nType )
490*b1cdbd2cSJim Jagielski {
491*b1cdbd2cSJim Jagielski sal_Bool bDisplayIsProgrammatic = sal_False;
492*b1cdbd2cSJim Jagielski
493*b1cdbd2cSJim Jagielski const ScDisplayNameMap* pNames = lcl_GetStyleNameMap( nType );
494*b1cdbd2cSJim Jagielski if (pNames)
495*b1cdbd2cSJim Jagielski {
496*b1cdbd2cSJim Jagielski do
497*b1cdbd2cSJim Jagielski {
498*b1cdbd2cSJim Jagielski if (pNames->aDispName == rDispName)
499*b1cdbd2cSJim Jagielski return pNames->aProgName;
500*b1cdbd2cSJim Jagielski else if (pNames->aProgName == rDispName)
501*b1cdbd2cSJim Jagielski bDisplayIsProgrammatic = sal_True; // display name matches any programmatic name
502*b1cdbd2cSJim Jagielski }
503*b1cdbd2cSJim Jagielski while( (++pNames)->aDispName.Len() );
504*b1cdbd2cSJim Jagielski }
505*b1cdbd2cSJim Jagielski
506*b1cdbd2cSJim Jagielski if ( bDisplayIsProgrammatic || lcl_EndsWithUser( rDispName ) )
507*b1cdbd2cSJim Jagielski {
508*b1cdbd2cSJim Jagielski // add the (user) suffix if the display name matches any style's programmatic name
509*b1cdbd2cSJim Jagielski // or if it already contains the suffix
510*b1cdbd2cSJim Jagielski
511*b1cdbd2cSJim Jagielski String aRet(rDispName);
512*b1cdbd2cSJim Jagielski aRet.AppendAscii( RTL_CONSTASCII_STRINGPARAM( SC_SUFFIX_USER ) );
513*b1cdbd2cSJim Jagielski return aRet;
514*b1cdbd2cSJim Jagielski }
515*b1cdbd2cSJim Jagielski
516*b1cdbd2cSJim Jagielski return rDispName;
517*b1cdbd2cSJim Jagielski }
518*b1cdbd2cSJim Jagielski
519*b1cdbd2cSJim Jagielski // static
ProgrammaticToDisplayName(const String & rProgName,sal_uInt16 nType)520*b1cdbd2cSJim Jagielski String ScStyleNameConversion::ProgrammaticToDisplayName( const String& rProgName, sal_uInt16 nType )
521*b1cdbd2cSJim Jagielski {
522*b1cdbd2cSJim Jagielski if ( lcl_EndsWithUser( rProgName ) )
523*b1cdbd2cSJim Jagielski {
524*b1cdbd2cSJim Jagielski // remove the (user) suffix, don't compare to map entries
525*b1cdbd2cSJim Jagielski return rProgName.Copy( 0, rProgName.Len() - SC_SUFFIX_USER_LEN );
526*b1cdbd2cSJim Jagielski }
527*b1cdbd2cSJim Jagielski
528*b1cdbd2cSJim Jagielski const ScDisplayNameMap* pNames = lcl_GetStyleNameMap( nType );
529*b1cdbd2cSJim Jagielski if (pNames)
530*b1cdbd2cSJim Jagielski {
531*b1cdbd2cSJim Jagielski do
532*b1cdbd2cSJim Jagielski {
533*b1cdbd2cSJim Jagielski if (pNames->aProgName == rProgName)
534*b1cdbd2cSJim Jagielski return pNames->aDispName;
535*b1cdbd2cSJim Jagielski }
536*b1cdbd2cSJim Jagielski while( (++pNames)->aDispName.Len() );
537*b1cdbd2cSJim Jagielski }
538*b1cdbd2cSJim Jagielski return rProgName;
539*b1cdbd2cSJim Jagielski }
540*b1cdbd2cSJim Jagielski
541*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
542*b1cdbd2cSJim Jagielski
lcl_AnyTabProtected(ScDocument & rDoc)543*b1cdbd2cSJim Jagielski sal_Bool lcl_AnyTabProtected( ScDocument& rDoc )
544*b1cdbd2cSJim Jagielski {
545*b1cdbd2cSJim Jagielski SCTAB nTabCount = rDoc.GetTableCount();
546*b1cdbd2cSJim Jagielski for (SCTAB i=0; i<nTabCount; i++)
547*b1cdbd2cSJim Jagielski if (rDoc.IsTabProtected(i))
548*b1cdbd2cSJim Jagielski return sal_True;
549*b1cdbd2cSJim Jagielski return sal_False;
550*b1cdbd2cSJim Jagielski }
551*b1cdbd2cSJim Jagielski
552*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
553*b1cdbd2cSJim Jagielski
ScStyleFamiliesObj(ScDocShell * pDocSh)554*b1cdbd2cSJim Jagielski ScStyleFamiliesObj::ScStyleFamiliesObj(ScDocShell* pDocSh) :
555*b1cdbd2cSJim Jagielski pDocShell( pDocSh )
556*b1cdbd2cSJim Jagielski {
557*b1cdbd2cSJim Jagielski pDocShell->GetDocument()->AddUnoObject(*this);
558*b1cdbd2cSJim Jagielski }
559*b1cdbd2cSJim Jagielski
~ScStyleFamiliesObj()560*b1cdbd2cSJim Jagielski ScStyleFamiliesObj::~ScStyleFamiliesObj()
561*b1cdbd2cSJim Jagielski {
562*b1cdbd2cSJim Jagielski if (pDocShell)
563*b1cdbd2cSJim Jagielski pDocShell->GetDocument()->RemoveUnoObject(*this);
564*b1cdbd2cSJim Jagielski }
565*b1cdbd2cSJim Jagielski
Notify(SfxBroadcaster &,const SfxHint & rHint)566*b1cdbd2cSJim Jagielski void ScStyleFamiliesObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
567*b1cdbd2cSJim Jagielski {
568*b1cdbd2cSJim Jagielski // Referenz-Update interessiert hier nicht
569*b1cdbd2cSJim Jagielski
570*b1cdbd2cSJim Jagielski if ( rHint.ISA( SfxSimpleHint ) &&
571*b1cdbd2cSJim Jagielski ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
572*b1cdbd2cSJim Jagielski {
573*b1cdbd2cSJim Jagielski pDocShell = NULL; // ungueltig geworden
574*b1cdbd2cSJim Jagielski }
575*b1cdbd2cSJim Jagielski }
576*b1cdbd2cSJim Jagielski
577*b1cdbd2cSJim Jagielski // XStyleFamilies
578*b1cdbd2cSJim Jagielski
GetObjectByType_Impl(sal_uInt16 nType) const579*b1cdbd2cSJim Jagielski ScStyleFamilyObj*ScStyleFamiliesObj::GetObjectByType_Impl(sal_uInt16 nType) const
580*b1cdbd2cSJim Jagielski {
581*b1cdbd2cSJim Jagielski if ( pDocShell )
582*b1cdbd2cSJim Jagielski {
583*b1cdbd2cSJim Jagielski if ( nType == SFX_STYLE_FAMILY_PARA )
584*b1cdbd2cSJim Jagielski return new ScStyleFamilyObj( pDocShell, SFX_STYLE_FAMILY_PARA );
585*b1cdbd2cSJim Jagielski else if ( nType == SFX_STYLE_FAMILY_PAGE )
586*b1cdbd2cSJim Jagielski return new ScStyleFamilyObj( pDocShell, SFX_STYLE_FAMILY_PAGE );
587*b1cdbd2cSJim Jagielski }
588*b1cdbd2cSJim Jagielski DBG_ERROR("getStyleFamilyByType: keine DocShell oder falscher Typ");
589*b1cdbd2cSJim Jagielski return NULL;
590*b1cdbd2cSJim Jagielski }
591*b1cdbd2cSJim Jagielski
GetObjectByIndex_Impl(sal_uInt32 nIndex) const592*b1cdbd2cSJim Jagielski ScStyleFamilyObj* ScStyleFamiliesObj::GetObjectByIndex_Impl(sal_uInt32 nIndex) const
593*b1cdbd2cSJim Jagielski {
594*b1cdbd2cSJim Jagielski if ( nIndex < SC_STYLE_FAMILY_COUNT )
595*b1cdbd2cSJim Jagielski return GetObjectByType_Impl(aStyleFamilyTypes[nIndex]);
596*b1cdbd2cSJim Jagielski
597*b1cdbd2cSJim Jagielski return NULL; // ungueltiger Index
598*b1cdbd2cSJim Jagielski }
599*b1cdbd2cSJim Jagielski
GetObjectByName_Impl(const rtl::OUString & aName) const600*b1cdbd2cSJim Jagielski ScStyleFamilyObj* ScStyleFamiliesObj::GetObjectByName_Impl(const rtl::OUString& aName) const
601*b1cdbd2cSJim Jagielski {
602*b1cdbd2cSJim Jagielski if ( pDocShell )
603*b1cdbd2cSJim Jagielski {
604*b1cdbd2cSJim Jagielski String aNameStr( aName );
605*b1cdbd2cSJim Jagielski if ( aNameStr.EqualsAscii( SC_FAMILYNAME_CELL ) )
606*b1cdbd2cSJim Jagielski return new ScStyleFamilyObj( pDocShell, SFX_STYLE_FAMILY_PARA );
607*b1cdbd2cSJim Jagielski else if ( aNameStr.EqualsAscii( SC_FAMILYNAME_PAGE ) )
608*b1cdbd2cSJim Jagielski return new ScStyleFamilyObj( pDocShell, SFX_STYLE_FAMILY_PAGE );
609*b1cdbd2cSJim Jagielski }
610*b1cdbd2cSJim Jagielski // no assertion - called directly from getByName
611*b1cdbd2cSJim Jagielski return NULL;
612*b1cdbd2cSJim Jagielski }
613*b1cdbd2cSJim Jagielski
614*b1cdbd2cSJim Jagielski // container::XIndexAccess
615*b1cdbd2cSJim Jagielski
getCount()616*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL ScStyleFamiliesObj::getCount() throw(uno::RuntimeException)
617*b1cdbd2cSJim Jagielski {
618*b1cdbd2cSJim Jagielski return SC_STYLE_FAMILY_COUNT;
619*b1cdbd2cSJim Jagielski }
620*b1cdbd2cSJim Jagielski
getByIndex(sal_Int32 nIndex)621*b1cdbd2cSJim Jagielski uno::Any SAL_CALL ScStyleFamiliesObj::getByIndex( sal_Int32 nIndex )
622*b1cdbd2cSJim Jagielski throw(lang::IndexOutOfBoundsException,
623*b1cdbd2cSJim Jagielski lang::WrappedTargetException, uno::RuntimeException)
624*b1cdbd2cSJim Jagielski {
625*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
626*b1cdbd2cSJim Jagielski uno::Reference< container::XNameContainer > xFamily(GetObjectByIndex_Impl(nIndex));
627*b1cdbd2cSJim Jagielski if (xFamily.is())
628*b1cdbd2cSJim Jagielski return uno::makeAny(xFamily);
629*b1cdbd2cSJim Jagielski else
630*b1cdbd2cSJim Jagielski throw lang::IndexOutOfBoundsException();
631*b1cdbd2cSJim Jagielski // return uno::Any();
632*b1cdbd2cSJim Jagielski }
633*b1cdbd2cSJim Jagielski
getElementType()634*b1cdbd2cSJim Jagielski uno::Type SAL_CALL ScStyleFamiliesObj::getElementType() throw(uno::RuntimeException)
635*b1cdbd2cSJim Jagielski {
636*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
637*b1cdbd2cSJim Jagielski return ::getCppuType((const uno::Reference< container::XNameContainer >*)0); // muss zu getByIndex passen
638*b1cdbd2cSJim Jagielski }
639*b1cdbd2cSJim Jagielski
hasElements()640*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL ScStyleFamiliesObj::hasElements() throw(uno::RuntimeException)
641*b1cdbd2cSJim Jagielski {
642*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
643*b1cdbd2cSJim Jagielski return ( getCount() != 0 );
644*b1cdbd2cSJim Jagielski }
645*b1cdbd2cSJim Jagielski
646*b1cdbd2cSJim Jagielski // container::XNameAccess
647*b1cdbd2cSJim Jagielski
getByName(const rtl::OUString & aName)648*b1cdbd2cSJim Jagielski uno::Any SAL_CALL ScStyleFamiliesObj::getByName( const rtl::OUString& aName )
649*b1cdbd2cSJim Jagielski throw(container::NoSuchElementException,
650*b1cdbd2cSJim Jagielski lang::WrappedTargetException, uno::RuntimeException)
651*b1cdbd2cSJim Jagielski {
652*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
653*b1cdbd2cSJim Jagielski uno::Reference< container::XNameContainer > xFamily(GetObjectByName_Impl(aName));
654*b1cdbd2cSJim Jagielski if (xFamily.is())
655*b1cdbd2cSJim Jagielski return uno::makeAny(xFamily);
656*b1cdbd2cSJim Jagielski else
657*b1cdbd2cSJim Jagielski throw container::NoSuchElementException();
658*b1cdbd2cSJim Jagielski // return uno::Any();
659*b1cdbd2cSJim Jagielski }
660*b1cdbd2cSJim Jagielski
getElementNames()661*b1cdbd2cSJim Jagielski uno::Sequence<rtl::OUString> SAL_CALL ScStyleFamiliesObj::getElementNames()
662*b1cdbd2cSJim Jagielski throw(uno::RuntimeException)
663*b1cdbd2cSJim Jagielski {
664*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
665*b1cdbd2cSJim Jagielski uno::Sequence<rtl::OUString> aNames(SC_STYLE_FAMILY_COUNT);
666*b1cdbd2cSJim Jagielski rtl::OUString* pNames = aNames.getArray();
667*b1cdbd2cSJim Jagielski pNames[0] = rtl::OUString::createFromAscii( SC_FAMILYNAME_CELL );
668*b1cdbd2cSJim Jagielski pNames[1] = rtl::OUString::createFromAscii( SC_FAMILYNAME_PAGE );
669*b1cdbd2cSJim Jagielski return aNames;
670*b1cdbd2cSJim Jagielski }
671*b1cdbd2cSJim Jagielski
hasByName(const rtl::OUString & aName)672*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL ScStyleFamiliesObj::hasByName( const rtl::OUString& aName )
673*b1cdbd2cSJim Jagielski throw(uno::RuntimeException)
674*b1cdbd2cSJim Jagielski {
675*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
676*b1cdbd2cSJim Jagielski String aNameStr( aName );
677*b1cdbd2cSJim Jagielski return ( aNameStr.EqualsAscii( SC_FAMILYNAME_CELL ) || aNameStr.EqualsAscii( SC_FAMILYNAME_PAGE ) );
678*b1cdbd2cSJim Jagielski }
679*b1cdbd2cSJim Jagielski
680*b1cdbd2cSJim Jagielski // style::XStyleLoader
681*b1cdbd2cSJim Jagielski
loadStylesFromURL(const rtl::OUString & aURL,const uno::Sequence<beans::PropertyValue> & aOptions)682*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleFamiliesObj::loadStylesFromURL( const rtl::OUString& aURL,
683*b1cdbd2cSJim Jagielski const uno::Sequence<beans::PropertyValue>& aOptions )
684*b1cdbd2cSJim Jagielski throw(io::IOException, uno::RuntimeException)
685*b1cdbd2cSJim Jagielski {
686*b1cdbd2cSJim Jagielski //! use aOptions (like Writer)
687*b1cdbd2cSJim Jagielski //! set flag to disable filter option dialogs when importing
688*b1cdbd2cSJim Jagielski
689*b1cdbd2cSJim Jagielski String aFilter; // empty - detect
690*b1cdbd2cSJim Jagielski String aFiltOpt;
691*b1cdbd2cSJim Jagielski ScDocumentLoader aLoader( aURL, aFilter, aFiltOpt );
692*b1cdbd2cSJim Jagielski
693*b1cdbd2cSJim Jagielski ScDocShell* pSource = aLoader.GetDocShell();
694*b1cdbd2cSJim Jagielski if ( pSource && pDocShell )
695*b1cdbd2cSJim Jagielski {
696*b1cdbd2cSJim Jagielski // collect options
697*b1cdbd2cSJim Jagielski
698*b1cdbd2cSJim Jagielski sal_Bool bLoadReplace = sal_True; // defaults
699*b1cdbd2cSJim Jagielski sal_Bool bLoadCellStyles = sal_True;
700*b1cdbd2cSJim Jagielski sal_Bool bLoadPageStyles = sal_True;
701*b1cdbd2cSJim Jagielski
702*b1cdbd2cSJim Jagielski const beans::PropertyValue* pPropArray = aOptions.getConstArray();
703*b1cdbd2cSJim Jagielski long nPropCount = aOptions.getLength();
704*b1cdbd2cSJim Jagielski for (long i = 0; i < nPropCount; i++)
705*b1cdbd2cSJim Jagielski {
706*b1cdbd2cSJim Jagielski const beans::PropertyValue& rProp = pPropArray[i];
707*b1cdbd2cSJim Jagielski String aPropName(rProp.Name);
708*b1cdbd2cSJim Jagielski
709*b1cdbd2cSJim Jagielski if (aPropName.EqualsAscii( SC_UNONAME_OVERWSTL ))
710*b1cdbd2cSJim Jagielski bLoadReplace = ScUnoHelpFunctions::GetBoolFromAny( rProp.Value );
711*b1cdbd2cSJim Jagielski else if (aPropName.EqualsAscii( SC_UNONAME_LOADCELL ))
712*b1cdbd2cSJim Jagielski bLoadCellStyles = ScUnoHelpFunctions::GetBoolFromAny( rProp.Value );
713*b1cdbd2cSJim Jagielski else if (aPropName.EqualsAscii( SC_UNONAME_LOADPAGE ))
714*b1cdbd2cSJim Jagielski bLoadPageStyles = ScUnoHelpFunctions::GetBoolFromAny( rProp.Value );
715*b1cdbd2cSJim Jagielski }
716*b1cdbd2cSJim Jagielski
717*b1cdbd2cSJim Jagielski pDocShell->LoadStylesArgs( *pSource, bLoadReplace, bLoadCellStyles, bLoadPageStyles );
718*b1cdbd2cSJim Jagielski pDocShell->SetDocumentModified(); // paint is inside LoadStyles
719*b1cdbd2cSJim Jagielski }
720*b1cdbd2cSJim Jagielski }
721*b1cdbd2cSJim Jagielski
getStyleLoaderOptions()722*b1cdbd2cSJim Jagielski uno::Sequence<beans::PropertyValue> SAL_CALL ScStyleFamiliesObj::getStyleLoaderOptions()
723*b1cdbd2cSJim Jagielski throw(uno::RuntimeException)
724*b1cdbd2cSJim Jagielski {
725*b1cdbd2cSJim Jagielski // return defaults for options (?)
726*b1cdbd2cSJim Jagielski
727*b1cdbd2cSJim Jagielski uno::Sequence<beans::PropertyValue> aSequence(3);
728*b1cdbd2cSJim Jagielski beans::PropertyValue* pArray = aSequence.getArray();
729*b1cdbd2cSJim Jagielski
730*b1cdbd2cSJim Jagielski pArray[0].Name = rtl::OUString::createFromAscii( SC_UNONAME_OVERWSTL );
731*b1cdbd2cSJim Jagielski ScUnoHelpFunctions::SetBoolInAny( pArray[0].Value, sal_True );
732*b1cdbd2cSJim Jagielski
733*b1cdbd2cSJim Jagielski pArray[1].Name = rtl::OUString::createFromAscii( SC_UNONAME_LOADCELL );
734*b1cdbd2cSJim Jagielski ScUnoHelpFunctions::SetBoolInAny( pArray[1].Value, sal_True );
735*b1cdbd2cSJim Jagielski
736*b1cdbd2cSJim Jagielski pArray[2].Name = rtl::OUString::createFromAscii( SC_UNONAME_LOADPAGE );
737*b1cdbd2cSJim Jagielski ScUnoHelpFunctions::SetBoolInAny( pArray[2].Value, sal_True );
738*b1cdbd2cSJim Jagielski
739*b1cdbd2cSJim Jagielski return aSequence;
740*b1cdbd2cSJim Jagielski }
741*b1cdbd2cSJim Jagielski
742*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
743*b1cdbd2cSJim Jagielski
ScStyleFamilyObj(ScDocShell * pDocSh,SfxStyleFamily eFam)744*b1cdbd2cSJim Jagielski ScStyleFamilyObj::ScStyleFamilyObj(ScDocShell* pDocSh, SfxStyleFamily eFam) :
745*b1cdbd2cSJim Jagielski pDocShell( pDocSh ),
746*b1cdbd2cSJim Jagielski eFamily( eFam )
747*b1cdbd2cSJim Jagielski {
748*b1cdbd2cSJim Jagielski pDocShell->GetDocument()->AddUnoObject(*this);
749*b1cdbd2cSJim Jagielski }
750*b1cdbd2cSJim Jagielski
~ScStyleFamilyObj()751*b1cdbd2cSJim Jagielski ScStyleFamilyObj::~ScStyleFamilyObj()
752*b1cdbd2cSJim Jagielski {
753*b1cdbd2cSJim Jagielski if (pDocShell)
754*b1cdbd2cSJim Jagielski pDocShell->GetDocument()->RemoveUnoObject(*this);
755*b1cdbd2cSJim Jagielski }
756*b1cdbd2cSJim Jagielski
Notify(SfxBroadcaster &,const SfxHint & rHint)757*b1cdbd2cSJim Jagielski void ScStyleFamilyObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
758*b1cdbd2cSJim Jagielski {
759*b1cdbd2cSJim Jagielski // Referenz-Update interessiert hier nicht
760*b1cdbd2cSJim Jagielski
761*b1cdbd2cSJim Jagielski if ( rHint.ISA( SfxSimpleHint ) &&
762*b1cdbd2cSJim Jagielski ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
763*b1cdbd2cSJim Jagielski {
764*b1cdbd2cSJim Jagielski pDocShell = NULL; // ungueltig geworden
765*b1cdbd2cSJim Jagielski }
766*b1cdbd2cSJim Jagielski }
767*b1cdbd2cSJim Jagielski
768*b1cdbd2cSJim Jagielski // XStyleFamily
769*b1cdbd2cSJim Jagielski
GetObjectByIndex_Impl(sal_uInt32 nIndex)770*b1cdbd2cSJim Jagielski ScStyleObj* ScStyleFamilyObj::GetObjectByIndex_Impl(sal_uInt32 nIndex)
771*b1cdbd2cSJim Jagielski {
772*b1cdbd2cSJim Jagielski if ( pDocShell )
773*b1cdbd2cSJim Jagielski {
774*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
775*b1cdbd2cSJim Jagielski ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
776*b1cdbd2cSJim Jagielski
777*b1cdbd2cSJim Jagielski SfxStyleSheetIterator aIter( pStylePool, eFamily );
778*b1cdbd2cSJim Jagielski if ( nIndex < aIter.Count() )
779*b1cdbd2cSJim Jagielski {
780*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = aIter[(sal_uInt16)nIndex];
781*b1cdbd2cSJim Jagielski if ( pStyle )
782*b1cdbd2cSJim Jagielski {
783*b1cdbd2cSJim Jagielski return new ScStyleObj( pDocShell, eFamily, String (pStyle->GetName()) );
784*b1cdbd2cSJim Jagielski }
785*b1cdbd2cSJim Jagielski }
786*b1cdbd2cSJim Jagielski }
787*b1cdbd2cSJim Jagielski return NULL;
788*b1cdbd2cSJim Jagielski }
789*b1cdbd2cSJim Jagielski
GetObjectByName_Impl(const rtl::OUString & aName)790*b1cdbd2cSJim Jagielski ScStyleObj* ScStyleFamilyObj::GetObjectByName_Impl(const rtl::OUString& aName)
791*b1cdbd2cSJim Jagielski {
792*b1cdbd2cSJim Jagielski if ( pDocShell )
793*b1cdbd2cSJim Jagielski {
794*b1cdbd2cSJim Jagielski String aString(aName);
795*b1cdbd2cSJim Jagielski
796*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
797*b1cdbd2cSJim Jagielski ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
798*b1cdbd2cSJim Jagielski if ( pStylePool->Find( aString, eFamily ) )
799*b1cdbd2cSJim Jagielski return new ScStyleObj( pDocShell, eFamily, aString );
800*b1cdbd2cSJim Jagielski }
801*b1cdbd2cSJim Jagielski return NULL;
802*b1cdbd2cSJim Jagielski }
803*b1cdbd2cSJim Jagielski
insertByName(const rtl::OUString & aName,const uno::Any & aElement)804*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleFamilyObj::insertByName( const rtl::OUString& aName, const uno::Any& aElement )
805*b1cdbd2cSJim Jagielski throw(lang::IllegalArgumentException, container::ElementExistException,
806*b1cdbd2cSJim Jagielski lang::WrappedTargetException, uno::RuntimeException)
807*b1cdbd2cSJim Jagielski {
808*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
809*b1cdbd2cSJim Jagielski sal_Bool bDone = sal_False;
810*b1cdbd2cSJim Jagielski // Reflection muss nicht uno::XInterface sein, kann auch irgendein Interface sein...
811*b1cdbd2cSJim Jagielski uno::Reference< uno::XInterface > xInterface(aElement, uno::UNO_QUERY);
812*b1cdbd2cSJim Jagielski if ( xInterface.is() )
813*b1cdbd2cSJim Jagielski {
814*b1cdbd2cSJim Jagielski ScStyleObj* pStyleObj = ScStyleObj::getImplementation( xInterface );
815*b1cdbd2cSJim Jagielski if ( pStyleObj && pStyleObj->GetFamily() == eFamily &&
816*b1cdbd2cSJim Jagielski !pStyleObj->IsInserted() ) // noch nicht eingefuegt?
817*b1cdbd2cSJim Jagielski {
818*b1cdbd2cSJim Jagielski String aNameStr(ScStyleNameConversion::ProgrammaticToDisplayName( aName, sal::static_int_cast<sal_uInt16>(eFamily) ));
819*b1cdbd2cSJim Jagielski
820*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
821*b1cdbd2cSJim Jagielski ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
822*b1cdbd2cSJim Jagielski
823*b1cdbd2cSJim Jagielski //! DocFunc-Funktion??
824*b1cdbd2cSJim Jagielski //! Undo ?????????????
825*b1cdbd2cSJim Jagielski
826*b1cdbd2cSJim Jagielski if ( !pStylePool->Find( aNameStr, eFamily ) ) // noch nicht vorhanden
827*b1cdbd2cSJim Jagielski {
828*b1cdbd2cSJim Jagielski (void)pStylePool->Make( aNameStr, eFamily, SFXSTYLEBIT_USERDEF );
829*b1cdbd2cSJim Jagielski
830*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PARA && !pDoc->IsImportingXML() )
831*b1cdbd2cSJim Jagielski pDoc->GetPool()->CellStyleCreated( aNameStr );
832*b1cdbd2cSJim Jagielski
833*b1cdbd2cSJim Jagielski pStyleObj->InitDoc( pDocShell, aNameStr ); // Objekt kann benutzt werden
834*b1cdbd2cSJim Jagielski
835*b1cdbd2cSJim Jagielski pDocShell->SetDocumentModified(); // verwendet wird der neue Style noch nicht
836*b1cdbd2cSJim Jagielski bDone = sal_True;
837*b1cdbd2cSJim Jagielski }
838*b1cdbd2cSJim Jagielski else
839*b1cdbd2cSJim Jagielski throw container::ElementExistException();
840*b1cdbd2cSJim Jagielski }
841*b1cdbd2cSJim Jagielski }
842*b1cdbd2cSJim Jagielski
843*b1cdbd2cSJim Jagielski if (!bDone)
844*b1cdbd2cSJim Jagielski {
845*b1cdbd2cSJim Jagielski // other errors are handled above
846*b1cdbd2cSJim Jagielski throw lang::IllegalArgumentException();
847*b1cdbd2cSJim Jagielski }
848*b1cdbd2cSJim Jagielski }
849*b1cdbd2cSJim Jagielski
replaceByName(const rtl::OUString & aName,const uno::Any & aElement)850*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleFamilyObj::replaceByName( const rtl::OUString& aName, const uno::Any& aElement )
851*b1cdbd2cSJim Jagielski throw(lang::IllegalArgumentException, container::NoSuchElementException,
852*b1cdbd2cSJim Jagielski lang::WrappedTargetException, uno::RuntimeException)
853*b1cdbd2cSJim Jagielski {
854*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
855*b1cdbd2cSJim Jagielski //! zusammenfassen?
856*b1cdbd2cSJim Jagielski removeByName( aName );
857*b1cdbd2cSJim Jagielski insertByName( aName, aElement );
858*b1cdbd2cSJim Jagielski }
859*b1cdbd2cSJim Jagielski
removeByName(const rtl::OUString & aName)860*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleFamilyObj::removeByName( const rtl::OUString& aName )
861*b1cdbd2cSJim Jagielski throw(container::NoSuchElementException,
862*b1cdbd2cSJim Jagielski lang::WrappedTargetException, uno::RuntimeException)
863*b1cdbd2cSJim Jagielski {
864*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
865*b1cdbd2cSJim Jagielski sal_Bool bFound = sal_False;
866*b1cdbd2cSJim Jagielski if ( pDocShell )
867*b1cdbd2cSJim Jagielski {
868*b1cdbd2cSJim Jagielski String aString(ScStyleNameConversion::ProgrammaticToDisplayName( aName, sal::static_int_cast<sal_uInt16>(eFamily) ));
869*b1cdbd2cSJim Jagielski
870*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
871*b1cdbd2cSJim Jagielski ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
872*b1cdbd2cSJim Jagielski
873*b1cdbd2cSJim Jagielski //! DocFunc-Funktion??
874*b1cdbd2cSJim Jagielski //! Undo ?????????????
875*b1cdbd2cSJim Jagielski
876*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = pStylePool->Find( aString, eFamily );
877*b1cdbd2cSJim Jagielski if (pStyle)
878*b1cdbd2cSJim Jagielski {
879*b1cdbd2cSJim Jagielski bFound = sal_True;
880*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PARA )
881*b1cdbd2cSJim Jagielski {
882*b1cdbd2cSJim Jagielski // wie ScViewFunc::RemoveStyleSheetInUse
883*b1cdbd2cSJim Jagielski VirtualDevice aVDev;
884*b1cdbd2cSJim Jagielski Point aLogic = aVDev.LogicToPixel( Point(1000,1000), MAP_TWIP );
885*b1cdbd2cSJim Jagielski double nPPTX = aLogic.X() / 1000.0;
886*b1cdbd2cSJim Jagielski double nPPTY = aLogic.Y() / 1000.0;
887*b1cdbd2cSJim Jagielski Fraction aZoom(1,1);
888*b1cdbd2cSJim Jagielski pDoc->StyleSheetChanged( pStyle, sal_False, &aVDev, nPPTX, nPPTY, aZoom, aZoom );
889*b1cdbd2cSJim Jagielski pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PAINT_GRID|PAINT_LEFT );
890*b1cdbd2cSJim Jagielski pDocShell->SetDocumentModified();
891*b1cdbd2cSJim Jagielski
892*b1cdbd2cSJim Jagielski pStylePool->Remove( pStyle );
893*b1cdbd2cSJim Jagielski
894*b1cdbd2cSJim Jagielski //! InvalidateAttribs(); // Bindings-Invalidate
895*b1cdbd2cSJim Jagielski }
896*b1cdbd2cSJim Jagielski else
897*b1cdbd2cSJim Jagielski {
898*b1cdbd2cSJim Jagielski if ( pDoc->RemovePageStyleInUse( aString ) )
899*b1cdbd2cSJim Jagielski pDocShell->PageStyleModified( ScGlobal::GetRscString(STR_STYLENAME_STANDARD), sal_True );
900*b1cdbd2cSJim Jagielski
901*b1cdbd2cSJim Jagielski pStylePool->Remove( pStyle );
902*b1cdbd2cSJim Jagielski
903*b1cdbd2cSJim Jagielski SfxBindings* pBindings = pDocShell->GetViewBindings();
904*b1cdbd2cSJim Jagielski if (pBindings)
905*b1cdbd2cSJim Jagielski pBindings->Invalidate( SID_STYLE_FAMILY4 );
906*b1cdbd2cSJim Jagielski pDocShell->SetDocumentModified();
907*b1cdbd2cSJim Jagielski }
908*b1cdbd2cSJim Jagielski }
909*b1cdbd2cSJim Jagielski }
910*b1cdbd2cSJim Jagielski
911*b1cdbd2cSJim Jagielski if (!bFound)
912*b1cdbd2cSJim Jagielski throw container::NoSuchElementException();
913*b1cdbd2cSJim Jagielski }
914*b1cdbd2cSJim Jagielski
915*b1cdbd2cSJim Jagielski // container::XIndexAccess
916*b1cdbd2cSJim Jagielski
getCount()917*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL ScStyleFamilyObj::getCount() throw(uno::RuntimeException)
918*b1cdbd2cSJim Jagielski {
919*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
920*b1cdbd2cSJim Jagielski if ( pDocShell )
921*b1cdbd2cSJim Jagielski {
922*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
923*b1cdbd2cSJim Jagielski ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
924*b1cdbd2cSJim Jagielski
925*b1cdbd2cSJim Jagielski SfxStyleSheetIterator aIter( pStylePool, eFamily );
926*b1cdbd2cSJim Jagielski return aIter.Count();
927*b1cdbd2cSJim Jagielski }
928*b1cdbd2cSJim Jagielski return 0;
929*b1cdbd2cSJim Jagielski }
930*b1cdbd2cSJim Jagielski
getByIndex(sal_Int32 nIndex)931*b1cdbd2cSJim Jagielski uno::Any SAL_CALL ScStyleFamilyObj::getByIndex( sal_Int32 nIndex )
932*b1cdbd2cSJim Jagielski throw(lang::IndexOutOfBoundsException,
933*b1cdbd2cSJim Jagielski lang::WrappedTargetException, uno::RuntimeException)
934*b1cdbd2cSJim Jagielski {
935*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
936*b1cdbd2cSJim Jagielski uno::Reference< style::XStyle > xObj(GetObjectByIndex_Impl(nIndex));
937*b1cdbd2cSJim Jagielski if (xObj.is())
938*b1cdbd2cSJim Jagielski return uno::makeAny(xObj);
939*b1cdbd2cSJim Jagielski else
940*b1cdbd2cSJim Jagielski throw lang::IndexOutOfBoundsException();
941*b1cdbd2cSJim Jagielski // return uno::Any();
942*b1cdbd2cSJim Jagielski }
943*b1cdbd2cSJim Jagielski
getElementType()944*b1cdbd2cSJim Jagielski uno::Type SAL_CALL ScStyleFamilyObj::getElementType() throw(uno::RuntimeException)
945*b1cdbd2cSJim Jagielski {
946*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
947*b1cdbd2cSJim Jagielski return ::getCppuType((const uno::Reference< style::XStyle >*)0); // muss zu getByIndex passen
948*b1cdbd2cSJim Jagielski }
949*b1cdbd2cSJim Jagielski
hasElements()950*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL ScStyleFamilyObj::hasElements() throw(uno::RuntimeException)
951*b1cdbd2cSJim Jagielski {
952*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
953*b1cdbd2cSJim Jagielski return ( getCount() != 0 );
954*b1cdbd2cSJim Jagielski }
955*b1cdbd2cSJim Jagielski
956*b1cdbd2cSJim Jagielski // container::XNameAccess
957*b1cdbd2cSJim Jagielski
getByName(const rtl::OUString & aName)958*b1cdbd2cSJim Jagielski uno::Any SAL_CALL ScStyleFamilyObj::getByName( const rtl::OUString& aName )
959*b1cdbd2cSJim Jagielski throw(container::NoSuchElementException,
960*b1cdbd2cSJim Jagielski lang::WrappedTargetException, uno::RuntimeException)
961*b1cdbd2cSJim Jagielski {
962*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
963*b1cdbd2cSJim Jagielski uno::Reference< style::XStyle > xObj(
964*b1cdbd2cSJim Jagielski GetObjectByName_Impl( ScStyleNameConversion::ProgrammaticToDisplayName( aName, sal::static_int_cast<sal_uInt16>(eFamily) ) ));
965*b1cdbd2cSJim Jagielski if (xObj.is())
966*b1cdbd2cSJim Jagielski return uno::makeAny(xObj);
967*b1cdbd2cSJim Jagielski else
968*b1cdbd2cSJim Jagielski throw container::NoSuchElementException();
969*b1cdbd2cSJim Jagielski // return uno::Any();
970*b1cdbd2cSJim Jagielski }
971*b1cdbd2cSJim Jagielski
getElementNames()972*b1cdbd2cSJim Jagielski uno::Sequence<rtl::OUString> SAL_CALL ScStyleFamilyObj::getElementNames()
973*b1cdbd2cSJim Jagielski throw(uno::RuntimeException)
974*b1cdbd2cSJim Jagielski {
975*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
976*b1cdbd2cSJim Jagielski if ( pDocShell )
977*b1cdbd2cSJim Jagielski {
978*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
979*b1cdbd2cSJim Jagielski ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
980*b1cdbd2cSJim Jagielski
981*b1cdbd2cSJim Jagielski SfxStyleSheetIterator aIter( pStylePool, eFamily );
982*b1cdbd2cSJim Jagielski sal_uInt16 nCount = aIter.Count();
983*b1cdbd2cSJim Jagielski
984*b1cdbd2cSJim Jagielski String aName;
985*b1cdbd2cSJim Jagielski uno::Sequence<rtl::OUString> aSeq(nCount);
986*b1cdbd2cSJim Jagielski rtl::OUString* pAry = aSeq.getArray();
987*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = aIter.First();
988*b1cdbd2cSJim Jagielski sal_uInt16 nPos = 0;
989*b1cdbd2cSJim Jagielski while (pStyle)
990*b1cdbd2cSJim Jagielski {
991*b1cdbd2cSJim Jagielski DBG_ASSERT( nPos<nCount, "Anzahl durcheinandergekommen" );
992*b1cdbd2cSJim Jagielski if (nPos<nCount)
993*b1cdbd2cSJim Jagielski pAry[nPos++] = ScStyleNameConversion::DisplayToProgrammaticName(
994*b1cdbd2cSJim Jagielski pStyle->GetName(), sal::static_int_cast<sal_uInt16>(eFamily) );
995*b1cdbd2cSJim Jagielski pStyle = aIter.Next();
996*b1cdbd2cSJim Jagielski }
997*b1cdbd2cSJim Jagielski return aSeq;
998*b1cdbd2cSJim Jagielski }
999*b1cdbd2cSJim Jagielski return uno::Sequence<rtl::OUString>();
1000*b1cdbd2cSJim Jagielski }
1001*b1cdbd2cSJim Jagielski
hasByName(const rtl::OUString & aName)1002*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL ScStyleFamilyObj::hasByName( const rtl::OUString& aName )
1003*b1cdbd2cSJim Jagielski throw(uno::RuntimeException)
1004*b1cdbd2cSJim Jagielski {
1005*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1006*b1cdbd2cSJim Jagielski if ( pDocShell )
1007*b1cdbd2cSJim Jagielski {
1008*b1cdbd2cSJim Jagielski String aString(ScStyleNameConversion::ProgrammaticToDisplayName( aName, sal::static_int_cast<sal_uInt16>(eFamily) ));
1009*b1cdbd2cSJim Jagielski
1010*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
1011*b1cdbd2cSJim Jagielski ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
1012*b1cdbd2cSJim Jagielski if ( pStylePool->Find( aString, eFamily ) )
1013*b1cdbd2cSJim Jagielski return sal_True;
1014*b1cdbd2cSJim Jagielski }
1015*b1cdbd2cSJim Jagielski return sal_False;
1016*b1cdbd2cSJim Jagielski }
1017*b1cdbd2cSJim Jagielski
1018*b1cdbd2cSJim Jagielski // XPropertySet
1019*b1cdbd2cSJim Jagielski
getPropertySetInfo()1020*b1cdbd2cSJim Jagielski uno::Reference< beans::XPropertySetInfo > SAL_CALL ScStyleFamilyObj::getPropertySetInfo( ) throw (uno::RuntimeException)
1021*b1cdbd2cSJim Jagielski {
1022*b1cdbd2cSJim Jagielski OSL_ENSURE( 0, "###unexpected!" );
1023*b1cdbd2cSJim Jagielski return uno::Reference< beans::XPropertySetInfo >();
1024*b1cdbd2cSJim Jagielski }
1025*b1cdbd2cSJim Jagielski
setPropertyValue(const::rtl::OUString &,const uno::Any &)1026*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleFamilyObj::setPropertyValue( const ::rtl::OUString&, const uno::Any& ) throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
1027*b1cdbd2cSJim Jagielski {
1028*b1cdbd2cSJim Jagielski OSL_ENSURE( 0, "###unexpected!" );
1029*b1cdbd2cSJim Jagielski }
1030*b1cdbd2cSJim Jagielski
getPropertyValue(const::rtl::OUString & sPropertyName)1031*b1cdbd2cSJim Jagielski uno::Any SAL_CALL ScStyleFamilyObj::getPropertyValue( const ::rtl::OUString& sPropertyName ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
1032*b1cdbd2cSJim Jagielski {
1033*b1cdbd2cSJim Jagielski uno::Any aRet;
1034*b1cdbd2cSJim Jagielski
1035*b1cdbd2cSJim Jagielski if ( sPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("DisplayName") ) )
1036*b1cdbd2cSJim Jagielski {
1037*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1038*b1cdbd2cSJim Jagielski sal_uInt32 nResId = 0;
1039*b1cdbd2cSJim Jagielski switch ( eFamily )
1040*b1cdbd2cSJim Jagielski {
1041*b1cdbd2cSJim Jagielski case SFX_STYLE_FAMILY_PARA:
1042*b1cdbd2cSJim Jagielski nResId = STR_STYLE_FAMILY_CELL; break;
1043*b1cdbd2cSJim Jagielski case SFX_STYLE_FAMILY_PAGE:
1044*b1cdbd2cSJim Jagielski nResId = STR_STYLE_FAMILY_PAGE; break;
1045*b1cdbd2cSJim Jagielski default:
1046*b1cdbd2cSJim Jagielski OSL_ENSURE( 0, "ScStyleFamilyObj::getPropertyValue(): invalid family" );
1047*b1cdbd2cSJim Jagielski }
1048*b1cdbd2cSJim Jagielski if ( nResId > 0 )
1049*b1cdbd2cSJim Jagielski {
1050*b1cdbd2cSJim Jagielski ::rtl::OUString sDisplayName( ScGlobal::GetRscString( static_cast< sal_uInt16 >( nResId ) ) );
1051*b1cdbd2cSJim Jagielski aRet = uno::makeAny( sDisplayName );
1052*b1cdbd2cSJim Jagielski }
1053*b1cdbd2cSJim Jagielski }
1054*b1cdbd2cSJim Jagielski else
1055*b1cdbd2cSJim Jagielski {
1056*b1cdbd2cSJim Jagielski throw beans::UnknownPropertyException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("unknown property: ") ) + sPropertyName, static_cast<OWeakObject *>(this) );
1057*b1cdbd2cSJim Jagielski }
1058*b1cdbd2cSJim Jagielski
1059*b1cdbd2cSJim Jagielski return aRet;
1060*b1cdbd2cSJim Jagielski }
1061*b1cdbd2cSJim Jagielski
addPropertyChangeListener(const::rtl::OUString &,const uno::Reference<beans::XPropertyChangeListener> &)1062*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleFamilyObj::addPropertyChangeListener( const ::rtl::OUString&, const uno::Reference< beans::XPropertyChangeListener >& ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
1063*b1cdbd2cSJim Jagielski {
1064*b1cdbd2cSJim Jagielski OSL_ENSURE( 0, "###unexpected!" );
1065*b1cdbd2cSJim Jagielski }
1066*b1cdbd2cSJim Jagielski
removePropertyChangeListener(const::rtl::OUString &,const uno::Reference<beans::XPropertyChangeListener> &)1067*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleFamilyObj::removePropertyChangeListener( const ::rtl::OUString&, const uno::Reference< beans::XPropertyChangeListener >& ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
1068*b1cdbd2cSJim Jagielski {
1069*b1cdbd2cSJim Jagielski OSL_ENSURE( 0, "###unexpected!" );
1070*b1cdbd2cSJim Jagielski }
1071*b1cdbd2cSJim Jagielski
addVetoableChangeListener(const::rtl::OUString &,const uno::Reference<beans::XVetoableChangeListener> &)1072*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleFamilyObj::addVetoableChangeListener( const ::rtl::OUString&, const uno::Reference< beans::XVetoableChangeListener >& ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
1073*b1cdbd2cSJim Jagielski {
1074*b1cdbd2cSJim Jagielski OSL_ENSURE( 0, "###unexpected!" );
1075*b1cdbd2cSJim Jagielski }
1076*b1cdbd2cSJim Jagielski
removeVetoableChangeListener(const::rtl::OUString &,const uno::Reference<beans::XVetoableChangeListener> &)1077*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleFamilyObj::removeVetoableChangeListener( const ::rtl::OUString&, const uno::Reference< beans::XVetoableChangeListener >& ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
1078*b1cdbd2cSJim Jagielski {
1079*b1cdbd2cSJim Jagielski OSL_ENSURE( 0, "###unexpected!" );
1080*b1cdbd2cSJim Jagielski }
1081*b1cdbd2cSJim Jagielski
1082*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1083*b1cdbd2cSJim Jagielski
1084*b1cdbd2cSJim Jagielski // Default-ctor wird fuer die Reflection gebraucht
1085*b1cdbd2cSJim Jagielski
1086*b1cdbd2cSJim Jagielski //UNUSED2008-05 ScStyleObj::ScStyleObj() :
1087*b1cdbd2cSJim Jagielski //UNUSED2008-05 aPropSet( lcl_GetCellStyleMap() ),
1088*b1cdbd2cSJim Jagielski //UNUSED2008-05 pDocShell( NULL ),
1089*b1cdbd2cSJim Jagielski //UNUSED2008-05 eFamily( SFX_STYLE_FAMILY_PARA )
1090*b1cdbd2cSJim Jagielski //UNUSED2008-05 {
1091*b1cdbd2cSJim Jagielski //UNUSED2008-05 }
1092*b1cdbd2cSJim Jagielski
ScStyleObj(ScDocShell * pDocSh,SfxStyleFamily eFam,const String & rName)1093*b1cdbd2cSJim Jagielski ScStyleObj::ScStyleObj(ScDocShell* pDocSh, SfxStyleFamily eFam, const String& rName) :
1094*b1cdbd2cSJim Jagielski pPropSet( (eFam == SFX_STYLE_FAMILY_PARA) ? lcl_GetCellStyleSet() : lcl_GetPageStyleSet() ),
1095*b1cdbd2cSJim Jagielski pDocShell( pDocSh ),
1096*b1cdbd2cSJim Jagielski eFamily( eFam ),
1097*b1cdbd2cSJim Jagielski aStyleName( rName )
1098*b1cdbd2cSJim Jagielski {
1099*b1cdbd2cSJim Jagielski // pDocShell ist Null, wenn per ServiceProvider erzeugt
1100*b1cdbd2cSJim Jagielski
1101*b1cdbd2cSJim Jagielski if (pDocShell)
1102*b1cdbd2cSJim Jagielski pDocShell->GetDocument()->AddUnoObject(*this);
1103*b1cdbd2cSJim Jagielski }
1104*b1cdbd2cSJim Jagielski
InitDoc(ScDocShell * pNewDocSh,const String & rNewName)1105*b1cdbd2cSJim Jagielski void ScStyleObj::InitDoc( ScDocShell* pNewDocSh, const String& rNewName )
1106*b1cdbd2cSJim Jagielski {
1107*b1cdbd2cSJim Jagielski if ( pNewDocSh && !pDocShell )
1108*b1cdbd2cSJim Jagielski {
1109*b1cdbd2cSJim Jagielski aStyleName = rNewName;
1110*b1cdbd2cSJim Jagielski pDocShell = pNewDocSh;
1111*b1cdbd2cSJim Jagielski pDocShell->GetDocument()->AddUnoObject(*this);
1112*b1cdbd2cSJim Jagielski }
1113*b1cdbd2cSJim Jagielski }
1114*b1cdbd2cSJim Jagielski
~ScStyleObj()1115*b1cdbd2cSJim Jagielski ScStyleObj::~ScStyleObj()
1116*b1cdbd2cSJim Jagielski {
1117*b1cdbd2cSJim Jagielski if (pDocShell)
1118*b1cdbd2cSJim Jagielski pDocShell->GetDocument()->RemoveUnoObject(*this);
1119*b1cdbd2cSJim Jagielski }
1120*b1cdbd2cSJim Jagielski
1121*b1cdbd2cSJim Jagielski // XUnoTunnel
1122*b1cdbd2cSJim Jagielski
getSomething(const uno::Sequence<sal_Int8> & rId)1123*b1cdbd2cSJim Jagielski sal_Int64 SAL_CALL ScStyleObj::getSomething(
1124*b1cdbd2cSJim Jagielski const uno::Sequence<sal_Int8 >& rId ) throw(uno::RuntimeException)
1125*b1cdbd2cSJim Jagielski {
1126*b1cdbd2cSJim Jagielski if ( rId.getLength() == 16 &&
1127*b1cdbd2cSJim Jagielski 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
1128*b1cdbd2cSJim Jagielski rId.getConstArray(), 16 ) )
1129*b1cdbd2cSJim Jagielski {
1130*b1cdbd2cSJim Jagielski return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_IntPtr>(this));
1131*b1cdbd2cSJim Jagielski }
1132*b1cdbd2cSJim Jagielski return 0;
1133*b1cdbd2cSJim Jagielski }
1134*b1cdbd2cSJim Jagielski
1135*b1cdbd2cSJim Jagielski // static
getUnoTunnelId()1136*b1cdbd2cSJim Jagielski const uno::Sequence<sal_Int8>& ScStyleObj::getUnoTunnelId()
1137*b1cdbd2cSJim Jagielski {
1138*b1cdbd2cSJim Jagielski static uno::Sequence<sal_Int8> * pSeq = 0;
1139*b1cdbd2cSJim Jagielski if( !pSeq )
1140*b1cdbd2cSJim Jagielski {
1141*b1cdbd2cSJim Jagielski osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
1142*b1cdbd2cSJim Jagielski if( !pSeq )
1143*b1cdbd2cSJim Jagielski {
1144*b1cdbd2cSJim Jagielski static uno::Sequence< sal_Int8 > aSeq( 16 );
1145*b1cdbd2cSJim Jagielski rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
1146*b1cdbd2cSJim Jagielski pSeq = &aSeq;
1147*b1cdbd2cSJim Jagielski }
1148*b1cdbd2cSJim Jagielski }
1149*b1cdbd2cSJim Jagielski return *pSeq;
1150*b1cdbd2cSJim Jagielski }
1151*b1cdbd2cSJim Jagielski
1152*b1cdbd2cSJim Jagielski // static
getImplementation(const uno::Reference<uno::XInterface> xObj)1153*b1cdbd2cSJim Jagielski ScStyleObj* ScStyleObj::getImplementation(
1154*b1cdbd2cSJim Jagielski const uno::Reference<uno::XInterface> xObj )
1155*b1cdbd2cSJim Jagielski {
1156*b1cdbd2cSJim Jagielski ScStyleObj* pRet = NULL;
1157*b1cdbd2cSJim Jagielski uno::Reference<lang::XUnoTunnel> xUT( xObj, uno::UNO_QUERY );
1158*b1cdbd2cSJim Jagielski if (xUT.is())
1159*b1cdbd2cSJim Jagielski pRet = reinterpret_cast<ScStyleObj*>(sal::static_int_cast<sal_IntPtr>(xUT->getSomething(getUnoTunnelId())));
1160*b1cdbd2cSJim Jagielski return pRet;
1161*b1cdbd2cSJim Jagielski }
1162*b1cdbd2cSJim Jagielski
Notify(SfxBroadcaster &,const SfxHint & rHint)1163*b1cdbd2cSJim Jagielski void ScStyleObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
1164*b1cdbd2cSJim Jagielski {
1165*b1cdbd2cSJim Jagielski // Referenz-Update interessiert hier nicht
1166*b1cdbd2cSJim Jagielski
1167*b1cdbd2cSJim Jagielski if ( rHint.ISA( SfxSimpleHint ) &&
1168*b1cdbd2cSJim Jagielski ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
1169*b1cdbd2cSJim Jagielski {
1170*b1cdbd2cSJim Jagielski pDocShell = NULL; // ungueltig geworden
1171*b1cdbd2cSJim Jagielski }
1172*b1cdbd2cSJim Jagielski }
1173*b1cdbd2cSJim Jagielski
GetStyle_Impl()1174*b1cdbd2cSJim Jagielski SfxStyleSheetBase* ScStyleObj::GetStyle_Impl()
1175*b1cdbd2cSJim Jagielski {
1176*b1cdbd2cSJim Jagielski if ( pDocShell )
1177*b1cdbd2cSJim Jagielski {
1178*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
1179*b1cdbd2cSJim Jagielski ScStyleSheetPool* pStylePool = pDoc->GetStyleSheetPool();
1180*b1cdbd2cSJim Jagielski return pStylePool->Find( aStyleName, eFamily );
1181*b1cdbd2cSJim Jagielski }
1182*b1cdbd2cSJim Jagielski return NULL;
1183*b1cdbd2cSJim Jagielski }
1184*b1cdbd2cSJim Jagielski
1185*b1cdbd2cSJim Jagielski // style::XStyle
1186*b1cdbd2cSJim Jagielski
isUserDefined()1187*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL ScStyleObj::isUserDefined() throw(uno::RuntimeException)
1188*b1cdbd2cSJim Jagielski {
1189*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1190*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1191*b1cdbd2cSJim Jagielski if (pStyle)
1192*b1cdbd2cSJim Jagielski return pStyle->IsUserDefined();
1193*b1cdbd2cSJim Jagielski return sal_False;
1194*b1cdbd2cSJim Jagielski }
1195*b1cdbd2cSJim Jagielski
isInUse()1196*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL ScStyleObj::isInUse() throw(uno::RuntimeException)
1197*b1cdbd2cSJim Jagielski {
1198*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1199*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1200*b1cdbd2cSJim Jagielski if (pStyle)
1201*b1cdbd2cSJim Jagielski return pStyle->IsUsed();
1202*b1cdbd2cSJim Jagielski return sal_False;
1203*b1cdbd2cSJim Jagielski }
1204*b1cdbd2cSJim Jagielski
getParentStyle()1205*b1cdbd2cSJim Jagielski rtl::OUString SAL_CALL ScStyleObj::getParentStyle() throw(uno::RuntimeException)
1206*b1cdbd2cSJim Jagielski {
1207*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1208*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1209*b1cdbd2cSJim Jagielski if (pStyle)
1210*b1cdbd2cSJim Jagielski return ScStyleNameConversion::DisplayToProgrammaticName( pStyle->GetParent(), sal::static_int_cast<sal_uInt16>(eFamily) );
1211*b1cdbd2cSJim Jagielski return rtl::OUString();
1212*b1cdbd2cSJim Jagielski }
1213*b1cdbd2cSJim Jagielski
setParentStyle(const rtl::OUString & rParentStyle)1214*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::setParentStyle( const rtl::OUString& rParentStyle )
1215*b1cdbd2cSJim Jagielski throw(container::NoSuchElementException, uno::RuntimeException)
1216*b1cdbd2cSJim Jagielski {
1217*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1218*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1219*b1cdbd2cSJim Jagielski if (pStyle)
1220*b1cdbd2cSJim Jagielski {
1221*b1cdbd2cSJim Jagielski // #70909# cell styles cannot be modified if any sheet is protected
1222*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PARA && lcl_AnyTabProtected( *pDocShell->GetDocument() ) )
1223*b1cdbd2cSJim Jagielski return; //! exception?
1224*b1cdbd2cSJim Jagielski
1225*b1cdbd2cSJim Jagielski //! DocFunc-Funktion??
1226*b1cdbd2cSJim Jagielski //! Undo ?????????????
1227*b1cdbd2cSJim Jagielski
1228*b1cdbd2cSJim Jagielski String aString(ScStyleNameConversion::ProgrammaticToDisplayName( rParentStyle, sal::static_int_cast<sal_uInt16>(eFamily) ));
1229*b1cdbd2cSJim Jagielski sal_Bool bOk = pStyle->SetParent( aString );
1230*b1cdbd2cSJim Jagielski if (bOk)
1231*b1cdbd2cSJim Jagielski {
1232*b1cdbd2cSJim Jagielski // wie bei setPropertyValue
1233*b1cdbd2cSJim Jagielski
1234*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
1235*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PARA )
1236*b1cdbd2cSJim Jagielski {
1237*b1cdbd2cSJim Jagielski // Zeilenhoehen anpassen...
1238*b1cdbd2cSJim Jagielski
1239*b1cdbd2cSJim Jagielski VirtualDevice aVDev;
1240*b1cdbd2cSJim Jagielski Point aLogic = aVDev.LogicToPixel( Point(1000,1000), MAP_TWIP );
1241*b1cdbd2cSJim Jagielski double nPPTX = aLogic.X() / 1000.0;
1242*b1cdbd2cSJim Jagielski double nPPTY = aLogic.Y() / 1000.0;
1243*b1cdbd2cSJim Jagielski Fraction aZoom(1,1);
1244*b1cdbd2cSJim Jagielski pDoc->StyleSheetChanged( pStyle, sal_False, &aVDev, nPPTX, nPPTY, aZoom, aZoom );
1245*b1cdbd2cSJim Jagielski
1246*b1cdbd2cSJim Jagielski pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PAINT_GRID|PAINT_LEFT );
1247*b1cdbd2cSJim Jagielski pDocShell->SetDocumentModified();
1248*b1cdbd2cSJim Jagielski }
1249*b1cdbd2cSJim Jagielski else
1250*b1cdbd2cSJim Jagielski {
1251*b1cdbd2cSJim Jagielski //! ModifyStyleSheet am Dokument (alte Werte merken)
1252*b1cdbd2cSJim Jagielski
1253*b1cdbd2cSJim Jagielski pDocShell->PageStyleModified( aStyleName, sal_True );
1254*b1cdbd2cSJim Jagielski }
1255*b1cdbd2cSJim Jagielski }
1256*b1cdbd2cSJim Jagielski }
1257*b1cdbd2cSJim Jagielski }
1258*b1cdbd2cSJim Jagielski
1259*b1cdbd2cSJim Jagielski // container::XNamed
1260*b1cdbd2cSJim Jagielski
getName()1261*b1cdbd2cSJim Jagielski rtl::OUString SAL_CALL ScStyleObj::getName() throw(uno::RuntimeException)
1262*b1cdbd2cSJim Jagielski {
1263*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1264*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1265*b1cdbd2cSJim Jagielski if (pStyle)
1266*b1cdbd2cSJim Jagielski return ScStyleNameConversion::DisplayToProgrammaticName( pStyle->GetName(), sal::static_int_cast<sal_uInt16>(eFamily) );
1267*b1cdbd2cSJim Jagielski return rtl::OUString();
1268*b1cdbd2cSJim Jagielski }
1269*b1cdbd2cSJim Jagielski
setName(const rtl::OUString & aNewName)1270*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::setName( const rtl::OUString& aNewName )
1271*b1cdbd2cSJim Jagielski throw(uno::RuntimeException)
1272*b1cdbd2cSJim Jagielski {
1273*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1274*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1275*b1cdbd2cSJim Jagielski if (pStyle)
1276*b1cdbd2cSJim Jagielski {
1277*b1cdbd2cSJim Jagielski // #71225# cell styles cannot be renamed if any sheet is protected
1278*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PARA && lcl_AnyTabProtected( *pDocShell->GetDocument() ) )
1279*b1cdbd2cSJim Jagielski return; //! exception?
1280*b1cdbd2cSJim Jagielski
1281*b1cdbd2cSJim Jagielski //! DocFunc-Funktion??
1282*b1cdbd2cSJim Jagielski //! Undo ?????????????
1283*b1cdbd2cSJim Jagielski
1284*b1cdbd2cSJim Jagielski String aString(aNewName);
1285*b1cdbd2cSJim Jagielski sal_Bool bOk = pStyle->SetName( aString );
1286*b1cdbd2cSJim Jagielski if (bOk)
1287*b1cdbd2cSJim Jagielski {
1288*b1cdbd2cSJim Jagielski aStyleName = aString; //! notify other objects for this style?
1289*b1cdbd2cSJim Jagielski
1290*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
1291*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PARA && !pDoc->IsImportingXML() )
1292*b1cdbd2cSJim Jagielski pDoc->GetPool()->CellStyleCreated( aString );
1293*b1cdbd2cSJim Jagielski
1294*b1cdbd2cSJim Jagielski // Zellvorlagen = 2, Seitenvorlagen = 4
1295*b1cdbd2cSJim Jagielski sal_uInt16 nId = ( eFamily == SFX_STYLE_FAMILY_PARA ) ?
1296*b1cdbd2cSJim Jagielski SID_STYLE_FAMILY2 : SID_STYLE_FAMILY4;
1297*b1cdbd2cSJim Jagielski SfxBindings* pBindings = pDocShell->GetViewBindings();
1298*b1cdbd2cSJim Jagielski if (pBindings)
1299*b1cdbd2cSJim Jagielski {
1300*b1cdbd2cSJim Jagielski pBindings->Invalidate( nId );
1301*b1cdbd2cSJim Jagielski pBindings->Invalidate( SID_STYLE_APPLY );
1302*b1cdbd2cSJim Jagielski }
1303*b1cdbd2cSJim Jagielski }
1304*b1cdbd2cSJim Jagielski }
1305*b1cdbd2cSJim Jagielski }
1306*b1cdbd2cSJim Jagielski
1307*b1cdbd2cSJim Jagielski // static
CreateEmptyNumberingRules()1308*b1cdbd2cSJim Jagielski uno::Reference<container::XIndexReplace> ScStyleObj::CreateEmptyNumberingRules()
1309*b1cdbd2cSJim Jagielski {
1310*b1cdbd2cSJim Jagielski SvxNumRule aRule( 0, 0, sal_True ); // nothing supported
1311*b1cdbd2cSJim Jagielski return SvxCreateNumRule( &aRule );
1312*b1cdbd2cSJim Jagielski }
1313*b1cdbd2cSJim Jagielski
1314*b1cdbd2cSJim Jagielski // beans::XPropertyState
1315*b1cdbd2cSJim Jagielski
GetStyleItemSet_Impl(const::rtl::OUString & rPropName,const SfxItemPropertySimpleEntry * & rpResultEntry)1316*b1cdbd2cSJim Jagielski const SfxItemSet* ScStyleObj::GetStyleItemSet_Impl( const ::rtl::OUString& rPropName,
1317*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry*& rpResultEntry )
1318*b1cdbd2cSJim Jagielski {
1319*b1cdbd2cSJim Jagielski //! OUString as argument?
1320*b1cdbd2cSJim Jagielski
1321*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1322*b1cdbd2cSJim Jagielski if (pStyle)
1323*b1cdbd2cSJim Jagielski {
1324*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pEntry = NULL;
1325*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PAGE )
1326*b1cdbd2cSJim Jagielski {
1327*b1cdbd2cSJim Jagielski pEntry = lcl_GetHeaderStyleMap()->getByName( rPropName );
1328*b1cdbd2cSJim Jagielski if ( pEntry ) // only item-wids in header/footer map
1329*b1cdbd2cSJim Jagielski {
1330*b1cdbd2cSJim Jagielski rpResultEntry = pEntry;
1331*b1cdbd2cSJim Jagielski return &((const SvxSetItem&)pStyle->GetItemSet().Get(ATTR_PAGE_HEADERSET)).GetItemSet();
1332*b1cdbd2cSJim Jagielski }
1333*b1cdbd2cSJim Jagielski pEntry = lcl_GetFooterStyleMap()->getByName( rPropName );
1334*b1cdbd2cSJim Jagielski if ( pEntry ) // only item-wids in header/footer map
1335*b1cdbd2cSJim Jagielski {
1336*b1cdbd2cSJim Jagielski rpResultEntry = pEntry;
1337*b1cdbd2cSJim Jagielski return &((const SvxSetItem&)pStyle->GetItemSet().Get(ATTR_PAGE_FOOTERSET)).GetItemSet();
1338*b1cdbd2cSJim Jagielski }
1339*b1cdbd2cSJim Jagielski }
1340*b1cdbd2cSJim Jagielski pEntry = pPropSet->getPropertyMap()->getByName( rPropName );
1341*b1cdbd2cSJim Jagielski if ( pEntry )
1342*b1cdbd2cSJim Jagielski {
1343*b1cdbd2cSJim Jagielski rpResultEntry = pEntry;
1344*b1cdbd2cSJim Jagielski return &pStyle->GetItemSet();
1345*b1cdbd2cSJim Jagielski }
1346*b1cdbd2cSJim Jagielski }
1347*b1cdbd2cSJim Jagielski
1348*b1cdbd2cSJim Jagielski rpResultEntry = NULL;
1349*b1cdbd2cSJim Jagielski return NULL;
1350*b1cdbd2cSJim Jagielski }
1351*b1cdbd2cSJim Jagielski
getPropertyState(const rtl::OUString & aPropertyName)1352*b1cdbd2cSJim Jagielski beans::PropertyState SAL_CALL ScStyleObj::getPropertyState( const rtl::OUString& aPropertyName )
1353*b1cdbd2cSJim Jagielski throw(beans::UnknownPropertyException, uno::RuntimeException)
1354*b1cdbd2cSJim Jagielski {
1355*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1356*b1cdbd2cSJim Jagielski beans::PropertyState eRet = beans::PropertyState_DIRECT_VALUE;
1357*b1cdbd2cSJim Jagielski
1358*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pResultEntry = NULL;
1359*b1cdbd2cSJim Jagielski const SfxItemSet* pItemSet = GetStyleItemSet_Impl( aPropertyName, pResultEntry );
1360*b1cdbd2cSJim Jagielski
1361*b1cdbd2cSJim Jagielski if ( pItemSet && pResultEntry )
1362*b1cdbd2cSJim Jagielski {
1363*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = pResultEntry->nWID;
1364*b1cdbd2cSJim Jagielski if ( nWhich == SC_WID_UNO_TBLBORD )
1365*b1cdbd2cSJim Jagielski {
1366*b1cdbd2cSJim Jagielski nWhich = ATTR_BORDER;
1367*b1cdbd2cSJim Jagielski }
1368*b1cdbd2cSJim Jagielski if ( IsScItemWid( nWhich ) )
1369*b1cdbd2cSJim Jagielski {
1370*b1cdbd2cSJim Jagielski SfxItemState eState = pItemSet->GetItemState( nWhich, sal_False );
1371*b1cdbd2cSJim Jagielski
1372*b1cdbd2cSJim Jagielski // // if no rotate value is set, look at orientation
1373*b1cdbd2cSJim Jagielski // //! also for a fixed value of 0 (in case orientation is ambiguous)?
1374*b1cdbd2cSJim Jagielski // if ( nWhich == ATTR_ROTATE_VALUE && eState == SFX_ITEM_DEFAULT )
1375*b1cdbd2cSJim Jagielski // eState = pItemSet->GetItemState( ATTR_ORIENTATION, sal_False );
1376*b1cdbd2cSJim Jagielski
1377*b1cdbd2cSJim Jagielski if ( eState == SFX_ITEM_SET )
1378*b1cdbd2cSJim Jagielski eRet = beans::PropertyState_DIRECT_VALUE;
1379*b1cdbd2cSJim Jagielski else if ( eState == SFX_ITEM_DEFAULT )
1380*b1cdbd2cSJim Jagielski eRet = beans::PropertyState_DEFAULT_VALUE;
1381*b1cdbd2cSJim Jagielski else if ( eState == SFX_ITEM_DONTCARE )
1382*b1cdbd2cSJim Jagielski eRet = beans::PropertyState_AMBIGUOUS_VALUE; // kann eigentlich nicht sein...
1383*b1cdbd2cSJim Jagielski else
1384*b1cdbd2cSJim Jagielski {
1385*b1cdbd2cSJim Jagielski DBG_ERROR("unbekannter ItemState");
1386*b1cdbd2cSJim Jagielski }
1387*b1cdbd2cSJim Jagielski }
1388*b1cdbd2cSJim Jagielski }
1389*b1cdbd2cSJim Jagielski return eRet;
1390*b1cdbd2cSJim Jagielski }
1391*b1cdbd2cSJim Jagielski
getPropertyStates(const uno::Sequence<rtl::OUString> & aPropertyNames)1392*b1cdbd2cSJim Jagielski uno::Sequence<beans::PropertyState> SAL_CALL ScStyleObj::getPropertyStates(
1393*b1cdbd2cSJim Jagielski const uno::Sequence<rtl::OUString>& aPropertyNames )
1394*b1cdbd2cSJim Jagielski throw(beans::UnknownPropertyException, uno::RuntimeException)
1395*b1cdbd2cSJim Jagielski {
1396*b1cdbd2cSJim Jagielski // duemmliche Default-Implementierung: alles einzeln per getPropertyState holen
1397*b1cdbd2cSJim Jagielski //! sollte optimiert werden!
1398*b1cdbd2cSJim Jagielski
1399*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1400*b1cdbd2cSJim Jagielski const rtl::OUString* pNames = aPropertyNames.getConstArray();
1401*b1cdbd2cSJim Jagielski uno::Sequence<beans::PropertyState> aRet(aPropertyNames.getLength());
1402*b1cdbd2cSJim Jagielski beans::PropertyState* pStates = aRet.getArray();
1403*b1cdbd2cSJim Jagielski for(sal_Int32 i = 0; i < aPropertyNames.getLength(); i++)
1404*b1cdbd2cSJim Jagielski pStates[i] = getPropertyState(pNames[i]);
1405*b1cdbd2cSJim Jagielski return aRet;
1406*b1cdbd2cSJim Jagielski }
1407*b1cdbd2cSJim Jagielski
setPropertyToDefault(const rtl::OUString & aPropertyName)1408*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::setPropertyToDefault( const rtl::OUString& aPropertyName )
1409*b1cdbd2cSJim Jagielski throw(beans::UnknownPropertyException, uno::RuntimeException)
1410*b1cdbd2cSJim Jagielski {
1411*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1412*b1cdbd2cSJim Jagielski
1413*b1cdbd2cSJim Jagielski const SfxItemPropertyMap* pMap = pPropSet->getPropertyMap();
1414*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pEntry = pMap->getByName( aPropertyName );
1415*b1cdbd2cSJim Jagielski if ( !pEntry )
1416*b1cdbd2cSJim Jagielski throw beans::UnknownPropertyException();
1417*b1cdbd2cSJim Jagielski
1418*b1cdbd2cSJim Jagielski SetOnePropertyValue( aPropertyName, pEntry, NULL );
1419*b1cdbd2cSJim Jagielski }
1420*b1cdbd2cSJim Jagielski
getPropertyDefault(const rtl::OUString & aPropertyName)1421*b1cdbd2cSJim Jagielski uno::Any SAL_CALL ScStyleObj::getPropertyDefault( const rtl::OUString& aPropertyName )
1422*b1cdbd2cSJim Jagielski throw(beans::UnknownPropertyException, lang::WrappedTargetException,
1423*b1cdbd2cSJim Jagielski uno::RuntimeException)
1424*b1cdbd2cSJim Jagielski {
1425*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1426*b1cdbd2cSJim Jagielski uno::Any aAny;
1427*b1cdbd2cSJim Jagielski
1428*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pResultEntry = NULL;
1429*b1cdbd2cSJim Jagielski const SfxItemSet* pStyleSet = GetStyleItemSet_Impl( aPropertyName, pResultEntry );
1430*b1cdbd2cSJim Jagielski
1431*b1cdbd2cSJim Jagielski if ( pStyleSet && pResultEntry )
1432*b1cdbd2cSJim Jagielski {
1433*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = pResultEntry->nWID;
1434*b1cdbd2cSJim Jagielski
1435*b1cdbd2cSJim Jagielski if ( IsScItemWid( nWhich ) )
1436*b1cdbd2cSJim Jagielski {
1437*b1cdbd2cSJim Jagielski // Default ist Default vom ItemPool, nicht vom Standard-Style,
1438*b1cdbd2cSJim Jagielski // damit es zu setPropertyToDefault passt
1439*b1cdbd2cSJim Jagielski SfxItemSet aEmptySet( *pStyleSet->GetPool(), pStyleSet->GetRanges() );
1440*b1cdbd2cSJim Jagielski // #65253# Default-Items mit falscher Slot-ID funktionieren im SfxItemPropertySet3 nicht
1441*b1cdbd2cSJim Jagielski //! Slot-IDs aendern...
1442*b1cdbd2cSJim Jagielski if ( aEmptySet.GetPool()->GetSlotId(nWhich) == nWhich &&
1443*b1cdbd2cSJim Jagielski aEmptySet.GetItemState(nWhich, sal_False) == SFX_ITEM_DEFAULT )
1444*b1cdbd2cSJim Jagielski {
1445*b1cdbd2cSJim Jagielski aEmptySet.Put( aEmptySet.Get( nWhich ) );
1446*b1cdbd2cSJim Jagielski }
1447*b1cdbd2cSJim Jagielski const SfxItemSet* pItemSet = &aEmptySet;
1448*b1cdbd2cSJim Jagielski
1449*b1cdbd2cSJim Jagielski switch ( nWhich ) // fuer Item-Spezial-Behandlungen
1450*b1cdbd2cSJim Jagielski {
1451*b1cdbd2cSJim Jagielski case ATTR_VALUE_FORMAT:
1452*b1cdbd2cSJim Jagielski // default has no language set
1453*b1cdbd2cSJim Jagielski aAny <<= sal_Int32( ((const SfxUInt32Item&)pItemSet->Get(nWhich)).GetValue() );
1454*b1cdbd2cSJim Jagielski break;
1455*b1cdbd2cSJim Jagielski case ATTR_INDENT:
1456*b1cdbd2cSJim Jagielski aAny <<= sal_Int16( TwipsToHMM(((const SfxUInt16Item&)
1457*b1cdbd2cSJim Jagielski pItemSet->Get(nWhich)).GetValue()) );
1458*b1cdbd2cSJim Jagielski break;
1459*b1cdbd2cSJim Jagielski case ATTR_PAGE_SCALE:
1460*b1cdbd2cSJim Jagielski case ATTR_PAGE_SCALETOPAGES:
1461*b1cdbd2cSJim Jagielski case ATTR_PAGE_FIRSTPAGENO:
1462*b1cdbd2cSJim Jagielski aAny <<= sal_Int16( ((const SfxUInt16Item&)pItemSet->Get(nWhich)).GetValue() );
1463*b1cdbd2cSJim Jagielski break;
1464*b1cdbd2cSJim Jagielski case ATTR_PAGE_CHARTS:
1465*b1cdbd2cSJim Jagielski case ATTR_PAGE_OBJECTS:
1466*b1cdbd2cSJim Jagielski case ATTR_PAGE_DRAWINGS:
1467*b1cdbd2cSJim Jagielski //! sal_Bool-MID fuer ScViewObjectModeItem definieren?
1468*b1cdbd2cSJim Jagielski aAny <<= sal_Bool( ((const ScViewObjectModeItem&)pItemSet->Get(nWhich)).
1469*b1cdbd2cSJim Jagielski GetValue() == VOBJ_MODE_SHOW );
1470*b1cdbd2cSJim Jagielski break;
1471*b1cdbd2cSJim Jagielski case ATTR_PAGE_SCALETO:
1472*b1cdbd2cSJim Jagielski {
1473*b1cdbd2cSJim Jagielski const ScPageScaleToItem aItem((const ScPageScaleToItem&)pItemSet->Get(nWhich));
1474*b1cdbd2cSJim Jagielski if (aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SC_UNO_PAGE_SCALETOX )))
1475*b1cdbd2cSJim Jagielski aAny = uno::makeAny(static_cast<sal_Int16>(aItem.GetWidth()));
1476*b1cdbd2cSJim Jagielski else
1477*b1cdbd2cSJim Jagielski aAny = uno::makeAny(static_cast<sal_Int16>(aItem.GetHeight()));
1478*b1cdbd2cSJim Jagielski }
1479*b1cdbd2cSJim Jagielski break;
1480*b1cdbd2cSJim Jagielski default:
1481*b1cdbd2cSJim Jagielski pPropSet->getPropertyValue( *pResultEntry, *pItemSet, aAny );
1482*b1cdbd2cSJim Jagielski }
1483*b1cdbd2cSJim Jagielski }
1484*b1cdbd2cSJim Jagielski else if ( IsScUnoWid( nWhich ) )
1485*b1cdbd2cSJim Jagielski {
1486*b1cdbd2cSJim Jagielski SfxItemSet aEmptySet( *pStyleSet->GetPool(), pStyleSet->GetRanges() );
1487*b1cdbd2cSJim Jagielski const SfxItemSet* pItemSet = &aEmptySet;
1488*b1cdbd2cSJim Jagielski switch ( nWhich )
1489*b1cdbd2cSJim Jagielski {
1490*b1cdbd2cSJim Jagielski case SC_WID_UNO_TBLBORD:
1491*b1cdbd2cSJim Jagielski {
1492*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem = &pItemSet->Get( ATTR_BORDER );
1493*b1cdbd2cSJim Jagielski if ( pItem )
1494*b1cdbd2cSJim Jagielski {
1495*b1cdbd2cSJim Jagielski SvxBoxItem aOuter( *( static_cast<const SvxBoxItem*>( pItem ) ) );
1496*b1cdbd2cSJim Jagielski SvxBoxInfoItem aInner( ATTR_BORDER_INNER );
1497*b1cdbd2cSJim Jagielski table::TableBorder aBorder;
1498*b1cdbd2cSJim Jagielski ScHelperFunctions::FillTableBorder( aBorder, aOuter, aInner );
1499*b1cdbd2cSJim Jagielski aBorder.IsHorizontalLineValid = sal_False;
1500*b1cdbd2cSJim Jagielski aBorder.IsVerticalLineValid = sal_False;
1501*b1cdbd2cSJim Jagielski aBorder.IsDistanceValid = sal_False;
1502*b1cdbd2cSJim Jagielski aAny <<= aBorder;
1503*b1cdbd2cSJim Jagielski }
1504*b1cdbd2cSJim Jagielski }
1505*b1cdbd2cSJim Jagielski break;
1506*b1cdbd2cSJim Jagielski }
1507*b1cdbd2cSJim Jagielski }
1508*b1cdbd2cSJim Jagielski }
1509*b1cdbd2cSJim Jagielski return aAny;
1510*b1cdbd2cSJim Jagielski }
1511*b1cdbd2cSJim Jagielski
1512*b1cdbd2cSJim Jagielski // XMultiPropertySet
1513*b1cdbd2cSJim Jagielski
setPropertyValues(const uno::Sequence<rtl::OUString> & aPropertyNames,const uno::Sequence<uno::Any> & aValues)1514*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::setPropertyValues( const uno::Sequence< rtl::OUString >& aPropertyNames,
1515*b1cdbd2cSJim Jagielski const uno::Sequence< uno::Any >& aValues )
1516*b1cdbd2cSJim Jagielski throw (beans::PropertyVetoException, lang::IllegalArgumentException,
1517*b1cdbd2cSJim Jagielski lang::WrappedTargetException, uno::RuntimeException)
1518*b1cdbd2cSJim Jagielski {
1519*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1520*b1cdbd2cSJim Jagielski
1521*b1cdbd2cSJim Jagielski sal_Int32 nCount = aPropertyNames.getLength();
1522*b1cdbd2cSJim Jagielski if ( aValues.getLength() != nCount )
1523*b1cdbd2cSJim Jagielski throw lang::IllegalArgumentException();
1524*b1cdbd2cSJim Jagielski
1525*b1cdbd2cSJim Jagielski if ( nCount )
1526*b1cdbd2cSJim Jagielski {
1527*b1cdbd2cSJim Jagielski const rtl::OUString* pNames = aPropertyNames.getConstArray();
1528*b1cdbd2cSJim Jagielski const uno::Any* pValues = aValues.getConstArray();
1529*b1cdbd2cSJim Jagielski
1530*b1cdbd2cSJim Jagielski const SfxItemPropertyMap* pPropertyMap = pPropSet->getPropertyMap();
1531*b1cdbd2cSJim Jagielski for (sal_Int32 i = 0; i < nCount; i++)
1532*b1cdbd2cSJim Jagielski {
1533*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pEntry = pPropertyMap->getByName( pNames[i] );
1534*b1cdbd2cSJim Jagielski
1535*b1cdbd2cSJim Jagielski // enhance ODS load performance
1536*b1cdbd2cSJim Jagielski SetOnePropertyValueWithoutUpdate( pNames[i], pEntry, &pValues[i] );
1537*b1cdbd2cSJim Jagielski }
1538*b1cdbd2cSJim Jagielski
1539*b1cdbd2cSJim Jagielski // enhance ODS load performance
1540*b1cdbd2cSJim Jagielski StyleSheetChangedUpdate();
1541*b1cdbd2cSJim Jagielski }
1542*b1cdbd2cSJim Jagielski }
1543*b1cdbd2cSJim Jagielski
getPropertyValues(const uno::Sequence<rtl::OUString> & aPropertyNames)1544*b1cdbd2cSJim Jagielski uno::Sequence<uno::Any> SAL_CALL ScStyleObj::getPropertyValues(
1545*b1cdbd2cSJim Jagielski const uno::Sequence< rtl::OUString >& aPropertyNames )
1546*b1cdbd2cSJim Jagielski throw (uno::RuntimeException)
1547*b1cdbd2cSJim Jagielski {
1548*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1549*b1cdbd2cSJim Jagielski
1550*b1cdbd2cSJim Jagielski //! optimize
1551*b1cdbd2cSJim Jagielski
1552*b1cdbd2cSJim Jagielski sal_Int32 nCount = aPropertyNames.getLength();
1553*b1cdbd2cSJim Jagielski uno::Sequence<uno::Any> aSequence( nCount );
1554*b1cdbd2cSJim Jagielski if ( nCount )
1555*b1cdbd2cSJim Jagielski {
1556*b1cdbd2cSJim Jagielski uno::Any* pValues = aSequence.getArray();
1557*b1cdbd2cSJim Jagielski for (sal_Int32 i=0; i<nCount; i++)
1558*b1cdbd2cSJim Jagielski pValues[i] = getPropertyValue( aPropertyNames[i] );
1559*b1cdbd2cSJim Jagielski }
1560*b1cdbd2cSJim Jagielski return aSequence;
1561*b1cdbd2cSJim Jagielski }
1562*b1cdbd2cSJim Jagielski
addPropertiesChangeListener(const uno::Sequence<rtl::OUString> &,const uno::Reference<beans::XPropertiesChangeListener> &)1563*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::addPropertiesChangeListener( const uno::Sequence<rtl::OUString>& /* aPropertyNames */,
1564*b1cdbd2cSJim Jagielski const uno::Reference<beans::XPropertiesChangeListener>& /* xListener */ )
1565*b1cdbd2cSJim Jagielski throw (uno::RuntimeException)
1566*b1cdbd2cSJim Jagielski {
1567*b1cdbd2cSJim Jagielski // no bound properties
1568*b1cdbd2cSJim Jagielski }
1569*b1cdbd2cSJim Jagielski
removePropertiesChangeListener(const uno::Reference<beans::XPropertiesChangeListener> &)1570*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::removePropertiesChangeListener(
1571*b1cdbd2cSJim Jagielski const uno::Reference<beans::XPropertiesChangeListener>& /* xListener */ )
1572*b1cdbd2cSJim Jagielski throw (uno::RuntimeException)
1573*b1cdbd2cSJim Jagielski {
1574*b1cdbd2cSJim Jagielski // no bound properties
1575*b1cdbd2cSJim Jagielski }
1576*b1cdbd2cSJim Jagielski
firePropertiesChangeEvent(const uno::Sequence<rtl::OUString> &,const uno::Reference<beans::XPropertiesChangeListener> &)1577*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::firePropertiesChangeEvent( const uno::Sequence<rtl::OUString>& /* aPropertyNames */,
1578*b1cdbd2cSJim Jagielski const uno::Reference<beans::XPropertiesChangeListener>& /* xListener */ )
1579*b1cdbd2cSJim Jagielski throw (uno::RuntimeException)
1580*b1cdbd2cSJim Jagielski {
1581*b1cdbd2cSJim Jagielski // no bound properties
1582*b1cdbd2cSJim Jagielski }
1583*b1cdbd2cSJim Jagielski
1584*b1cdbd2cSJim Jagielski // XMultiPropertyStates
1585*b1cdbd2cSJim Jagielski // getPropertyStates already defined for XPropertyState
1586*b1cdbd2cSJim Jagielski
setAllPropertiesToDefault()1587*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::setAllPropertiesToDefault() throw (uno::RuntimeException)
1588*b1cdbd2cSJim Jagielski {
1589*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1590*b1cdbd2cSJim Jagielski
1591*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1592*b1cdbd2cSJim Jagielski if ( pStyle )
1593*b1cdbd2cSJim Jagielski {
1594*b1cdbd2cSJim Jagielski // #70909# cell styles cannot be modified if any sheet is protected
1595*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PARA && lcl_AnyTabProtected( *pDocShell->GetDocument() ) )
1596*b1cdbd2cSJim Jagielski throw uno::RuntimeException();
1597*b1cdbd2cSJim Jagielski
1598*b1cdbd2cSJim Jagielski SfxItemSet& rSet = pStyle->GetItemSet();
1599*b1cdbd2cSJim Jagielski rSet.ClearItem(); // set all items to default
1600*b1cdbd2cSJim Jagielski
1601*b1cdbd2cSJim Jagielski //! merge with SetOneProperty
1602*b1cdbd2cSJim Jagielski
1603*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
1604*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PARA )
1605*b1cdbd2cSJim Jagielski {
1606*b1cdbd2cSJim Jagielski // row heights
1607*b1cdbd2cSJim Jagielski
1608*b1cdbd2cSJim Jagielski VirtualDevice aVDev;
1609*b1cdbd2cSJim Jagielski Point aLogic = aVDev.LogicToPixel( Point(1000,1000), MAP_TWIP );
1610*b1cdbd2cSJim Jagielski double nPPTX = aLogic.X() / 1000.0;
1611*b1cdbd2cSJim Jagielski double nPPTY = aLogic.Y() / 1000.0;
1612*b1cdbd2cSJim Jagielski Fraction aZoom(1,1);
1613*b1cdbd2cSJim Jagielski pDoc->StyleSheetChanged( pStyle, sal_False, &aVDev, nPPTX, nPPTY, aZoom, aZoom );
1614*b1cdbd2cSJim Jagielski
1615*b1cdbd2cSJim Jagielski pDocShell->PostPaint( 0,0,0, MAXCOL,MAXROW,MAXTAB, PAINT_GRID|PAINT_LEFT );
1616*b1cdbd2cSJim Jagielski pDocShell->SetDocumentModified();
1617*b1cdbd2cSJim Jagielski }
1618*b1cdbd2cSJim Jagielski else
1619*b1cdbd2cSJim Jagielski {
1620*b1cdbd2cSJim Jagielski // #i22448# apply the default BoxInfoItem for page styles again
1621*b1cdbd2cSJim Jagielski // (same content as in ScStyleSheet::GetItemSet, to control the dialog)
1622*b1cdbd2cSJim Jagielski SvxBoxInfoItem aBoxInfoItem( ATTR_BORDER_INNER );
1623*b1cdbd2cSJim Jagielski aBoxInfoItem.SetTable( sal_False );
1624*b1cdbd2cSJim Jagielski aBoxInfoItem.SetDist( sal_True );
1625*b1cdbd2cSJim Jagielski aBoxInfoItem.SetValid( VALID_DISTANCE, sal_True );
1626*b1cdbd2cSJim Jagielski rSet.Put( aBoxInfoItem );
1627*b1cdbd2cSJim Jagielski
1628*b1cdbd2cSJim Jagielski pDocShell->PageStyleModified( aStyleName, sal_True );
1629*b1cdbd2cSJim Jagielski }
1630*b1cdbd2cSJim Jagielski }
1631*b1cdbd2cSJim Jagielski }
1632*b1cdbd2cSJim Jagielski
setPropertiesToDefault(const uno::Sequence<rtl::OUString> & aPropertyNames)1633*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::setPropertiesToDefault( const uno::Sequence<rtl::OUString>& aPropertyNames )
1634*b1cdbd2cSJim Jagielski throw (beans::UnknownPropertyException, uno::RuntimeException)
1635*b1cdbd2cSJim Jagielski {
1636*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1637*b1cdbd2cSJim Jagielski
1638*b1cdbd2cSJim Jagielski sal_Int32 nCount = aPropertyNames.getLength();
1639*b1cdbd2cSJim Jagielski if ( nCount )
1640*b1cdbd2cSJim Jagielski {
1641*b1cdbd2cSJim Jagielski const rtl::OUString* pNames = aPropertyNames.getConstArray();
1642*b1cdbd2cSJim Jagielski
1643*b1cdbd2cSJim Jagielski const SfxItemPropertyMap* pPropertyMap = pPropSet->getPropertyMap();
1644*b1cdbd2cSJim Jagielski for (sal_Int32 i = 0; i < nCount; i++)
1645*b1cdbd2cSJim Jagielski {
1646*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pEntry = pPropertyMap->getByName( pNames[i] );
1647*b1cdbd2cSJim Jagielski SetOnePropertyValue( pNames[i], pEntry, NULL );
1648*b1cdbd2cSJim Jagielski }
1649*b1cdbd2cSJim Jagielski }
1650*b1cdbd2cSJim Jagielski }
1651*b1cdbd2cSJim Jagielski
getPropertyDefaults(const uno::Sequence<rtl::OUString> & aPropertyNames)1652*b1cdbd2cSJim Jagielski uno::Sequence<uno::Any> SAL_CALL ScStyleObj::getPropertyDefaults(
1653*b1cdbd2cSJim Jagielski const uno::Sequence<rtl::OUString>& aPropertyNames )
1654*b1cdbd2cSJim Jagielski throw (beans::UnknownPropertyException, lang::WrappedTargetException,
1655*b1cdbd2cSJim Jagielski uno::RuntimeException)
1656*b1cdbd2cSJim Jagielski {
1657*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1658*b1cdbd2cSJim Jagielski
1659*b1cdbd2cSJim Jagielski //! optimize
1660*b1cdbd2cSJim Jagielski
1661*b1cdbd2cSJim Jagielski sal_Int32 nCount = aPropertyNames.getLength();
1662*b1cdbd2cSJim Jagielski uno::Sequence<uno::Any> aSequence( nCount );
1663*b1cdbd2cSJim Jagielski if ( nCount )
1664*b1cdbd2cSJim Jagielski {
1665*b1cdbd2cSJim Jagielski uno::Any* pValues = aSequence.getArray();
1666*b1cdbd2cSJim Jagielski for (sal_Int32 i=0; i<nCount; i++)
1667*b1cdbd2cSJim Jagielski pValues[i] = getPropertyDefault( aPropertyNames[i] );
1668*b1cdbd2cSJim Jagielski }
1669*b1cdbd2cSJim Jagielski return aSequence;
1670*b1cdbd2cSJim Jagielski }
1671*b1cdbd2cSJim Jagielski
1672*b1cdbd2cSJim Jagielski // beans::XPropertySet
1673*b1cdbd2cSJim Jagielski
getPropertySetInfo()1674*b1cdbd2cSJim Jagielski uno::Reference<beans::XPropertySetInfo> SAL_CALL ScStyleObj::getPropertySetInfo()
1675*b1cdbd2cSJim Jagielski throw(uno::RuntimeException)
1676*b1cdbd2cSJim Jagielski {
1677*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1678*b1cdbd2cSJim Jagielski return pPropSet->getPropertySetInfo();
1679*b1cdbd2cSJim Jagielski }
1680*b1cdbd2cSJim Jagielski
setPropertyValue(const rtl::OUString & aPropertyName,const uno::Any & aValue)1681*b1cdbd2cSJim Jagielski void SAL_CALL ScStyleObj::setPropertyValue(
1682*b1cdbd2cSJim Jagielski const rtl::OUString& aPropertyName, const uno::Any& aValue )
1683*b1cdbd2cSJim Jagielski throw(beans::UnknownPropertyException, beans::PropertyVetoException,
1684*b1cdbd2cSJim Jagielski lang::IllegalArgumentException, lang::WrappedTargetException,
1685*b1cdbd2cSJim Jagielski uno::RuntimeException)
1686*b1cdbd2cSJim Jagielski {
1687*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
1688*b1cdbd2cSJim Jagielski
1689*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pEntry = pPropSet->getPropertyMap()->getByName( aPropertyName );
1690*b1cdbd2cSJim Jagielski if ( !pEntry )
1691*b1cdbd2cSJim Jagielski throw beans::UnknownPropertyException();
1692*b1cdbd2cSJim Jagielski
1693*b1cdbd2cSJim Jagielski SetOnePropertyValue( aPropertyName, pEntry, &aValue );
1694*b1cdbd2cSJim Jagielski }
1695*b1cdbd2cSJim Jagielski
SetOnePropertyValue(const::rtl::OUString & rPropertyName,const SfxItemPropertySimpleEntry * pEntry,const uno::Any * pValue)1696*b1cdbd2cSJim Jagielski void ScStyleObj::SetOnePropertyValue( const ::rtl::OUString& rPropertyName, const SfxItemPropertySimpleEntry* pEntry, const uno::Any* pValue )
1697*b1cdbd2cSJim Jagielski throw(lang::IllegalArgumentException, uno::RuntimeException)
1698*b1cdbd2cSJim Jagielski {
1699*b1cdbd2cSJim Jagielski SetOnePropertyValueWithoutUpdate(rPropertyName, pEntry, pValue);
1700*b1cdbd2cSJim Jagielski StyleSheetChangedUpdate();
1701*b1cdbd2cSJim Jagielski }
1702*b1cdbd2cSJim Jagielski
SetOnePropertyValueWithoutUpdate(const::rtl::OUString & rPropertyName,const SfxItemPropertySimpleEntry * pEntry,const uno::Any * pValue)1703*b1cdbd2cSJim Jagielski void ScStyleObj::SetOnePropertyValueWithoutUpdate( const ::rtl::OUString& rPropertyName, const SfxItemPropertySimpleEntry* pEntry, const uno::Any* pValue )
1704*b1cdbd2cSJim Jagielski throw(lang::IllegalArgumentException, uno::RuntimeException)
1705*b1cdbd2cSJim Jagielski {
1706*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1707*b1cdbd2cSJim Jagielski if ( pStyle && pEntry )
1708*b1cdbd2cSJim Jagielski {
1709*b1cdbd2cSJim Jagielski // #70909# cell styles cannot be modified if any sheet is protected
1710*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PARA && lcl_AnyTabProtected( *pDocShell->GetDocument() ) )
1711*b1cdbd2cSJim Jagielski throw uno::RuntimeException();
1712*b1cdbd2cSJim Jagielski
1713*b1cdbd2cSJim Jagielski SfxItemSet& rSet = pStyle->GetItemSet(); // direkt im lebenden Style aendern...
1714*b1cdbd2cSJim Jagielski sal_Bool bDone = sal_False;
1715*b1cdbd2cSJim Jagielski if ( eFamily == SFX_STYLE_FAMILY_PAGE )
1716*b1cdbd2cSJim Jagielski {
1717*b1cdbd2cSJim Jagielski if(pEntry->nWID == SC_WID_UNO_HEADERSET)
1718*b1cdbd2cSJim Jagielski {
1719*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pHeaderEntry = lcl_GetHeaderStyleMap()->getByName( rPropertyName );
1720*b1cdbd2cSJim Jagielski if ( pHeaderEntry ) // only item-wids in header/footer map
1721*b1cdbd2cSJim Jagielski {
1722*b1cdbd2cSJim Jagielski SvxSetItem aNewHeader( (const SvxSetItem&)rSet.Get(ATTR_PAGE_HEADERSET) );
1723*b1cdbd2cSJim Jagielski if (pValue)
1724*b1cdbd2cSJim Jagielski pPropSet->setPropertyValue( *pHeaderEntry, *pValue, aNewHeader.GetItemSet() );
1725*b1cdbd2cSJim Jagielski else
1726*b1cdbd2cSJim Jagielski aNewHeader.GetItemSet().ClearItem( pHeaderEntry->nWID );
1727*b1cdbd2cSJim Jagielski rSet.Put( aNewHeader );
1728*b1cdbd2cSJim Jagielski bDone = sal_True;
1729*b1cdbd2cSJim Jagielski }
1730*b1cdbd2cSJim Jagielski }
1731*b1cdbd2cSJim Jagielski else if(pEntry->nWID == SC_WID_UNO_FOOTERSET)
1732*b1cdbd2cSJim Jagielski {
1733*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pFooterEntry = lcl_GetFooterStyleMap()->getByName( rPropertyName );
1734*b1cdbd2cSJim Jagielski if ( pFooterEntry ) // only item-wids in header/footer map
1735*b1cdbd2cSJim Jagielski {
1736*b1cdbd2cSJim Jagielski SvxSetItem aNewFooter( (const SvxSetItem&)rSet.Get(ATTR_PAGE_FOOTERSET) );
1737*b1cdbd2cSJim Jagielski if (pValue)
1738*b1cdbd2cSJim Jagielski pPropSet->setPropertyValue( *pFooterEntry, *pValue, aNewFooter.GetItemSet() );
1739*b1cdbd2cSJim Jagielski else
1740*b1cdbd2cSJim Jagielski aNewFooter.GetItemSet().ClearItem( pFooterEntry->nWID );
1741*b1cdbd2cSJim Jagielski rSet.Put( aNewFooter );
1742*b1cdbd2cSJim Jagielski bDone = sal_True;
1743*b1cdbd2cSJim Jagielski }
1744*b1cdbd2cSJim Jagielski }
1745*b1cdbd2cSJim Jagielski }
1746*b1cdbd2cSJim Jagielski if (!bDone)
1747*b1cdbd2cSJim Jagielski {
1748*b1cdbd2cSJim Jagielski if ( pEntry )
1749*b1cdbd2cSJim Jagielski {
1750*b1cdbd2cSJim Jagielski if ( IsScItemWid( pEntry->nWID ) )
1751*b1cdbd2cSJim Jagielski {
1752*b1cdbd2cSJim Jagielski if (pValue)
1753*b1cdbd2cSJim Jagielski {
1754*b1cdbd2cSJim Jagielski switch ( pEntry->nWID ) // fuer Item-Spezial-Behandlungen
1755*b1cdbd2cSJim Jagielski {
1756*b1cdbd2cSJim Jagielski case ATTR_VALUE_FORMAT:
1757*b1cdbd2cSJim Jagielski {
1758*b1cdbd2cSJim Jagielski // #67847# language for number formats
1759*b1cdbd2cSJim Jagielski SvNumberFormatter* pFormatter =
1760*b1cdbd2cSJim Jagielski pDocShell->GetDocument()->GetFormatTable();
1761*b1cdbd2cSJim Jagielski sal_uInt32 nOldFormat = ((const SfxUInt32Item&)
1762*b1cdbd2cSJim Jagielski rSet.Get( ATTR_VALUE_FORMAT )).GetValue();
1763*b1cdbd2cSJim Jagielski LanguageType eOldLang = ((const SvxLanguageItem&)
1764*b1cdbd2cSJim Jagielski rSet.Get( ATTR_LANGUAGE_FORMAT )).GetLanguage();
1765*b1cdbd2cSJim Jagielski nOldFormat = pFormatter->
1766*b1cdbd2cSJim Jagielski GetFormatForLanguageIfBuiltIn( nOldFormat, eOldLang );
1767*b1cdbd2cSJim Jagielski
1768*b1cdbd2cSJim Jagielski sal_uInt32 nNewFormat = 0;
1769*b1cdbd2cSJim Jagielski *pValue >>= nNewFormat;
1770*b1cdbd2cSJim Jagielski rSet.Put( SfxUInt32Item( ATTR_VALUE_FORMAT, nNewFormat ) );
1771*b1cdbd2cSJim Jagielski
1772*b1cdbd2cSJim Jagielski const SvNumberformat* pNewEntry = pFormatter->GetEntry( nNewFormat );
1773*b1cdbd2cSJim Jagielski LanguageType eNewLang =
1774*b1cdbd2cSJim Jagielski pNewEntry ? pNewEntry->GetLanguage() : LANGUAGE_DONTKNOW;
1775*b1cdbd2cSJim Jagielski if ( eNewLang != eOldLang && eNewLang != LANGUAGE_DONTKNOW )
1776*b1cdbd2cSJim Jagielski rSet.Put( SvxLanguageItem( eNewLang, ATTR_LANGUAGE_FORMAT ) );
1777*b1cdbd2cSJim Jagielski
1778*b1cdbd2cSJim Jagielski //! keep default state of number format if only language changed?
1779*b1cdbd2cSJim Jagielski }
1780*b1cdbd2cSJim Jagielski break;
1781*b1cdbd2cSJim Jagielski case ATTR_INDENT:
1782*b1cdbd2cSJim Jagielski {
1783*b1cdbd2cSJim Jagielski sal_Int16 nVal = 0;
1784*b1cdbd2cSJim Jagielski *pValue >>= nVal;
1785*b1cdbd2cSJim Jagielski rSet.Put( SfxUInt16Item( pEntry->nWID, (sal_uInt16)HMMToTwips(nVal) ) );
1786*b1cdbd2cSJim Jagielski }
1787*b1cdbd2cSJim Jagielski break;
1788*b1cdbd2cSJim Jagielski case ATTR_ROTATE_VALUE:
1789*b1cdbd2cSJim Jagielski {
1790*b1cdbd2cSJim Jagielski sal_Int32 nRotVal = 0;
1791*b1cdbd2cSJim Jagielski if ( *pValue >>= nRotVal )
1792*b1cdbd2cSJim Jagielski {
1793*b1cdbd2cSJim Jagielski // stored value is always between 0 and 360 deg.
1794*b1cdbd2cSJim Jagielski nRotVal %= 36000;
1795*b1cdbd2cSJim Jagielski if ( nRotVal < 0 )
1796*b1cdbd2cSJim Jagielski nRotVal += 36000;
1797*b1cdbd2cSJim Jagielski rSet.Put( SfxInt32Item( ATTR_ROTATE_VALUE, nRotVal ) );
1798*b1cdbd2cSJim Jagielski }
1799*b1cdbd2cSJim Jagielski }
1800*b1cdbd2cSJim Jagielski break;
1801*b1cdbd2cSJim Jagielski case ATTR_STACKED:
1802*b1cdbd2cSJim Jagielski {
1803*b1cdbd2cSJim Jagielski table::CellOrientation eOrient;
1804*b1cdbd2cSJim Jagielski if( *pValue >>= eOrient )
1805*b1cdbd2cSJim Jagielski {
1806*b1cdbd2cSJim Jagielski switch( eOrient )
1807*b1cdbd2cSJim Jagielski {
1808*b1cdbd2cSJim Jagielski case table::CellOrientation_STANDARD:
1809*b1cdbd2cSJim Jagielski rSet.Put( SfxBoolItem( ATTR_STACKED, sal_False ) );
1810*b1cdbd2cSJim Jagielski break;
1811*b1cdbd2cSJim Jagielski case table::CellOrientation_TOPBOTTOM:
1812*b1cdbd2cSJim Jagielski rSet.Put( SfxBoolItem( ATTR_STACKED, sal_False ) );
1813*b1cdbd2cSJim Jagielski rSet.Put( SfxInt32Item( ATTR_ROTATE_VALUE, 27000 ) );
1814*b1cdbd2cSJim Jagielski break;
1815*b1cdbd2cSJim Jagielski case table::CellOrientation_BOTTOMTOP:
1816*b1cdbd2cSJim Jagielski rSet.Put( SfxBoolItem( ATTR_STACKED, sal_False ) );
1817*b1cdbd2cSJim Jagielski rSet.Put( SfxInt32Item( ATTR_ROTATE_VALUE, 9000 ) );
1818*b1cdbd2cSJim Jagielski break;
1819*b1cdbd2cSJim Jagielski case table::CellOrientation_STACKED:
1820*b1cdbd2cSJim Jagielski rSet.Put( SfxBoolItem( ATTR_STACKED, sal_True ) );
1821*b1cdbd2cSJim Jagielski break;
1822*b1cdbd2cSJim Jagielski default:
1823*b1cdbd2cSJim Jagielski {
1824*b1cdbd2cSJim Jagielski // added to avoid warnings
1825*b1cdbd2cSJim Jagielski }
1826*b1cdbd2cSJim Jagielski }
1827*b1cdbd2cSJim Jagielski }
1828*b1cdbd2cSJim Jagielski }
1829*b1cdbd2cSJim Jagielski break;
1830*b1cdbd2cSJim Jagielski case ATTR_PAGE_SCALE:
1831*b1cdbd2cSJim Jagielski case ATTR_PAGE_SCALETOPAGES:
1832*b1cdbd2cSJim Jagielski {
1833*b1cdbd2cSJim Jagielski rSet.ClearItem(ATTR_PAGE_SCALETOPAGES);
1834*b1cdbd2cSJim Jagielski rSet.ClearItem(ATTR_PAGE_SCALE);
1835*b1cdbd2cSJim Jagielski rSet.ClearItem(ATTR_PAGE_SCALETO);
1836*b1cdbd2cSJim Jagielski sal_Int16 nVal = 0;
1837*b1cdbd2cSJim Jagielski *pValue >>= nVal;
1838*b1cdbd2cSJim Jagielski rSet.Put( SfxUInt16Item( pEntry->nWID, nVal ) );
1839*b1cdbd2cSJim Jagielski }
1840*b1cdbd2cSJim Jagielski break;
1841*b1cdbd2cSJim Jagielski case ATTR_PAGE_FIRSTPAGENO:
1842*b1cdbd2cSJim Jagielski {
1843*b1cdbd2cSJim Jagielski sal_Int16 nVal = 0;
1844*b1cdbd2cSJim Jagielski *pValue >>= nVal;
1845*b1cdbd2cSJim Jagielski rSet.Put( SfxUInt16Item( ATTR_PAGE_FIRSTPAGENO, nVal ) );
1846*b1cdbd2cSJim Jagielski }
1847*b1cdbd2cSJim Jagielski break;
1848*b1cdbd2cSJim Jagielski case ATTR_PAGE_CHARTS:
1849*b1cdbd2cSJim Jagielski case ATTR_PAGE_OBJECTS:
1850*b1cdbd2cSJim Jagielski case ATTR_PAGE_DRAWINGS:
1851*b1cdbd2cSJim Jagielski {
1852*b1cdbd2cSJim Jagielski sal_Bool bBool = sal_False;
1853*b1cdbd2cSJim Jagielski *pValue >>= bBool;
1854*b1cdbd2cSJim Jagielski //! sal_Bool-MID fuer ScViewObjectModeItem definieren?
1855*b1cdbd2cSJim Jagielski rSet.Put( ScViewObjectModeItem( pEntry->nWID,
1856*b1cdbd2cSJim Jagielski bBool ? VOBJ_MODE_SHOW : VOBJ_MODE_HIDE ) );
1857*b1cdbd2cSJim Jagielski }
1858*b1cdbd2cSJim Jagielski break;
1859*b1cdbd2cSJim Jagielski case ATTR_PAGE_PAPERBIN:
1860*b1cdbd2cSJim Jagielski {
1861*b1cdbd2cSJim Jagielski sal_uInt8 nTray = PAPERBIN_PRINTER_SETTINGS;
1862*b1cdbd2cSJim Jagielski sal_Bool bFound = sal_False;
1863*b1cdbd2cSJim Jagielski
1864*b1cdbd2cSJim Jagielski rtl::OUString aName;
1865*b1cdbd2cSJim Jagielski if ( *pValue >>= aName )
1866*b1cdbd2cSJim Jagielski {
1867*b1cdbd2cSJim Jagielski if ( aName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( SC_PAPERBIN_DEFAULTNAME ) ) )
1868*b1cdbd2cSJim Jagielski bFound = sal_True;
1869*b1cdbd2cSJim Jagielski else
1870*b1cdbd2cSJim Jagielski {
1871*b1cdbd2cSJim Jagielski Printer* pPrinter = pDocShell->GetPrinter();
1872*b1cdbd2cSJim Jagielski if (pPrinter)
1873*b1cdbd2cSJim Jagielski {
1874*b1cdbd2cSJim Jagielski String aNameStr = aName;
1875*b1cdbd2cSJim Jagielski sal_uInt16 nCount = pPrinter->GetPaperBinCount();
1876*b1cdbd2cSJim Jagielski for (sal_uInt16 i=0; i<nCount; i++)
1877*b1cdbd2cSJim Jagielski if ( aNameStr == pPrinter->GetPaperBinName(i) )
1878*b1cdbd2cSJim Jagielski {
1879*b1cdbd2cSJim Jagielski nTray = (sal_uInt8) i;
1880*b1cdbd2cSJim Jagielski bFound = sal_True;
1881*b1cdbd2cSJim Jagielski break;
1882*b1cdbd2cSJim Jagielski }
1883*b1cdbd2cSJim Jagielski }
1884*b1cdbd2cSJim Jagielski }
1885*b1cdbd2cSJim Jagielski }
1886*b1cdbd2cSJim Jagielski if ( bFound )
1887*b1cdbd2cSJim Jagielski rSet.Put( SvxPaperBinItem( ATTR_PAGE_PAPERBIN, nTray ) );
1888*b1cdbd2cSJim Jagielski else
1889*b1cdbd2cSJim Jagielski throw lang::IllegalArgumentException();
1890*b1cdbd2cSJim Jagielski }
1891*b1cdbd2cSJim Jagielski break;
1892*b1cdbd2cSJim Jagielski case ATTR_PAGE_SCALETO:
1893*b1cdbd2cSJim Jagielski {
1894*b1cdbd2cSJim Jagielski sal_Int16 nPages = 0;
1895*b1cdbd2cSJim Jagielski if (*pValue >>= nPages)
1896*b1cdbd2cSJim Jagielski {
1897*b1cdbd2cSJim Jagielski ScPageScaleToItem aItem = ((const ScPageScaleToItem&)rSet.Get(ATTR_PAGE_SCALETO));
1898*b1cdbd2cSJim Jagielski if ( rPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SC_UNO_PAGE_SCALETOX)))
1899*b1cdbd2cSJim Jagielski aItem.SetWidth(static_cast<sal_uInt16>(nPages));
1900*b1cdbd2cSJim Jagielski else
1901*b1cdbd2cSJim Jagielski aItem.SetHeight(static_cast<sal_uInt16>(nPages));
1902*b1cdbd2cSJim Jagielski rSet.Put( aItem );
1903*b1cdbd2cSJim Jagielski rSet.ClearItem(ATTR_PAGE_SCALETOPAGES);
1904*b1cdbd2cSJim Jagielski rSet.ClearItem(ATTR_PAGE_SCALE);
1905*b1cdbd2cSJim Jagielski }
1906*b1cdbd2cSJim Jagielski }
1907*b1cdbd2cSJim Jagielski break;
1908*b1cdbd2cSJim Jagielski default:
1909*b1cdbd2cSJim Jagielski // #65253# Default-Items mit falscher Slot-ID
1910*b1cdbd2cSJim Jagielski // funktionieren im SfxItemPropertySet3 nicht
1911*b1cdbd2cSJim Jagielski //! Slot-IDs aendern...
1912*b1cdbd2cSJim Jagielski if ( rSet.GetPool()->GetSlotId(pEntry->nWID) == pEntry->nWID &&
1913*b1cdbd2cSJim Jagielski rSet.GetItemState(pEntry->nWID, sal_False) == SFX_ITEM_DEFAULT )
1914*b1cdbd2cSJim Jagielski {
1915*b1cdbd2cSJim Jagielski rSet.Put( rSet.Get(pEntry->nWID) );
1916*b1cdbd2cSJim Jagielski }
1917*b1cdbd2cSJim Jagielski pPropSet->setPropertyValue( *pEntry, *pValue, rSet );
1918*b1cdbd2cSJim Jagielski }
1919*b1cdbd2cSJim Jagielski }
1920*b1cdbd2cSJim Jagielski else
1921*b1cdbd2cSJim Jagielski {
1922*b1cdbd2cSJim Jagielski rSet.ClearItem( pEntry->nWID );
1923*b1cdbd2cSJim Jagielski // #67847# language for number formats
1924*b1cdbd2cSJim Jagielski if ( pEntry->nWID == ATTR_VALUE_FORMAT )
1925*b1cdbd2cSJim Jagielski rSet.ClearItem( ATTR_LANGUAGE_FORMAT );
1926*b1cdbd2cSJim Jagielski
1927*b1cdbd2cSJim Jagielski //! for ATTR_ROTATE_VALUE, also reset ATTR_ORIENTATION?
1928*b1cdbd2cSJim Jagielski }
1929*b1cdbd2cSJim Jagielski }
1930*b1cdbd2cSJim Jagielski else if ( IsScUnoWid( pEntry->nWID ) )
1931*b1cdbd2cSJim Jagielski {
1932*b1cdbd2cSJim Jagielski switch ( pEntry->nWID )
1933*b1cdbd2cSJim Jagielski {
1934*b1cdbd2cSJim Jagielski case SC_WID_UNO_TBLBORD:
1935*b1cdbd2cSJim Jagielski {
1936*b1cdbd2cSJim Jagielski if (pValue)
1937*b1cdbd2cSJim Jagielski {
1938*b1cdbd2cSJim Jagielski table::TableBorder aBorder;
1939*b1cdbd2cSJim Jagielski if ( *pValue >>= aBorder )
1940*b1cdbd2cSJim Jagielski {
1941*b1cdbd2cSJim Jagielski SvxBoxItem aOuter( ATTR_BORDER );
1942*b1cdbd2cSJim Jagielski SvxBoxInfoItem aInner( ATTR_BORDER_INNER );
1943*b1cdbd2cSJim Jagielski ScHelperFunctions::FillBoxItems( aOuter, aInner, aBorder );
1944*b1cdbd2cSJim Jagielski rSet.Put( aOuter );
1945*b1cdbd2cSJim Jagielski }
1946*b1cdbd2cSJim Jagielski }
1947*b1cdbd2cSJim Jagielski else
1948*b1cdbd2cSJim Jagielski {
1949*b1cdbd2cSJim Jagielski rSet.ClearItem( ATTR_BORDER );
1950*b1cdbd2cSJim Jagielski }
1951*b1cdbd2cSJim Jagielski }
1952*b1cdbd2cSJim Jagielski break;
1953*b1cdbd2cSJim Jagielski }
1954*b1cdbd2cSJim Jagielski }
1955*b1cdbd2cSJim Jagielski }
1956*b1cdbd2cSJim Jagielski }
1957*b1cdbd2cSJim Jagielski
1958*b1cdbd2cSJim Jagielski if(SFX_STYLE_FAMILY_PARA != eFamily)
1959*b1cdbd2cSJim Jagielski {
1960*b1cdbd2cSJim Jagielski //! ModifyStyleSheet am Dokument (alte Werte merken)
1961*b1cdbd2cSJim Jagielski
1962*b1cdbd2cSJim Jagielski pDocShell->PageStyleModified( aStyleName, sal_True );
1963*b1cdbd2cSJim Jagielski }
1964*b1cdbd2cSJim Jagielski }
1965*b1cdbd2cSJim Jagielski }
1966*b1cdbd2cSJim Jagielski
StyleSheetChangedUpdate()1967*b1cdbd2cSJim Jagielski bool ScStyleObj::StyleSheetChangedUpdate()
1968*b1cdbd2cSJim Jagielski {
1969*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
1970*b1cdbd2cSJim Jagielski
1971*b1cdbd2cSJim Jagielski if(pStyle)
1972*b1cdbd2cSJim Jagielski {
1973*b1cdbd2cSJim Jagielski //! DocFunc-Funktion??
1974*b1cdbd2cSJim Jagielski //! Undo ?????????????
1975*b1cdbd2cSJim Jagielski
1976*b1cdbd2cSJim Jagielski if(SFX_STYLE_FAMILY_PARA == eFamily)
1977*b1cdbd2cSJim Jagielski {
1978*b1cdbd2cSJim Jagielski // adapt line heights
1979*b1cdbd2cSJim Jagielski VirtualDevice aVDev;
1980*b1cdbd2cSJim Jagielski const Point aLogic(aVDev.LogicToPixel(Point(1000,1000), MAP_TWIP));
1981*b1cdbd2cSJim Jagielski const double nPPTX(aLogic.X() / 1000.0);
1982*b1cdbd2cSJim Jagielski const double nPPTY(aLogic.Y() / 1000.0);
1983*b1cdbd2cSJim Jagielski const Fraction aZoom(1,1);
1984*b1cdbd2cSJim Jagielski ScDocument* pDoc = pDocShell->GetDocument();
1985*b1cdbd2cSJim Jagielski
1986*b1cdbd2cSJim Jagielski pDoc->StyleSheetChanged(pStyle, sal_False, &aVDev, nPPTX, nPPTY, aZoom, aZoom);
1987*b1cdbd2cSJim Jagielski pDocShell->PostPaint(0,0,0, MAXCOL,MAXROW,MAXTAB, PAINT_GRID|PAINT_LEFT);
1988*b1cdbd2cSJim Jagielski pDocShell->SetDocumentModified();
1989*b1cdbd2cSJim Jagielski }
1990*b1cdbd2cSJim Jagielski
1991*b1cdbd2cSJim Jagielski return true;
1992*b1cdbd2cSJim Jagielski }
1993*b1cdbd2cSJim Jagielski
1994*b1cdbd2cSJim Jagielski return false;
1995*b1cdbd2cSJim Jagielski }
1996*b1cdbd2cSJim Jagielski
getPropertyValue(const rtl::OUString & aPropertyName)1997*b1cdbd2cSJim Jagielski uno::Any SAL_CALL ScStyleObj::getPropertyValue( const rtl::OUString& aPropertyName )
1998*b1cdbd2cSJim Jagielski throw(beans::UnknownPropertyException, lang::WrappedTargetException,
1999*b1cdbd2cSJim Jagielski uno::RuntimeException)
2000*b1cdbd2cSJim Jagielski {
2001*b1cdbd2cSJim Jagielski ScUnoGuard aGuard;
2002*b1cdbd2cSJim Jagielski uno::Any aAny;
2003*b1cdbd2cSJim Jagielski
2004*b1cdbd2cSJim Jagielski if ( aPropertyName.equalsAscii( SC_UNONAME_DISPNAME ) ) // read-only
2005*b1cdbd2cSJim Jagielski {
2006*b1cdbd2cSJim Jagielski // core always has the display name
2007*b1cdbd2cSJim Jagielski SfxStyleSheetBase* pStyle = GetStyle_Impl();
2008*b1cdbd2cSJim Jagielski if (pStyle)
2009*b1cdbd2cSJim Jagielski aAny <<= rtl::OUString( pStyle->GetName() );
2010*b1cdbd2cSJim Jagielski }
2011*b1cdbd2cSJim Jagielski else
2012*b1cdbd2cSJim Jagielski {
2013*b1cdbd2cSJim Jagielski const SfxItemPropertySimpleEntry* pResultEntry = NULL;
2014*b1cdbd2cSJim Jagielski const SfxItemSet* pItemSet = GetStyleItemSet_Impl( aPropertyName, pResultEntry );
2015*b1cdbd2cSJim Jagielski
2016*b1cdbd2cSJim Jagielski if ( pItemSet && pResultEntry )
2017*b1cdbd2cSJim Jagielski {
2018*b1cdbd2cSJim Jagielski sal_uInt16 nWhich = pResultEntry->nWID;
2019*b1cdbd2cSJim Jagielski
2020*b1cdbd2cSJim Jagielski if ( IsScItemWid( nWhich ) )
2021*b1cdbd2cSJim Jagielski {
2022*b1cdbd2cSJim Jagielski switch ( nWhich ) // fuer Item-Spezial-Behandlungen
2023*b1cdbd2cSJim Jagielski {
2024*b1cdbd2cSJim Jagielski case ATTR_VALUE_FORMAT:
2025*b1cdbd2cSJim Jagielski if ( pDocShell )
2026*b1cdbd2cSJim Jagielski {
2027*b1cdbd2cSJim Jagielski sal_uInt32 nOldFormat = ((const SfxUInt32Item&)
2028*b1cdbd2cSJim Jagielski pItemSet->Get( ATTR_VALUE_FORMAT )).GetValue();
2029*b1cdbd2cSJim Jagielski LanguageType eOldLang = ((const SvxLanguageItem&)
2030*b1cdbd2cSJim Jagielski pItemSet->Get( ATTR_LANGUAGE_FORMAT )).GetLanguage();
2031*b1cdbd2cSJim Jagielski nOldFormat = pDocShell->GetDocument()->GetFormatTable()->
2032*b1cdbd2cSJim Jagielski GetFormatForLanguageIfBuiltIn( nOldFormat, eOldLang );
2033*b1cdbd2cSJim Jagielski aAny <<= nOldFormat;
2034*b1cdbd2cSJim Jagielski }
2035*b1cdbd2cSJim Jagielski break;
2036*b1cdbd2cSJim Jagielski case ATTR_INDENT:
2037*b1cdbd2cSJim Jagielski aAny <<= sal_Int16( TwipsToHMM(((const SfxUInt16Item&)
2038*b1cdbd2cSJim Jagielski pItemSet->Get(nWhich)).GetValue()) );
2039*b1cdbd2cSJim Jagielski break;
2040*b1cdbd2cSJim Jagielski case ATTR_STACKED:
2041*b1cdbd2cSJim Jagielski {
2042*b1cdbd2cSJim Jagielski sal_Int32 nRot = ((const SfxInt32Item&)pItemSet->Get(ATTR_ROTATE_VALUE)).GetValue();
2043*b1cdbd2cSJim Jagielski sal_Bool bStacked = ((const SfxBoolItem&)pItemSet->Get(nWhich)).GetValue();
2044*b1cdbd2cSJim Jagielski SvxOrientationItem( nRot, bStacked, 0 ).QueryValue( aAny );
2045*b1cdbd2cSJim Jagielski }
2046*b1cdbd2cSJim Jagielski break;
2047*b1cdbd2cSJim Jagielski case ATTR_PAGE_SCALE:
2048*b1cdbd2cSJim Jagielski case ATTR_PAGE_SCALETOPAGES:
2049*b1cdbd2cSJim Jagielski case ATTR_PAGE_FIRSTPAGENO:
2050*b1cdbd2cSJim Jagielski aAny <<= sal_Int16( ((const SfxUInt16Item&)pItemSet->Get(nWhich)).GetValue() );
2051*b1cdbd2cSJim Jagielski break;
2052*b1cdbd2cSJim Jagielski case ATTR_PAGE_CHARTS:
2053*b1cdbd2cSJim Jagielski case ATTR_PAGE_OBJECTS:
2054*b1cdbd2cSJim Jagielski case ATTR_PAGE_DRAWINGS:
2055*b1cdbd2cSJim Jagielski //! sal_Bool-MID fuer ScViewObjectModeItem definieren?
2056*b1cdbd2cSJim Jagielski aAny <<= sal_Bool( ((const ScViewObjectModeItem&)pItemSet->
2057*b1cdbd2cSJim Jagielski Get(nWhich)).GetValue() == VOBJ_MODE_SHOW );
2058*b1cdbd2cSJim Jagielski break;
2059*b1cdbd2cSJim Jagielski case ATTR_PAGE_PAPERBIN:
2060*b1cdbd2cSJim Jagielski {
2061*b1cdbd2cSJim Jagielski // property PrinterPaperTray is the name of the tray
2062*b1cdbd2cSJim Jagielski
2063*b1cdbd2cSJim Jagielski sal_uInt8 nValue = ((const SvxPaperBinItem&)pItemSet->Get(nWhich)).GetValue();
2064*b1cdbd2cSJim Jagielski rtl::OUString aName;
2065*b1cdbd2cSJim Jagielski if ( nValue == PAPERBIN_PRINTER_SETTINGS )
2066*b1cdbd2cSJim Jagielski aName = rtl::OUString::createFromAscii( SC_PAPERBIN_DEFAULTNAME );
2067*b1cdbd2cSJim Jagielski else
2068*b1cdbd2cSJim Jagielski {
2069*b1cdbd2cSJim Jagielski Printer* pPrinter = pDocShell->GetPrinter();
2070*b1cdbd2cSJim Jagielski if (pPrinter)
2071*b1cdbd2cSJim Jagielski aName = pPrinter->GetPaperBinName( nValue );
2072*b1cdbd2cSJim Jagielski }
2073*b1cdbd2cSJim Jagielski aAny <<= aName;
2074*b1cdbd2cSJim Jagielski }
2075*b1cdbd2cSJim Jagielski break;
2076*b1cdbd2cSJim Jagielski case ATTR_PAGE_SCALETO:
2077*b1cdbd2cSJim Jagielski {
2078*b1cdbd2cSJim Jagielski ScPageScaleToItem aItem((const ScPageScaleToItem&)pItemSet->Get(ATTR_PAGE_SCALETO));
2079*b1cdbd2cSJim Jagielski if (aPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SC_UNO_PAGE_SCALETOX)))
2080*b1cdbd2cSJim Jagielski aAny = uno::makeAny(static_cast<sal_Int16>(aItem.GetWidth()));
2081*b1cdbd2cSJim Jagielski else
2082*b1cdbd2cSJim Jagielski aAny = uno::makeAny(static_cast<sal_Int16>(aItem.GetHeight()));
2083*b1cdbd2cSJim Jagielski }
2084*b1cdbd2cSJim Jagielski break;
2085*b1cdbd2cSJim Jagielski default:
2086*b1cdbd2cSJim Jagielski // #65253# Default-Items mit falscher Slot-ID
2087*b1cdbd2cSJim Jagielski // funktionieren im SfxItemPropertySet3 nicht
2088*b1cdbd2cSJim Jagielski //! Slot-IDs aendern...
2089*b1cdbd2cSJim Jagielski if ( pItemSet->GetPool()->GetSlotId(nWhich) == nWhich &&
2090*b1cdbd2cSJim Jagielski pItemSet->GetItemState(nWhich, sal_False) == SFX_ITEM_DEFAULT )
2091*b1cdbd2cSJim Jagielski {
2092*b1cdbd2cSJim Jagielski SfxItemSet aNoEmptySet( *pItemSet );
2093*b1cdbd2cSJim Jagielski aNoEmptySet.Put( aNoEmptySet.Get( nWhich ) );
2094*b1cdbd2cSJim Jagielski pPropSet->getPropertyValue( *pResultEntry, aNoEmptySet, aAny );
2095*b1cdbd2cSJim Jagielski }
2096*b1cdbd2cSJim Jagielski else
2097*b1cdbd2cSJim Jagielski pPropSet->getPropertyValue( *pResultEntry, *pItemSet, aAny );
2098*b1cdbd2cSJim Jagielski }
2099*b1cdbd2cSJim Jagielski }
2100*b1cdbd2cSJim Jagielski else if ( IsScUnoWid( nWhich ) )
2101*b1cdbd2cSJim Jagielski {
2102*b1cdbd2cSJim Jagielski switch ( nWhich )
2103*b1cdbd2cSJim Jagielski {
2104*b1cdbd2cSJim Jagielski case SC_WID_UNO_TBLBORD:
2105*b1cdbd2cSJim Jagielski {
2106*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem = &pItemSet->Get( ATTR_BORDER );
2107*b1cdbd2cSJim Jagielski if ( pItem )
2108*b1cdbd2cSJim Jagielski {
2109*b1cdbd2cSJim Jagielski SvxBoxItem aOuter( *( static_cast<const SvxBoxItem*>( pItem ) ) );
2110*b1cdbd2cSJim Jagielski SvxBoxInfoItem aInner( ATTR_BORDER_INNER );
2111*b1cdbd2cSJim Jagielski table::TableBorder aBorder;
2112*b1cdbd2cSJim Jagielski ScHelperFunctions::FillTableBorder( aBorder, aOuter, aInner );
2113*b1cdbd2cSJim Jagielski aBorder.IsHorizontalLineValid = sal_False;
2114*b1cdbd2cSJim Jagielski aBorder.IsVerticalLineValid = sal_False;
2115*b1cdbd2cSJim Jagielski aBorder.IsDistanceValid = sal_False;
2116*b1cdbd2cSJim Jagielski aAny <<= aBorder;
2117*b1cdbd2cSJim Jagielski }
2118*b1cdbd2cSJim Jagielski }
2119*b1cdbd2cSJim Jagielski break;
2120*b1cdbd2cSJim Jagielski }
2121*b1cdbd2cSJim Jagielski }
2122*b1cdbd2cSJim Jagielski }
2123*b1cdbd2cSJim Jagielski }
2124*b1cdbd2cSJim Jagielski
2125*b1cdbd2cSJim Jagielski return aAny;
2126*b1cdbd2cSJim Jagielski }
2127*b1cdbd2cSJim Jagielski
SC_IMPL_DUMMY_PROPERTY_LISTENER(ScStyleObj)2128*b1cdbd2cSJim Jagielski SC_IMPL_DUMMY_PROPERTY_LISTENER( ScStyleObj )
2129*b1cdbd2cSJim Jagielski
2130*b1cdbd2cSJim Jagielski // lang::XServiceInfo
2131*b1cdbd2cSJim Jagielski
2132*b1cdbd2cSJim Jagielski rtl::OUString SAL_CALL ScStyleObj::getImplementationName() throw(uno::RuntimeException)
2133*b1cdbd2cSJim Jagielski {
2134*b1cdbd2cSJim Jagielski return rtl::OUString::createFromAscii( "ScStyleObj" );
2135*b1cdbd2cSJim Jagielski }
2136*b1cdbd2cSJim Jagielski
supportsService(const rtl::OUString & rServiceName)2137*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL ScStyleObj::supportsService( const rtl::OUString& rServiceName )
2138*b1cdbd2cSJim Jagielski throw(uno::RuntimeException)
2139*b1cdbd2cSJim Jagielski {
2140*b1cdbd2cSJim Jagielski sal_Bool bPage = ( eFamily == SFX_STYLE_FAMILY_PAGE );
2141*b1cdbd2cSJim Jagielski return rServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SCSTYLE_SERVICE ) )||
2142*b1cdbd2cSJim Jagielski rServiceName.equalsAsciiL(
2143*b1cdbd2cSJim Jagielski RTL_CONSTASCII_STRINGPARAM ( bPage ? SCPAGESTYLE_SERVICE : SCCELLSTYLE_SERVICE ));
2144*b1cdbd2cSJim Jagielski }
2145*b1cdbd2cSJim Jagielski
getSupportedServiceNames()2146*b1cdbd2cSJim Jagielski uno::Sequence<rtl::OUString> SAL_CALL ScStyleObj::getSupportedServiceNames()
2147*b1cdbd2cSJim Jagielski throw(uno::RuntimeException)
2148*b1cdbd2cSJim Jagielski {
2149*b1cdbd2cSJim Jagielski sal_Bool bPage = ( eFamily == SFX_STYLE_FAMILY_PAGE );
2150*b1cdbd2cSJim Jagielski uno::Sequence<rtl::OUString> aRet(2);
2151*b1cdbd2cSJim Jagielski rtl::OUString* pArray = aRet.getArray();
2152*b1cdbd2cSJim Jagielski pArray[0] = rtl::OUString::createFromAscii( SCSTYLE_SERVICE );
2153*b1cdbd2cSJim Jagielski pArray[1] = rtl::OUString::createFromAscii( bPage ? SCPAGESTYLE_SERVICE
2154*b1cdbd2cSJim Jagielski : SCCELLSTYLE_SERVICE );
2155*b1cdbd2cSJim Jagielski return aRet;
2156*b1cdbd2cSJim Jagielski }
2157*b1cdbd2cSJim Jagielski
2158*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
2159*b1cdbd2cSJim Jagielski
2160*b1cdbd2cSJim Jagielski
2161