Re: [Foomatic] Re: Printer driver UI [proposal]

David Chappell wrote:
I don't think we need to or should extend the spec for numberic parameters with ranges. The PPD spec already defines a mechanism for defining commands that take a specified number of parameters each one
of which can have a range. While the only such command defined in the
spec is *CustomPageSize, there is a statement on page 15 which
indicates that this is a general mechanism. If I understand the idea
correctly, variable gamma might look like this:

*Gamma True: "<< /Gamma 2 index >> setpagedevice pop"
*ParamGamma Gamma: 1 real 0.5 3.0

Technically this is correct, however there is no automatic mapping
from this to an actual option, and at some point you need to be
able to do that (thus the extension mechanism...)

Also, currently no PS driver I am aware of (Windows, Adobe, Apple,
*Office, CUPS, etc.) supports the ParamKeyword and Keyword True
stuff outside of CustomPageSize (and that is not well supported,

What CUPS 1.2 is doing is analagous to CustomPageSize, and the
"new" multi-parameter approach will use the Param syntax with
an extended list of type keywords that are supported (more than
just "int", "real", and "points"...) as well as a default value.

The result will look something like:

    *OpenUI *stpGamma/Gamma Correction: PickOne
    *OrderDependency: 10 JCLSetup *stpGamma
    *DefaultstpGamma: 1000
    *stpGamma 1.0: ""
    *stpGamma 1.1: ""
    *stpGamma 1.2: ""
    *stpGamma 1.3: ""
    *stpGamma 5.0: ""
    *CloseUI: *stpGamma

    *CustomstpGamma True: ""
    *ParamCustomstpGamma Gamma/Gamma Value: 1 curve 0.01 10.0 1.0

The "" for the code is just because this option won't need an
equivalency in PS code - JCLSetup options are inserted in the
job ticket header by the Windows CUPS driver and CUPS clients
pass them in as name (string) attributes.

Similarly, you could provide a single gamma option for each

    *CustomstpGamma True: ""
    *ParamCustomstpGamma Cyan/Cyan Gamma: 1 curve 0.01 10.0 1.0
    *ParamCustomstpGamma Magenta/MagentaGamma: 2 curve 0.01 10.0 1.0
    *ParamCustomstpGamma Yellow/Yellow Gamma: 3 curve 0.01 10.0 1.0
    *ParamCustomstpGamma Black/Black Gamma: 4 curve 0.01 10.0 1.0

This would mean that non-aware clients/apps would have a single
overall gamma control, while aware clients/apps would be able to
provide a compatible UI.

(FWIW, multi-valued custom options will likely be passed around
as IPP collections internally)

Michael Sweet, Easy Software Products           mike at easysw dot com
Printing Software for UNIX             

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]