⛏️ index : haiku.git

/*
 * GPEntry.cpp
 * Copyright 1999-2000 Y.Takagi. All Rights Reserved.
 * Copyright 2010 Michael Pfeiffer.
 */


#include <Debug.h>

#include "GPDriver.h"
#include "GPCapabilities.h"
#include "GPData.h"
#include "PrinterDriver.h"
#include "SelectPrinterDialog.h"


class GPPrinterDriver : public PrinterDriver
{
public:
	GPPrinterDriver(BNode* printerFolder)
		:
		PrinterDriver(printerFolder)
		{
		}

	const char*	GetSignature() const
				{
					return "application/x-vnd.gutenprint";
				}
	
	const char*	GetDriverName() const
				{
					return "Gutenprint";
				}
	
	const char*	GetVersion() const
				{
					return "1.0";
				}
	
	const char*	GetCopyright() const
				{
					return "Gutenprint driver "
						"Copyright © 2010 Michael Pfeiffer.\n";
				}

	char* 		AddPrinter(char *printerName)
				{
					GPData* data = dynamic_cast<GPData*>(GetPrinterData());
					ASSERT(data != NULL);

					SelectPrinterDialog* dialog =
						new SelectPrinterDialog(data);

					if (dialog->Go() != B_OK)
						return NULL;

					return printerName;
				}

	PrinterData*	InstantiatePrinterData(BNode* node)
				{
					return new GPData(node);
				}

	PrinterCap* InstantiatePrinterCap(PrinterData* printerData) 
				{
					return new GPCapabilities(printerData);
				}
	
	GraphicsDriver* InstantiateGraphicsDriver(BMessage* settings,
		PrinterData* printerData, PrinterCap* printerCap)
				{
					return new GPDriver(settings, printerData, printerCap);
				}
};


PrinterDriver* instantiate_printer_driver(BNode* printerFolder)
{
	return new GPPrinterDriver(printerFolder);
}