Patch title: Release 94 bulk changes
Abstract:
File: /pliant/graphic/color/database.pli
Key:
    Removed line
    Added line
submodule "/pliant/appli/database.pli"
submodule "/pliant/storage/database.pli"
module "spectrum.pli"
module "/pliant/language/unsafe.pli"

public

type ColorChannel
  field Set:Str sample
  field Str options
  # supported options are:
  #   ink factor             multiply ink thickness by factor (default value is 1)
  #   cyan density           add some other inks, 0.05 meaning 5% of cyan (default value is 0, negative values are ok)
  #   magenta density
  #   yellow density
  #   black density
  #   dot growth             0.05 means 5% more at 50%, 0 and 100% beein untouched (default value is 0)

type ColorPrinter
  field Str driver
  field Str model
  field Str options
  field Str paper
  field Float size_x <- 210
  field Float size_y <- 297
  field Str mode <- "page"
  field Float margin_left <- 10
  field Float margin_top <- 10
  field Float margin_right <- 10
  field Float margin_bottom <- 20
  field Float resolution_x resolution_y <- 300
  field Int antialiasing_x antialiasing_y <- 4
  field Float sharpening <- undefined
  field Float limit <- undefined
  field Float middle <- undefined
  field Str gamut
  field Int grid_steps <- 17

type ColorDevice
  field Str label
  field Str comment
  field Set:ColorChannel channel
  field Set:Str alias
  field Set:Int grid
  field Str options
  field ColorPrinter printer

type ColorDatabase
  field Set:ColorDevice device

(gvar Database:ColorDatabase color_database) load "security:/color.pdb" mount "/pliant/color"


method ch s0 -> s0
  arg Data:ColorChannel ch ; arg ColorSpectrum32 s0
  s0 := color_spectrum32 ch:sample:"0"

method ch s50 -> s50
  arg Data:ColorChannel ch ; arg ColorSpectrum32 s50
  s50 := color_spectrum32 ch:sample:"50"

method ch s100 -> s100
  arg Data:ColorChannel ch ; arg ColorSpectrum32 s100
  if (exists ch:sample:"255")
    s100 := color_spectrum32 ch:sample:"255"
  else
    s100 := color_spectrum32 ch:sample:"100"