Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xtdestroygc(3) [hpux man page]

XtDestroyGC()															     XtDestroyGC()

Name
  XtDestroyGC - Release 2 compatible function to free read-only GCs.

Synopsis
  void XtDestroyGC(w, gc)
	 Widget w;
	 GC gc;

Inputs
  w	    Specifies any object on the display for which the GC was created.

  gc	    Specifies the GC to be deallocated.

Availability
  XtDestroyGC() is superseded by XtReleaseGC().

Description
  XtDestroyGC()  deallocates  a shared (read-only) Graphics Context.  References to sharable GCs are counted, and a free request is generated
  to the server when the last user of a given GC destroys it.

  Note that some earlier versions of XtDestroyGC() had only a gc argument.  Therefore, this function is  not  very  portable.	In  addition,
  XtDestroyGC() is only guaranteed to work properly if there is exactly one open display in the application.

Usage
  You should never use this function.  Programs running under Release 3 and later should be converted to use XtReleaseGC().

See Also
  XtAllocateGC(1), XtGetGC(1), XtReleaseGC(1).

Xt - Graphics Context														     XtDestroyGC()

Check Out this Related Man Page

XtAllocateGC()															    XtAllocateGC()

Name
  XtAllocateGC - obtain a sharable GC with modifiable fields.

Synopsis
  GC XtAllocateGC(object, depth, value_mask, values, dynamic_mask, dont_care_mask)
	 Widget object;
	 Cardinal depth;
	 XtGCMask value_mask;
	 XGCValues *values;
	 XtGCMask dynamic_mask;
	 XtGCMask dont_care_mask;

Inputs
  object    Specifies an object; may be of class Object or any subclass thereof.

  depth     Specifies the depth for which the returned GC is valid, or 0.

  value_mask
	    Specifies the fields of the GC which must have fixed values.

  values    Specifies the values for the fields in value_mask.

  dynamic_mask
	    Specifies fields of the GC which may be modified.

  dont_care_mask
	    Specifies fields of the GC which will never be used.

Returns
  A GC with fields as specified in value_mask and values.

Availability
  Release 5 and later.

Description
  XtAllocateGC()  returns  a sharable GC with values as specified in values for each field set in value_mask.  The GC is valid for the screen
  of the specified object (the screen of the nearest widget ancestor if the specified object is not itself a widget) and for  drawable	depth
  depth.  If depth is 0, the depth is taken from the XtNdepth resource of the object (or from its nearest widget ancestor).  The dynamic_mask
  and dont_care_mask arguments specify more information about the intended usage of the GC which influences how the GC may be shared.	These
  arguments are explained below.

  When	returned,  the GC may already be in use by other widgets, and it may be passed to other widgets in the future.	For this reason, none
  of the fields specified in value_mask should ever be modified.  The dynamic_mask argument specifies fields of the GC that may  be  modified
  by  the  widget.   Because  this  is	a  shared  GC, other widgets may also modify those fields, and a widget cannot rely on them to remain
  unchanged.  For this reason, these fields must be explicitly set prior to every use.

  The dont_care_mask argument specifies fields of the GC that the widget does not care about (i.e., fields that will never be used by any  of
  the graphic functions called with this GC).  The returned GC may have any values for these fields.

  GC  fields  that are not specified in value_mask, dynamic_mask, or dont_care_mask will always have their default values in the returned GC.
  If a field is specified in both value_mask, and in dynamic_mask, then the field is modifiable, but will also be initialized to  the  appro-
  priate  value  specified  in	values.  If a field is set in dont_care_mask and is also set in one of the other masks, the dont_care_mask is
  ignored for that field.

Usage
  XtAllocateGC() is a generalization of XtGetGC().  Calling XtAllocateGC() with depth, dynamic_mask, and dont_care_mask all 0  is  equivalent
  to calling XtGetGC() with the remaining arguments.

  There  are  several  common  situations  in which a modifiable GC is necessary.  If you are drawing complex text with XDrawText(), the font
  field of your GC will be automatically changed to each of the font values in your text description.  Also, if you use clip masks to protect
  or  speed  up  drawing  in  a  widget's  expose method, you will need to modify the clipping fields of the GC.  Using XtAllocateGC() with a
  dynamic_mask argument means that you can share a GC, with other instances of the same widget at least, instead of allocating a  private  GC
  with XCreateGC().

  Furthermore,	specifying  a dont_care_mask when allocating a shared GC can make that GC much more sharable.  For example, if a widget draws
  text with XDrawString() only, then it is only interested in the font and foreground fields of a GC.  If it allocates its GC  and  specifies
  that	it  doesn't care about the background field, then it can share its GC with another widget that uses the same font and foreground, but
  draws with XDrawImageString() and so does care about the background field.  This kind of sharing is not possible with XtGetGC().

  Note that XtAllocateGC() is new in Release 5.  If you use it in a widget, you will lose portability to Release 4.  If you have a Release  4
  widget  that	uses a private GC, you may be able to add conditional compilation directives to make it use the more efficient XtAllocateGC()
  when compiled with X11R5.

  When done with a GC obtained with XtAllocateGC(), it should be freed with XtReleaseGC().

Structures
  The XtGCMask type is simply an unsigned long:

     typedef unsigned long  XtGCMask; /* Mask of values that are used by widget*/

  Each of the symbols in the table below sets a single bit in an XtGCMask.  The value_mask, dynamic_mask, and  dont_care_mask  arguments  are
  formed by combining these symbols with the bitwise OR operator ( ):

GCArcMode	GCFillRule	      GCLineWidth
GCBackground	GCFillStyle	      GCPlaneMask
GCCapStyle	GCFont		      GCStipple
GCClipMask	GCForeground	      GCSubwindowMode
GCClipXOrigin	GCFunction	      GCTile
GCClipYOrigin	GCGraphicsExposures   GCTileStipXOrigin
GCDashList	GCJoinStyle	      GCTileStipYOrigin
GCDashOffset	GCLineStyle

The XGCValues structure has one field for each of the GC fields:

typedef struct {
  int function;       /* logical operation */
  unsigned long plane_mask;/* plane mask */
  unsigned long foreground;/* foreground pixel */
  unsigned long background;/* background pixel */
  int line_width;     /* line width */
  int line_style;     /* LineSolid, LineOnOffDash,
			 LineDoubleDash */
  int cap_style;      /* CapNotLast, CapButt,
			 CapRound, CapProjecting */
  int join_style;     /* JoinMiter, JoinRound, JoinBevel */
  int fill_style;     /* FillSolid, FillTiled,
			 FillStippled, FillOpaqueStippled */
  int fill_rule;      /* EvenOddRule, WindingRule */
  int arc_mode;       /* ArcChord, ArcPieSlice */
  Pixmap tile;	      /* tile pixmap for tiling operations */
  Pixmap stipple;     /* stipple 1 plane pixmap for stippling */
  int ts_x_origin;    /* offset for tile or
  int ts_y_origin;     * stipple operations */
  Font font;	      /* default text font for text operations */
  int subwindow_mode; /* ClipByChildren, IncludeInferiors */
  Bool graphics_exposures;/* should exposures be generated? */
  int clip_x_origin;  /* origin for clipping */
  int clip_y_origin;
  Pixmap clip_mask;   /* bitmap clipping; other calls for rects */
  int dash_offset;    /* patterned/dashed line information */
  char dashes;
} XGCValues;

See Also
  XtGetGC(1), XtReleaseGC(1).

Xt - Graphics Context														    XtAllocateGC()
Man Page