globals - Unidraw global constants, types, instances, and
functions.
SYNOPSIS
#include <Unidraw/globals.h>
DESCRIPTION
Several constants and types are used throughout the
Unidraw library. It also provides global access to one-
of-a-kind instances such as the unidraw object as well as
shared graphics resources. Finally, there are several
global functions for common data manipulations. All of
these are declared one file for inclusion into other files
where they are needed.
CONSTANTS
static const int CHARBUFSIZE
Size of standard character buffer.
static const int HANDLE_SIZE
Size of selection handles, in pixels.
static const char MARK[]
String that delineates data boundaries in the ASCII
representation that Catalog generates. Used for
error checking.
static const int PIN_RAD
The radius of a pin, used in its default graphical
representation, in pixels.
static const int SLOP
Tolerance within which a hit on a graphical object
will be detected, in pixels.
TYPES
enum DragConstraint
Enumerates orthogonal ways in which cursor movement
may be constrained, usually during direct manipula-
tion. Possible values include None, XFixed,
YFixed, XYEqual, HorizOrVert, or Gravity.
enum Mobility
Enumerates the three possible component mobilities:
Fixed, Floating, or Undef (undefined).
typedef unsigned Orientation
Specifies two kinds of orientation: Portrait or
Vertical (synonymous), and Landscape or Horizontal
(synonymous).
enum TransMethod
typedef unsigned long ClassId
Type for representing unique class names for cata-
log-managed objects.
INSTANCES
extern Unidraw* unidraw
extern CSolver* csolver
The global unidraw and csolver objects. These and
all other global instances are initialized automat-
ically.
extern PSColor* psblack
extern PSColor* pswhite
extern PSPattern* pssolid
extern PSPattern* psclear
extern PSPattern* psnonepat
extern PSBrush* pssingle
extern PSBrush* psnonebr
extern PSFont* psstdfont
Predefined graphics resource objects. The None
operation on psnonepat and psnonebr returns true.
extern Graphic* stdgraphic
A FullGraphic instance with its graphics state set
to the global values listed above, excluding
psnonepat and psnonebr.
FUNCTIONS
extern void NormalRect(Coord& l, Coord& b, Coord& r,
Coord& t)
Given two coordinate pairs (l, b) and (r, t), it
checks whether l < r and b < t. If not, it swaps
the values in the offending inequalities. This
function is useful for ensuring that a rectangle is
defined by its lower-left and upper-right vertices.
extern void GetLine(
const char* buf, int len, int beg, int& end,
int& size, int& nextBeg
)
This function is convenient for extracting lines
from a buffer with a minimum of additional math
operations. Given a buffer of characters buf of
length len, search for the first newline character
(or the last character in the buffer) after the
character at index beg; return the newline's posi-
tion in end, the size of the run of text terminated
by a newline (end + 1 - beg), and the index with
which to begin a search for the next newline char-
acter (nextBeg).
Graphic*, Alignment, float&, float&
)
Return the point (in floating point canvas coordi-
nates) on a graphic corresponding to the given
alignment. For example, to obtain the coordinates
of the lower-left of a rectangle graphic, specify
the graphic and a BottomLeft alignment.
extern void Ref(Resource*)
Call the Reference operation on the given instance
of a resource subclass if the pointer is non-nil.
extern char* strnew(const char*)
Duplicate the given null-terminated string, creat-
ing a buffer of the appropriate size and returning
the null-terminated result.
SEE ALSO
CSolver(3U), Catalog(3U), Graphic(3U), GraphicView(3U),
Pin(3U), Resource(3I), Unidraw(3U), InterViews(3I),
pspaint(3U)
Man(1) output converted with
man2html