LibreOffice Module svx (master)  1
svxbmpnumvalueset.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 #include <osl/diagnose.h>
21 #include <svx/dialmgr.hxx>
22 #include <svx/strings.hrc>
23 #include <i18nlangtag/mslangid.hxx>
24 #include <svtools/valueset.hxx>
25 #include <editeng/numitem.hxx>
26 #include <svx/gallery.hxx>
27 #include <vcl/event.hxx>
28 #include <vcl/graph.hxx>
29 #include <vcl/virdev.hxx>
30 #include <svx/numvset.hxx>
31 #include <com/sun/star/style/NumberingType.hpp>
32 #include <com/sun/star/container/XIndexAccess.hpp>
33 #include <com/sun/star/text/XNumberingFormatter.hpp>
34 #include <com/sun/star/beans/PropertyValue.hpp>
35 
36 #include <algorithm>
37 
38 using namespace com::sun::star::uno;
39 using namespace com::sun::star::beans;
40 using namespace com::sun::star::lang;
41 using namespace com::sun::star::text;
42 using namespace com::sun::star::container;
43 using namespace com::sun::star::style;
44 
45 
46 // The selection of bullets from the star symbol
47 static const sal_Unicode aBulletTypes[] =
48 {
49  0x2022,
50  0x25cf,
51  0xe00c,
52  0xe00a,
53  0x2794,
54  0x27a2,
55  0x2717,
56  0x2714
57 };
58 
60 {
61  static vcl::Font aDefBulletFont = [&]()
62  {
63  static vcl::Font tmp("OpenSymbol", "", Size(0, 14));
64  tmp.SetCharSet( RTL_TEXTENCODING_SYMBOL );
66  tmp.SetPitch( PITCH_DONTKNOW );
68  tmp.SetTransparent( true );
69  return tmp;
70  }();
71  return aDefBulletFont;
72 }
73 
74 static void lcl_PaintLevel(OutputDevice* pVDev, sal_Int16 nNumberingType,
75  const OUString& rBulletChar, const OUString& rText, const OUString& rFontName,
76  Point& rLeft, vcl::Font& rRuleFont, const vcl::Font& rTextFont)
77 {
78 
79  if(NumberingType::CHAR_SPECIAL == nNumberingType )
80  {
81  rRuleFont.SetStyleName(rFontName);
82  pVDev->SetFont(rRuleFont);
83  pVDev->DrawText(rLeft, rBulletChar);
84  rLeft.AdjustX(pVDev->GetTextWidth(rBulletChar) );
85  }
86  else
87  {
88  pVDev->SetFont(rTextFont);
89  pVDev->DrawText(rLeft, rText);
90  rLeft.AdjustX(pVDev->GetTextWidth(rText) );
91  }
92 }
93 
94 static const char* RID_SVXSTR_BULLET_DESCRIPTIONS[] =
95 {
96  RID_SVXSTR_BULLET_DESCRIPTION_0,
97  RID_SVXSTR_BULLET_DESCRIPTION_1,
98  RID_SVXSTR_BULLET_DESCRIPTION_2,
99  RID_SVXSTR_BULLET_DESCRIPTION_3,
100  RID_SVXSTR_BULLET_DESCRIPTION_4,
101  RID_SVXSTR_BULLET_DESCRIPTION_5,
102  RID_SVXSTR_BULLET_DESCRIPTION_6,
103  RID_SVXSTR_BULLET_DESCRIPTION_7
104 };
105 
106 static const char* RID_SVXSTR_SINGLENUM_DESCRIPTIONS[] =
107 {
108  RID_SVXSTR_SINGLENUM_DESCRIPTION_0,
109  RID_SVXSTR_SINGLENUM_DESCRIPTION_1,
110  RID_SVXSTR_SINGLENUM_DESCRIPTION_2,
111  RID_SVXSTR_SINGLENUM_DESCRIPTION_3,
112  RID_SVXSTR_SINGLENUM_DESCRIPTION_4,
113  RID_SVXSTR_SINGLENUM_DESCRIPTION_5,
114  RID_SVXSTR_SINGLENUM_DESCRIPTION_6,
115  RID_SVXSTR_SINGLENUM_DESCRIPTION_7
116 };
117 
119 {
120  RID_SVXSTR_OUTLINENUM_DESCRIPTION_0,
121  RID_SVXSTR_OUTLINENUM_DESCRIPTION_1,
122  RID_SVXSTR_OUTLINENUM_DESCRIPTION_2,
123  RID_SVXSTR_OUTLINENUM_DESCRIPTION_3,
124  RID_SVXSTR_OUTLINENUM_DESCRIPTION_4,
125  RID_SVXSTR_OUTLINENUM_DESCRIPTION_5,
126  RID_SVXSTR_OUTLINENUM_DESCRIPTION_6,
127  RID_SVXSTR_OUTLINENUM_DESCRIPTION_7
128 };
129 
131 {
132  static const sal_uInt16 aLinesArr[] =
133  {
134  15, 10,
135  20, 30,
136  25, 50,
137  30, 70,
138  35, 90, // up to here line positions
139  5, 10, // character positions
140  10, 30,
141  15, 50,
142  20, 70,
143  25, 90,
144  };
145 
146  const Color aBackColor(COL_WHITE);
147  const Color aTextColor(COL_BLACK);
148 
149  vcl::RenderContext* pDev = rUDEvt.GetRenderContext();
150  tools::Rectangle aRect = rUDEvt.GetRect();
151  sal_uInt16 nItemId = rUDEvt.GetItemId();
152 
153  long nRectWidth = aRect.GetWidth();
154  long nRectHeight = aRect.GetHeight();
155  Size aRectSize(nRectWidth, aRect.GetHeight());
156  Point aBLPos = aRect.TopLeft();
157  vcl::Font aOldFont = pDev->GetFont();
158  Color aOldColor = pDev->GetLineColor();
159  pDev->SetLineColor(aTextColor);
161  DefaultFontType::UI_SANS, MsLangId::getSystemLanguage(), GetDefaultFontFlags::OnlyOne));
162 
163  Size aSize = aFont.GetFontSize();
164 
165  vcl::Font aRuleFont( lcl_GetDefaultBulletFont() );
166  aSize.setHeight( nRectHeight/6 );
167  aRuleFont.SetFontSize(aSize);
168  aRuleFont.SetColor(aTextColor);
169  aRuleFont.SetFillColor(aBackColor);
170  if(ePageType == NumberingPageType::BULLET)
171  aFont = aRuleFont;
172  else if(ePageType == NumberingPageType::OUTLINE)
173  {
174  aSize.setHeight( nRectHeight/8 );
175  }
176  aFont.SetColor(aTextColor);
177  aFont.SetFillColor(aBackColor);
178  aFont.SetFontSize( aSize );
179  pDev->SetFont(aFont);
180 
181  if(!pVDev)
182  {
183  // The lines are only one time in the virtual device, only the outline
184  // page is currently done
185  pVDev = VclPtr<VirtualDevice>::Create(*pDev);
186  pVDev->SetMapMode(pDev->GetMapMode());
187  pVDev->EnableRTL( IsRTLEnabled() );
188  pVDev->SetOutputSize( aRectSize );
189  aOrgRect = aRect;
190  pVDev->SetFillColor( aBackColor );
191  pVDev->SetLineColor(COL_LIGHTGRAY);
192  // Draw line only once
193  if(ePageType != NumberingPageType::OUTLINE)
194  {
195  Point aStart(aBLPos.X() + nRectWidth *25 / 100,0);
196  Point aEnd(aBLPos.X() + nRectWidth * 9 / 10,0);
197  for( sal_uInt16 i = 11; i < 100; i += 33)
198  {
199  aStart.setY( aBLPos.Y() + nRectHeight * i / 100 );
200  aEnd.setY( aStart.Y() );
201  pVDev->DrawLine(aStart, aEnd);
202  aStart.setY( aBLPos.Y() + nRectHeight * (i + 11) / 100 );
203  aEnd.setY( aStart.Y() );
204  pVDev->DrawLine(aStart, aEnd);
205  }
206  }
207  }
208  pDev->DrawOutDev( aRect.TopLeft(), aRectSize,
209  aOrgRect.TopLeft(), aRectSize,
210  *pVDev );
211  // Now comes the text
212  const OUString sValue("Value");
213  if( NumberingPageType::SINGLENUM == ePageType ||
214  NumberingPageType::BULLET == ePageType )
215  {
216  Point aStart(aBLPos.X() + nRectWidth / 9,0);
217  for( sal_uInt16 i = 0; i < 3; i++ )
218  {
219  sal_uInt16 nY = 11 + i * 33;
220  aStart.setY( aBLPos.Y() + nRectHeight * nY / 100 );
221  OUString sText;
222  if(ePageType == NumberingPageType::BULLET)
223  {
224  sText = OUString( aBulletTypes[nItemId - 1] );
225  aStart.AdjustY( -(pDev->GetTextHeight()/2) );
226  aStart.setX( aBLPos.X() + 5 );
227  }
228  else
229  {
230  if(xFormatter.is() && aNumSettings.getLength() > nItemId - 1)
231  {
232  Sequence<PropertyValue> aLevel = aNumSettings.getConstArray()[nItemId - 1];
233  try
234  {
235  aLevel.realloc(aLevel.getLength() + 1);
236  PropertyValue& rValue = aLevel.getArray()[aLevel.getLength() - 1];
237  rValue.Name = sValue;
238  rValue.Value <<= static_cast<sal_Int32>(i + 1);
239  sText = xFormatter->makeNumberingString( aLevel, aLocale );
240  }
241  catch(Exception&)
242  {
243  OSL_FAIL("Exception in DefaultNumberingProvider::makeNumberingString");
244  }
245  }
246  // start just next to the left edge
247  aStart.setX( aBLPos.X() + 2 );
248  aStart.AdjustY( -(pDev->GetTextHeight()/2) );
249  }
250  pDev->DrawText(aStart, sText);
251  }
252  }
253  else if(NumberingPageType::OUTLINE == ePageType )
254  {
255  // Outline numbering has to be painted into the virtual device
256  // to get correct lines
257  // has to be made again
258  pVDev->SetLineColor(aBackColor);
259  pVDev->DrawRect(aOrgRect);
260  long nStartX = aOrgRect.TopLeft().X();
261  long nStartY = aOrgRect.TopLeft().Y();
262 
263  if(xFormatter.is() && aOutlineSettings.getLength() > nItemId - 1)
264  {
265  Reference<XIndexAccess> xLevel = aOutlineSettings.getArray()[nItemId - 1];
266  try
267  {
268  OUString sLevelTexts[5];
269  OUString sFontNames[5];
270  OUString sBulletChars[5];
271  sal_Int16 aNumberingTypes[5];
272  OUString sPrefixes[5];
273  OUString sSuffixes[5];
274  sal_Int16 aParentNumberings[5];
275 
276  sal_Int32 nLevelCount = xLevel->getCount();
277  if(nLevelCount > 5)
278  nLevelCount = 5;
279  for( sal_Int32 i = 0; i < nLevelCount; i++)
280  {
281  long nTop = nStartY + nRectHeight * (aLinesArr[2 * i + 11])/100 ;
282  Point aLeft(nStartX + nRectWidth * (aLinesArr[2 * i + 10])/ 100, nTop );
283 
284  Any aLevelAny = xLevel->getByIndex(i);
286  aLevelAny >>= aLevel;
287  const PropertyValue* pValues = aLevel.getConstArray();
288  aNumberingTypes[i] = 0;
289  aParentNumberings[i] = 0;
290  for(sal_Int32 nProperty = 0; nProperty < aLevel.getLength() - 1; nProperty++)
291  {
292  if ( pValues[nProperty].Name == "NumberingType" )
293  pValues[nProperty].Value >>= aNumberingTypes[i];
294  else if ( pValues[nProperty].Name == "BulletFontName" )
295  pValues[nProperty].Value >>= sFontNames[i];
296  else if ( pValues[nProperty].Name == "BulletChar" )
297  pValues[nProperty].Value >>= sBulletChars[i];
298  else if ( pValues[nProperty].Name == "Prefix" )
299  pValues[nProperty].Value >>= sPrefixes[i];
300  else if ( pValues[nProperty].Name == "Suffix" )
301  pValues[nProperty].Value >>= sSuffixes[i];
302  else if ( pValues[nProperty].Name == "ParentNumbering" )
303  pValues[nProperty].Value >>= aParentNumberings[i];
304  }
306  PropertyValue* pProperties = aProperties.getArray();
307  pProperties[0].Name = "NumberingType";
308  pProperties[0].Value <<= aNumberingTypes[i];
309  pProperties[1].Name = "Value";
310  pProperties[1].Value <<= sal_Int32(1);
311  try
312  {
313  sLevelTexts[i] = xFormatter->makeNumberingString( aProperties, aLocale );
314  }
315  catch(Exception&)
316  {
317  OSL_FAIL("Exception in DefaultNumberingProvider::makeNumberingString");
318  }
319 
320  aLeft.AdjustY( -(pDev->GetTextHeight()/2) );
321  if(!sPrefixes[i].isEmpty() &&
322  sPrefixes[i] != " ")
323  {
324  pVDev->SetFont(aFont);
325  pVDev->DrawText(aLeft, sPrefixes[i]);
326  aLeft.AdjustX(pDev->GetTextWidth(sPrefixes[i]) );
327  }
328  if(aParentNumberings[i])
329  {
330  //insert old numberings here
331  sal_Int32 nStartLevel = std::min(static_cast<sal_Int32>(aParentNumberings[i]), i);
332  for(sal_Int32 nParentLevel = i - nStartLevel; nParentLevel < i; nParentLevel++)
333  {
334  OUString sTmp = sLevelTexts[nParentLevel] + ".";
335  lcl_PaintLevel(pVDev,
336  aNumberingTypes[nParentLevel],
337  sBulletChars[nParentLevel],
338  sTmp,
339  sFontNames[nParentLevel],
340  aLeft,
341  aRuleFont,
342  aFont);
343  }
344  }
345  lcl_PaintLevel(pVDev,
346  aNumberingTypes[i],
347  sBulletChars[i],
348  sLevelTexts[i],
349  sFontNames[i],
350  aLeft,
351  aRuleFont,
352  aFont);
353  if(!sSuffixes[i].isEmpty() &&
354  !sSuffixes[i].startsWith(" "))
355  {
356  pVDev->SetFont(aFont);
357  pVDev->DrawText(aLeft, sSuffixes[i]);
358  aLeft.AdjustX(pDev->GetTextWidth(sSuffixes[i]) );
359  }
360 
361  long nLineTop = nStartY + nRectHeight * aLinesArr[2 * i + 1]/100 ;
362  Point aLineLeft(aLeft.X(), nLineTop );
363  Point aLineRight(nStartX + nRectWidth * 90 /100, nLineTop );
364  pVDev->SetLineColor(COL_LIGHTGRAY);
365  pVDev->DrawLine(aLineLeft, aLineRight);
366  }
367 
368  }
369 #ifdef DBG_UTIL
370  catch(Exception&)
371  {
372  static bool bAssert = false;
373  if(!bAssert)
374  {
375  OSL_FAIL("exception in ::UserDraw");
376  bAssert = true;
377  }
378  }
379 #else
380  catch(Exception&)
381  {
382  }
383 #endif
384  }
385  pDev->DrawOutDev( aRect.TopLeft(), aRectSize,
386  aOrgRect.TopLeft(), aRectSize,
387  *pVDev );
388  }
389 
390  pDev->SetFont(aOldFont);
391  pDev->SetLineColor(aOldColor);
392 }
393 
394 SvxNumValueSet::SvxNumValueSet(std::unique_ptr<weld::ScrolledWindow> pScrolledWindow)
395  : SvtValueSet(std::move(pScrolledWindow))
396  , ePageType(NumberingPageType::BULLET)
397  , pVDev(nullptr)
398 {
399 }
400 
402 {
403  ePageType = eType;
404  pVDev = nullptr;
405 
406  SetColCount( 4 );
407  SetLineCount( 2 );
409  if(NumberingPageType::BULLET == eType)
410  {
411  for ( sal_uInt16 i = 0; i < 8; i++ )
412  {
413  InsertItem( i + 1, i );
415  }
416  }
417 }
418 
420 {
421 }
422 
424  const Sequence<Sequence<PropertyValue> >& aNum,
425  Reference<XNumberingFormatter> const & xFormat,
426  const Locale& rLocale )
427 {
428  aNumSettings = aNum;
429  xFormatter = xFormat;
430  aLocale = rLocale;
431  if(aNum.getLength() > 8)
433  for ( sal_Int32 i = 0; i < aNum.getLength(); i++ )
434  {
435  InsertItem( i + 1, i );
436  if( i < 8 )
438  }
439 }
440 
442  Sequence<Reference<XIndexAccess> > const & rOutline,
443  Reference<XNumberingFormatter> const & xFormat,
444  const Locale& rLocale)
445 {
446  aOutlineSettings = rOutline;
447  xFormatter = xFormat;
448  aLocale = rLocale;
449  if(aOutlineSettings.getLength() > 8)
451  for ( sal_Int32 i = 0; i < aOutlineSettings.getLength(); i++ )
452  {
453  InsertItem( i + 1, i );
454  if( i < 8 )
456  }
457 }
458 
459 SvxBmpNumValueSet::SvxBmpNumValueSet(std::unique_ptr<weld::ScrolledWindow> pScrolledWindow)
460  : SvxNumValueSet(std::move(pScrolledWindow))
461  , aFormatIdle("SvxBmpNumValueSet FormatIdle")
462  , bGrfNotFound(false)
463 {
464 }
465 
467 {
469  bGrfNotFound = false;
472  SetLineCount( 3 );
473  aFormatIdle.SetPriority(TaskPriority::LOWEST);
474  aFormatIdle.SetInvokeHandler(LINK(this, SvxBmpNumValueSet, FormatHdl_Impl));
475 }
476 
477 
479 {
481  aFormatIdle.Stop();
482 }
483 
485 {
486  SvxNumValueSet::UserDraw(rUDEvt);
487 
488  tools::Rectangle aRect = rUDEvt.GetRect();
489  vcl::RenderContext* pDev = rUDEvt.GetRenderContext();
490  sal_uInt16 nItemId = rUDEvt.GetItemId();
491  Point aBLPos = aRect.TopLeft();
492 
493  long nRectHeight = aRect.GetHeight();
494  Size aSize(nRectHeight/8, nRectHeight/8);
495 
496  Graphic aGraphic;
498  &aGraphic))
499  {
500  bGrfNotFound = true;
501  }
502  else
503  {
504  Point aPos(aBLPos.X() + 5, 0);
505  for( sal_uInt16 i = 0; i < 3; i++ )
506  {
507  sal_uInt16 nY = 11 + i * 33;
508  aPos.setY( aBLPos.Y() + nRectHeight * nY / 100 );
509  aGraphic.Draw( pDev, aPos, aSize );
510  }
511  }
512 }
513 
514 IMPL_LINK_NOARG(SvxBmpNumValueSet, FormatHdl_Impl, Timer *, void)
515 {
516  // only when a graphics was not there, it needs to be formatted
517  if (bGrfNotFound)
518  {
519  SetFormat();
520  bGrfNotFound = false;
521  }
522  Invalidate();
523 }
524 
525 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void SetFamily(FontFamily)
Point TopLeft() const
void DrawText(const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, MetricVector *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
css::uno::Reference< css::text::XNumberingFormatter > xFormatter
Definition: numvset.hxx:55
void SetFillColor(const Color &)
long GetWidth() const
static vcl::Font GetDefaultFont(DefaultFontType nType, LanguageType eLang, GetDefaultFontFlags nFlags, const OutputDevice *pOutDev=nullptr)
void SetFontSize(const Size &)
long GetHeight() const
constexpr::Color COL_BLACK(0x00, 0x00, 0x00)
long AdjustX(long nHorzMove)
const tools::Rectangle & GetRect() const
static void lcl_PaintLevel(OutputDevice *pVDev, sal_Int16 nNumberingType, const OUString &rBulletChar, const OUString &rText, const OUString &rFontName, Point &rLeft, vcl::Font &rRuleFont, const vcl::Font &rTextFont)
IMPL_LINK_NOARG(SvxBmpNumValueSet, FormatHdl_Impl, Timer *, void)
FAMILY_DONTKNOW
virtual ~SvxNumValueSet() override
virtual ~SvxBmpNumValueSet() override
void SetWeight(FontWeight)
static bool BeginLocking(const OUString &rThemeName)
Definition: galexpl.cxx:238
const MapMode & GetMapMode() const
void SetCharSet(rtl_TextEncoding)
WinBits const WB_VSCROLL
OUString Name
constexpr::Color COL_LIGHTGRAY(0xC0, 0xC0, 0xC0)
static bool EndLocking(const OUString &rThemeName)
Definition: galexpl.cxx:263
VclPtr< VirtualDevice > pVDev
Definition: numvset.hxx:53
static const char * RID_SVXSTR_BULLET_DESCRIPTIONS[]
css::lang::Locale aLocale
Definition: numvset.hxx:56
WinBits GetStyle() const
sal_uInt16 sal_Unicode
PropertiesInfo aProperties
OUString SvxResId(const char *pId)
Definition: dialmgr.cxx:28
static const char * RID_SVXSTR_SINGLENUM_DESCRIPTIONS[]
const vcl::Font & GetFont() const
#define WB_ITEMBORDER
static vcl::Font & lcl_GetDefaultBulletFont()
css::uno::Sequence< css::uno::Reference< css::container::XIndexAccess > > aOutlineSettings
Definition: numvset.hxx:64
void init(NumberingPageType eType)
void setY(long nY)
void SetPitch(FontPitch ePitch)
NumberingPageType
Definition: numvset.hxx:41
WEIGHT_DONTKNOW
static LanguageType getSystemLanguage()
void SetStyle(WinBits nStyle)
void SetLineColor()
vcl::RenderContext * GetRenderContext() const
void Draw(OutputDevice *pOutDev, const Point &rDestPt) const
virtual void UserDraw(const UserDrawEvent &rUDEvt) override
static bool GetGraphicObj(const OUString &rThemeName, sal_uInt32 nPos, Graphic *pGraphic)
Definition: galexpl.cxx:137
int i
SvxNumValueSet(std::unique_ptr< weld::ScrolledWindow > pScrolledWindow)
const Color & GetLineColor() const
const Size & GetFontSize() const
PITCH_DONTKNOW
static const sal_Unicode aBulletTypes[]
DocumentType const eType
long GetTextHeight() const
long X() const
void SetColor(const Color &)
sal_uInt16 GetItemId() const
static const char * RID_SVXSTR_OUTLINENUM_DESCRIPTIONS[]
NumberingPageType ePageType
Definition: numvset.hxx:51
const PropertyValue * pValues
SvxBmpNumValueSet(std::unique_ptr< weld::ScrolledWindow > pScrolledWindow)
void SetStyleName(const OUString &rStyleName)
void Stop()
void SetLineCount(sal_uInt16 nNewLines=0)
void SetFont(const vcl::Font &rNewFont)
void SetTransparent(bool bTransparent)
static VclPtr< reference_type > Create(Arg &&...arg)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
constexpr::Color COL_WHITE(0xFF, 0xFF, 0xFF)
long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
virtual void UserDraw(const UserDrawEvent &rUDEvt) override
void SetOutlineNumberingSettings(css::uno::Sequence< css::uno::Reference< css::container::XIndexAccess > > const &rOutline, css::uno::Reference< css::text::XNumberingFormatter > const &xFormatter, const css::lang::Locale &rLocale)
#define WB_DOUBLEBORDER
void SetColCount(sal_uInt16 nNewCols=1)
void InsertItem(sal_uInt16 nItemId, const Image &rImage)
void SetPriority(TaskPriority ePriority)
void SetItemText(sal_uInt16 nItemId, const OUString &rStr)
css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > aNumSettings
Definition: numvset.hxx:60
void SetNumberingSettings(const css::uno::Sequence< css::uno::Sequence< css::beans::PropertyValue > > &aNum, css::uno::Reference< css::text::XNumberingFormatter > const &xFormatter, const css::lang::Locale &rLocale)
SAL_DLLPRIVATE void DrawOutDev(const Point &, const Size &, const Point &, const Size &, const Printer &)=delete
long Y() const
void SetFormat(LotusContext &rContext, SCCOL nCol, SCROW nRow, SCTAB nTab, sal_uInt8 nFormat, sal_uInt8 nSt)
void setHeight(long nHeight)