NAME¶
classes - unique identifiers for catalog-managed objects and component views
SYNOPSIS¶
#include <Unidraw/classes.h>
DESCRIPTION¶
Classes for catalog-managed objects, including components, commands, tools,
  state variables, and transfer functions, must be associated with
  mutually-unique class identifiers that can be written onto disk. This allows a
  creator object to call the appropriate constructor as part of recreating an
  object from disk.
Also, there must be a mechanism for creating an appropriate view given a
  subject; that is, there must be an association between a subject class and
  allowable view classes for that subject. This association is established by
  defining class identifiers for component views. These identifiers are formed
  by concatenating the identifier for a given component subject class with an
  identifier that specifies a ``view category.'' For example, the class
  identifier for the PostScript external view of a line component is the
  concatenation of the identifier for the line component subject class and
  POSTSCRIPT_VIEW identifier, which specifies the category of external views for
  generating PostScript. This makes it possible to create an instance of the
  appropriate PostScript external view subclass given a line component subject.
The class identifiers for the Unidraw base and predefined derived classes are
  specified in the 
classes.h include file. Applications that define new
  catalog-managed objects or component views should define unique class
  identifiers in a similar manner. Class identifiers for catalog-managed objects
  are simply integers with mnemonic macro definitions, usually the class name in
  all-uppercase. For example, the identifier for the LineComp component subject
  class is
#define LINE_COMP 9030
View class identifiers are specified using the Combine macro, which takes as its
  first argument the macro definition of the corresponding component subject
  identifier; its second argument is an identifier for the view category. The
  Combine macro itself is then defined with a mnemonic name. For example, the
  identifier for the PostScript external view class PSLine (which generates
  PostScript for the line component subject) is defined as
#define PS_LINE Combine(LINE_COMP, POSTSCRIPT_VIEW)
where the POSTSCRIPT_VIEW view category identifier is defined as
#define POSTSCRIPT_VIEW 9103
N.B.: 
All class identifiers in a given application must be unique.
SEE ALSO¶
Catalog(3U), Creator(3U)