XmResolvePartOffsets man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX 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)       WidgetClasswid‐
       get_class;      XmOffsetPtr* offset;

VERSION
       This page documents version 1.2 of the Motif library.

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 definition, has already been initial‐
       ized) 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, in place 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) argu‐
       ment, as illustrated here: XmField(w, offset, Label, text, char *)  You
       can  define macros for each field to make this easier.  Assume an inte‐
       ger field xyz: #define BarXyz(w) (*(int *)(((char  *)  w)  +  \	  off‐
       set[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 IRIX

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