20#include <com/sun/star/beans/XPropertySet.hpp>
23#include <DocumentRenderer.hrc>
30#include <drawview.hxx>
44#include <rtl/ustrbuf.hxx>
64#include <officecfg/Office/Draw.hxx>
65#include <officecfg/Office/Impress.hxx>
86 std::vector<sal_Int32>&& rSlidesPerPage)
87 : mrProperties(rHelper),
88 maSlidesPerPage(
std::move(rSlidesPerPage))
92 bool IsWarningOrientation()
const
94 return GetBoolValue(
nullptr,
true);
97 bool IsPrintPageName()
const
99 return GetBoolValue(
"IsPrintName",
false);
104 return GetBoolValue(
"IsPrintDateTime",
false);
109 return GetBoolValue(
"IsPrintDateTime",
false);
112 bool IsHiddenPages()
const
114 return GetBoolValue(
"IsPrintHidden",
false);
117 bool IsHandoutHorizontal()
const
119 return GetBoolValue(
"SlidesPerPageOrder", sal_Int32(0));
122 sal_Int32 GetHandoutPageCount()
const
124 sal_uInt32
nIndex =
static_cast<sal_Int32
>(mrProperties.getIntValue(
"SlidesPerPage", sal_Int32(0)));
125 if (nIndex<maSlidesPerPage.size())
126 return maSlidesPerPage[nIndex];
127 else if ( ! maSlidesPerPage.empty())
128 return maSlidesPerPage[0];
135 return GetBoolValue(
"PageContentType", sal_Int32(0));
138 bool IsHandout()
const
140 return GetBoolValue(
"PageContentType", sal_Int32(1));
145 return GetBoolValue(
"PageContentType", sal_Int32(2));
148 bool IsOutline()
const
150 return GetBoolValue(
"PageContentType", sal_Int32(3));
155 sal_Int32 nQuality =
static_cast<sal_Int32
>(mrProperties.getIntValue(
"Quality", sal_Int32(0) ));
159 bool IsPageSize()
const
161 return GetBoolValue(
"PageOptions", sal_Int32(1));
164 bool IsTilePage()
const
166 return GetBoolValue(
"PageOptions", sal_Int32(2)) || GetBoolValue(
"PageOptions", sal_Int32(3));
169 bool IsCutPage()
const
171 return GetBoolValue(
"PageOptions", sal_Int32(0));
174 bool IsBooklet()
const
176 return GetBoolValue(
"PrintProspect",
false);
182 return IsTilePage() || IsPageSize() || IsBooklet() || (!bIsDraw && !IsNotes());
185 bool IsPrintExcluded()
const
187 return (IsNotes() || IsDraw() || IsHandout()) && IsHiddenPages();
190 bool IsPrintFrontPage()
const
192 sal_Int32 nInclude =
static_cast<sal_Int32
>(mrProperties.getIntValue(
"EvenOdd", 0 ));
193 return nInclude != 2;
196 bool IsPrintBackPage()
const
198 sal_Int32 nInclude =
static_cast<sal_Int32
>(mrProperties.getIntValue(
"EvenOdd", 0 ));
199 return nInclude != 1;
202 bool IsPaperBin()
const
204 return GetBoolValue(
"PrintPaperFromSetup",
false);
207 bool IsPrintMarkedOnly()
const
209 return GetBoolValue(
"PrintContent", sal_Int32(4));
212 OUString GetPrinterSelection (sal_Int32 nPageCount, sal_Int32 nCurrentPageIndex)
const
214 sal_Int32 nContent =
static_cast<sal_Int32
>(mrProperties.getIntValue(
"PrintContent", 0 ));
215 OUString sFullRange =
"1-" + OUString::number(nPageCount);
224 OUString sValue = mrProperties.getStringValue(
"PageRange");
225 return sValue.isEmpty() ? sFullRange : sValue;
229 nCurrentPageIndex >= 0)
231 return OUString::number(nCurrentPageIndex + 1);
239 const std::vector<sal_Int32> maSlidesPerPage;
247 const bool bDefaultValue)
const
259 const sal_Int32 nTriggerValue)
const
262 return nValue == nTriggerValue;
275 const bool bPrintMarkedOnly)
276 : mpPrinter(pPrinter),
281 mbPrintMarkedOnly(bPrintMarkedOnly)
287 OUString msPageString;
292 const bool mbPrintMarkedOnly;
303 const bool bPrintMarkedOnly,
313 OSL_ASSERT(pPageView!=
nullptr);
317 if (pView!=
nullptr && bPrintMarkedOnly)
318 pView->DrawMarkedObj(rPrinter);
333 const OUString& rsPageString,
334 const Point& rPageStringOffset)
336 const vcl::Font aOriginalFont (rPrinter.OutputDevice::GetFont());
338 rPrinter.
DrawText(rPageStringOffset, rsPageString);
339 rPrinter.
SetFont(aOriginalFont);
348 DialogCreator (ViewShellBase &rBase,
bool bImpress, sal_Int32 nCurPage)
350 , mbImpress(bImpress)
351 , mnCurPage(nCurPage)
356 const std::vector< beans::PropertyValue >& GetDialogControls()
const
361 const std::vector<sal_Int32>& GetSlidesPerPage()
const
363 return maSlidesPerPage;
367 ViewShellBase &mrBase;
369 std::vector<sal_Int32> maSlidesPerPage;
373 void ProcessResource()
376 beans::PropertyValue aOptionsUIFile;
377 aOptionsUIFile.Name =
"OptionsUIFile";
379 aOptionsUIFile.Value <<= OUString(
"modules/simpress/ui/impressprinteroptions.ui");
381 aOptionsUIFile.Value <<= OUString(
"modules/sdraw/ui/drawprinteroptions.ui");
385 OUString aAppGroupname(
SdResId(STR_IMPRESS_PRINT_UI_GROUP_NAME));
386 aAppGroupname = aAppGroupname.replaceFirst(
"%s", aOpt.
GetModuleName(
390 uno::Sequence< OUString > aHelpIds, aWidgetIds;
393 aHelpIds = {
".HelpID:vcl:PrintDialog:PageContentType:ListBox" };
396 SdResId(STR_IMPRESS_PRINT_UI_CONTENT),
399 CreateChoice(STR_IMPRESS_PRINT_UI_CONTENT_CHOICES,
SAL_N_ELEMENTS(STR_IMPRESS_PRINT_UI_CONTENT_CHOICES)),
403 aHelpIds = {
".HelpID:vcl:PrintDialog:SlidesPerPage:ListBox" };
407 SdResId(STR_IMPRESS_PRINT_UI_SLIDESPERPAGE),
410 GetSlidesPerPageSequence(),
412 Sequence< sal_Bool >(),
417 aHelpIds = {
".HelpID:vcl:PrintDialog:SlidesPerPageOrder:ListBox" };
420 "slidesperpageorder",
421 SdResId(STR_IMPRESS_PRINT_UI_ORDER),
423 "SlidesPerPageOrder" ,
424 CreateChoice(STR_IMPRESS_PRINT_UI_ORDER_CHOICES,
SAL_N_ELEMENTS(STR_IMPRESS_PRINT_UI_ORDER_CHOICES)),
426 Sequence< sal_Bool >(),
432 SdResId(STR_IMPRESS_PRINT_UI_INCLUDE_CONTENT),
"" ) );
437 SdResId(STR_IMPRESS_PRINT_UI_IS_PRINT_NAME),
438 ".HelpID:vcl:PrintDialog:IsPrintName:CheckBox" ,
440 officecfg::Office::Impress::Print::Other::PageName::get()
447 SdResId(STR_DRAW_PRINT_UI_IS_PRINT_NAME),
448 ".HelpID:vcl:PrintDialog:IsPrintName:CheckBox" ,
450 officecfg::Office::Draw::Print::Other::PageName::get()
456 SdResId(STR_IMPRESS_PRINT_UI_IS_PRINT_DATE),
457 ".HelpID:vcl:PrintDialog:IsPrintDateTime:CheckBox" ,
461 officecfg::Office::Impress::Print::Other::Date::get() &&
462 officecfg::Office::Impress::Print::Other::Time::get() :
463 officecfg::Office::Draw::Print::Other::Date::get() &&
464 officecfg::Office::Draw::Print::Other::Time::get()
471 SdResId(STR_IMPRESS_PRINT_UI_IS_PRINT_HIDDEN),
472 ".HelpID:vcl:PrintDialog:IsPrintHidden:CheckBox" ,
474 officecfg::Office::Impress::Print::Other::HiddenPage::get()
480 SdResId(STR_IMPRESS_PRINT_UI_QUALITY),
"" ) );
482 aHelpIds = {
".HelpID:vcl:PrintDialog:Quality:RadioButton:0",
483 ".HelpID:vcl:PrintDialog:Quality:RadioButton:1",
484 ".HelpID:vcl:PrintDialog:Quality:RadioButton:2" };
485 aWidgetIds = {
"originalcolors",
"grayscale",
"blackandwhite" };
491 CreateChoice(STR_IMPRESS_PRINT_UI_QUALITY_CHOICES,
SAL_N_ELEMENTS(STR_IMPRESS_PRINT_UI_QUALITY_CHOICES)),
492 mbImpress ? officecfg::Office::Impress::Print::Other::Quality::get() :
493 officecfg::Office::Draw::Print::Other::Quality::get() )
498 SdResId(STR_IMPRESS_PRINT_UI_PAGE_OPTIONS),
"" ) );
500 aHelpIds = {
".HelpID:vcl:PrintDialog:PageOptions:RadioButton:0",
501 ".HelpID:vcl:PrintDialog:PageOptions:RadioButton:1",
502 ".HelpID:vcl:PrintDialog:PageOptions:RadioButton:2",
503 ".HelpID:vcl:PrintDialog:PageOptions:RadioButton:3" };
504 aWidgetIds = {
"originalsize",
"fittoprintable",
"distributeonmultiple",
"tilesheet" };
508 sal_Int32 nDefaultChoice = 0;
509 if ( mbImpress ? officecfg::Office::Impress::Print::Page::PageSize::get() :
510 officecfg::Office::Draw::Print::Page::PageSize::get() )
514 else if ( mbImpress ? officecfg::Office::Impress::Print::Page::PageTile::get() :
515 officecfg::Office::Draw::Print::Page::PageTile::get() )
525 mbImpress ? CreateChoice(STR_IMPRESS_PRINT_UI_PAGE_OPTIONS_CHOICES,
SAL_N_ELEMENTS(STR_IMPRESS_PRINT_UI_PAGE_OPTIONS_CHOICES)) :
526 CreateChoice(STR_IMPRESS_PRINT_UI_PAGE_OPTIONS_CHOICES_DRAW,
SAL_N_ELEMENTS(STR_IMPRESS_PRINT_UI_PAGE_OPTIONS_CHOICES_DRAW)),
528 Sequence< sal_Bool >(),
536 SdResId(STR_IMPRESS_PRINT_UI_PAGE_SIDES),
"",
541 SdResId(STR_IMPRESS_PRINT_UI_BROCHURE),
542 ".HelpID:vcl:PrintDialog:PrintProspect:CheckBox" ,
544 mbImpress ? officecfg::Office::Impress::Print::Page::Booklet::get() :
545 officecfg::Office::Draw::Print::Page::Booklet::get(),
551 aIncludeOpt(
"PrintProspect" , -1,
false );
552 aIncludeOpt.maGroupHint =
"LayoutPage" ;
553 aHelpIds = {
".HelpID:vcl:PrintDialog:PrintProspectInclude:ListBox" };
556 SdResId(STR_IMPRESS_PRINT_UI_BROCHURE_INCLUDE),
558 "PrintProspectInclude" ,
559 CreateChoice(STR_IMPRESS_PRINT_UI_BROCHURE_INCLUDE_LIST,
SAL_N_ELEMENTS(STR_IMPRESS_PRINT_UI_BROCHURE_INCLUDE_LIST)),
561 Sequence< sal_Bool >(),
568 aPaperTrayOpt.
maGroupHint =
"OptionsPageOptGroup" ;
570 SdResId(STR_IMPRESS_PRINT_UI_PAPER_TRAY),
571 ".HelpID:vcl:PrintDialog:PrintPaperFromSetup:CheckBox" ,
572 "PrintPaperFromSetup" ,
582 mbImpress ?
SdResId(STR_IMPRESS_PRINT_UI_SLIDE_RANGE) :
SdResId(STR_IMPRESS_PRINT_UI_PAGE_RANGE),
588 OUString aPageRange(OUString::number(mnCurPage + 1));
591 SlideSorterViewShell*
const pSSViewSh(SlideSorterViewShell::GetSlideSorter(mrBase));
594 const std::shared_ptr<SlideSorterViewShell::PageSelection> pPageSelection(pSSViewSh->GetPageSelection());
595 if (
bool(pPageSelection) && pPageSelection->size() > 1)
601 for (
auto pPage: *pPageSelection)
607 aBuf.append(
static_cast<sal_Int32
>(pPage->GetPageNum() / 2 + 1));
609 aPageRange =
aBuf.makeStringAndClear();
623 OUString aPrintRangeName(
"PrintContent" );
624 aHelpIds = {
".HelpID:vcl:PrintDialog:PrintContent:RadioButton:0",
625 ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:1",
626 ".HelpID:vcl:PrintDialog:PrintContent:RadioButton:2" };
627 aWidgetIds = {
"rbAllPages",
"rbRangePages",
"rbRangeSelection" };
630 aHelpIds, aPrintRangeName,
631 mbImpress ? CreateChoice(STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE,
SAL_N_ELEMENTS(STR_IMPRESS_PRINT_UI_PAGE_RANGE_CHOICE)) :
632 CreateChoice(STR_DRAW_PRINT_UI_PAGE_RANGE_CHOICE,
SAL_N_ELEMENTS(STR_DRAW_PRINT_UI_PAGE_RANGE_CHOICE)),
638 ".HelpID:vcl:PrintDialog:PageRange:Edit",
"PageRange",
639 aPageRange, aPageRangeOpt));
642 uno::Sequence<OUString>(),
"EvenOdd", uno::Sequence<OUString>(),
643 0, uno::Sequence<sal_Bool>(), aEvenOddOpt));
646 void AddDialogControl(
const Any& i_rCtrl )
648 beans::PropertyValue aVal;
649 aVal.Value = i_rCtrl;
653 static Sequence<OUString> CreateChoice(
const TranslateId* pResourceId,
size_t nCount)
655 Sequence<OUString> aChoices (nCount);
656 std::transform(pResourceId, pResourceId + nCount, aChoices.getArray(),
657 [](
const auto&
id) { return SdResId(id); });
661 Sequence<OUString> GetSlidesPerPageSequence()
663 const Sequence<OUString> aChoice (
664 CreateChoice(STR_IMPRESS_PRINT_UI_SLIDESPERPAGE_CHOICES,
SAL_N_ELEMENTS(STR_IMPRESS_PRINT_UI_SLIDESPERPAGE_CHOICES)));
665 maSlidesPerPage.clear();
666 maSlidesPerPage.push_back(0);
667 std::transform(std::next(aChoice.begin()), aChoice.end(), std::back_inserter(maSlidesPerPage),
668 [](
const OUString& rChoice) -> sal_Int32 { return rChoice.toInt32(); });
690 const bool bPrintMarkedOnly,
691 OUString sPageString,
692 const Point& rPageStringOffset,
695 const sal_uInt16 nPaperTray)
696 : mePageKind(ePageKind),
698 mbPrintMarkedOnly(bPrintMarkedOnly),
699 msPageString(
std::move(sPageString)),
700 maPageStringOffset(rPageStringOffset),
701 mnDrawMode(nDrawMode),
702 meOrientation(eOrientation),
703 mnPaperTray(nPaperTray)
707 virtual ~PrinterPage() {}
712 ViewShell& rViewShell,
714 DrawView& rPrintView,
719 Orientation GetOrientation()
const {
return meOrientation; }
720 sal_uInt16 GetPaperTray()
const {
return mnPaperTray; }
725 const bool mbPrintMarkedOnly;
726 const OUString msPageString;
727 const Point maPageStringOffset;
730 const sal_uInt16 mnPaperTray;
736 class RegularPrinterPage :
public PrinterPage
740 const sal_uInt16 nPageIndex,
743 const bool bPrintMarkedOnly,
744 const OUString& rsPageString,
745 const Point& rPageStringOffset,
748 const sal_uInt16 nPaperTray)
749 : PrinterPage(ePageKind, rMapMode, bPrintMarkedOnly, rsPageString,
750 rPageStringOffset, nDrawMode, eOrientation, nPaperTray),
751 mnPageIndex(nPageIndex)
760 DrawView& rPrintView,
781 const sal_uInt16 mnPageIndex;
787 class TiledPrinterPage :
public PrinterPage
791 const sal_uInt16 nPageIndex,
793 const bool bPrintMarkedOnly,
794 const OUString& rsPageString,
795 const Point& rPageStringOffset,
798 const sal_uInt16 nPaperTray)
799 : PrinterPage(ePageKind,
MapMode(), bPrintMarkedOnly, rsPageString,
800 rPageStringOffset, nDrawMode, eOrientation, nPaperTray),
801 mnPageIndex(nPageIndex)
810 DrawView& rPrintView,
815 if (pPageToPrint==
nullptr)
822 const sal_Int32 nPageWidth (aPageSize.Width() + mnGap
824 const sal_Int32 nPageHeight (aPageSize.Height() + mnGap
826 if (nPageWidth<=0 || nPageHeight<=0)
831 const sal_Int32 nColumnCount (std::max(sal_Int32(2),
832 sal_Int32(aPrintSize.Width() / nPageWidth)));
833 const sal_Int32 nRowCount (std::max(sal_Int32(2),
834 sal_Int32(aPrintSize.Height() / nPageHeight)));
835 for (sal_Int32 nRow=0; nRow<nRowCount; ++nRow)
836 for (sal_Int32 nColumn=0; nColumn<nColumnCount; ++nColumn)
838 aMap.SetOrigin(
Point(nColumn*nPageWidth,nRow*nPageHeight));
857 const sal_uInt16 mnPageIndex;
858 static const sal_Int32 mnGap = 500;
864 class BookletPrinterPage :
public PrinterPage
868 const sal_uInt16 nFirstPageIndex,
869 const sal_uInt16 nSecondPageIndex,
870 const Point& rFirstOffset,
871 const Point& rSecondOffset,
874 const bool bPrintMarkedOnly,
877 const sal_uInt16 nPaperTray)
878 : PrinterPage(ePageKind, rMapMode, bPrintMarkedOnly,
"",
879 Point(), nDrawMode, eOrientation, nPaperTray),
880 mnFirstPageIndex(nFirstPageIndex),
881 mnSecondPageIndex(nSecondPageIndex),
882 maFirstOffset(rFirstOffset),
883 maSecondOffset(rSecondOffset)
892 DrawView& rPrintView,
897 SdPage* pPageToPrint = rDocument.
GetSdPage(mnFirstPageIndex, mePageKind);
900 aMap.SetOrigin(maFirstOffset);
912 pPageToPrint = rDocument.
GetSdPage(mnSecondPageIndex, mePageKind);
916 aMap.SetOrigin(maSecondOffset);
929 const sal_uInt16 mnFirstPageIndex;
930 const sal_uInt16 mnSecondPageIndex;
931 const Point maFirstOffset;
932 const Point maSecondOffset;
937 class HandoutPrinterPage :
public PrinterPage
941 const sal_uInt16 nHandoutPageIndex,
942 std::vector<sal_uInt16>&& rPageIndices,
944 const OUString& rsPageString,
945 const Point& rPageStringOffset,
948 const sal_uInt16 nPaperTray)
950 rPageStringOffset, nDrawMode, eOrientation, nPaperTray),
951 mnHandoutPageIndex(nHandoutPageIndex),
952 maPageIndices(
std::move(rPageIndices))
959 ViewShell& rViewShell,
961 DrawView& rPrintView,
967 Reference< css::beans::XPropertySet > xHandoutPage( rHandoutPage.getUnoPage(), UNO_QUERY );
968 static constexpr OUStringLiteral sPageNumber( u
"Number" );
971 std::vector<SdrPageObj*> aHandoutPageObjects;
973 while (aShapeIter.IsMore())
977 aHandoutPageObjects.push_back(pPageObj);
979 if (aHandoutPageObjects.empty())
983 std::vector<SdrPageObj*>::iterator aPageObjIter (aHandoutPageObjects.begin());
984 for (std::vector<sal_uInt16>::const_iterator
985 iPageIndex(maPageIndices.begin()),
986 iEnd(maPageIndices.end());
987 iPageIndex!=iEnd && aPageObjIter!=aHandoutPageObjects.end();
999 int nHangoverCount = 0;
1000 while (aPageObjIter != aHandoutPageObjects.end())
1002 (*aPageObjIter++)->SetReferencedPage(
nullptr);
1007 if (nHangoverCount > 0)
1009 int nSkip = aHandoutPageObjects.size() - nHangoverCount;
1011 while (aShapeIter.IsMore())
1024 if( xHandoutPage.is() )
try
1026 xHandoutPage->setPropertyValue( sPageNumber,
Any(
static_cast<sal_Int16
>(mnHandoutPageIndex) ) );
1031 rViewShell.SetPrintedHandoutPageNum( mnHandoutPageIndex + 1 );
1046 maPageStringOffset);
1048 if( xHandoutPage.is() )
try
1050 xHandoutPage->setPropertyValue( sPageNumber,
Any(
static_cast<sal_Int16
>(0) ) );
1055 rViewShell.SetPrintedHandoutPageNum(1);
1058 if (nHangoverCount > 0)
1061 while (aShapeIter.IsMore())
1064 if (pPathObj !=
nullptr)
1072 const sal_uInt16 mnHandoutPageIndex;
1073 const std::vector<sal_uInt16> maPageIndices;
1079 class OutlinerPrinterPage :
public PrinterPage
1082 OutlinerPrinterPage (
1085 const OUString& rsPageString,
1086 const Point& rPageStringOffset,
1089 const sal_uInt16 nPaperTray)
1091 rPageStringOffset, nDrawMode, eOrientation, nPaperTray),
1092 mpParaObject(
std::move(pParaObject))
1096 virtual void Print (
1115 pOutliner->
Init(OutlinerMode::OutlineView);
1119 pOutliner->
SetText(*mpParaObject);
1121 pOutliner->
Draw(rPrinter, aOutRect);
1126 maPageStringOffset);
1132 pOutliner->
Init(nSavedOutlMode);
1171 if (rHint.
GetId() == SfxHintId::Dying)
1187 bool bIsPaperChanged =
false;
1192 Reference<awt::XDevice> xRenderDevice;
1194 if (aDev >>= xRenderDevice)
1203 bIsPaperChanged =
true;
1210 if( bIsValueChanged || bIsPaperChanged )
1230 css::uno::Sequence<css::beans::PropertyValue>
aProperties{
1256 OSL_ASSERT(pDocument!=
nullptr);
1258 std::shared_ptr<DrawViewShell> pDrawViewShell(
1275 const sal_uInt16 nSavedPaperBin (rPrinter.
GetPaperBin());
1286 pViewShell->GetFrameWeld(), VclMessageType::Warning, VclButtonsType::OkCancel,
1287 SdResId(STR_WARN_PRINTFORMAT_FAILURE)));
1289 if (xWarn->run() !=
RET_OK)
1305 pDrawViewShell ? pDrawViewShell->GetView() :
nullptr,
1307 pViewShell->GetFrameView()->GetVisibleLayers(),
1308 pViewShell->GetFrameView()->GetPrintableLayers());
1334 return pCurrentPage ? (pCurrentPage->
GetPageNum()-1)/2 : -1;
1344 rInfo.meOrientation = Orientation::Portrait;
1350 else if (rInfo.maPageSize.Width() < rInfo.maPageSize.Height())
1351 rInfo.meOrientation = Orientation::Landscape;
1357 aPaperSize.
setWidth(rInfo.maPageSize.Width());
1358 aPaperSize.
setHeight(rInfo.maPageSize.Height());
1362 aPaperSize.
setWidth(rInfo.mpPrinter->GetPaperSize().Width());
1363 aPaperSize.
setHeight(rInfo.mpPrinter->GetPaperSize().Height());
1370 if( (rInfo.meOrientation == Orientation::Landscape &&
1373 (rInfo.meOrientation == Orientation::Portrait &&
1399 if (aInfo.mpPrinter==
nullptr || pShell==
nullptr)
1403 aMap.SetMapUnit(MapUnit::Map100thMM);
1416 pOutlineViewShell->PrepareClose (
false);
1422 aInfo.msTimeDate +=
" ";
1432 maPrintSize = awt::Size(aInfo.maPrintSize.Width(),
1433 aInfo.maPrintSize.Height());
1437 aInfo.maPrintSize = aInfo.mpPrinter->GetOutputSize();
1439 aInfo.mpPrinter->GetPaperSize().Width(),
1440 aInfo.mpPrinter->GetPaperSize().Height());
1446 aInfo.mnDrawMode = DrawModeFlags::GrayLine | DrawModeFlags::GrayFill
1447 | DrawModeFlags::GrayText | DrawModeFlags::GrayBitmap
1448 | DrawModeFlags::GrayGradient;
1452 aInfo.mnDrawMode = DrawModeFlags::BlackLine | DrawModeFlags::WhiteFill
1453 | DrawModeFlags::BlackText | DrawModeFlags::GrayBitmap
1454 | DrawModeFlags::WhiteGradient;
1458 aInfo.mnDrawMode = DrawModeFlags::Default;
1482 const sal_Int32 nSlidesPerHandout (
mpOptions->GetHandoutPageCount());
1483 const bool bHandoutHorizontal (
mpOptions->IsHandoutHorizontal());
1486 switch (nSlidesPerHandout)
1515 std::vector< ::tools::Rectangle > aAreas;
1518 std::vector< ::tools::Rectangle >::iterator iter( aAreas.begin() );
1519 while( iter != aAreas.end() )
1526 if( bDrawLines && (iter != aAreas.end()) )
1538 for( sal_uInt16 nLine = 0; nLine < 7; nLine++ )
1541 aPathPoly.
append( aPoly );
1546 SdrObjKind::PathLine,
1547 std::move(aPathPoly));
1548 pPathObj->SetMergedItem(
XLineStyleItem(drawing::LineStyle_SOLID));
1562 const sal_Int32 nPageIndex,
1566 OSL_ASSERT(nPageIndex>=0);
1568 sal::static_int_cast<sal_uInt16>(nPageIndex),
1570 if (pPage ==
nullptr)
1587 Point aPageOfs (rInfo.mpPrinter->GetPageOffset() );
1595 Size aPaperSize( rInfo.mpPrinter->PixelToLogic( rInfo.mpPrinter->GetPaperSizePixel(),
MapMode( MapUnit::Map100thMM ) ) );
1598 const auto nRotatedWidth = aOutRect.
GetHeight();
1599 const auto nRotatedHeight = aOutRect.
GetWidth();
1600 const auto nRotatedX = aPageOfs.
Y();
1601 const auto nRotatedY = aPageOfs.
X();
1603 Size(nRotatedWidth, nRotatedHeight));
1607 pOutliner->
Init(OutlinerMode::OutlineView);
1617 std::vector< sal_Int32 > aPages;
1621 aPages, 0, nPageCount-1);
1633 if (pPage ==
nullptr)
1639 while (pTextObj==
nullptr && nObj < pPage->GetObjCount())
1651 if (pTextObj!=
nullptr
1658 pOutliner->
Insert(OUString());
1663 while (pTextObj==
nullptr && nObj<pPage->GetObjCount())
1673 bool bSubTitle (
false);
1682 if (pTextObj!=
nullptr
1692 for (sal_Int32 nPara=nParaCount1; nPara<nParaCount2; ++nPara)
1695 if (pP!=
nullptr && pOutliner->
GetDepth(nPara) > 0)
1705 if (nH > nPageH && pPara!=
nullptr)
1709 sal_Int32 nParaPos = pOutliner->
GetAbsPos( pPara );
1712 if ( nCnt && pPara )
1714 pOutliner->
Remove(pPara, nCnt);
1722 std::make_shared<OutlinerPrinterPage>(
1728 rInfo.meOrientation,
1729 rInfo.mpPrinter->GetPaperBin()));
1736 pOutliner->
Init(nSavedOutlMode);
1744 OSL_ASSERT(pDocument !=
nullptr);
1747 const bool bScalePage (
mpOptions->IsPageSize());
1749 sal_uInt16 nPaperBin;
1753 nPaperBin = rInfo.mpPrinter->GetPaperBin();
1759 const Size aPaperSize (rInfo.mpPrinter->GetPaperSize());
1760 if( (rInfo.meOrientation == Orientation::Landscape &&
1763 (rInfo.meOrientation == Orientation::Portrait &&
1775 const Point aPageOfs (rInfo.mpPrinter->GetPageOffset());
1780 const Size aPrintSize (rInfo.mpPrinter->GetOutputSize());
1782 const double fHorz =
static_cast<double>(aPrintSize.
Width()) / aPageSize.
Width();
1783 const double fVert =
static_cast<double>(aPrintSize.
Height()) / aPageSize.
Height();
1786 if ( fHorz < fVert )
1791 aMap.SetScaleX(aFract);
1792 aMap.SetScaleY(aFract);
1797 pViewShell->WriteFrameViewData();
1800 sal_uInt32 nShapeCount (0);
1802 while (aShapeIter.
IsMore())
1810 const sal_uInt16 nHandoutPageCount = nShapeCount ? (nPageCount + nShapeCount - 1) / nShapeCount : 0;
1811 pViewShell->SetPrintedHandoutPageCount( nHandoutPageCount );
1818 std::vector<sal_uInt16> aPageIndices;
1819 sal_uInt16 nPrinterPageIndex = 0;
1821 bool bLastLoop = (it == itEnd);
1824 sal_Int32 nPageIndex = *it;
1826 bLastLoop = (it == itEnd);
1829 aPageIndices.push_back(nPageIndex);
1830 else if (!bLastLoop)
1836 && (aPageIndices.size() == nShapeCount || bLastLoop) )
1839 std::make_shared<HandoutPrinterPage>(
1840 nPrinterPageIndex++,
1841 std::move(aPageIndices),
1846 rInfo.meOrientation,
1848 aPageIndices.clear();
1859 OSL_ASSERT(rInfo.mpPrinter !=
nullptr);
1866 rInfo.maPageSize = pRefPage->
GetSize();
1887 pViewShell->WriteFrameViewData();
1894 it = aRangeEnum.
begin(),
1895 itEnd = aRangeEnum.
end();
1900 if (pPage ==
nullptr)
1909 const double fHorz (
static_cast<double>(rInfo.maPrintSize.Width()) / aPageSize.
Width());
1910 const double fVert (
static_cast<double>(rInfo.maPrintSize.Height()) / aPageSize.
Height());
1914 aFract =
Fraction(rInfo.maPrintSize.Width(), aPageSize.
Width());
1916 aFract =
Fraction(rInfo.maPrintSize.Height(), aPageSize.
Height());
1918 aMap.SetScaleX(aFract);
1919 aMap.SetScaleY(aFract);
1925 rInfo.msPageString = pPage->
GetName() +
" ";
1928 rInfo.msPageString.clear();
1929 rInfo.msPageString += rInfo.msTimeDate;
1937 if( ( rInfo.maPrintSize.Width() > rInfo.maPrintSize.Height()
1938 && aPageWidth < aPageHeight )
1939 || ( rInfo.maPrintSize.Width() < rInfo.maPrintSize.Height()
1940 && aPageWidth > aPageHeight ) )
1942 const sal_Int32 nTmp (rInfo.maPrintSize.Width());
1943 rInfo.maPrintSize.setWidth( rInfo.maPrintSize.Height() );
1944 rInfo.maPrintSize.setHeight( nTmp );
1948 && aPageWidth < rInfo.maPrintSize.Width()
1949 && aPageHeight < rInfo.maPrintSize.Height())
1966 const PrintInfo& rInfo)
1968 MapMode aStdMap (rInfo.maMap);
1970 Size aPrintSize_2 (rInfo.maPrintSize);
1971 Size aPageSize_2 (rInfo.maPageSize);
1973 if (rInfo.meOrientation == Orientation::Landscape)
1978 const double fPageWH =
static_cast<double>(aPageSize_2.
Width()) / aPageSize_2.
Height();
1979 const double fPrintWH =
static_cast<double>(aPrintSize_2.
Width()) / aPrintSize_2.
Height();
1981 if( fPageWH < fPrintWH )
2002 if (rInfo.meOrientation == Orientation::Landscape)
2004 aOffset.
setX( ( ( aAdjustedPrintSize.
Width() >> 1 ) - rInfo.maPageSize.Width() ) >> 1 );
2005 aOffset.
setY( ( aAdjustedPrintSize.
Height() - rInfo.maPageSize.Height() ) >> 1 );
2009 aOffset.
setX( ( aAdjustedPrintSize.
Width() - rInfo.maPageSize.Width() ) >> 1 );
2010 aOffset.
setY( ( ( aAdjustedPrintSize.
Height() >> 1 ) - rInfo.maPageSize.Height() ) >> 1 );
2018 std::vector< sal_uInt16 > aPageVector;
2020 it = aRangeEnum.
begin(),
2021 itEnd = aRangeEnum.
end();
2026 if (pPage !=
nullptr)
2027 aPageVector.push_back(*it);
2031 std::vector< std::pair< sal_uInt16, sal_uInt16 > > aPairVector;
2032 if ( ! aPageVector.empty())
2034 sal_uInt32 nFirstIndex = 0, nLastIndex = aPageVector.size() - 1;
2036 if( aPageVector.size() & 1 )
2037 aPairVector.emplace_back( sal_uInt16(65535), aPageVector[ nFirstIndex++ ] );
2039 aPairVector.emplace_back( aPageVector[ nLastIndex-- ], aPageVector[ nFirstIndex++ ] );
2041 while( nFirstIndex < nLastIndex )
2043 if( nFirstIndex & 1 )
2044 aPairVector.emplace_back( aPageVector[ nFirstIndex++ ], aPageVector[ nLastIndex-- ] );
2046 aPairVector.emplace_back( aPageVector[ nLastIndex-- ], aPageVector[ nFirstIndex++ ] );
2052 nCount=aPairVector.size();
2058 const std::pair<sal_uInt16, sal_uInt16> aPair (aPairVector[
nIndex]);
2059 Point aSecondOffset (aOffset);
2060 if (rInfo.meOrientation == Orientation::Landscape)
2061 aSecondOffset.
AdjustX( aAdjustedPrintSize.
Width() / 2 );
2065 std::make_shared<BookletPrinterPage>(
2072 rInfo.mbPrintMarkedOnly,
2074 rInfo.meOrientation,
2075 rInfo.mpPrinter->GetPaperBin()));
2085 const sal_Int32 nPageIndex,
2088 const PrintInfo& rInfo)
2090 sal_uInt16 nPaperBin;
2094 nPaperBin = rInfo.mpPrinter->GetPaperBin();
2100 std::make_shared<TiledPrinterPage>(
2101 sal::static_int_cast<sal_uInt16>(nPageIndex),
2103 rInfo.mbPrintMarkedOnly,
2105 rInfo.mpPrinter->GetPageOffset(),
2107 rInfo.meOrientation,
2116 const sal_Int32 nPageIndex,
2119 const PrintInfo& rInfo)
2121 const Point aPageOffset (rInfo.mpPrinter->GetPageOffset());
2123 sal_uInt16 nPaperBin;
2127 nPaperBin = rInfo.mpPrinter->GetPaperBin();
2136 const bool bScalePage (
mpOptions->IsPageSize());
2137 const bool bCutPage (
mpOptions->IsCutPage());
2146 std::make_shared<RegularPrinterPage>(
2147 sal::static_int_cast<sal_uInt16>(nPageIndex),
2150 rInfo.mbPrintMarkedOnly,
2154 rInfo.meOrientation,
2164 const ::tools::Long nPageWidth (
2166 const ::tools::Long nPageHeight (
2169 Point aOrigin ( 0, 0 );
2171 for (
Point aPageOrigin = aOrigin;
2172 -aPageOrigin.
Y()<nPageHeight;
2173 aPageOrigin.AdjustY( -rInfo.maPrintSize.Height() ))
2175 for (aPageOrigin.setX(aOrigin.
X());
2176 -aPageOrigin.X()<nPageWidth;
2177 aPageOrigin.AdjustX(-rInfo.maPrintSize.Width()))
2181 aMap.SetOrigin(aPageOrigin);
2183 std::make_shared<RegularPrinterPage>(
2184 sal::static_int_cast<sal_uInt16>(nPageIndex),
2187 rInfo.mbPrintMarkedOnly,
2191 rInfo.meOrientation,
2201 const bool bIsIndexOdd(nPage & 1);
2202 if ((!bIsIndexOdd &&
mpOptions->IsPrintFrontPage())
2203 || (bIsIndexOdd &&
mpOptions->IsPrintBackPage()))
2226 const css::uno::Any&,
2227 const css::uno::Sequence<css::beans::PropertyValue >& rOptions)
2229 mpImpl->ProcessProperties(rOptions);
2230 return mpImpl->GetPrintPageCount();
2235 const css::uno::Any&,
2236 const css::uno::Sequence<css::beans::PropertyValue>& rOptions)
2238 mpImpl->ProcessProperties(rOptions);
2239 return mpImpl->GetProperties();
2243 sal_Int32 nRenderer,
2244 const css::uno::Any&,
2245 const css::uno::Sequence<css::beans::PropertyValue>& rOptions)
2247 mpImpl->ProcessProperties(rOptions);
2248 mpImpl->PrintPage(nRenderer);
PropertiesInfo aProperties
const ::basegfx::B2DSize maPageSize
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, const ILibreOfficeKitNotifier *pNotifier=nullptr)
OUString getDate(const Date &rDate) const
OUString getTime(const tools::Time &rTime, bool bSec=true, bool b100Sec=false) const
void Remove(Paragraph const *pPara, sal_Int32 nParaCount)
void SetText(const OutlinerParaObject &)
bool IsUpdateLayout() const
const Size & GetPaperSize() const
OutlinerMode GetOutlinerMode() const
void AddText(const OutlinerParaObject &, bool bAppend=false)
Paragraph * GetParagraph(sal_Int32 nAbsPos) const
MapMode const & GetRefMapMode() const
std::optional< OutlinerParaObject > CreateParaObject(sal_Int32 nStartPara=0, sal_Int32 nParaCount=EE_PARA_ALL) const
void SetPaperSize(const Size &rSize)
sal_Int16 GetDepth(sal_Int32 nPara) const
bool SetUpdateLayout(bool bUpdate)
void SetDepth(Paragraph *pParagraph, sal_Int16 nNewDepth)
EEControlBits GetControlWord() const
sal_Int32 GetAbsPos(Paragraph const *pPara) const
void SetControlWord(EEControlBits nWord)
sal_uInt32 GetTextHeight() const
void Draw(OutputDevice &rOutDev, const tools::Rectangle &rOutRect)
Paragraph * Insert(const OUString &rText, sal_Int32 nAbsPos=EE_PARA_APPEND, sal_Int16 nDepth=0)
void SetRefMapMode(const MapMode &)
void Init(OutlinerMode nMode)
sal_Int32 GetParagraphCount() const
Size GetOutputSize() const
void SetFont(const vcl::Font &rNewFont)
SAL_WARN_UNUSED_RESULT Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
const MapMode & GetMapMode() const
void SetDrawMode(DrawModeFlags nDrawMode)
void DrawText(const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
DrawModeFlags GetDrawMode() const
constexpr tools::Long Y() const
void setX(tools::Long nX)
void setY(tools::Long nY)
tools::Long AdjustY(tools::Long nVertMove)
tools::Long AdjustX(tools::Long nHorzMove)
constexpr tools::Long X() const
bool SetOrientation(Orientation eOrient)
bool SetPaperBin(sal_uInt16 nPaperBin)
Point GetPageOffset() const
sal_uInt16 GetPaperBin() const
Orientation GetOrientation() const
SdPage * GetSdPage(sal_uInt16 nPgNum, PageKind ePgKind) const
SdOutliner * GetInternalOutliner(bool bCreateOutliner=true)
SAL_DLLPRIVATE DocumentType GetDocumentType() const
sal_uInt16 GetSdPageCount(PageKind ePgKind) const
SdrObject * GetPresObj(PresObjKind eObjKind, int nIndex=1, bool bFuzzySearch=false)
returns the nIndex'th object from the given PresObjKind, index starts with 1
virtual Orientation GetOrientation() const override
virtual rtl::Reference< SdrObject > NbcRemoveObject(size_t nObjNum) override
static void CalculateHandoutAreas(SdDrawDocument &rModel, AutoLayout eLayout, bool bHorizontal, std::vector< ::tools::Rectangle > &rAreas)
const OUString & GetName() const
sal_uInt16 GetPaperBin() const
virtual void NbcInsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE) override
const LocaleDataWrapper & GetLocaleData()
void setHandoutPageCount(sal_uInt16 nHandoutPageCount)
SdrOutliner & GetDrawOutliner(const SdrTextObj *pObj=nullptr) const
SdrObject * GetObj(size_t nNum) const
size_t GetObjCount() const
virtual SdrInventor GetObjInventor() const
bool IsEmptyPresObj() const
virtual SdrObjKind GetObjIdentifier() const
void SetMergedItem(const SfxPoolItem &rItem)
void SetReferencedPage(SdrPage *pNewPage)
void SetVisibleLayers(const SdrLayerIDSet &rSet)
void SetPrintableLayers(const SdrLayerIDSet &rSet)
SdrPage & TRG_GetMasterPage() const
sal_uInt16 GetPageNum() const
sal_Int32 GetUpperBorder() const
sal_Int32 GetRightBorder() const
sal_Int32 GetLeftBorder() const
sal_Int32 GetLowerBorder() const
SdrPageView * GetSdrPageView() const
virtual OutlinerParaObject * GetOutlinerParaObject() const override
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
constexpr tools::Long Height() const
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
static bool getRangesFromString(std::u16string_view i_rPageRange, std::vector< sal_Int32 > &o_rPageVector, sal_Int32 i_nMinNumber, sal_Int32 i_nMaxNumber, sal_Int32 i_nLogicalOffset=-1, o3tl::sorted_vector< sal_Int32 > const *i_pPossibleValues=nullptr)
Iterator end(const o3tl::sorted_vector< sal_Int32 > *i_pPossibleValues=nullptr) const
Iterator begin(const o3tl::sorted_vector< sal_Int32 > *i_pPossibleValues=nullptr) const
OUString GetModuleName(EModule eModule) const
const VclPtr< OutputDevice > & GetOutputDevice() const
void translate(double fX, double fY)
void append(const B2DPolygon &rPolygon, sal_uInt32 nCount=1)
void insert(sal_uInt32 nIndex, const basegfx::B2DPoint &rPoint, sal_uInt32 nCount=1)
void transform(const basegfx::B2DHomMatrix &rMatrix)
void ProcessProperties(const css::uno::Sequence< css::beans::PropertyValue > &rOptions)
Process the sequence of properties given to one of the XRenderable methods.
bool mbHasOrientationWarningBeenShown
css::uno::Sequence< css::beans::PropertyValue > GetProperties() const
Return a sequence of properties that can be returned by the XRenderable::getRenderer() method.
std::unique_ptr< PrintOptions > mpOptions
SfxObjectShellRef mxObjectShell
SdPage * GetFilteredPage(const sal_Int32 nPageIndex, const PageKind ePageKind) const
Detect whether the specified slide is to be printed.
std::vector< std::shared_ptr< ::sd::PrinterPage > > maPrinterPages
void PrepareOutline(PrintInfo const &rInfo)
Prepare the outline of the document for printing.
void PrepareRegularPages(const PageKind ePageKind, PrintInfo &rInfo)
Prepare slides in a non-booklet way: one slide per one to many printer pages.
void SetupPaperOrientation(const PageKind ePageKind, PrintInfo &rInfo)
Determine and set the paper orientation.
void PrepareBooklet(const PageKind ePageKind, const PrintInfo &rInfo)
Put two slides on one printer page.
void PrepareHandout(PrintInfo &rInfo)
Prepare handout pages for slides that are to be printed.
sal_Int32 GetPrintPageCount() const
Return the number of pages that are to be printed.
void PrepareTiledPage(const sal_Int32 nPageIndex, const SdPage &rPage, const PageKind ePageKind, const PrintInfo &rInfo)
Print one slide multiple times on one printer page so that the whole printer page is covered.
sal_Int32 GetCurrentPageIndex() const
Implementation(ViewShellBase &rBase)
void PrintPage(const sal_Int32 nIndex)
Print one of the prepared pages.
void PrepareScaledPage(const sal_Int32 nPageIndex, const SdPage &rPage, const PageKind ePageKind, const PrintInfo &rInfo)
Print one standard slide or notes page on one to many printer pages.
bool CheckForFrontBackPages(sal_Int32 nPage)
Size maPrinterPageSizePixel
virtual ~Implementation() override
std::unique_ptr< DrawView > mpPrintView
void PrepareStdOrNotes(const PageKind ePageKind, PrintInfo &rInfo)
Prepare the notes pages or regular slides.
void PreparePages()
Top most method for preparing printer pages.
VclPtr< Printer > mpPrinter
virtual void Notify(SfxBroadcaster &rBroadcaster, const SfxHint &rHint) override
void InitHandoutTemplate()
Create the page objects of the handout template.
std::vector< sal_Int32 > maSlidesPerPage
virtual ~DocumentRenderer() override
virtual sal_Int32 SAL_CALL getRendererCount(const css::uno::Any &aSelection, const css::uno::Sequence< css::beans::PropertyValue > &xOptions) override
virtual void SAL_CALL render(sal_Int32 nRenderer, const css::uno::Any &rSelection, const css::uno::Sequence< css::beans::PropertyValue > &rxOptions) override
virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getRenderer(sal_Int32 nRenderer, const css::uno::Any &rSelection, const css::uno::Sequence< css::beans::PropertyValue > &rxOptions) override
DocumentRenderer(ViewShellBase &rBase)
std::unique_ptr< Implementation > mpImpl
DocumentType GetDocumentType() const
Derivative of sd::View; contains also a pointer to the document.
Show a textual overview of the text contents of all slides.
SfxViewShell descendant that the stacked Draw/Impress shells are based on.
std::shared_ptr< ViewShell > GetMainViewShell() const
Return the main view shell stacked on the called ViewShellBase object.
DrawDocShell * GetDocShell() const
SdDrawDocument * GetDocument() const
Base class of the stacked shell hierarchy.
virtual SdPage * getCurrentPage() const =0
void CompleteRedraw(OutputDevice *pOutDev, const vcl::Region &rReg, sdr::contact::ViewObjectContactRedirector *pRedirector=nullptr) override
The event will be forwarded to the View.
static css::uno::Any setGroupControlOpt(const OUString &i_rID, const OUString &i_rTitle, const OUString &i_rHelpId)
bool getBoolValue(const OUString &i_rPropertyName, bool i_bDefault) const
static css::uno::Any setChoiceRadiosControlOpt(const css::uno::Sequence< OUString > &i_rIDs, const OUString &i_rTitle, const css::uno::Sequence< OUString > &i_rHelpId, const OUString &i_rProperty, const css::uno::Sequence< OUString > &i_rChoices, sal_Int32 i_nValue, const css::uno::Sequence< sal_Bool > &i_rDisabledChoices=css::uno::Sequence< sal_Bool >(), const UIControlOptions &i_rControlOptions=UIControlOptions())
std::vector< css::beans::PropertyValue > m_aUIProperties
sal_Int64 getIntValue(const OUString &i_rPropertyName, sal_Int64 i_nDefault) const
static css::uno::Any setBoolControlOpt(const OUString &i_rID, const OUString &i_rTitle, const OUString &i_rHelpId, const OUString &i_rProperty, bool i_bValue, const UIControlOptions &i_rControlOptions=UIControlOptions())
static css::uno::Any setSubgroupControlOpt(const OUString &i_rID, const OUString &i_rTitle, const OUString &i_rHelpId, const UIControlOptions &i_rControlOptions=UIControlOptions())
css::uno::Any getValue(const OUString &i_rPropertyName) const
static css::uno::Any setChoiceListControlOpt(const OUString &i_rID, const OUString &i_rTitle, const css::uno::Sequence< OUString > &i_rHelpId, const OUString &i_rProperty, const css::uno::Sequence< OUString > &i_rChoices, sal_Int32 i_nValue, const css::uno::Sequence< sal_Bool > &i_rDisabledChoices=css::uno::Sequence< sal_Bool >(), const UIControlOptions &i_rControlOptions=UIControlOptions())
bool processProperties(const css::uno::Sequence< css::beans::PropertyValue > &i_rNewProp)
static css::uno::Any setEditControlOpt(const OUString &i_rID, const OUString &i_rTitle, const OUString &i_rHelpId, const OUString &i_rProperty, const OUString &i_rValue, const UIControlOptions &i_rControlOptions)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
#define SAL_N_ELEMENTS(arr)
SvGenericNameContainerMapImpl maProperties
css::uno::Sequence< DstElementType > containerToSequence(const SrcType &i_Container)
css::beans::PropertyValue makePropertyValue(const OUString &rName, T &&rValue)
HashMap_OWString_Interface aMap
OUString SdResId(TranslateId aId)
SVXCORE_DLLPUBLIC SdrGlobalData & GetSdrGlobalData()
SVXCORE_DLLPUBLIC SdrTextObj * DynCastSdrTextObj(SdrObject *)