116 lines
3.4 KiB
Plaintext
116 lines
3.4 KiB
Plaintext
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: src/osx/cocoa/printdlg.mm
|
|
// Purpose: wxPrintDialog, wxPageSetupDialog
|
|
// Author: Stefan Csomor
|
|
// Modified by:
|
|
// Created: 1998-01-01
|
|
// Copyright: (c) Stefan Csomor
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "wx/wxprec.h"
|
|
|
|
#if wxUSE_PRINTING_ARCHITECTURE
|
|
|
|
#include "wx/printdlg.h"
|
|
#include "wx/modalhook.h"
|
|
|
|
#ifndef WX_PRECOMP
|
|
#include "wx/object.h"
|
|
#include "wx/dcprint.h"
|
|
#include "wx/msgdlg.h"
|
|
#include "wx/textctrl.h"
|
|
#include "wx/sizer.h"
|
|
#include "wx/stattext.h"
|
|
#endif
|
|
|
|
#include "wx/osx/printdlg.h"
|
|
#include "wx/osx/private/print.h"
|
|
#include "wx/osx/private.h"
|
|
|
|
wxIMPLEMENT_CLASS(wxOSXCocoaPrintData, wxOSXPrintData);
|
|
|
|
wxOSXCocoaPrintData::wxOSXCocoaPrintData()
|
|
{
|
|
m_macPrintInfo = [[NSPrintInfo alloc] init];
|
|
m_macPageFormat = (PMPageFormat) [m_macPrintInfo PMPageFormat];
|
|
m_macPrintSettings = (PMPrintSettings) [m_macPrintInfo PMPrintSettings];
|
|
m_macPrintSession = (PMPrintSession) [m_macPrintInfo PMPrintSession] ;
|
|
PMGetPageFormatPaper(m_macPageFormat, &m_macPaper);
|
|
}
|
|
|
|
wxOSXCocoaPrintData::~wxOSXCocoaPrintData()
|
|
{
|
|
[m_macPrintInfo release];
|
|
}
|
|
|
|
void wxOSXCocoaPrintData::UpdateFromPMState()
|
|
{
|
|
[m_macPrintInfo updateFromPMPageFormat];
|
|
[m_macPrintInfo updateFromPMPrintSettings];
|
|
}
|
|
|
|
void wxOSXCocoaPrintData::UpdateToPMState()
|
|
{
|
|
m_macPageFormat = (PMPageFormat) [m_macPrintInfo PMPageFormat];
|
|
m_macPrintSettings = (PMPrintSettings) [m_macPrintInfo PMPrintSettings];
|
|
m_macPrintSession = (PMPrintSession) [m_macPrintInfo PMPrintSession] ;
|
|
}
|
|
|
|
int wxMacPrintDialog::ShowModal()
|
|
{
|
|
WX_HOOK_MODAL_DIALOG();
|
|
|
|
m_printDialogData.GetPrintData().ConvertToNative();
|
|
|
|
int result = wxID_CANCEL;
|
|
|
|
NSPrintPanel* panel = [NSPrintPanel printPanel];
|
|
NSPrintInfo* printInfo = ((wxOSXCocoaPrintData*)m_printDialogData.GetPrintData().GetNativeData())->GetNSPrintInfo();
|
|
|
|
NSMutableDictionary* dict = [printInfo printSettings];
|
|
[dict setValue:[NSNumber numberWithInt:m_printDialogData.GetMinPage()] forKey:@"com_apple_print_PrintSettings_PMFirstPage"];
|
|
[dict setValue:[NSNumber numberWithInt:m_printDialogData.GetMaxPage()] forKey:@"com_apple_print_PrintSettings_PMLastPage"];
|
|
|
|
OSXBeginModalDialog();
|
|
|
|
if ( (NSInteger)[panel runModalWithPrintInfo:printInfo] == NSModalResponseOK )
|
|
{
|
|
result = wxID_OK;
|
|
m_printDialogData.GetPrintData().ConvertFromNative();
|
|
((wxOSXPrintData*)m_printDialogData.GetPrintData().GetNativeData())->TransferTo( &m_printDialogData );
|
|
}
|
|
|
|
OSXEndModalDialog();
|
|
|
|
return result;
|
|
}
|
|
|
|
int wxMacPageSetupDialog::ShowModal()
|
|
{
|
|
WX_HOOK_MODAL_DIALOG();
|
|
|
|
m_pageSetupData.GetPrintData().ConvertToNative();
|
|
((wxOSXCocoaPrintData*)m_pageSetupData.GetPrintData().GetNativeData())->TransferFrom( &m_pageSetupData );
|
|
|
|
int result = wxID_CANCEL;
|
|
|
|
NSPageLayout *pageLayout = [NSPageLayout pageLayout];
|
|
NSPrintInfo* printInfo = ((wxOSXCocoaPrintData*)m_pageSetupData.GetPrintData().GetNativeData())->GetNSPrintInfo();
|
|
|
|
OSXBeginModalDialog();
|
|
|
|
if ( [pageLayout runModalWithPrintInfo:printInfo] == NSModalResponseOK )
|
|
{
|
|
result = wxID_OK;
|
|
m_pageSetupData.GetPrintData().ConvertFromNative();
|
|
m_pageSetupData.SetPaperSize( m_pageSetupData.GetPrintData().GetPaperSize() );
|
|
}
|
|
|
|
OSXEndModalDialog();
|
|
|
|
return result;
|
|
}
|
|
|
|
#endif
|