globals(3U)

NAME
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 manipulation. 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
    Enumerates the three possible transmission methods for connectors: In, Out, or InOut.

typedef unsigned long ClassId
    Type for representing unique class names for catalog-managed objects.

INSTANCES

extern Unidraw* unidraw

extern CSolver* csolver
    The global unidraw and csolver objects. These and all other global instances are initialized automatically.

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 position 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 character (nextBeg).

extern void GetAlignmentPoint(

Graphic*, Alignment, float&, float&

)
    Return the point (in floating point canvas coordinates) 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, creating 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)