XmResolvePartOffsets man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

XmResolvePartOffsets(3X)			      XmResolvePartOffsets(3X)

NAME
       XmResolvePartOffsets - A function that allows writing of upward-compat‐
       ible applications and widgets

SYNOPSIS
       #include <Xm/XmP.h>

       void XmResolvePartOffsets (widget_class, offset)
	       WidgetClass widget_class;
	       XmOffsetPtr * offset;

DESCRIPTION
       The use of offset records requires one extra global variable per widget
       class.  The  variable consists of a pointer to an array of offsets into
       the widget record for each part of  the	widget	structure.  The	 XmRe‐
       solvePartOffsets	 function  allocates  the  offset records needed by an
       application to guarantee upward-compatible access  to  widget  instance
       records	by applications and widgets.  These offset records are used by
       the widget to access all of the widget's variables. A widget  needs  to
       take the following steps: Instead of creating a resource list, the wid‐
       get creates an offset resource list. To help you accomplish  this,  use
       the  XmPartResource structure and the XmPartOffset macro. The XmPartRe‐
       source data structure looks just like a resource list, but  instead  of
       having  one integer for its offset, it has two shorts. This is put into
       the class record as if it were a	 normal	 resource  list.   Instead  of
       using XtOffset for the offset, the widget uses XmPartOffset.

	      XmPartResource resources[] = {
		{ BarNxyz, BarCXyz, XmRBoolean,
		  sizeof(Boolean), XmPartOffset(Bar,xyz),
		  XmRImmediate,	 (XtPointer)False  } }; Instead of putting the
	      widget size in the class record, the widget puts the widget part
	      size  in	the  same  field.  Instead of putting XtVersion in the
	      class record, the widget puts XtVersionDontCheck	in  the	 class
	      record.	The widget defines a variable, of type XmOffsetPtr, to
	      point to the offset record. This can be  part  of	 the  widget's
	      class  record  or a separate global variable.  In class initial‐
	      ization, the widget calls	 XmResolvePartOffsets,	passing	 it  a
	      pointer  to  contain  the	 address  of the offset record and the
	      class record. This does  several	things:	 Adds  the  superclass
	      (which,  by definition, has already been initialized) size field
	      to the part size field.  Allocates an array based upon the  num‐
	      ber  of  superclasses.   Fills  in the offsets of all the widget
	      parts with the appropriate values, determined by	examining  the
	      size  fields  of	all  superclass records.  Uses the part offset
	      array to modify the offset entries in the resource  list	to  be
	      real  offsets.   The widget defines a constant which will be the
	      index to its part structure in  the  offsets  array.  The	 value
	      should  be  1 greater than the index of the widget's superclass.
	      Constants defined for all Xm widgets can be found in <XmP.h>.

	      #define BarIndex (XmBulletinBIndex +  1)	Instead	 of  accessing
	      fields  directly,	 the  widget must always go through the offset
	      table. The XmField macro helps you access these fields.  Because
	      the XmPartOffset and XmField macros concatenate things together,
	      you must ensure that there is no space after the part  argument.
	      For  example,  the  following  macros do not work because of the
	      space after the part (Label) argument:

	      XmField(w, offset, Label , text, char  *)	 XmPartOffset(Label  ,
	      text)

	      Therefore,  you  must not have any spaces after the part (Label)
	      argument, as illustrated here:

	      XmField(w, offset, Label, text, char *)

	      You can define macros for each field to make this easier. Assume
	      an integer field xyz:

	      #define BarXyz(w) (*(int *)(((char *) w) + \
		offset[BarIndex] + XtOffset(BarPart,xyz)))

       The  parameters	for  XmResolvePartOffsets are defined below: Specifies
       the widget class pointer for the created widget.	  Returns  the	offset
       record.

SEE ALSO
       XmResolveAllPartOffsets(3X)

						      XmResolvePartOffsets(3X)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net