1/* 2* Copyright 2010, Haiku. All rights reserved. 3* Distributed under the terms of the MIT License. 4* 5* Authors: 6* Michael Pfeiffer 7*/ 8#ifndef GP_PARAMETER_VISITOR_H 9#define GP_PARAMETER_VISITOR_H 10 11#include <gutenprint/gutenprint.h> 12 13#include <Size.h> 14#include <Rect.h> 15 16 17extern const char* kJobMode; 18extern const char* kJob; 19 20extern const char* kPrintingMode; 21extern const char* kColor; 22extern const char* kBlackAndWhite; 23 24extern const char* kResolution; 25extern const char* kFakeResolutionKey; 26 27extern const char* kPageSize; 28 29extern const char* kChannelBitDepth; 30 31 32class GPParameterVisitor 33{ 34public: 35 GPParameterVisitor(); 36 virtual ~GPParameterVisitor(); 37 38 void Visit(const stp_printer_t* printer); 39 void VisitParameter(stp_parameter_list_t list, 40 const stp_parameter_t* parameter, stp_parameter_t* description); 41 void VisitStringList(stp_parameter_t* parameter); 42 void VisitBooleanParameter(stp_parameter_t* description, 43 stp_parameter_class_t parameterClass); 44 void VisitDoubleParameter(stp_parameter_t* description, 45 stp_parameter_class_t parameterClass); 46 void VisitIntParameter(stp_parameter_t* description, 47 stp_parameter_class_t parameterClass); 48 void VisitDimensionParameter(stp_parameter_t* description, 49 stp_parameter_class_t parameterClass); 50 51 virtual bool BeginParameter(const char* name, const char* displayName, 52 stp_parameter_class_t parameterClass) = 0; 53 // key is null if there is no default value 54 virtual void DefaultStringParameter(const char* name, 55 const char* key) = 0; 56 virtual void StringParameterSize(const char* name, int size) = 0; 57 virtual void StringParameter(const char* name, const char* key, 58 const char* displayName) = 0; 59 virtual void ResolutionParameter(const char* name, const char* key, 60 const char* displayName, int x, int y) = 0; 61 virtual void PageSizeParameter(const char* name, const char* key, 62 const char* displayName, BSize pageSize, 63 BRect imageableArea) = 0; 64 virtual void EndParameter(const char* name) = 0; 65 virtual void BooleanParameter(const char* name, const char* displayName, 66 bool defaultValue, 67 stp_parameter_class_t parameterClass) = 0; 68 virtual void DoubleParameter(const char* name, const char* displayName, 69 double lower, double upper, double defaultValue, 70 stp_parameter_class_t parameterClass) = 0; 71 virtual void IntParameter(const char* name, const char* displayName, 72 int lower, int upper, int defaultValue, 73 stp_parameter_class_t parameterClass) = 0; 74 virtual void DimensionParameter(const char* name, 75 const char* displayName, int lower, 76 int upper, int defaultValue, 77 stp_parameter_class_t parameterClass) = 0; 78 virtual void EndVisit() = 0; 79 80private: 81 void AddMissingResolution(); 82 83 stp_vars_t* fVariables; 84 bool fHasResolutionParameter; 85}; 86 87 88#endif 89