4.4.3 ΠΕΡΑΙΤΕΡΩ ΧΕΙΡΙΣΜΟΣ ΤΩΝ WIDGETS


Έχοντας δημιουργήσει ένα widget με την XCreateWidget μπορούμε να αντλήσουμε χρήσιμες πληροφορίες από αυτό. Για το σκοπό αυτό υπάρχουν οι συναρτήσεις:

Οι παραπάνω συναρτήσεις είναι ιδιαίτερα χρήσιμες όταν θέλουμε να χρησιμοποιήσουμε συναρτήσεις της Xlib μέσα στο πρόγραμμα μας. Όπως αναφέρθηκε και στο τρίτο κεφάλαιο οι συναρτήσεις της Xlib λαμβάνουν, τις περισσότερες φορές, ως κύρια ορίσματα το δείκτη στο display και το παράθυρο.

Όταν δημιουργούμε ένα widget με τη συνάρτηση XCreateWidget το widget δεν εμφανίζεται αμέσως στην οθόνη. Για να εμφανιστεί πρέπει να δημιουργηθεί πρώτα ένα παράθυρο μέσα στο οποίο θα μπει το widget. Την δημιουργία του παραθυρου αναλαμβάνει η συνάρτηση XtRealizeWidget:

    XtRealizeWidget( Widget widget );
H XtRealizeWidget δημιουργεί το παράθυρο του widget. Αν το widget έχει άλλα widgets παιδιά δημιουργεί και τα δικά τους παράθυρα. Η τακτική που ακολουθείται στο προγραμματισμό με το Xtoolkit είναι αφού δημιουργηθούν όλα τα widgets του προγράμματος να καλείται η XtRealizeWidget για το βασικό widget. Με τον τρόπο αυτό δημιουργείται το βασικό παράθυρο του προγράμματος μαζί με όλα τα υπόλοιπα αναγκαία παράθυρα:

    XtRealizeWidget( toplevel );
Μια βασική έννοια σχετική με τα widgets είναι το widget managing, η "διαχείριση των widgets". Κάθε widget πρέπει ελέγχεται από το widget πατέρα του. Το widget πατέρας είναι υπεύθυνο για διάφορα χαρακτηριστικά του ίδιου του widget, όπως η θέση και το μέθεθος του, η είσοδο που θα λαμβάνει και άλλα. Για το λόγο αυτό θα πρέπει όταν είναι έτοιμο το widget να ειδοποιούμε τον πατέρα του. Την λειτουργία αυτή επιτελούν οι συναρτήσεις XtManageChild και XtManageChildren:

    XtManageChild( Widget widget );
    XtManageChildren( Widget *widgets, int widgets_number );
Η XtManageChild χρησιμοποιείται όταν θέλουμε να "διαχειριστούμε" ένα widget, ενώ η XtManageChildren χρησιμοποιείται όταν έχουμε ένα πίνακα από widgetς με τον ίδιο πατέρα. Τέλος υπάρχει η συνάρτηση διευκόλυνσης XtCreateManagedWidget, η οποία παίρνει τα ίδια ορίσματα με την XtCreateWidget, αλλά επιπλέον στέλνει αυτόματα το μήνυμα στο πατέρα του widget. Τις περισσότερες φορές χρησιμοποιούμε κατευθείαν τη συνάρτηση XtCreateManagedWidget.


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