LibreOffice Module reportdesign (master)  1
UITools.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 
21 #include <memory>
24 #include <SectionView.hxx>
25 #include <UITools.hxx>
26 #include <Formula.hxx>
27 #include <FunctionHelper.hxx>
28 #include <reportformula.hxx>
29 
30 #include <tools/diagnose_ex.h>
31 
32 #include <vcl/settings.hxx>
33 #include <vcl/syswin.hxx>
34 #include <vcl/svapp.hxx>
35 #include <vcl/unohelp.hxx>
36 #include <vcl/window.hxx>
37 
38 #include <com/sun/star/lang/NullPointerException.hpp>
39 #include <com/sun/star/beans/NamedValue.hpp>
40 #include <com/sun/star/beans/PropertyAttribute.hpp>
41 #include <svx/svdpool.hxx>
42 
44 #include <editeng/brushitem.hxx>
45 #include <editeng/fontitem.hxx>
47 #include <editeng/postitem.hxx>
48 #include <editeng/udlnitem.hxx>
50 #include <editeng/contouritem.hxx>
51 #include <editeng/langitem.hxx>
52 #include <editeng/wghtitem.hxx>
53 #include <editeng/fhgtitem.hxx>
54 #include <editeng/shdditem.hxx>
56 #include <editeng/wrlmitem.hxx>
57 #include <editeng/cmapitem.hxx>
58 #include <editeng/kernitem.hxx>
59 #include <editeng/blinkitem.hxx>
60 #include <editeng/flstitem.hxx>
61 #include <editeng/autokernitem.hxx>
62 #include <editeng/colritem.hxx>
63 #include <editeng/justifyitem.hxx>
64 #include <svx/drawitem.hxx>
65 #include <editeng/twolinesitem.hxx>
69 #include <editeng/memberids.h>
70 #include <svx/xgrscit.hxx>
71 #include <svx/svditer.hxx>
72 #include <svx/xtable.hxx>
73 #include <svx/svdview.hxx>
74 #include <svx/svdpage.hxx>
75 #include <svx/svxdlg.hxx>
76 #include <svx/unoprov.hxx>
77 #include <svx/svxids.hrc>
78 
79 #include <unotools/charclass.hxx>
80 #include <svtools/ctrltool.hxx>
81 #include <svl/itempool.hxx>
82 #include <svl/itemset.hxx>
83 #include <svl/sharedstringpool.hxx>
84 
87 
89 #include <connectivity/dbtools.hxx>
90 
91 #include <com/sun/star/style/VerticalAlignment.hpp>
92 #include <com/sun/star/report/XShape.hpp>
93 #include <com/sun/star/sdb/XParametersSupplier.hpp>
94 #include <com/sun/star/sdb/SQLContext.hpp>
96 #include <dlgpage.hxx>
97 #include <strings.hxx>
98 #include <core_resource.hxx>
99 #include <RptObject.hxx>
100 #include <RptDef.hxx>
101 #include <strings.hrc>
102 #include <ReportDefinition.hxx>
103 #include <RptModel.hxx>
104 
105 #include <svx/xflbckit.hxx>
106 #include <svx/xflbmpit.hxx>
107 #include <svx/xflbmsli.hxx>
108 #include <svx/xflbmsxy.hxx>
109 #include <svx/xflbmtit.hxx>
110 #include <svx/xflboxy.hxx>
111 #include <svx/xflbstit.hxx>
112 #include <svx/xflbtoxy.hxx>
113 
114 #include <svx/xbtmpit.hxx>
115 #include <svx/xfillit0.hxx>
116 #include <svx/xfltrit.hxx>
117 #include <svx/xflclit.hxx>
118 #include <svx/xflgrit.hxx>
119 #include <svx/xflhtit.hxx>
120 #include <svx/xflftrit.hxx>
121 #include <svx/xsflclit.hxx>
122 
123 #define ITEMID_FONT XATTR_FILL_LAST + 1
124 #define ITEMID_FONTHEIGHT XATTR_FILL_LAST + 2
125 #define ITEMID_LANGUAGE XATTR_FILL_LAST + 3
126 
127 #define ITEMID_POSTURE XATTR_FILL_LAST + 4
128 #define ITEMID_WEIGHT XATTR_FILL_LAST + 5
129 #define ITEMID_SHADOWED XATTR_FILL_LAST + 6
130 #define ITEMID_WORDLINEMODE XATTR_FILL_LAST + 7
131 #define ITEMID_CONTOUR XATTR_FILL_LAST + 8
132 #define ITEMID_CROSSEDOUT XATTR_FILL_LAST + 9
133 #define ITEMID_UNDERLINE XATTR_FILL_LAST + 10
134 
135 #define ITEMID_COLOR XATTR_FILL_LAST + 11
136 #define ITEMID_KERNING XATTR_FILL_LAST + 12
137 #define ITEMID_CASEMAP XATTR_FILL_LAST + 13
138 
139 #define ITEMID_ESCAPEMENT XATTR_FILL_LAST + 14
140 #define ITEMID_FONTLIST XATTR_FILL_LAST + 15
141 #define ITEMID_AUTOKERN XATTR_FILL_LAST + 16
142 #define ITEMID_COLOR_TABLE XATTR_FILL_LAST + 17
143 #define ITEMID_BLINK XATTR_FILL_LAST + 18
144 #define ITEMID_EMPHASISMARK XATTR_FILL_LAST + 19
145 #define ITEMID_TWOLINES XATTR_FILL_LAST + 20
146 #define ITEMID_CHARROTATE XATTR_FILL_LAST + 21
147 #define ITEMID_CHARSCALE_W XATTR_FILL_LAST + 22
148 #define ITEMID_CHARRELIEF XATTR_FILL_LAST + 23
149 #define ITEMID_CHARHIDDEN XATTR_FILL_LAST + 24
150 #define ITEMID_BRUSH XATTR_FILL_LAST + 25
151 #define ITEMID_HORJUSTIFY XATTR_FILL_LAST + 26
152 #define ITEMID_VERJUSTIFY XATTR_FILL_LAST + 27
153 #define ITEMID_FONT_ASIAN XATTR_FILL_LAST + 28
154 #define ITEMID_FONTHEIGHT_ASIAN XATTR_FILL_LAST + 29
155 #define ITEMID_LANGUAGE_ASIAN XATTR_FILL_LAST + 30
156 #define ITEMID_POSTURE_ASIAN XATTR_FILL_LAST + 31
157 #define ITEMID_WEIGHT_ASIAN XATTR_FILL_LAST + 32
158 #define ITEMID_FONT_COMPLEX XATTR_FILL_LAST + 33
159 #define ITEMID_FONTHEIGHT_COMPLEX XATTR_FILL_LAST + 34
160 #define ITEMID_LANGUAGE_COMPLEX XATTR_FILL_LAST + 35
161 #define ITEMID_POSTURE_COMPLEX XATTR_FILL_LAST + 36
162 #define ITEMID_WEIGHT_COMPLEX XATTR_FILL_LAST + 37
163 
164 #define WESTERN 0
165 #define ASIAN 1
166 #define COMPLEX 2
167 
168 namespace rptui
169 {
170 using namespace ::com::sun::star;
171 using namespace formula;
172 
173 void adjustSectionName(const uno::Reference< report::XGroup >& _xGroup,sal_Int32 _nPos)
174 {
175  OSL_ENSURE(_xGroup.is(),"Group is NULL -> GPF");
176  if ( _xGroup->getHeaderOn() && _xGroup->getHeader()->getName().isEmpty() )
177  {
178  OUString sName = RptResId(RID_STR_GROUPHEADER) + OUString::number(_nPos);
179  _xGroup->getHeader()->setName(sName);
180  }
181 
182  if ( _xGroup->getFooterOn() && _xGroup->getFooter()->getName().isEmpty() )
183  {
184  OUString sName = RptResId(RID_STR_GROUPFOOTER) + OUString::number(_nPos);
185  _xGroup->getFooter()->setName(sName);
186  }
187 }
188 
189 ::rtl::Reference< comphelper::OPropertyChangeMultiplexer> addStyleListener(const uno::Reference< report::XReportDefinition >& _xReportDefinition,::comphelper::OPropertyChangeListener* _pListener)
190 {
192  if ( _xReportDefinition.is() )
193  {
194  uno::Reference<beans::XPropertySet> xPageStyle(getUsedStyle(_xReportDefinition),uno::UNO_QUERY);
195  if ( xPageStyle.is() )
196  {
197  pRet = new comphelper::OPropertyChangeMultiplexer(_pListener,xPageStyle);
198  pRet->addProperty(PROPERTY_LEFTMARGIN);
199  pRet->addProperty(PROPERTY_RIGHTMARGIN);
200  pRet->addProperty(PROPERTY_PAPERSIZE);
201  pRet->addProperty(PROPERTY_BACKCOLOR);
202  }
203  }
204  return pRet;
205 }
206 
207 
208 namespace
209 {
210 
211  vcl::Font lcl_getReportControlFont( const uno::Reference<report::XReportControlFormat >& _rxReportControlFormat, awt::FontDescriptor& _out_rControlFont ,sal_uInt16 _nWichFont)
212  {
213  if ( !_rxReportControlFormat.is() )
214  throw uno::RuntimeException();
215 
216  switch(_nWichFont)
217  {
218  case WESTERN:
219  _out_rControlFont = _rxReportControlFormat->getFontDescriptor();
220  break;
221  case ASIAN:
222  _out_rControlFont = _rxReportControlFormat->getFontDescriptorAsian();
223  break;
224  case COMPLEX:
225  _out_rControlFont = _rxReportControlFormat->getFontDescriptorComplex();
226  break;
227 
228  }
229 
231  return VCLUnoHelper::CreateFont( _out_rControlFont, aDefaultFont );
232  }
233 
234 
235  vcl::Font lcl_getReportControlFont( const uno::Reference<report::XReportControlFormat >& _rxReportControlFormat,sal_uInt16 _nWhich )
236  {
237  awt::FontDescriptor aAwtFont;
238  return lcl_getReportControlFont( _rxReportControlFormat, aAwtFont, _nWhich );
239  }
240 
241  vcl::Font lcl_setFont(const uno::Reference<report::XReportControlFormat >& _rxReportControlFormat,
242  SfxItemSet& _rItemSet,sal_uInt16 _nWhich,sal_uInt16 _nFont, sal_uInt16 _nFontHeight,sal_uInt16 _nLanguage,sal_uInt16 _nPosture, sal_uInt16 _nWeight)
243  {
244  // fill it
245  awt::FontDescriptor aControlFont;
246  const vcl::Font aFont( lcl_getReportControlFont( _rxReportControlFormat, aControlFont,_nWhich ) );
247 
248  SvxFontItem aFontItem(_nFont);
249  aFontItem.PutValue( uno::makeAny( aControlFont ), 0 );
250  _rItemSet.Put(aFontItem);
251 
252  _rItemSet.Put(SvxFontHeightItem(OutputDevice::LogicToLogic(Size(0, aFont.GetFontHeight()), MapMode(MapUnit::MapPoint), MapMode(MapUnit::MapTwip)).Height(), 100, _nFontHeight));
253  lang::Locale aLocale;
254  switch(_nWhich)
255  {
256  default:
257  aLocale = _rxReportControlFormat->getCharLocale();
258  break;
259  case ASIAN:
260  aLocale = _rxReportControlFormat->getCharLocaleAsian();
261  break;
262  case COMPLEX:
263  aLocale = _rxReportControlFormat->getCharLocaleComplex();
264  break;
265  }
266 
267  _rItemSet.Put(SvxLanguageItem(LanguageTag(aLocale).makeFallback().getLanguageType(),_nLanguage));
268 
269  _rItemSet.Put(SvxPostureItem(aFont.GetItalic(),_nPosture));
270  _rItemSet.Put(SvxWeightItem(aFont.GetWeight(),_nWeight));
271  return aFont;
272  }
273 
274  void lcl_fillShapeToItems( const uno::Reference<report::XShape >& _xShape,SfxItemSet& _rItemSet )
275  {
276  uno::Reference< beans::XPropertySetInfo> xInfo = _xShape->getPropertySetInfo();
278  const SfxItemPropertyMap& rPropertyMap = aMap.GetPropertySet(SVXMAP_CUSTOMSHAPE, SdrObject::GetGlobalDrawObjectItemPool())->getPropertyMap();
279  for (const auto pProp : rPropertyMap.getPropertyEntries())
280  {
281  if ( xInfo->hasPropertyByName(pProp->aName) )
282  {
283  const SfxPoolItem* pItem = _rItemSet.GetItem(pProp->nWID);
284  if ( pItem )
285  {
286  ::std::unique_ptr<SfxPoolItem> pClone(pItem->CloneSetWhich(pProp->nWID));
287  pClone->PutValue(_xShape->getPropertyValue(pProp->aName), pProp->nMemberId);
288  _rItemSet.Put(std::move(pClone));
289  }
290  }
291  }
292  }
293 
294  void lcl_fillItemsToShape( const uno::Reference<report::XShape >& _xShape,const SfxItemSet& _rItemSet )
295  {
296  const uno::Reference< beans::XPropertySetInfo> xInfo = _xShape->getPropertySetInfo();
298  const SfxItemPropertyMap& rPropertyMap = aMap.GetPropertySet(SVXMAP_CUSTOMSHAPE, SdrObject::GetGlobalDrawObjectItemPool())->getPropertyMap();
299  for (const auto pProp : rPropertyMap.getPropertyEntries())
300  {
301  if ( SfxItemState::SET == _rItemSet.GetItemState(pProp->nWID) && xInfo->hasPropertyByName(pProp->aName) )
302  {
303  if ( ( pProp->nFlags & beans::PropertyAttribute::READONLY ) != beans::PropertyAttribute::READONLY )
304  {
305  const SfxPoolItem* pItem = _rItemSet.GetItem(pProp->nWID);
306  if ( pItem )
307  {
308  uno::Any aValue;
309  pItem->QueryValue(aValue, pProp->nMemberId);
310  try
311  {
312  _xShape->setPropertyValue(pProp->aName, aValue);
313  }
314  catch(uno::Exception&)
315  { // shapes have a bug so we ignore this one.
316  }
317  }
318  }
319  }
320  }
321  }
322 
323  void lcl_CharPropertiesToItems( const uno::Reference<report::XReportControlFormat >& _rxReportControlFormat,
324  SfxItemSet& _rItemSet )
325  {
326  if ( !_rxReportControlFormat.is() )
327  throw lang::NullPointerException();
328 
329  uno::Reference< beans::XPropertySet > xSet(_rxReportControlFormat,uno::UNO_QUERY_THROW);
330 
331  // fill it
332  const vcl::Font aFont( lcl_setFont(_rxReportControlFormat, _rItemSet,WESTERN,ITEMID_FONT,ITEMID_FONTHEIGHT,ITEMID_LANGUAGE,ITEMID_POSTURE,ITEMID_WEIGHT ) );
333 
334  _rItemSet.Put(SvxShadowedItem(_rxReportControlFormat->getCharShadowed(),ITEMID_SHADOWED));
335  _rItemSet.Put(SvxWordLineModeItem(aFont.IsWordLineMode(),ITEMID_WORDLINEMODE));
336  _rItemSet.Put(SvxContourItem(_rxReportControlFormat->getCharContoured(),ITEMID_CONTOUR));
337  _rItemSet.Put(SvxAutoKernItem(_rxReportControlFormat->getCharAutoKerning(),ITEMID_AUTOKERN));
338  _rItemSet.Put(SvxCrossedOutItem(aFont.GetStrikeout(),ITEMID_CROSSEDOUT));
339  _rItemSet.Put(SvxCaseMapItem(static_cast<SvxCaseMap>(_rxReportControlFormat->getCharCaseMap()),ITEMID_CASEMAP));
340 
341  _rItemSet.Put(SvxEscapementItem(_rxReportControlFormat->getCharEscapement(),_rxReportControlFormat->getCharEscapementHeight(),ITEMID_ESCAPEMENT));
342  _rItemSet.Put(SvxBlinkItem(_rxReportControlFormat->getCharFlash(),ITEMID_BLINK));
343  _rItemSet.Put(SvxCharHiddenItem(_rxReportControlFormat->getCharHidden(),ITEMID_CHARHIDDEN));
344  _rItemSet.Put(SvxTwoLinesItem(_rxReportControlFormat->getCharCombineIsOn(),_rxReportControlFormat->getCharCombinePrefix().toChar(),_rxReportControlFormat->getCharCombineSuffix().toChar(),ITEMID_TWOLINES));
345  SvxUnderlineItem aUnderLineItem(aFont.GetUnderline(),ITEMID_UNDERLINE);
346  aUnderLineItem.SetColor(Color(ColorTransparency, _rxReportControlFormat->getCharUnderlineColor()));
347  _rItemSet.Put(aUnderLineItem);
348  _rItemSet.Put(SvxKerningItem(_rxReportControlFormat->getCharKerning(),ITEMID_KERNING));
349  _rItemSet.Put(SvxEmphasisMarkItem(static_cast<FontEmphasisMark>(_rxReportControlFormat->getCharEmphasis()),ITEMID_EMPHASISMARK));
350  _rItemSet.Put(SvxCharReliefItem(static_cast<FontRelief>(_rxReportControlFormat->getCharRelief()),ITEMID_CHARRELIEF));
351  _rItemSet.Put(SvxColorItem(::Color(ColorTransparency, _rxReportControlFormat->getCharColor()),ITEMID_COLOR));
352  _rItemSet.Put(SvxCharRotateItem(Degree10(_rxReportControlFormat->getCharRotation()),false,ITEMID_CHARROTATE));
353  _rItemSet.Put(SvxCharScaleWidthItem(_rxReportControlFormat->getCharScaleWidth(),ITEMID_CHARSCALE_W));
354 
355  SvxHorJustifyItem aHorJustifyItem(ITEMID_HORJUSTIFY);
356  aHorJustifyItem.PutValue(xSet->getPropertyValue(PROPERTY_PARAADJUST),MID_HORJUST_ADJUST);
357  _rItemSet.Put(aHorJustifyItem);
358  SvxVerJustifyItem aVerJustifyItem(ITEMID_VERJUSTIFY);
359  aVerJustifyItem.PutValue(xSet->getPropertyValue(PROPERTY_VERTICALALIGN),MID_HORJUST_ADJUST);
360  _rItemSet.Put(aVerJustifyItem);
361 
362  uno::Reference< report::XShape> xShape(_rxReportControlFormat,uno::UNO_QUERY);
363  if ( !xShape.is() )
364  _rItemSet.Put(SvxBrushItem(::Color(ColorTransparency, _rxReportControlFormat->getControlBackground()),ITEMID_BRUSH));
365 
368  }
369 
370 
371  void lcl_pushBack( uno::Sequence< beans::NamedValue >& _out_rProperties, const OUString& _sName, const uno::Any& _rValue )
372  {
373  sal_Int32 nLen( _out_rProperties.getLength() );
374  _out_rProperties.realloc( nLen + 1 );
375  _out_rProperties[ nLen ] = beans::NamedValue( _sName, _rValue );
376  }
377 
378 
379  void lcl_initAwtFont( const vcl::Font& _rOriginalFont, const SfxItemSet& _rItemSet, awt::FontDescriptor& _out_rAwtFont,
380  sal_uInt16 _nFont, sal_uInt16 _nFontHeight,sal_uInt16 _nPosture, sal_uInt16 _nWeight)
381  {
382  vcl::Font aNewFont( _rOriginalFont );
383  const SfxPoolItem* pItem( nullptr );
384  if ( SfxItemState::SET == _rItemSet.GetItemState( _nFont,true,&pItem) )
385  if ( auto pFontItem = dynamic_cast< const SvxFontItem *>( pItem ) )
386  {
387  aNewFont.SetFamilyName(pFontItem->GetFamilyName());
388  aNewFont.SetStyleName(pFontItem->GetStyleName());
389  aNewFont.SetFamily(pFontItem->GetFamily());
390  aNewFont.SetPitch(pFontItem->GetPitch());
391  aNewFont.SetCharSet(pFontItem->GetCharSet());
392  }
393  if ( SfxItemState::SET == _rItemSet.GetItemState( _nFontHeight,true,&pItem) )
394  if ( auto pFontItem = dynamic_cast< const SvxFontHeightItem *>( pItem ) )
395  {
396  aNewFont.SetFontHeight(OutputDevice::LogicToLogic(Size(0, pFontItem->GetHeight()), MapMode(MapUnit::MapTwip), MapMode(MapUnit::MapPoint)).Height());
397  }
398  if ( SfxItemState::SET == _rItemSet.GetItemState( _nPosture,true,&pItem) )
399  if ( auto pFontItem = dynamic_cast< const SvxPostureItem *>( pItem ) )
400  {
401  aNewFont.SetItalic(pFontItem->GetPosture());
402  }
403  if ( SfxItemState::SET == _rItemSet.GetItemState( _nWeight,true,&pItem) )
404  if ( auto pFontItem = dynamic_cast< const SvxWeightItem *>( pItem ) )
405  {
406  aNewFont.SetWeight(pFontItem->GetWeight());
407  }
408  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_WORDLINEMODE,true,&pItem) )
409  if ( auto pFontItem = dynamic_cast< const SvxWordLineModeItem *>( pItem ) )
410  {
411  aNewFont.SetWordLineMode(pFontItem->GetValue());
412  }
413  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CROSSEDOUT,true,&pItem) )
414  if ( auto pFontItem = dynamic_cast< const SvxCrossedOutItem *>( pItem ) )
415  {
416  aNewFont.SetStrikeout(pFontItem->GetStrikeout());
417  }
418 
419  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARROTATE,true,&pItem) )
420  if ( auto pRotateItem = dynamic_cast< const SvxCharRotateItem *>( pItem ) )
421  {
422  aNewFont.SetOrientation(pRotateItem->GetValue());
423  }
424  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARSCALE_W,true,&pItem) )
425  if ( auto pCharItem = dynamic_cast< const SvxCharScaleWidthItem *>( pItem ) )
426  {
427  aNewFont.SetWidthType(vcl::unohelper::ConvertFontWidth(pCharItem->GetValue()));
428  }
429  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_UNDERLINE,true,&pItem) )
430  if ( auto pFontItem = dynamic_cast< const SvxUnderlineItem *>( pItem ) )
431  {
432  aNewFont.SetUnderline(pFontItem->GetLineStyle());
433  }
434  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_COLOR,true,&pItem) )
435  if ( auto pFontItem = dynamic_cast< const SvxColorItem *>( pItem ) )
436  {
437  aNewFont.SetColor(pFontItem->GetValue());
438  }
439 
440  _out_rAwtFont = VCLUnoHelper::CreateFontDescriptor( aNewFont );
441  }
442 
443 
444  void lcl_itemsToCharProperties( const vcl::Font& _rOriginalControlFont,const vcl::Font& _rOriginalControlFontAsian,const vcl::Font& _rOriginalControlFontComplex, const SfxItemSet& _rItemSet, uno::Sequence< beans::NamedValue >& _out_rProperties )
445  {
446  const SfxPoolItem* pItem( nullptr );
447 
448  // create an AWT font
449  awt::FontDescriptor aAwtFont;
450  lcl_initAwtFont( _rOriginalControlFont, _rItemSet, aAwtFont,ITEMID_FONT,ITEMID_FONTHEIGHT,ITEMID_POSTURE, ITEMID_WEIGHT);
451  lcl_pushBack( _out_rProperties, "Font", uno::makeAny( aAwtFont ) );
452  lcl_initAwtFont( _rOriginalControlFontAsian, _rItemSet, aAwtFont,ITEMID_FONT_ASIAN,ITEMID_FONTHEIGHT_ASIAN,ITEMID_POSTURE_ASIAN, ITEMID_WEIGHT_ASIAN);
453  lcl_pushBack( _out_rProperties, "FontAsian", uno::makeAny( aAwtFont ) );
454  lcl_initAwtFont( _rOriginalControlFontComplex, _rItemSet, aAwtFont,ITEMID_FONT_COMPLEX,ITEMID_FONTHEIGHT_COMPLEX,ITEMID_POSTURE_COMPLEX, ITEMID_WEIGHT_COMPLEX);
455  lcl_pushBack( _out_rProperties, "FontComplex", uno::makeAny( aAwtFont ) );
456 
457  // properties which cannot be represented in an AWT font need to be preserved directly
458  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_SHADOWED,true,&pItem) )
459  if (auto pShadowedItem = dynamic_cast<const SvxShadowedItem *>( pItem ))
460  lcl_pushBack( _out_rProperties, PROPERTY_CHARSHADOWED, uno::makeAny( pShadowedItem->GetValue() ) );
461  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CONTOUR,true,&pItem) )
462  if (auto pContourItem = dynamic_cast<const SvxContourItem *>( pItem ))
463  lcl_pushBack( _out_rProperties, PROPERTY_CHARCONTOURED, uno::makeAny( pContourItem->GetValue() ) );
464  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_UNDERLINE,true,&pItem) )
465  if (auto pUnderlineItem = dynamic_cast< const SvxUnderlineItem *>( pItem ))
466  lcl_pushBack( _out_rProperties, PROPERTY_CHARUNDERLINECOLOR, uno::makeAny( pUnderlineItem->GetColor() ) );
467  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_HORJUSTIFY,true,&pItem) )
468  if (auto pJustifyItem = dynamic_cast< const SvxHorJustifyItem *>( pItem ))
469  {
470  uno::Any aValue;
471  pJustifyItem->QueryValue(aValue,MID_HORJUST_ADJUST);
472  lcl_pushBack( _out_rProperties, PROPERTY_PARAADJUST, aValue );
473  }
474  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_VERJUSTIFY,true,&pItem) )
475  if (auto pJustifyItem = dynamic_cast< const SvxVerJustifyItem *>( pItem ))
476  {
477  uno::Any aValue;
478  pJustifyItem->QueryValue(aValue,MID_HORJUST_ADJUST);
479  lcl_pushBack( _out_rProperties, PROPERTY_VERTICALALIGN, aValue );
480  }
481  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARRELIEF,true,&pItem) )
482  if (auto pReliefItem = dynamic_cast< const SvxCharReliefItem *>( pItem ))
483  lcl_pushBack( _out_rProperties, PROPERTY_CHARRELIEF, uno::makeAny( static_cast< sal_Int16 >( pReliefItem->GetEnumValue() ) ) );
484  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARHIDDEN,true,&pItem) )
485  if (auto pHiddenItem = dynamic_cast< const SvxCharHiddenItem *>( pItem ))
486  lcl_pushBack( _out_rProperties, PROPERTY_CHARHIDDEN, uno::makeAny( pHiddenItem->GetValue() ) );
487  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_AUTOKERN,true,&pItem) )
488  if (auto pKernItem = dynamic_cast< const SvxAutoKernItem *>( pItem ))
489  lcl_pushBack( _out_rProperties, PROPERTY_CHARAUTOKERNING, uno::makeAny( pKernItem->GetValue() ) );
490  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_BRUSH,true,&pItem) )
491  if (auto pBrushItem = dynamic_cast< const SvxBrushItem *>( pItem ))
492  lcl_pushBack( _out_rProperties, PROPERTY_CONTROLBACKGROUND, uno::makeAny( pBrushItem->GetColor() ) );
493  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_BLINK,true,&pItem) )
494  if (auto pBlinkItem = dynamic_cast< const SvxBlinkItem *>( pItem ))
495  lcl_pushBack( _out_rProperties, PROPERTY_CHARFLASH, uno::makeAny( pBlinkItem->GetValue() ) );
496  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_EMPHASISMARK,true,&pItem) )
497  if (auto pMarkItem = dynamic_cast< const SvxEmphasisMarkItem *>( pItem ))
498  lcl_pushBack( _out_rProperties, PROPERTY_CHAREMPHASIS, uno::makeAny( static_cast< sal_Int16 >( pMarkItem->GetEmphasisMark() ) ) );
499  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_TWOLINES,true,&pItem) )
500  if (auto pLinesItem = dynamic_cast< const SvxTwoLinesItem *>( pItem ))
501  {
502  lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINEISON, uno::makeAny( pLinesItem->GetValue() ) );
503  lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINEPREFIX, uno::makeAny( OUString( pLinesItem->GetStartBracket() ) ) );
504  lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINESUFFIX, uno::makeAny( OUString( pLinesItem->GetEndBracket() ) ) );
505  }
506  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_COLOR,true,&pItem) )
507  if (auto pColorItem = dynamic_cast< const SvxColorItem *>( pItem ))
508  lcl_pushBack( _out_rProperties, PROPERTY_CHARCOLOR, uno::makeAny( pColorItem->GetValue() ) );
509  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_KERNING,true,&pItem) )
510  if (auto pKernItem = dynamic_cast< const SvxKerningItem *>( pItem ))
511  lcl_pushBack( _out_rProperties, PROPERTY_CHARKERNING, uno::makeAny( pKernItem->GetValue() ) );
512  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CASEMAP,true,&pItem) )
513  if (auto pCaseMapItem = dynamic_cast< const SvxCaseMapItem *>( pItem ))
514  lcl_pushBack( _out_rProperties, PROPERTY_CHARCASEMAP, uno::makeAny( pCaseMapItem->GetEnumValue() ) );
515  struct Items {
516  sal_uInt16 nWhich;
517  OUString sPropertyName;
518  };
519  const Items pItems[] = { {ITEMID_LANGUAGE,OUString(PROPERTY_CHARLOCALE)}
522  };
523  for(const auto & k : pItems)
524  {
525  if ( SfxItemState::SET == _rItemSet.GetItemState( k.nWhich,true,&pItem) )
526  if (auto pLanguageItem = dynamic_cast< const SvxLanguageItem *>( pItem ))
527  {
528  lang::Locale aCharLocale( LanguageTag( pLanguageItem->GetLanguage()).getLocale());
529  lcl_pushBack( _out_rProperties, k.sPropertyName, uno::makeAny( aCharLocale ) );
530  }
531  }
532  if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_ESCAPEMENT,true,&pItem) )
533  if (auto pEscapementItem = dynamic_cast< const SvxEscapementItem *>( pItem ))
534  {
535  lcl_pushBack( _out_rProperties, PROPERTY_CHARESCAPEMENT, uno::makeAny( pEscapementItem->GetEsc() ) );
536  lcl_pushBack( _out_rProperties, PROPERTY_CHARESCAPEMENTHEIGHT, uno::makeAny(static_cast<sal_Int8>(pEscapementItem->GetProportionalHeight())) );
537  }
538  }
539 
540 
541  template< class ATTRIBUTE_TYPE >
542  void lcl_applyFontAttribute( const ::comphelper::NamedValueCollection& _rAttrValues, const char* _pAttributeName,
543  const uno::Reference<report::XReportControlFormat >& _rxReportControlFormat,
544  void (SAL_CALL report::XReportControlFormat::*pSetter)( ATTRIBUTE_TYPE ) )
545  {
546  ATTRIBUTE_TYPE aAttributeValue = ATTRIBUTE_TYPE();
547  if ( _rAttrValues.get_ensureType( _pAttributeName, aAttributeValue ) )
548  (_rxReportControlFormat.get()->*pSetter)( aAttributeValue );
549  }
550 
551 
552  void lcl_applyFontAttribute( const ::comphelper::NamedValueCollection& _rAttrValues, const char* _pAttributeName,
553  const uno::Reference<report::XReportControlFormat >& _rxReportControlFormat,
554  void (SAL_CALL report::XReportControlFormat::*pSetter)( const OUString& ) )
555  {
556  OUString aAttributeValue;
557  if ( _rAttrValues.get_ensureType( _pAttributeName, aAttributeValue ) )
558  (_rxReportControlFormat.get()->*pSetter)( aAttributeValue );
559  }
560 
561 
562  void lcl_applyFontAttribute( const ::comphelper::NamedValueCollection& _rAttrValues, const char* _pAttributeName,
563  const uno::Reference<report::XReportControlFormat >& _rxReportControlFormat,
564  void (SAL_CALL report::XReportControlFormat::*pSetter)( const lang::Locale& ) )
565  {
566  lang::Locale aAttributeValue;
567  if ( _rAttrValues.get_ensureType( _pAttributeName, aAttributeValue ) )
568  (_rxReportControlFormat.get()->*pSetter)( aAttributeValue );
569  }
570 }
571 
572 
573 bool openCharDialog( const uno::Reference<report::XReportControlFormat >& _rxReportControlFormat,
574  const uno::Reference< awt::XWindow>& _rxParentWindow, uno::Sequence< beans::NamedValue >& _out_rNewValues )
575 {
576  OSL_PRECOND( _rxReportControlFormat.is() && _rxParentWindow.is(), "openCharDialog: invalid parameters!" );
577  if ( !_rxReportControlFormat.is() || !_rxParentWindow.is() )
578  return false;
579 
580  _out_rNewValues = uno::Sequence< beans::NamedValue >();
581 
582 
583  // UNO->ItemSet
584  static SfxItemInfo aItemInfos[] =
585  {
586  { XATTR_FILLSTYLE, true },
587  { XATTR_FILLCOLOR, true },
588  { XATTR_FILLGRADIENT, true },
589  { XATTR_FILLHATCH, true },
590  { XATTR_FILLBITMAP, true },
591  { XATTR_FILLTRANSPARENCE, true },
592  { XATTR_GRADIENTSTEPCOUNT, true },
593  { XATTR_FILLBMP_TILE, true },
594  { XATTR_FILLBMP_POS, true },
595  { XATTR_FILLBMP_SIZEX, true },
596  { XATTR_FILLBMP_SIZEY, true },
597  { XATTR_FILLFLOATTRANSPARENCE, true },
598  { XATTR_SECONDARYFILLCOLOR, true },
599  { XATTR_FILLBMP_SIZELOG, true },
600  { XATTR_FILLBMP_TILEOFFSETX, true },
601  { XATTR_FILLBMP_TILEOFFSETY, true },
602  { XATTR_FILLBMP_STRETCH, true },
603  { XATTR_FILLBMP_POSOFFSETX, true },
604  { XATTR_FILLBMP_POSOFFSETY, true },
605  { XATTR_FILLBACKGROUND, true },
606 
607  { SID_ATTR_CHAR_FONT, true },
608  { SID_ATTR_CHAR_FONTHEIGHT, true },
609  { SID_ATTR_CHAR_LANGUAGE, true },
610  { SID_ATTR_CHAR_POSTURE, true },
611  { SID_ATTR_CHAR_WEIGHT, true },
612  { SID_ATTR_CHAR_SHADOWED, true },
613  { SID_ATTR_CHAR_WORDLINEMODE, true },
614  { SID_ATTR_CHAR_CONTOUR, true },
615  { SID_ATTR_CHAR_STRIKEOUT, true },
616  { SID_ATTR_CHAR_UNDERLINE, true },
617  { SID_ATTR_CHAR_COLOR, true },
618  { SID_ATTR_CHAR_KERNING, true },
619  { SID_ATTR_CHAR_CASEMAP, true },
620  { SID_ATTR_CHAR_ESCAPEMENT, true },
621  { SID_ATTR_CHAR_FONTLIST, true },
622  { SID_ATTR_CHAR_AUTOKERN, true },
623  { SID_COLOR_TABLE, true },
624  { SID_ATTR_FLASH, true },
625  { SID_ATTR_CHAR_EMPHASISMARK, true },
626  { SID_ATTR_CHAR_TWO_LINES, true },
627  { SID_ATTR_CHAR_ROTATED, true },
628  { SID_ATTR_CHAR_SCALEWIDTH, true },
629  { SID_ATTR_CHAR_RELIEF, true },
630  { SID_ATTR_CHAR_HIDDEN, true },
631  { SID_ATTR_BRUSH, true },
632  { SID_ATTR_ALIGN_HOR_JUSTIFY, true },
633  { SID_ATTR_ALIGN_VER_JUSTIFY, true },
634 
635  // Asian
636  { SID_ATTR_CHAR_CJK_FONT, true },
637  { SID_ATTR_CHAR_CJK_FONTHEIGHT, true },
638  { SID_ATTR_CHAR_CJK_LANGUAGE, true },
639  { SID_ATTR_CHAR_CJK_POSTURE, true },
640  { SID_ATTR_CHAR_CJK_WEIGHT, true },
641  // Complex
642  { SID_ATTR_CHAR_CTL_FONT, true },
643  { SID_ATTR_CHAR_CTL_FONTHEIGHT, true },
644  { SID_ATTR_CHAR_CTL_LANGUAGE, true },
645  { SID_ATTR_CHAR_CTL_POSTURE, true },
646  { SID_ATTR_CHAR_CTL_WEIGHT, true }
647  };
648  ::std::unique_ptr<FontList> pFontList(new FontList(Application::GetDefaultDevice()));
650  const Graphic aNullGraphic;
651  const ::Color aNullLineCol(COL_DEFAULT_SHAPE_STROKE); // #i121448# Use defined default color
652  const ::Color aNullFillCol(COL_DEFAULT_SHAPE_FILLING); // #i121448# Use defined default color
653  const XGradient aNullGrad(COL_BLACK, COL_WHITE);
654  const XHatch aNullHatch(aNullLineCol);
655  std::vector<SfxPoolItem*> pDefaults
656  {
657  new XFillStyleItem,
658  new XFillColorItem("", aNullFillCol),
659  new XFillGradientItem(aNullGrad),
660  new XFillHatchItem(aNullHatch),
661  new XFillBitmapItem(aNullGraphic),
664  new XFillBmpTileItem,
665  new XFillBmpPosItem,
666  new XFillBmpSizeXItem,
667  new XFillBmpSizeYItem,
668  new XFillFloatTransparenceItem(aNullGrad, false),
669  new XSecondaryFillColorItem("", aNullFillCol),
677 
683 
684  new SvxShadowedItem(false,ITEMID_SHADOWED),
686  new SvxContourItem(false,ITEMID_CONTOUR),
689 
692  new SvxCaseMapItem(SvxCaseMap::NotMapped,ITEMID_CASEMAP),
694  new SvxFontListItem(pFontList.get(),ITEMID_FONTLIST),
695  new SvxAutoKernItem(false,ITEMID_AUTOKERN),
696  new SvxColorListItem(pColorList,ITEMID_COLOR_TABLE),
697  new SvxBlinkItem(false,ITEMID_BLINK),
698  new SvxEmphasisMarkItem(FontEmphasisMark::NONE,ITEMID_EMPHASISMARK),
699  new SvxTwoLinesItem(true,0,0,ITEMID_TWOLINES),
700  new SvxCharRotateItem(0_deg10,false,ITEMID_CHARROTATE),
702  new SvxCharReliefItem(FontRelief::NONE,ITEMID_CHARRELIEF),
707 // Asian
713 // Complex
719 
720  };
721 
722  OSL_ASSERT( pDefaults.size() == SAL_N_ELEMENTS(aItemInfos) );
723 
724  static const sal_uInt16 pRanges[] =
725  {
727  0
728  };
729 
730  std::unique_ptr<SfxItemPool, SfxItemPoolDeleter> pPool(new SfxItemPool("ReportCharProperties", XATTR_FILL_FIRST,ITEMID_WEIGHT_COMPLEX, aItemInfos, &pDefaults));
731  // not needed for font height pPool->SetDefaultMetric( MapUnit::Map100thMM ); // ripped, don't understand why
732  pPool->FreezeIdRanges(); // the same
733  bool bSuccess = false;
734  try
735  {
736  ::std::unique_ptr<SfxItemSet> pDescriptor( new SfxItemSet( *pPool, pRanges ) );
737  lcl_CharPropertiesToItems( _rxReportControlFormat, *pDescriptor );
738 
739  { // want the dialog to be destroyed before our set
740  ORptPageDialog aDlg(Application::GetFrameWeld(_rxParentWindow), pDescriptor.get(), "CharDialog");
741  uno::Reference< report::XShape > xShape( _rxReportControlFormat, uno::UNO_QUERY );
742  if ( xShape.is() )
743  aDlg.RemoveTabPage("background");
744  bSuccess = aDlg.run() == RET_OK;
745  if ( bSuccess )
746  {
747  lcl_itemsToCharProperties( lcl_getReportControlFont( _rxReportControlFormat,WESTERN ),
748  lcl_getReportControlFont( _rxReportControlFormat,ASIAN ),
749  lcl_getReportControlFont( _rxReportControlFormat,COMPLEX ), *aDlg.GetOutputItemSet(), _out_rNewValues );
750  }
751  }
752  }
753  catch(uno::Exception&)
754  {
755  DBG_UNHANDLED_EXCEPTION("reportdesign");
756  }
757 
758  pPool.reset();
759  for (SfxPoolItem* pDefault : pDefaults)
760  delete pDefault;
761 
762  return bSuccess;
763 }
764 
765 bool openAreaDialog( const uno::Reference<report::XShape >& _xShape,const uno::Reference< awt::XWindow>& _rxParentWindow )
766 {
767  OSL_PRECOND( _xShape.is() && _rxParentWindow.is(), "openAreaDialog: invalid parameters!" );
768  if ( !_xShape.is() || !_rxParentWindow.is() )
769  return false;
770 
771  std::shared_ptr<rptui::OReportModel> pModel = ::reportdesign::OReportDefinition::getSdrModel(_xShape->getSection()->getReportDefinition());
772 
773  weld::Window* pParent = Application::GetFrameWeld(_rxParentWindow);
774 
775  bool bSuccess = false;
776  try
777  {
778  SfxItemPool& rItemPool = pModel->GetItemPool();
779  ::std::unique_ptr<SfxItemSet> pDescriptor( new SfxItemSet( rItemPool, {{rItemPool.GetFirstWhich(),rItemPool.GetLastWhich()}} ) );
780  lcl_fillShapeToItems(_xShape,*pDescriptor);
781 
782  { // want the dialog to be destroyed before our set
784  ScopedVclPtr<AbstractSvxAreaTabDialog> pDialog(pFact->CreateSvxAreaTabDialog(pParent, pDescriptor.get(), pModel.get(), true));
785  if ( RET_OK == pDialog->Execute() )
786  {
787  bSuccess = true;
788  lcl_fillItemsToShape(_xShape,*pDialog->GetOutputItemSet());
789  }
790  }
791  }
792  catch(uno::Exception&)
793  {
794  DBG_UNHANDLED_EXCEPTION("reportdesign");
795  }
796 
797  return bSuccess;
798 }
799 
800 
801 void applyCharacterSettings( const uno::Reference< report::XReportControlFormat >& _rxReportControlFormat, const uno::Sequence< beans::NamedValue >& _rSettings )
802 {
803  ::comphelper::NamedValueCollection aSettings( _rSettings );
804 
805  try
806  {
807  awt::FontDescriptor aAwtFont;
808  if ( aSettings.get( "Font" ) >>= aAwtFont )
809  {
810  OUString sTemp = aAwtFont.Name;
811  aAwtFont.Name.clear(); // hack to
812  _rxReportControlFormat->setFontDescriptor( aAwtFont );
813  _rxReportControlFormat->setCharFontName( sTemp );
814  }
815  if ( aSettings.get( "FontAsian" ) >>= aAwtFont )
816  {
817  OUString sTemp = aAwtFont.Name;
818  aAwtFont.Name.clear(); // hack to
819  _rxReportControlFormat->setFontDescriptorAsian( aAwtFont );
820  _rxReportControlFormat->setCharFontNameAsian( sTemp );
821  }
822  if ( aSettings.get( "FontComplex" ) >>= aAwtFont )
823  {
824  OUString sTemp = aAwtFont.Name;
825  aAwtFont.Name.clear(); // hack to
826  _rxReportControlFormat->setFontDescriptorComplex( aAwtFont );
827  _rxReportControlFormat->setCharFontNameComplex( sTemp );
828  }
829 
830  lcl_applyFontAttribute( aSettings, PROPERTY_CHARSHADOWED, _rxReportControlFormat, &report::XReportControlFormat::setCharShadowed );
831  lcl_applyFontAttribute( aSettings, PROPERTY_CHARCONTOURED, _rxReportControlFormat, &report::XReportControlFormat::setCharContoured );
832  lcl_applyFontAttribute( aSettings, PROPERTY_CHARUNDERLINECOLOR, _rxReportControlFormat, &report::XReportControlFormat::setCharUnderlineColor );
833  lcl_applyFontAttribute( aSettings, PROPERTY_PARAADJUST, _rxReportControlFormat, &report::XReportControlFormat::setParaAdjust );
834  lcl_applyFontAttribute( aSettings, PROPERTY_VERTICALALIGN, _rxReportControlFormat, &report::XReportControlFormat::setVerticalAlign );
835  lcl_applyFontAttribute( aSettings, PROPERTY_CHARRELIEF, _rxReportControlFormat, &report::XReportControlFormat::setCharRelief );
836  lcl_applyFontAttribute( aSettings, PROPERTY_CHARHIDDEN, _rxReportControlFormat, &report::XReportControlFormat::setCharHidden );
837  lcl_applyFontAttribute( aSettings, PROPERTY_CHARAUTOKERNING, _rxReportControlFormat, &report::XReportControlFormat::setCharAutoKerning );
838  lcl_applyFontAttribute( aSettings, PROPERTY_CONTROLBACKGROUND, _rxReportControlFormat, &report::XReportControlFormat::setControlBackground );
839  lcl_applyFontAttribute( aSettings, PROPERTY_CHARFLASH, _rxReportControlFormat, &report::XReportControlFormat::setCharFlash );
840  lcl_applyFontAttribute( aSettings, PROPERTY_CHAREMPHASIS, _rxReportControlFormat, &report::XReportControlFormat::setCharEmphasis );
841  lcl_applyFontAttribute( aSettings, PROPERTY_CHARCOMBINEISON, _rxReportControlFormat, &report::XReportControlFormat::setCharCombineIsOn );
842  lcl_applyFontAttribute( aSettings, PROPERTY_CHARCOMBINEPREFIX, _rxReportControlFormat, &report::XReportControlFormat::setCharCombinePrefix );
843  lcl_applyFontAttribute( aSettings, PROPERTY_CHARCOMBINESUFFIX, _rxReportControlFormat, &report::XReportControlFormat::setCharCombineSuffix );
844  lcl_applyFontAttribute( aSettings, PROPERTY_CHARCOLOR, _rxReportControlFormat, &report::XReportControlFormat::setCharColor );
845  lcl_applyFontAttribute( aSettings, PROPERTY_CHARKERNING, _rxReportControlFormat, &report::XReportControlFormat::setCharKerning );
846  lcl_applyFontAttribute( aSettings, PROPERTY_CHARCASEMAP, _rxReportControlFormat, &report::XReportControlFormat::setCharCaseMap );
847  lcl_applyFontAttribute( aSettings, PROPERTY_CHARLOCALE, _rxReportControlFormat, &report::XReportControlFormat::setCharLocale );
848  lcl_applyFontAttribute( aSettings, PROPERTY_CHARESCAPEMENT, _rxReportControlFormat, &report::XReportControlFormat::setCharEscapement );
849  lcl_applyFontAttribute( aSettings, PROPERTY_CHARESCAPEMENTHEIGHT, _rxReportControlFormat, &report::XReportControlFormat::setCharEscapementHeight );
850  lcl_applyFontAttribute( aSettings, PROPERTY_CHARLOCALEASIAN, _rxReportControlFormat, &report::XReportControlFormat::setCharLocaleAsian );
851  lcl_applyFontAttribute( aSettings, PROPERTY_CHARLOCALECOMPLEX, _rxReportControlFormat, &report::XReportControlFormat::setCharLocaleComplex );
852  }
853  catch( const uno::Exception& )
854  {
855  DBG_UNHANDLED_EXCEPTION("reportdesign");
856  }
857 }
858 
859 void notifySystemWindow(vcl::Window const * _pWindow, vcl::Window* _pToRegister, const ::comphelper::mem_fun1_t<TaskPaneList,vcl::Window*>& rMemFunc)
860 {
861  OSL_ENSURE(_pWindow,"Window can not be null!");
862  SystemWindow* pSystemWindow = _pWindow ? _pWindow->GetSystemWindow() : nullptr;
863  if ( pSystemWindow )
864  {
865  rMemFunc( pSystemWindow->GetTaskPaneList(), _pToRegister );
866  }
867 }
868 
869 SdrObject* isOver(const tools::Rectangle& _rRect, SdrPage const & _rPage, SdrView const & _rView, bool _bAllObjects, SdrObject const * _pIgnore, sal_Int16 _nIgnoreType)
870 {
871  SdrObject* pOverlappedObj = nullptr;
872  SdrObjListIter aIter(&_rPage,SdrIterMode::DeepNoGroups);
873 
874  while( !pOverlappedObj )
875  {
876  SdrObject* pObjIter = aIter.Next();
877  if( !pObjIter )
878  break;
879  if ( _pIgnore != pObjIter
880  && (_bAllObjects || !_rView.IsObjMarked(pObjIter))
881  && (dynamic_cast<OUnoObject*>(pObjIter) != nullptr || dynamic_cast<OOle2Obj*>(pObjIter) != nullptr))
882  {
883  if (_nIgnoreType == ISOVER_IGNORE_CUSTOMSHAPES && pObjIter->GetObjIdentifier() == OBJ_CUSTOMSHAPE)
884  {
885  continue;
886  }
887 
888  if (dynamic_cast<OUnoObject*>(pObjIter) != nullptr || dynamic_cast<OOle2Obj*>(pObjIter) != nullptr)
889  {
890  tools::Rectangle aRect = _rRect.GetIntersection(pObjIter->GetLastBoundRect());
891  if ( !aRect.IsEmpty() && (aRect.Left() != aRect.Right() && aRect.Top() != aRect.Bottom() ) )
892  pOverlappedObj = pObjIter;
893  }
894  }
895  }
896  return pOverlappedObj;
897 }
898 
899 static bool checkArrayForOccurrence(SdrObject const * _pObjToCheck, std::unique_ptr<SdrUnoObj, SdrObjectFreeOp> _pIgnore[], int _nListLength)
900 {
901  for(int i=0;i<_nListLength;i++)
902  {
903  SdrObject *pIgnore = _pIgnore[i].get();
904  if (pIgnore == _pObjToCheck)
905  {
906  return true;
907  }
908  }
909  return false;
910 }
911 
912 SdrObject* isOver(const tools::Rectangle& _rRect,SdrPage const & _rPage,SdrView const & _rView,bool _bAllObjects, std::unique_ptr<SdrUnoObj, SdrObjectFreeOp> _pIgnoreList[], int _nIgnoreListLength)
913 {
914  SdrObject* pOverlappedObj = nullptr;
915  SdrObjListIter aIter(&_rPage,SdrIterMode::DeepNoGroups);
916 
917  while( !pOverlappedObj )
918  {
919  SdrObject* pObjIter = aIter.Next();
920  if( !pObjIter )
921  break;
922  if (checkArrayForOccurrence(pObjIter, _pIgnoreList, _nIgnoreListLength))
923  {
924  continue;
925  }
926 
927  if ( (_bAllObjects || !_rView.IsObjMarked(pObjIter))
928  && (dynamic_cast<OUnoObject*>(pObjIter) != nullptr || dynamic_cast<OOle2Obj*>(pObjIter) != nullptr) )
929  {
930  tools::Rectangle aRect = _rRect.GetIntersection(pObjIter->GetLastBoundRect());
931  if ( !aRect.IsEmpty() && (aRect.Left() != aRect.Right() && aRect.Top() != aRect.Bottom() ) )
932  pOverlappedObj = pObjIter;
933  }
934  }
935  return pOverlappedObj;
936 }
937 
938 
939 SdrObject* isOver(SdrObject const * _pObj,SdrPage const & _rPage,SdrView const & _rView)
940 {
941  SdrObject* pOverlappedObj = nullptr;
942  if (dynamic_cast<OUnoObject const *>(_pObj) != nullptr || dynamic_cast<OOle2Obj const *>(_pObj) != nullptr) // this doesn't need to be done for shapes
943  {
944  tools::Rectangle aRect = _pObj->GetCurrentBoundRect();
945  pOverlappedObj = isOver(aRect,_rPage,_rView,false/*_bUnMarkedObjects*/,_pObj);
946  }
947  return pOverlappedObj;
948 }
949 
950 
951 uno::Sequence< OUString > getParameterNames( const uno::Reference< sdbc::XRowSet >& _rxRowSet )
952 {
953  uno::Sequence< OUString > aNames;
954 
955  try
956  {
957  uno::Reference< sdb::XParametersSupplier > xSuppParams( _rxRowSet, uno::UNO_QUERY_THROW );
958  uno::Reference< container::XIndexAccess > xParams( xSuppParams->getParameters() );
959  if ( xParams.is() )
960  {
961  sal_Int32 count( xParams->getCount() );
962  aNames.realloc( count );
963 
964  uno::Reference< beans::XPropertySet > xParam;
965  OUString sParamName;
966  for ( sal_Int32 i=0; i<count; ++i )
967  {
968  xParam.set( xParams->getByIndex(i), uno::UNO_QUERY_THROW );
969  OSL_VERIFY( xParam->getPropertyValue( PROPERTY_NAME ) >>= sParamName );
970  aNames[i] = sParamName;
971  }
972  }
973  }
974  catch( const uno::Exception& )
975  {
976  DBG_UNHANDLED_EXCEPTION("reportdesign");
977  }
978 
979  return aNames;
980 }
981 
983 {
984  if (_pControl)
985  {
986  uno::Reference< report::XReportComponent > xComponent( _pControl->getUnoShape(), uno::UNO_QUERY);
987  if (xComponent.is())
988  {
989  tools::Rectangle aRect(VCLPoint(xComponent->getPosition()),VCLSize(xComponent->getSize()));
990  aRect.setHeight(aRect.getHeight() + 1);
991  aRect.setWidth(aRect.getWidth() + 1);
992  return aRect;
993  }
994  }
995  return tools::Rectangle();
996 }
997 
998 // check overlapping
999 void correctOverlapping(SdrObject* _pControl,OReportSection const & _aReportSection,bool _bInsert)
1000 {
1001  OSectionView& rSectionView = _aReportSection.getSectionView();
1002  uno::Reference< report::XReportComponent> xComponent(_pControl->getUnoShape(),uno::UNO_QUERY);
1003  tools::Rectangle aRect = getRectangleFromControl(_pControl);
1004 
1005  bool bOverlapping = true;
1006  while ( bOverlapping )
1007  {
1008  SdrObject* pOverlappedObj = isOver(aRect,*_aReportSection.getPage(),rSectionView,true, _pControl);
1009  bOverlapping = pOverlappedObj != nullptr;
1010  if ( bOverlapping )
1011  {
1012  const tools::Rectangle& aLogicRect = pOverlappedObj->GetLogicRect();
1013  aRect.Move(0,aLogicRect.Top() + aLogicRect.getHeight() - aRect.Top());
1014  xComponent->setPositionY(aRect.Top());
1015  }
1016  }
1017  if (_bInsert) // now insert objects
1018  rSectionView.InsertObjectAtView(_pControl,*rSectionView.GetSdrPageView(), SdrInsertFlags::ADDMARK);
1019 }
1020 
1021 void setZoomFactor(const Fraction& _aZoom, OutputDevice& _rWindow)
1022 {
1023  MapMode aMapMode( _rWindow.GetMapMode() );
1024  aMapMode.SetScaleX(_aZoom);
1025  aMapMode.SetScaleY(_aZoom);
1026  _rWindow.SetMapMode(aMapMode);
1027 }
1028 
1029 bool openDialogFormula_nothrow( OUString& _in_out_rFormula
1030  , const css::uno::Reference< css::uno::XComponentContext >& _xContext
1031  , const uno::Reference< awt::XWindow>& _xInspectorWindow
1032  , const css::uno::Reference < css::beans::XPropertySet >& _xRowSet
1033  )
1034 {
1035  OSL_PRECOND( _xInspectorWindow.is(), "openDialogFormula_nothrow: invalid parameters!" );
1036  if ( !_xInspectorWindow.is() )
1037  return false;
1038  bool bSuccess = false;
1039  ::dbtools::SQLExceptionInfo aErrorInfo;
1040  uno::Reference< awt::XWindow > xInspectorWindow;
1041  uno::Reference< lang::XMultiComponentFactory > xFactory;
1042  uno::Reference<lang::XMultiServiceFactory> xServiceFactory;
1043  try
1044  {
1045  xFactory = _xContext->getServiceManager();
1046  xServiceFactory.set(xFactory,uno::UNO_QUERY);
1047 
1048  uno::Reference< report::meta::XFunctionManager> xMgr(xFactory->createInstanceWithContext("org.libreoffice.report.pentaho.SOFunctionManager",_xContext),uno::UNO_QUERY);
1049  if ( xMgr.is() )
1050  {
1051  auto pFormulaManager = std::make_shared<FunctionManager>(xMgr);
1052  ReportFormula aFormula( _in_out_rFormula );
1053 
1054  LanguageTag aLangTag(LANGUAGE_SYSTEM);
1055  CharClass aCC(_xContext, aLangTag);
1056  svl::SharedStringPool aStringPool(aCC);
1057 
1058  FormulaDialog aDlg(
1059  Application::GetFrameWeld(_xInspectorWindow), xServiceFactory, pFormulaManager,
1060  aFormula.getUndecoratedContent(), _xRowSet, aStringPool);
1061 
1062  bSuccess = aDlg.run() == RET_OK;
1063  if ( bSuccess )
1064  {
1065  OUString sFormula = aDlg.getCurrentFormula();
1066  if ( sFormula[0] == '=' )
1067  _in_out_rFormula = OUString::Concat("rpt:") + sFormula.subView(1);
1068  else
1069  _in_out_rFormula = "rpt:" + sFormula;
1070  }
1071  }
1072  }
1073  catch (const sdb::SQLContext& e) { aErrorInfo = e; }
1074  catch (const sdbc::SQLWarning& e) { aErrorInfo = e; }
1075  catch (const sdbc::SQLException& e) { aErrorInfo = e; }
1076  catch( const uno::Exception& )
1077  {
1078  TOOLS_WARN_EXCEPTION( "reportdesign", "GeometryHandler::impl_dialogFilter_nothrow" );
1079  }
1080 
1081  if ( aErrorInfo.isValid() )
1082  ::dbtools::showError( aErrorInfo, xInspectorWindow, _xContext );
1083 
1084  return bSuccess;
1085 }
1086 
1087 } // namespace rptui
1088 
1089 
1090 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define LANGUAGE_GERMAN
#define ITEMID_CASEMAP
Definition: UITools.cxx:137
const size_t count(pCandidateA->getBorderLines().size())
#define ITEMID_FONTHEIGHT
Definition: UITools.cxx:124
virtual const tools::Rectangle & GetCurrentBoundRect() const
#define ITEMID_AUTOKERN
Definition: UITools.cxx:141
SystemWindow * GetSystemWindow() const
constexpr TypedWhichId< XFillBmpTileOffsetYItem > XATTR_FILLBMP_TILEOFFSETY(XATTR_FILL_FIRST+15)
#define PROPERTY_RIGHTMARGIN
Definition: strings.hxx:105
SdrObject * isOver(const tools::Rectangle &_rRect, SdrPage const &_rPage, SdrView const &_rView, bool _bAllObjects=false, SdrObject const *_pIgnore=nullptr, sal_Int16 _nIgnoreType=0)
checks whether the given rectangle overlapps another OUnoObject object in that view.
Definition: UITools.cxx:869
#define PROPERTY_CHARSHADOWED
Definition: strings.hxx:237
Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
tools::Long getWidth() const
#define ITEMID_FONT_COMPLEX
Definition: UITools.cxx:158
#define COL_DEFAULT_SHAPE_FILLING
void SetColor(const Color &rCol)
static XColorListRef CreateStdColorList()
void notifySystemWindow(vcl::Window const *pWindow, vcl::Window *pToRegister, const ::comphelper::mem_fun1_t< TaskPaneList, vcl::Window * > &rMemFunc)
notifySystemWindow adds or remove the given window _pToRegister at the Systemwindow found when search...
Definition: UITools.cxx:859
constexpr TypedWhichId< SfxMetricItem > XATTR_FILLBMP_SIZEX(XATTR_FILL_FIRST+9)
#define ITEMID_SHADOWED
Definition: UITools.cxx:129
static SvxAbstractDialogFactory * Create()
#define PROPERTY_CHARCOMBINEPREFIX
Definition: strings.hxx:234
const StyleSettings & GetStyleSettings() const
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)
#define PROPERTY_CHARESCAPEMENT
Definition: strings.hxx:231
#define ITEMID_EMPHASISMARK
Definition: UITools.cxx:144
#define PROPERTY_CHARCOMBINEISON
Definition: strings.hxx:233
sal_uInt16 GetLastWhich() const
const MapMode & GetMapMode() const
#define ASIAN
Definition: UITools.cxx:165
#define ITEMID_VERJUSTIFY
Definition: UITools.cxx:152
#define ITEMID_CHARROTATE
Definition: UITools.cxx:146
constexpr TypedWhichId< XFillHatchItem > XATTR_FILLHATCH(XATTR_FILL_FIRST+3)
#define PROPERTY_CHARHIDDEN
Definition: strings.hxx:236
#define ITEMID_FONTHEIGHT_COMPLEX
Definition: UITools.cxx:159
virtual SdrObjKind GetObjIdentifier() const
uno::Reference< style::XStyle > getUsedStyle(const uno::Reference< report::XReportDefinition > &_xReport)
Definition: RptObject.cxx:1197
void SetMapMode()
constexpr TypedWhichId< XFillBackgroundItem > XATTR_FILLBACKGROUND(XATTR_FILL_FIRST+19)
#define PROPERTY_CHARUNDERLINECOLOR
Definition: strings.hxx:89
tools::Rectangle getRectangleFromControl(SdrObject *pControl)
returns a Rectangle of a given SdrObject
Definition: UITools.cxx:982
bool InsertObjectAtView(SdrObject *pObj, SdrPageView &rPV, SdrInsertFlags nOptions=SdrInsertFlags::NONE)
#define PROPERTY_CHARCASEMAP
Definition: strings.hxx:232
static OutputDevice * GetDefaultDevice()
tools::Long getHeight() const
HashMap_OWString_Interface aMap
#define ITEMID_WEIGHT_COMPLEX
Definition: UITools.cxx:162
void setZoomFactor(const Fraction &_aZoom, OutputDevice &_rWindow)
sets the map mode at the window
Definition: UITools.cxx:1021
bool openDialogFormula_nothrow(OUString &_in_out_rFormula, const css::uno::Reference< css::uno::XComponentContext > &_xContext, const css::uno::Reference< css::awt::XWindow > &_xWindow, const css::uno::Reference< css::beans::XPropertySet > &_xRowSet)
opens the formula dialog
virtual css::uno::Reference< css::uno::XInterface > getUnoShape()
tools::Long Left() const
LINESTYLE_NONE
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const
#define ITEMID_FONTLIST
Definition: UITools.cxx:140
#define PROPERTY_LEFTMARGIN
Definition: strings.hxx:104
tools::Long Bottom() const
static bool checkArrayForOccurrence(SdrObject const *_pObjToCheck, std::unique_ptr< SdrUnoObj, SdrObjectFreeOp > _pIgnore[], int _nListLength)
Definition: UITools.cxx:899
#define PROPERTY_VERTICALALIGN
Definition: strings.hxx:86
VCL_DLLPUBLIC float ConvertFontWidth(FontWidth eWidth)
#define ITEMID_BLINK
Definition: UITools.cxx:143
#define ITEMID_CROSSEDOUT
Definition: UITools.cxx:132
tools::Rectangle GetIntersection(const tools::Rectangle &rRect) const
#define WESTERN
Definition: UITools.cxx:164
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId)
#define PROPERTY_CHARCOLOR
Definition: strings.hxx:85
#define PROPERTY_CHARKERNING
Definition: strings.hxx:240
const char * sName
constexpr bool IsEmpty() const
#define SAL_N_ELEMENTS(arr)
#define MID_HORJUST_ADJUST
#define PROPERTY_CHARESCAPEMENTHEIGHT
Definition: strings.hxx:229
#define ITEMID_UNDERLINE
Definition: UITools.cxx:133
#define PROPERTY_CONTROLBACKGROUND
Definition: strings.hxx:40
#define DBG_UNHANDLED_EXCEPTION(...)
#define PROPERTY_NAME
Definition: strings.hxx:36
#define ITEMID_FONT_ASIAN
Definition: UITools.cxx:153
#define TOOLS_WARN_EXCEPTION(area, stream)
#define PROPERTY_CHARRELIEF
Definition: strings.hxx:84
constexpr TypedWhichId< XFillTransparenceItem > XATTR_FILLTRANSPARENCE(XATTR_FILL_FIRST+5)
constexpr TypedWhichId< XFillGradientItem > XATTR_FILLGRADIENT(XATTR_FILL_FIRST+2)
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
int i
#define PROPERTY_PAPERSIZE
Definition: strings.hxx:62
constexpr TypedWhichId< XSecondaryFillColorItem > XATTR_SECONDARYFILLCOLOR(XATTR_FILL_FIRST+12)
#define ITEMID_WEIGHT_ASIAN
Definition: UITools.cxx:157
void correctOverlapping(SdrObject *pControl, OReportSection const &_aReportSection, bool _bInsert=true)
ensures that no control overlaps the given one.
Definition: UITools.cxx:999
constexpr TypedWhichId< XFillBitmapItem > XATTR_FILLBITMAP(XATTR_FILL_FIRST+4)
#define ITEMID_WEIGHT
Definition: UITools.cxx:128
#define LANGUAGE_SYSTEM
void adjustSectionName(const css::uno::Reference< css::report::XGroup > &_xGroup, sal_Int32 _nPos)
set the name of the header and footer of the group by the expression appended by the localized name o...
static weld::Window * GetFrameWeld(const css::uno::Reference< css::awt::XWindow > &rWindow)
#define ITEMID_POSTURE_ASIAN
Definition: UITools.cxx:156
constexpr TypedWhichId< XFillBmpPosItem > XATTR_FILLBMP_POS(XATTR_FILL_FIRST+8)
constexpr sal_uInt16 XATTR_FILL_FIRST(XATTRSET_LINE+1)
WEIGHT_NORMAL
#define ITEMID_BRUSH
Definition: UITools.cxx:150
#define ITEMID_FONT
Definition: UITools.cxx:123
inline::Point VCLPoint(const css::awt::Point &rAWTPoint)
bool openCharDialog(const css::uno::Reference< css::report::XReportControlFormat > &_xReportControlFormat, const css::uno::Reference< css::awt::XWindow > &_xWindow, css::uno::Sequence< css::beans::NamedValue > &_out_rNewValues)
opens the common character font dialog
OUString RptResId(const char *pId)
#define PROPERTY_PARAADJUST
Definition: strings.hxx:79
#define ITEMID_KERNING
Definition: UITools.cxx:136
const AllSettings & GetSettings() const
ITALIC_NONE
#define PROPERTY_CHARCOMBINESUFFIX
Definition: strings.hxx:235
tools::Long Top() const
std::unique_ptr< SfxPoolItem > CloneSetWhich(sal_uInt16 nNewWhich) const
const LanguageTag & getLocale()
static std::shared_ptr< rptui::OReportModel > getSdrModel(const css::uno::Reference< css::report::XReportDefinition > &_xReportDefinition)
#define ITEMID_LANGUAGE_COMPLEX
Definition: UITools.cxx:160
virtual const tools::Rectangle & GetLastBoundRect() const
SdrObject * Next()
constexpr TypedWhichId< XFillColorItem > XATTR_FILLCOLOR(XATTR_FILL_FIRST+1)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
inline::Size VCLSize(const css::awt::Size &rAWTSize)
constexpr TypedWhichId< XGradientStepCountItem > XATTR_GRADIENTSTEPCOUNT(XATTR_FILL_FIRST+6)
#define COL_DEFAULT_SHAPE_STROKE
#define ITEMID_COLOR_TABLE
Definition: UITools.cxx:142
void applyCharacterSettings(const css::uno::Reference< css::report::XReportControlFormat > &_rxReportControlFormat, const css::uno::Sequence< css::beans::NamedValue > &_rSettings)
applies the character settings previously obtained via openCharDialog
#define PROPERTY_CHARLOCALEASIAN
Definition: strings.hxx:169
const sal_Int16 ISOVER_IGNORE_CUSTOMSHAPES
Definition: UITools.hxx:131
void showError(const SQLExceptionInfo &_rInfo, const Reference< XWindow > &_xParent, const Reference< XComponentContext > &_rxContext)
constexpr TypedWhichId< XFillFloatTransparenceItem > XATTR_FILLFLOATTRANSPARENCE(XATTR_FILL_FIRST+11)
#define ITEMID_LANGUAGE_ASIAN
Definition: UITools.cxx:155
static SdrItemPool & GetGlobalDrawObjectItemPool()
::rtl::Reference< comphelper::OPropertyChangeMultiplexer > addStyleListener(const css::uno::Reference< css::report::XReportDefinition > &_xReportDefinition,::comphelper::OPropertyChangeListener *_pListener)
add a listener for the properties size, left margin, right margin to the page style ...
#define PROPERTY_CHARLOCALECOMPLEX
Definition: strings.hxx:185
constexpr TypedWhichId< XFillBmpPosOffsetYItem > XATTR_FILLBMP_POSOFFSETY(XATTR_FILL_FIRST+18)
static vcl::Font CreateFont(const css::awt::FontDescriptor &rDescr, const vcl::Font &rInitFont)
#define PROPERTY_CHARLOCALE
Definition: strings.hxx:230
void setWidth(tools::Long n)
constexpr TypedWhichId< XFillBmpStretchItem > XATTR_FILLBMP_STRETCH(XATTR_FILL_FIRST+16)
#define ITEMID_TWOLINES
Definition: UITools.cxx:145
virtual VclPtr< AbstractSvxAreaTabDialog > CreateSvxAreaTabDialog(weld::Window *pParent, const SfxItemSet *pAttr, SdrModel *pModel, bool bShadow)=0
#define PROPERTY_CHARCONTOURED
Definition: strings.hxx:238
sal_uInt16 GetFirstWhich() const
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_WHITE
#define ITEMID_LANGUAGE
Definition: UITools.cxx:125
RET_OK
SfxItemInfo const aItemInfos[]
constexpr TypedWhichId< XFillBmpPosOffsetXItem > XATTR_FILLBMP_POSOFFSETX(XATTR_FILL_FIRST+17)
#define ITEMID_COLOR
Definition: UITools.cxx:135
const o3tl::sorted_vector< const SfxItemPropertyMapEntry *, SfxItemPropertyMapCompare > & getPropertyEntries() const
constexpr TypedWhichId< XFillBmpTileItem > XATTR_FILLBMP_TILE(XATTR_FILL_FIRST+7)
#define ITEMID_FONTHEIGHT_ASIAN
Definition: UITools.cxx:154
css::uno::Sequence< OUString > getParameterNames(const css::uno::Reference< css::sdbc::XRowSet > &_rxRowSet)
retrieves the names of the parameters of the command which the given RowSet is bound to ...
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
#define ITEMID_CHARHIDDEN
Definition: UITools.cxx:149
constexpr TypedWhichId< XFillBmpSizeLogItem > XATTR_FILLBMP_SIZELOG(XATTR_FILL_FIRST+13)
OReportPage * getPage() const
SdrPageView * GetSdrPageView() const
const vcl::Font & GetAppFont() const
OBJ_CUSTOMSHAPE
void Move(tools::Long nHorzMoveDelta, tools::Long nVertMoveDelta)
#define PROPERTY_CHARAUTOKERNING
Definition: strings.hxx:239
#define ITEMID_CHARSCALE_W
Definition: UITools.cxx:147
#define ITEMID_HORJUSTIFY
Definition: UITools.cxx:151
Reference< XSingleServiceFactory > xFactory
#define ITEMID_POSTURE_COMPLEX
Definition: UITools.cxx:161
const SvxItemPropertySet * GetPropertySet(sal_uInt16 nPropertyId, SfxItemPool &rPool)
TaskPaneList * GetTaskPaneList()
virtual const tools::Rectangle & GetLogicRect() const
#define ITEMID_POSTURE
Definition: UITools.cxx:127
const SfxItemPropertyMap & getPropertyMap() const
bool openAreaDialog(const css::uno::Reference< css::report::XShape > &_xShape, const css::uno::Reference< css::awt::XWindow > &_xWindow)
opens the area dialog for shapes
const css::uno::Any & get(const char *_pAsciiValueName) const
#define ITEMID_CHARRELIEF
Definition: UITools.cxx:148
#define PROPERTY_BACKCOLOR
Definition: strings.hxx:38
STRIKEOUT_NONE
constexpr TypedWhichId< XFillBmpTileOffsetXItem > XATTR_FILLBMP_TILEOFFSETX(XATTR_FILL_FIRST+14)
#define PROPERTY_CHAREMPHASIS
Definition: strings.hxx:141
#define ITEMID_WORDLINEMODE
Definition: UITools.cxx:130
static css::awt::FontDescriptor CreateFontDescriptor(const vcl::Font &rFont)
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
constexpr TypedWhichId< XFillBmpSizeYItem > XATTR_FILLBMP_SIZEY(XATTR_FILL_FIRST+10)
#define ITEMID_CONTOUR
Definition: UITools.cxx:131
#define COMPLEX
Definition: UITools.cxx:166
tools::Long Right() const
#define ITEMID_ESCAPEMENT
Definition: UITools.cxx:139
void setHeight(tools::Long n)
#define PROPERTY_CHARFLASH
Definition: strings.hxx:228
OSectionView & getSectionView() const
bool IsObjMarked(SdrObject const *pObj) const