⛏️ index : haiku.git

/*
 * UIDriver.cpp
 * Copyright 1999-2000 Y.Takagi. All Rights Reserved.
 */

#include <Message.h>

#include "UIDriver.h"
#include "JobData.h"
#include "PrinterData.h"
#include "JobSetupDlg.h"
#include "PageSetupDlg.h"
#include "DbgMsg.h"


UIDriver::UIDriver(BMessage* message, PrinterData *printerData,
	const PrinterCap *printerCap)
	:
	fMsg(message),
	fPrinterData(printerData),
	fPrinterCap(printerCap)
{
}


UIDriver::~UIDriver()
{
}


BMessage*
UIDriver::ConfigPage()
{
	BMessage *clonedMessage = new BMessage(*fMsg);
	JobData *jobData = new JobData(clonedMessage, fPrinterCap,
		JobData::kPageSettings);

	if (PageSetup(jobData, fPrinterData, fPrinterCap) < 0) {
		delete clonedMessage;
		clonedMessage = NULL;
	} else {
		clonedMessage->what = 'okok';
	}

	delete jobData;
	return clonedMessage;
}


BMessage*
UIDriver::ConfigJob()
{
	BMessage *clonedMessage = new BMessage(*fMsg);
	JobData *jobData = new JobData(clonedMessage, fPrinterCap,
		JobData::kJobSettings);

	if (JobSetup(jobData, fPrinterData, fPrinterCap) < 0) {
		delete clonedMessage;
		clonedMessage = NULL;
	} else {
		clonedMessage->what = 'okok';
	}

	delete jobData;
	return clonedMessage;
}


status_t
UIDriver::PageSetup(JobData* jobData, PrinterData* printerData,
	const PrinterCap* printerCap)
{
	PageSetupDlg *dialog = new PageSetupDlg(jobData, printerData, printerCap);
	return dialog->Go();
}


status_t
UIDriver::JobSetup(JobData *jobData, PrinterData *printerData,
	const PrinterCap *printerCap)
{
	JobSetupDlg *dialog = new JobSetupDlg(jobData, printerData, printerCap);
	return dialog->Go();
}