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

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

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

DESCRIPTIONNote: This routine is obsolete and exists for compatibility with previous releases​. You should call XmeResolvePartOffsets instead​. The use of offset records requires two extra global variables per widget class​. The variables consist of pointers to arrays of offsets into the widget record and constraint record for each part of the widget structure​. The XmResolveAllPartOffsets function allocates the offset records needed by an application to guarantee upward-compatible access to widget instance and constraint 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​. If the widget is a subclass of the Constraint class and it defines additional constraint resources, create an offset resource list for the constraint part as well​. Instead of using XtOffset for the offset, the widget uses XmConstraintPartOffset in the constraint resource list​. XmPartResource resources[] = { { BarNxyz, BarCXyz, XmRBoolean, sizeof(Boolean), XmPartOffset(Bar,xyz), XmRImmediate, (XtPointer)False } }; XmPartResource constraints[] = { { BarNmaxWidth, BarNMaxWidth, XmRDimension, sizeof(Dimension), XmConstraintPartOffset(Bar,max_width), XmRImmediate, (XtPointer)100 } };Instead of putting the widget size in the class record, the widget puts the widget part size in the same field​. If the widget is a subclass of the Constraint class, instead of putting the widget constraint record size in the class record, the widget puts the widget constraint part size in the same field​. Instead of putting XtVersion in the class record, the widget puts XtVersionDontCheck in the class record​. Define a variable, of type XmOffsetPtr, to point to the offset record​. If the widget is a subclass of the Constraint class, define a variable of type XmOffsetPtr to point to the constraint offset record​. These can be part of the widget​'s class record or separate global variables​. In class initialization, the widget calls XmResolveAllPartOffsets, passing it pointers to the class record, the address of the offset record, and the address of the constraint offset record​. If the widget not is a subclass of the Constraint class, it should pass NULL as the address of the constraint offset record​. This does several things: • Adds the superclass (which, by definition, has already been initialized) size field to the part size field • If the widget is a subclass of the Constraint class, adds the superclass constraint size field to the constraint size field • Allocates an array based upon the number of superclasses • If the widget is a subclass of the constraint class, allocates an array for the constraint offset record • Fills in the offsets of all the widget parts and constraint 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 and XmConstraintField macros help you access these fields​. Because the XmPartOffset, XmConstraintPartOffset, XmField, and XmConstraintField macros concatenate things, 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)))For constraint field max_width: #define BarMaxWidth(w) \ XmConstraintField(w,constraint_offsets,Bar,max_width,Dimension)The parameters for XmResolveAllPartOffsets are widget_class Specifies the widget class pointer for the created widget offset Returns the offset record constraint_offset Returns the constraint offset record

RELATED INFORMATIONXmResolvePartOffsets(3)​. ...
0
Johanes Gumabo
Data Size   :   17,624 byte
man-XmResolveAllPartOffsets.3Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   3 / 188,225
Visitor ID   :     :  
Visitor IP   :   3.145.152.146   :  
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.05
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_|249|XmResolveAllPartOffsets.3|2|..|... )         (parse_manual_page_|249|XmResolveAllPartOffsets.3|52|iX|.iX "XmResolveAllPartOffsets" )         (parse_manual_page_|249|XmResolveAllPartOffsets.3|220|..|... )