LibreOffice Module sd (master) 1
|
Public Member Functions | |
Implementation (ViewShellBase &rBase) | |
virtual | ~Implementation () override |
virtual void | Notify (SfxBroadcaster &rBroadcaster, const SfxHint &rHint) override |
void | ProcessProperties (const css::uno::Sequence< css::beans::PropertyValue > &rOptions) |
Process the sequence of properties given to one of the XRenderable methods. More... | |
sal_Int32 | GetPrintPageCount () const |
Return the number of pages that are to be printed. More... | |
css::uno::Sequence< css::beans::PropertyValue > | GetProperties () const |
Return a sequence of properties that can be returned by the XRenderable::getRenderer() method. More... | |
void | PrintPage (const sal_Int32 nIndex) |
Print one of the prepared pages. More... | |
![]() | |
SfxListener () | |
SfxListener (const SfxListener &rCopy) | |
virtual | ~SfxListener () COVERITY_NOEXCEPT_FALSE |
void | StartListening (SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected) |
void | EndListening (SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false) |
void | EndListeningAll () |
bool | IsListening (SfxBroadcaster &rBroadcaster) const |
sal_uInt16 | GetBroadcasterCount () const |
SfxBroadcaster * | GetBroadcasterJOE (sal_uInt16 nNo) const |
virtual void | Notify (SfxBroadcaster &rBC, const SfxHint &rHint) |
void | RemoveBroadcaster_Impl (SfxBroadcaster &rBC) |
virtual bool | IsSdrView () const |
![]() | |
PrinterOptionsHelper () | |
bool | processProperties (const css::uno::Sequence< css::beans::PropertyValue > &i_rNewProp) |
void | appendPrintUIOptions (css::uno::Sequence< css::beans::PropertyValue > &io_rProps) const |
css::uno::Any | getValue (const OUString &i_rPropertyName) const |
bool | getBoolValue (const OUString &i_rPropertyName, bool i_bDefault) const |
bool | getBoolValue (const char *i_pPropName, bool i_bDefault=false) const |
sal_Int64 | getIntValue (const OUString &i_rPropertyName, sal_Int64 i_nDefault) const |
sal_Int64 | getIntValue (const char *i_pPropName, sal_Int64 i_nDefault) const |
OUString | getStringValue (const OUString &i_rPropertyName) const |
OUString | getStringValue (const char *i_pPropName) const |
Private Member Functions | |
sal_Int32 | GetCurrentPageIndex () const |
void | SetupPaperOrientation (const PageKind ePageKind, PrintInfo &rInfo) |
Determine and set the paper orientation. More... | |
void | PreparePages () |
Top most method for preparing printer pages. More... | |
void | InitHandoutTemplate () |
Create the page objects of the handout template. More... | |
SdPage * | GetFilteredPage (const sal_Int32 nPageIndex, const PageKind ePageKind) const |
Detect whether the specified slide is to be printed. More... | |
void | PrepareOutline (PrintInfo const &rInfo) |
Prepare the outline of the document for printing. More... | |
void | PrepareHandout (PrintInfo &rInfo) |
Prepare handout pages for slides that are to be printed. More... | |
void | PrepareStdOrNotes (const PageKind ePageKind, PrintInfo &rInfo) |
Prepare the notes pages or regular slides. More... | |
void | PrepareRegularPages (const PageKind ePageKind, PrintInfo &rInfo) |
Prepare slides in a non-booklet way: one slide per one to many printer pages. More... | |
void | PrepareBooklet (const PageKind ePageKind, const PrintInfo &rInfo) |
Put two slides on one printer page. More... | |
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. More... | |
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. More... | |
bool | CheckForFrontBackPages (sal_Int32 nPage) |
Private Attributes | |
SfxObjectShellRef | mxObjectShell |
ViewShellBase & | mrBase |
bool | mbIsDisposed |
VclPtr< Printer > | mpPrinter |
Size | maPrinterPageSizePixel |
std::unique_ptr< PrintOptions > | mpOptions |
std::vector< std::shared_ptr< ::sd::PrinterPage > > | maPrinterPages |
std::unique_ptr< DrawView > | mpPrintView |
bool | mbHasOrientationWarningBeenShown |
std::vector< sal_Int32 > | maSlidesPerPage |
awt::Size | maPrintSize |
Additional Inherited Members | |
![]() | |
static css::uno::Any | setUIControlOpt (const css::uno::Sequence< OUString > &i_rIDs, const OUString &i_rTitle, const css::uno::Sequence< OUString > &i_rHelpId, const OUString &i_rType, const css::beans::PropertyValue *i_pValue=nullptr, const UIControlOptions &i_rControlOptions=UIControlOptions()) |
static css::uno::Any | setGroupControlOpt (const OUString &i_rID, const OUString &i_rTitle, const OUString &i_rHelpId) |
static css::uno::Any | setSubgroupControlOpt (const OUString &i_rID, const OUString &i_rTitle, const OUString &i_rHelpId, const UIControlOptions &i_rControlOptions=UIControlOptions()) |
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 | 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()) |
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()) |
static css::uno::Any | setRangeControlOpt (const OUString &i_rID, const OUString &i_rTitle, const OUString &i_rHelpId, const OUString &i_rProperty, sal_Int32 i_nValue, sal_Int32 i_nMinValue, sal_Int32 i_nMaxValue, const UIControlOptions &i_rControlOptions) |
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) |
![]() | |
std::unordered_map< OUString, css::uno::Any > | m_aPropertyMap |
std::vector< css::beans::PropertyValue > | m_aUIProperties |
Definition at line 1142 of file DocumentRenderer.cxx.
|
inlineexplicit |
Definition at line 1147 of file DocumentRenderer.cxx.
References GetCurrentPageIndex(), sd::ViewShellBase::GetDocShell(), sd::DrawDocShell::GetDocumentType(), Impress, vcl::PrinterOptionsHelper::m_aUIProperties, maSlidesPerPage, mrBase, and SfxListener::StartListening().
|
inlineoverridevirtual |
Definition at line 1161 of file DocumentRenderer.cxx.
References SfxListener::EndListening(), and mrBase.
|
inlineprivate |
Definition at line 2199 of file DocumentRenderer.cxx.
References mpOptions.
Referenced by PrepareBooklet(), PrepareHandout(), PrepareOutline(), PrepareScaledPage(), and PrepareTiledPage().
|
inlineprivate |
Definition at line 1330 of file DocumentRenderer.cxx.
References sd::ViewShell::getCurrentPage(), sd::ViewShellBase::GetMainViewShell(), SdrPage::GetPageNum(), and mrBase.
Referenced by Implementation(), PrepareBooklet(), PrepareHandout(), PrepareOutline(), and PrepareRegularPages().
|
inlineprivate |
Detect whether the specified slide is to be printed.
Definition at line 1561 of file DocumentRenderer.cxx.
References sd::ViewShellBase::GetDocument(), SdDrawDocument::GetSdPage(), SdPage::IsExcluded(), mpOptions, and mrBase.
Referenced by PrepareBooklet(), PrepareHandout(), PrepareOutline(), and PrepareRegularPages().
|
inline |
Return the number of pages that are to be printed.
Definition at line 1216 of file DocumentRenderer.cxx.
References maPrinterPages, and mbIsDisposed.
|
inline |
Return a sequence of properties that can be returned by the XRenderable::getRenderer() method.
Definition at line 1228 of file DocumentRenderer.cxx.
References aProperties, comphelper::containerToSequence(), vcl::PrinterOptionsHelper::m_aUIProperties, comphelper::makePropertyValue(), and maPrintSize.
|
inlineprivate |
Create the page objects of the handout template.
When the actual printing takes place then the page objects are assigned different sets of slides for each printed page (see HandoutPrinterPage::Print).
Definition at line 1480 of file DocumentRenderer.cxx.
References basegfx::B2DPolyPolygon::append(), AUTOLAYOUT_HANDOUT1, AUTOLAYOUT_HANDOUT2, AUTOLAYOUT_HANDOUT3, AUTOLAYOUT_HANDOUT4, AUTOLAYOUT_HANDOUT6, AUTOLAYOUT_HANDOUT9, AUTOLAYOUT_NONE, SdPage::CalculateHandoutAreas(), COL_BLACK(), sd::ViewShellBase::GetDocument(), tools::Rectangle::GetHeight(), SdrObjList::GetObjCount(), SdDrawDocument::GetSdPage(), Handout, basegfx::B2DPolygon::insert(), tools::Rectangle::Left(), mpOptions, mrBase, SdPage::NbcInsertObject(), SdPage::NbcRemoveObject(), tools::Rectangle::Right(), tools::Rectangle::Top(), basegfx::B2DPolygon::transform(), and basegfx::B2DHomMatrix::translate().
Referenced by PreparePages().
|
inlineoverridevirtual |
Reimplemented from SfxListener.
Definition at line 1166 of file DocumentRenderer.cxx.
References SfxHint::GetId(), mbIsDisposed, and mrBase.
|
inlineprivate |
Put two slides on one printer page.
Definition at line 1964 of file DocumentRenderer.cxx.
References Point::AdjustX(), Point::AdjustY(), aMap, StringRangeEnumerator::begin(), CheckForFrontBackPages(), StringRangeEnumerator::end(), GetCurrentPageIndex(), sd::ViewShellBase::GetDocument(), GetFilteredPage(), SdDrawDocument::GetSdPageCount(), Size::Height(), OutputDevice::LogicToLogic(), maPrinterPages, mpOptions, mrBase, nCount, nIndex, Size::setHeight(), Size::setWidth(), Point::setX(), Point::setY(), and Size::Width().
Referenced by PrepareStdOrNotes().
|
inlineprivate |
Prepare handout pages for slides that are to be printed.
Definition at line 1741 of file DocumentRenderer.cxx.
References aMap, StringRangeEnumerator::begin(), CheckForFrontBackPages(), StringRangeEnumerator::end(), GetCurrentPageIndex(), sd::ViewShellBase::GetDocument(), GetFilteredPage(), sd::ViewShellBase::GetMainViewShell(), SdPage::GetOrientation(), SdPage::GetPaperBin(), SdDrawDocument::GetSdPage(), SdDrawDocument::GetSdPageCount(), SdrPage::GetSize(), Handout, Size::Height(), SdrObjListIter::IsMore(), maPrinterPages, maPrintSize, mpOptions, mrBase, SdrObjListIter::Next(), SdrModel::setHandoutPageCount(), Standard, SdrPage::TRG_GetMasterPage(), and Size::Width().
Referenced by PreparePages().
|
inlineprivate |
Prepare the outline of the document for printing.
There is no fixed number of slides whose outline data is put onto one printer page. If the current printer page has enough room for the outline of the current slide then that is added. Otherwise a new printer page is started.
Definition at line 1584 of file DocumentRenderer.cxx.
References Outliner::AddText(), aMap, CheckForFrontBackPages(), Outliner::Clear(), Outliner::CreateParaObject(), DynCastSdrTextObj(), Outliner::GetAbsPos(), GetCurrentPageIndex(), Outliner::GetDepth(), sd::ViewShellBase::GetDocument(), GetFilteredPage(), tools::Rectangle::GetHeight(), SdDrawDocument::GetInternalOutliner(), SdrObjList::GetObj(), SdrObject::GetObjIdentifier(), SdrObject::GetObjInventor(), Outliner::GetOutlinerMode(), SdrTextObj::GetOutlinerParaObject(), Outliner::GetPaperSize(), Outliner::GetParagraph(), Outliner::GetParagraphCount(), SdPage::GetPresObj(), StringRangeEnumerator::getRangesFromString(), Outliner::GetRefMapMode(), SdDrawDocument::GetSdPageCount(), tools::Rectangle::GetSize(), Outliner::GetTextHeight(), tools::Rectangle::GetWidth(), Size::Height(), Outliner::Init(), Outliner::Insert(), SdrObject::IsEmptyPresObj(), Outliner::IsUpdateLayout(), maPrinterPages, maPrintSize, mpOptions, mpPrinter, mrBase, nCount, nIndex, Outliner::Remove(), Outliner::SetDepth(), Outliner::SetPaperSize(), Outliner::SetRefMapMode(), Outliner::SetUpdateLayout(), Standard, Text, Size::Width(), Point::X(), and Point::Y().
Referenced by PreparePages().
|
inlineprivate |
Top most method for preparing printer pages.
In this and the other Prepare... methods the various special cases are detected and handled. For every page that is to be printed (that may contain several slides) one PrinterPage object is created and inserted into maPrinterPages.
Definition at line 1389 of file DocumentRenderer.cxx.
References aMap, Outliner::GetControlWord(), LocaleDataWrapper::getDate(), sd::ViewShellBase::GetDocShell(), sd::ViewShellBase::GetDocument(), sd::DrawDocShell::GetDocumentType(), SdrModel::GetDrawOutliner(), SdrGlobalData::GetLocaleData(), sd::ViewShellBase::GetMainViewShell(), SdDrawDocument::GetSdPage(), GetSdrGlobalData(), SdrPage::GetSize(), LocaleDataWrapper::getTime(), InitHandoutTemplate(), maPrinterPages, maPrintSize, mbHasOrientationWarningBeenShown, mpOptions, mpPrinter, mpPrintView, mrBase, Notes, PrepareHandout(), PrepareOutline(), PrepareStdOrNotes(), Outliner::SetControlWord(), Standard, Date::SYSTEM, and tools::Time::SYSTEM.
Referenced by ProcessProperties().
|
inlineprivate |
Prepare slides in a non-booklet way: one slide per one to many printer pages.
Definition at line 1882 of file DocumentRenderer.cxx.
References aMap, StringRangeEnumerator::begin(), StringRangeEnumerator::end(), GetCurrentPageIndex(), sd::ViewShellBase::GetDocument(), GetFilteredPage(), SdrPage::GetLeftBorder(), SdrPage::GetLowerBorder(), sd::ViewShellBase::GetMainViewShell(), SdPage::GetName(), SdrPage::GetRightBorder(), SdDrawDocument::GetSdPageCount(), SdrPage::GetSize(), SdrPage::GetUpperBorder(), Size::Height(), mpOptions, mrBase, PrepareScaledPage(), PrepareTiledPage(), Standard, and Size::Width().
Referenced by PrepareStdOrNotes().
|
inlineprivate |
Print one standard slide or notes page on one to many printer pages.
More than on printer page is used when the slide is larger than the printable area.
Definition at line 2115 of file DocumentRenderer.cxx.
References aMap, CheckForFrontBackPages(), SdrPage::GetLeftBorder(), SdrPage::GetLowerBorder(), SdPage::GetPaperBin(), SdrPage::GetRightBorder(), SdrPage::GetUpperBorder(), maPrinterPages, mpOptions, Point::X(), and Point::Y().
Referenced by PrepareRegularPages().
|
inlineprivate |
Prepare the notes pages or regular slides.
Definition at line 1855 of file DocumentRenderer.cxx.
References aMap, sd::ViewShellBase::GetMainViewShell(), SdDrawDocument::GetSdPage(), SdDrawDocument::GetSdPageCount(), SdrPage::GetSize(), mpOptions, mrBase, PrepareBooklet(), PrepareRegularPages(), and SetupPaperOrientation().
Referenced by PreparePages().
|
inlineprivate |
Print one slide multiple times on one printer page so that the whole printer page is covered.
Definition at line 2084 of file DocumentRenderer.cxx.
References CheckForFrontBackPages(), SdPage::GetPaperBin(), maPrinterPages, and mpOptions.
Referenced by PrepareRegularPages().
|
inline |
Print one of the prepared pages.
Definition at line 1243 of file DocumentRenderer.cxx.
References Application::CreateMessageDialog(), sd::ViewShellBase::GetDocShell(), OutputDevice::GetDrawMode(), sd::ViewShellBase::GetMainViewShell(), OutputDevice::GetMapMode(), Printer::GetOrientation(), Printer::GetPaperBin(), maPrinterPages, mbHasOrientationWarningBeenShown, mbIsDisposed, mpOptions, mpPrinter, mpPrintView, mrBase, nIndex, RET_CANCEL, RET_OK, SdResId(), OutputDevice::SetDrawMode(), OutputDevice::SetMapMode(), Printer::SetOrientation(), and Printer::SetPaperBin().
|
inline |
Process the sequence of properties given to one of the XRenderable methods.
Definition at line 1180 of file DocumentRenderer.cxx.
References Any, VCLXDevice::GetOutputDevice(), vcl::PrinterOptionsHelper::getValue(), maPrinterPageSizePixel, maSlidesPerPage, mbIsDisposed, mpOptions, mpPrinter, pOut, PreparePages(), and vcl::PrinterOptionsHelper::processProperties().
|
inlineprivate |
Determine and set the paper orientation.
Definition at line 1339 of file DocumentRenderer.cxx.
References SdDrawDocument::GetDocumentType(), sd::ViewShellBase::GetMainViewShell(), SdPage::GetOrientation(), SdDrawDocument::GetSdPage(), Size::Height(), maPrintSize, mpOptions, mrBase, Size::setHeight(), Size::setWidth(), and Size::Width().
Referenced by PrepareStdOrNotes().
|
private |
Definition at line 1324 of file DocumentRenderer.cxx.
Referenced by GetPrintPageCount(), PrepareBooklet(), PrepareHandout(), PrepareOutline(), PreparePages(), PrepareScaledPage(), PrepareTiledPage(), and PrintPage().
|
private |
Definition at line 1322 of file DocumentRenderer.cxx.
Referenced by ProcessProperties().
|
private |
Definition at line 1328 of file DocumentRenderer.cxx.
Referenced by GetProperties(), PrepareHandout(), PrepareOutline(), PreparePages(), and SetupPaperOrientation().
|
private |
Definition at line 1327 of file DocumentRenderer.cxx.
Referenced by Implementation(), and ProcessProperties().
|
private |
Definition at line 1326 of file DocumentRenderer.cxx.
Referenced by PreparePages(), and PrintPage().
|
private |
Definition at line 1320 of file DocumentRenderer.cxx.
Referenced by GetPrintPageCount(), Notify(), PrintPage(), and ProcessProperties().
|
private |
Definition at line 1323 of file DocumentRenderer.cxx.
Referenced by CheckForFrontBackPages(), GetFilteredPage(), InitHandoutTemplate(), PrepareBooklet(), PrepareHandout(), PrepareOutline(), PreparePages(), PrepareRegularPages(), PrepareScaledPage(), PrepareStdOrNotes(), PrepareTiledPage(), PrintPage(), ProcessProperties(), and SetupPaperOrientation().
Definition at line 1321 of file DocumentRenderer.cxx.
Referenced by PrepareOutline(), PreparePages(), PrintPage(), and ProcessProperties().
|
private |
Definition at line 1325 of file DocumentRenderer.cxx.
Referenced by PreparePages(), and PrintPage().
|
private |
Definition at line 1319 of file DocumentRenderer.cxx.
Referenced by GetCurrentPageIndex(), GetFilteredPage(), Implementation(), InitHandoutTemplate(), Notify(), PrepareBooklet(), PrepareHandout(), PrepareOutline(), PreparePages(), PrepareRegularPages(), PrepareStdOrNotes(), PrintPage(), SetupPaperOrientation(), and ~Implementation().
|
private |
Definition at line 1318 of file DocumentRenderer.cxx.