XmResolvePartOffsets man page on Ultrix

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

XmResolvePartOffsets(3X)	   OSF/Motif	      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)       WidgetClasswid‐
       get_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.  XmPartRe‐
       source 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 wid‐
       get 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 initialization, 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 defi‐
       nition, has already been initialized)  size  field  to  the  part  size
       field.	Allocates  an  array  based  upon  the number of superclasses.
       Fills in the offsets of all the widget parts with the appropriate  val‐
       ues, 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 con‐
       catenate 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,  off‐
       set,  Label  ,  text, char *) XmPartOffset(Label , text) Therefore, you
       must not have any spaces after the part	(Label)	 argument,  as	illus‐
       trated  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.

RELATED INFORMATION
       XmResolveAllPartOffsets(3X).

						      XmResolvePartOffsets(3X)
[top]

List of man pages available for Ultrix

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