62 lines
1.5 KiB
C++
62 lines
1.5 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/private/print.h
|
|
// Purpose: Private printing-related helpers.
|
|
// Author: Vadim Zeitlin
|
|
// Created: 2024-12-28
|
|
// Copyright: (c) 2024 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_PRIVATE_PRINT_H_
|
|
#define _WX_PRIVATE_PRINT_H_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// RAII helper ensuring OnEndPrinting() is called on scope exit
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class wxPrintingGuard
|
|
{
|
|
public:
|
|
explicit wxPrintingGuard(wxPrintout *printout)
|
|
: m_printout(printout)
|
|
{
|
|
m_printout->OnBeginPrinting();
|
|
}
|
|
|
|
~wxPrintingGuard()
|
|
{
|
|
m_printout->OnEndPrinting();
|
|
}
|
|
|
|
private:
|
|
wxPrintout * const m_printout;
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxPrintingGuard);
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Another helper ensuring EndPage() is called on scope exit
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class wxPrintingPageGuard
|
|
{
|
|
public:
|
|
explicit wxPrintingPageGuard(wxDC& dc)
|
|
: m_dc(dc)
|
|
{
|
|
m_dc.StartPage();
|
|
}
|
|
|
|
~wxPrintingPageGuard()
|
|
{
|
|
m_dc.EndPage();
|
|
}
|
|
|
|
private:
|
|
wxDC& m_dc;
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxPrintingPageGuard);
|
|
};
|
|
|
|
#endif // _WX_PRIVATE_PRINT_H_
|