xref: /haiku/src/libs/print/libprint/UIDriver.cpp (revision 08d759feae5967ad75d0f0d4ee33c21c72ae6db8)
1 /*
2  * UIDriver.cpp
3  * Copyright 1999-2000 Y.Takagi. All Rights Reserved.
4  */
5 
6 #include <Message.h>
7 
8 #include "UIDriver.h"
9 #include "JobData.h"
10 #include "PrinterData.h"
11 #include "JobSetupDlg.h"
12 #include "PageSetupDlg.h"
13 #include "DbgMsg.h"
14 
15 
16 UIDriver::UIDriver(BMessage *msg, PrinterData *printer_data, const PrinterCap *printer_cap)
17 	: fMsg(msg), fPrinterData(printer_data), fPrinterCap(printer_cap)
18 {
19 }
20 
21 
22 UIDriver::~UIDriver()
23 {
24 }
25 
26 
27 BMessage*
28 UIDriver::configPage()
29 {
30 	BMessage *clone_msg = new BMessage(*fMsg);
31 	JobData *job_data = new JobData(clone_msg, fPrinterCap, JobData::kPageSettings);
32 
33 	if (doPageSetup(job_data,fPrinterData, fPrinterCap) < 0) {
34 		delete clone_msg;
35 		clone_msg = NULL;
36 	} else {
37 		clone_msg->what = 'okok';
38 	}
39 
40 	delete job_data;
41 	return clone_msg;
42 }
43 
44 
45 BMessage*
46 UIDriver::configJob()
47 {
48 	BMessage *clone_msg = new BMessage(*fMsg);
49 	JobData *job_data = new JobData(clone_msg, fPrinterCap, JobData::kJobSettings);
50 
51 	if (doJobSetup(job_data, fPrinterData, fPrinterCap) < 0) {
52 		delete clone_msg;
53 		clone_msg = NULL;
54 	} else {
55 		clone_msg->what = 'okok';
56 	}
57 
58 	delete job_data;
59 	return clone_msg;
60 }
61 
62 
63 long
64 UIDriver::doPageSetup(JobData *job_data, PrinterData *printer_data, const PrinterCap *printer_cap)
65 {
66 	PageSetupDlg *dlg = new PageSetupDlg(job_data, printer_data, printer_cap);
67 	return dlg->Go();
68 }
69 
70 
71 long
72 UIDriver::doJobSetup(JobData *job_data, PrinterData *printer_data, const PrinterCap *printer_cap)
73 {
74 	JobSetupDlg *dlg = new JobSetupDlg(job_data, printer_data, printer_cap);
75 	return dlg->Go();
76 }
77