... XmResolvePartOffsets - Online Linux Manual PageSection : library call

NAMEXmResolvePartOffsets — A function that allows writing of upward-compatible applications and widgets .iX "XmResolvePartOffsets"

SYNOPSIS#include <Xm/Xm​.h> void XmResolvePartOffsets( WidgetClass widget_class, XmOffsetPtr * offset);

DESCRIPTIONThe 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 XmResolvePartOffsets 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 steps described in the following paragraphs​. Instead of creating a resource list, the widget creates an offset resource list​. To accomplish this, use the XmPartResource structure and the XmPartOffset macro​. The XmPartResource data structure looks just like a resource list, but instead of having one integer for its offset, it has two shorts​. This structure 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 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 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 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, in place The widget defines a constant that 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 widget_class Specifies the widget class pointer for the created widget offset Returns the offset record

RELATED INFORMATIONXmResolveAllPartOffsets(3)​. ...
0
Johanes Gumabo
Data Size   :   12,928 byte
man-XmResolvePartOffsets.3Build   :   2024-12-29, 07:25   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   3 / 258,875
Visitor ID   :     :  
Visitor IP   :   3.133.134.190   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.29
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.

ERROR : Need New Coding :         (parse_manual_page_|252|XmResolvePartOffsets.3|2|..|... )         (parse_manual_page_|252|XmResolvePartOffsets.3|52|iX|.iX "XmResolvePartOffsets" )         (parse_manual_page_|252|XmResolvePartOffsets.3|176|..|... )