CONTAINEROBJECTDATA

Summary

The CONTAINEROBJECTDATA holds the data that describes a container object.

Syntax

typedef struct _CONTAINEROBJECTDATA 
{ 
   L_INT nSize; 
   CONTAINEROBJECTTYPE nObjectType; 
   L_VOID *pObjectData; 
   CONTAINERSTATE fState; 
   L_VOID *pUserData; 
} CONTAINEROBJECTDATA, *pCONTAINEROBJECTDATA ; 

Members

L_INT nSize

Size of this structure.

CONTAINEROBJECTTYPE nObjectType

A CONTAINEROBJECTTYPE value indicating the Object type. Possible values are:

Value Meaning
CONTAINER_OBJECT_TYPE_POINT The object is a point, nothing is drawn to the screen.
CONTAINER_OBJECT_TYPE_LINE The object is a line. The container will start drawing a line when the user presses the left mouse button, and will continue drawing the line as the user drags the mouse. The drawing will end when the user releases the left mouse button or presses the right mouse button.
CONTAINER_OBJECT_TYPE_SQUARE The object is a square. The container will start drawing a square when the user presses the left mouse button, and will continue drawing the square as the user drags the mouse. The drawing will end when the user releases the left mouse button or presses the right mouse button.
CONTAINER_OBJECT_TYPE_RECT The object is a rectangle. The container will start drawing a rectangle when the user presses the left mouse button, and will continue drawing the rectangle as the user drags the mouse. The drawing will end when the user releases the left mouse button or presses the right mouse button.
CONTAINER_OBJECT_TYPE_CIRCLE The object is a circle. The container will start drawing a circle when the user presses the left mouse button, and will continue drawing the circle as the user drags the mouse. The drawing will end when the user releases the left mouse button or presses the right mouse button.
CONTAINER_OBJECT_TYPE_ELLIPSE The object is an ellipse. The container will start drawing an ellipse when the user presses the left mouse button, and will continue drawing the ellipse as the user drags the mouse. The drawing will end when the user releases the left mouse button or presses the right mouse button.
CONTAINER_OBJECT_TYPE_POLYLINE The object is a polygon. The container will start drawing a polygon when the user presses the left mouse button, and will continue drawing the polygon as the user drags the mouse. The drawing will end when the user double clicks the left mouse button. Drawing is aborted when the user presses the right mouse button.
CONTAINER_OBJECT_TYPE_BEZIER The object is a Bezier curve. The container will start drawing a Bezier curve when the user presses the left mouse button, and will continue drawing the curve as the user drags the mouse. The drawing will end when the user double clicks the left mouse button. Drawing is aborted when the user presses the right mouse button. The user can manipulate the curve control points, after drawing the first curve, by using the left mouse button to move the first curve control point and the SHIFT+left mouse button to move the second control point.
CONTAINER_OBJECT_TYPE_ARC The object is an arc. The arc is drawn by specifying its center, radius, start angle and sweep angle. The user presses the left mouse button at the point where the center of the arc (the vertex about which the arc sweeps) will be. Holding the left mouse button down, the user drags the mouse the length of the radius, along the desired start angle and releases the left mouse button. Press the left mouse button again and drag the mouse through the desired sweep angle. Release the mouse button. Releasing the mouse button will end the operation. Clicking the right-mouse button will abort the operation.
CONTAINER_OBJECT_TYPE_TEXT The object is a text object. The user specifies the text box dimensions by pressing the left-mouse button and dragging the mouse. The desired text can then be entered in the text box. Double-clicking anywhere outside the text box will end the operation. Clicking the right-mouse button will abort the operation. The properties of the text will be specified through the container metrics.

L_VOID pObjectData

Pointer to a structure that contains a description of the object. The structure type will depend on the nObjectType field. Therefore, this pointer must be cast to the appropriate type for the object. For more information on the object descriptions, refer to the structures specified below.

nObjectType Appropriate Pointer Type
CONTAINER_OBJECT_TYPE_POINT (pCONTAINERPOINTDATA)
CONTAINER_OBJECT_TYPE_LINE (pCONTAINERLINEDATA)
CONTAINER_OBJECT_TYPE_SQUARE (pCONTAINERSQUAREDATA)
CONTAINER_OBJECT_TYPE_RECT (pCONTAINERRECTDATA)
CONTAINER_OBJECT_TYPE_CIRCLE (pCONTAINERCIRCLEDATA)
CONTAINER_OBJECT_TYPE_ELLIPSE (pCONTAINERELLIPSEDATA)
CONTAINER_OBJECT_TYPE_POLYLINE (pCONTAINERPOLYLINEDATA)
CONTAINER_OBJECT_TYPE_BEZIER (pCONTAINERBEZIERDATA)
CONTAINER_OBJECT_TYPE_ARC (pCONTAINERARCDATA)
CONTAINER_OBJECT_TYPE_TEXT (pCONTAINERTEXTDATA)

CONTAINERSTATE fState

Flag that indicates the drawing state of the object. Possible values for the CONTAINERSTATE enumeration are:

Value Meaning
CONTAINER_STATE_BEGIN The container has just started drawing the object.
CONTAINER_STATE_PROCESS The container is continuing to draw the object.
CONTAINER_STATE_END The container has finished drawing the object.
CONTAINER_STATE_ABORT The container aborted the drawing process.

L_VOID pUserData

Void pointer that can be used to store additional user-defined data. To use this feature, assign a value to a variable or create a structure that contains as many fields as needed. Then, in this member, pass the address of the variable or structure, casting it to L_VOID  *. When accessing this structure later, cast pUserData to a pointer of the appropriate data type to access your variable or structure. If the additional parameters are not needed, pass NULL in this member.

Usage

Help Version 22.0.2022.12.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Container and Automation C API Help
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.