Core
widget
. Στη συνέχεια διαφοροποιούνται και το καθένα αποκτά και δικά του
χαρακτηριστικά. Στα widget ισχύει η κληρονομικότητα. Όσα χαρακτηριστικά
ορίζονται στα widget που βρίσκονται ψηλότερα στην ιεραρχία ισχύουν για τα
widget που βρίσκονται χαμηλότερα. Για παράδειγμα σε προηγούμενη παράγραφο
είχαμε ορίσει τη θέση τη θέση ενός pushbutton χρησιμοποιώντας τις
παραμέτρους XtNx
και XtNy
. Οι παράμετροι αυτές δεν
ορίζονται στο PushButton widget
, αλλά στον πρόγονό του το
Core widget
. Παρόλ' αυτά, λόγω κληρονομικότητας, ισχύουν και στο
PushButton widget
.
Core
,
XmPrimitive
, Composite
και Constraint
. Τα widget αυτά δεν μπορεί να τα δημιουργήσει ο
προγραμματιστής με την XCreateWidget
.
Άλλη κατηγορία widget είναι τα
container widgets. Τα widgets αυτά χρησιμεύουν για την τοποθέτηση άλλων
widget μέσα τους. Τέτοια widgets είναι τα XmBulletinBoard
,
XmRowColumn
,XmForm
και το XmDrawingArea
. Για παράδειγμα το XmBulletinBoard
widget
επιτρέπει την τοποθέτηση των παιδιών του σε αυτό σε απόλυτες θέσεις
(x,y), το XmRowColumn widget
τοποθετεί τα παιδιά του στοιχημένα σε στήλες ή
γραμμές (καθορίζεται από την παραμετρο XmNorientation
), ενώ το XmDrawingArea
είναι κατάλληλο για την σχεδίαση σχημάτων μέσα στην περιοχή του.
Μια άλλη
κατηγορία είναι τα Shell widgets
που χρησιμοποιούνται για τις περιπτώσεις
που πρέπει να δημιουργηθεί κάποιο βασικό widget (παράθυρο). Το toplevel
widget
του κάθε προγράμματος ανήκει στην κατηγορία αυτή. Επισής με τέτοια
widgets δημιουργούνται τα διάφορα dialog windows. Τέλος, η πιο γνωστή
κατηγορία είναι η κατηγορία των απλών widgets. Στην κατηγορία αυτή ανήκουν
τα παιδιά του XmPrimitive widget
. Τέτοια widgets είναι τα διάφορα buttons
(pushbuttons, togglebuttons, cascadebuttons, arrowsbutton), το label widget
για την εμφάνιση κειμένου, το text widget για την εισαγωγή κειμένου, το
scrollbar και άλλα.
Καθένα από τα παραπάνω widgets παίρνει τις παραμέτρους των προγόνων του και δικές του ιδιαίτερες παραμέτρους, έχει δικές του callback συναρτήσεις, μπορεί ακόμα να υποστηρίζεται από το widget set και με άλλες συναρτήσεις για ειδικές λειτουργίες. Γενικά για να περιγραφούν όλα τα widgets αναλυτικά χρειάζεται πολύς χώρος και χρόνος. Μια καλή και πλήρης πηγή πληροφοριών για τα widgets και τις συναρτήσεις του Xtoolkit, του Motif και της Xlib είναι πάντα τα on-line manuals του UNIX. Τα manuals αυτά αναλύουν με όλες τις λεπτομέριες κάθε widget και κάθε συνάρτηση, Έτσι ο προγραμματιστής που έχει που έχει κατανοήσει τις βασικές αρχές λειτουργίας τους μπορεί να ανατρέξει στα manuals και να λύσει κάθε απορία που προκύπτει κατά τη διάρκεια της συγγραφής ενός προγράμματος.
Για παράδειγμα oi εντολές:
man XtInitializeκαι
man xmPushButtonWidgetεπιστρέφουν τα πλήρη εγχειρίδια για τη συνάρτηση
XtInitialize
και το widget
xmPushButtonWidget
.