Re: Printer driver UI [proposal]



Michael Goffioul wrote:
...
This code (for KDE/Qt) shows 3 ways of a Foomatic-3 printer driver
presentation:
	- usual hierarchical way (tree view)
	- tabbed UI using all options
	- reduced UI with additional dialogs for advanced settings
The last 2 UI are defined in the provided XML files.

My ideas up to now are the following:
- UI can be described using XML syntax, and embedded in the driver
  file (for example, PPD file) using comments. These metadata can
  the be extracted and used by a graphical environment like KDE or
  GNOME

Don't use comments, use attributes, and then you can use the CUPS
API to access them (ppdFindAttr() and friends are part of the
forthcoming 1.1.19, backported from the 1.2 branch...)

- simple UI can  be fully described using a quite reduced XML syntax
- complex UI can be implemented in additional shared libraries, loaded
  at run-time by the environment. That way, driver developer and
  printer manufacturer could provide their own driver UI, but still
  being smoothly integrated into the environment

DO NOT use host-specific object files!  The whole purpose of PPD
files (and the XML-based UPDF format, should that ever become a
reality) is to avoid platform dependencies and allow for sharing
of printer description data.

- in case of external UI implemented in shared libs, you can have
  different implementation for the different environment. However you
  can still imagine to embed a GNOME widget inside a KDE dialog or
  vice-versa, if we agree on a standard interface.

The whole problem with code-based UIs is that they are not usable
on other platforms (possibly even other systems with the same
architecture/OS!)

....

FWIW, you haven't described the XML, but I'd recommend looking at
the UPDF project at "http://www.pwg.org/";.

--
______________________________________________________________________
Michael Sweet, Easy Software Products           mike at easysw dot com
Printing Software for UNIX                       http://www.easysw.com






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