4.8 ΚΑΤΗΓΟΡΙΕΣ - ΚΑΤΑΤΑΞΗ ΤΩΝ WIDGET


Τα widgets μέσα στο Widget Set κατανέμονται σε μια δενδρική μορφή. Η μορφή αυτή φαίνεται στο σχήμα 4.1. Όλα τα widgets ξεκινούν από ένα widget το Core widget. Στη συνέχεια διαφοροποιούνται και το καθένα αποκτά και δικά του χαρακτηριστικά. Στα widget ισχύει η κληρονομικότητα. Όσα χαρακτηριστικά ορίζονται στα widget που βρίσκονται ψηλότερα στην ιεραρχία ισχύουν για τα widget που βρίσκονται χαμηλότερα. Για παράδειγμα σε προηγούμενη παράγραφο είχαμε ορίσει τη θέση τη θέση ενός pushbutton χρησιμοποιώντας τις παραμέτρους XtNx και XtNy. Οι παράμετροι αυτές δεν ορίζονται στο PushButton widget, αλλά στον πρόγονό του το Core widget. Παρόλ' αυτά, λόγω κληρονομικότητας, ισχύουν και στο PushButton widget.

σχήμα 4.1
Τα widgets μπορούν να χωριστούν σε διάφορες κατηγορίες. Μια κατηγορία είναι τα widget που ανήκουν στις λεγόμενες meta-classes. Στην κατηγορία αυτή ανήκουν widgets που χρησιμοποιούνται μόνο για να κληρονομούν κάποια βασικά χαρακτηριστικά στα παιδιά τους. Τέτοια είναι τα 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.


[prev] [up] [next] [contents] [index]