4.3 Η ΑΡΧΙΚΟΠΟΙΗΣΗ ΤΟΥ XTOOLKIT


Όπως περιγράφηκε στο προηγούμενο κεφάλαιο, τα αρχικά βήματα για την δημιουργία ενός προγράμματος με τη χρήση της Xlib είναι η σύνδεση με το display και η δημιουργία του παραθύρου του. Τα βήματα αυτά επαναλαμβάνονται, χωρίς ιδιαίτερες διαφοροποιήσεις, σε κάθε πρόγραμμα που χρησιμοποιεί την Xlib. Για τη διευκόλυνση του προγραμματιστή το Xtoolkit διαθέτει την συνάρτηση XtInitialize. Η XtInitialize ανοίγει την σύνδεση με το display και δημιουργεί ένα βασικό widget, το toplevel Shell όπως ονομάζεται. Επιπλέον, εξετάζει και χρησιμοποιεί τυχόν υπάρχοντα resources που αναφέρονται στο πρόγραμμα. Τα resources αυτά μπορούν να βρίσκονται στο .Xdefaults αρχείο, σε άλλα παρόμοια ή τελος να έχουν δοθεί απευθείας σαν ορίσματα στο πρόγραμμα. Με την χρήση, δηλαδή της XtInitialize το πρόγραμμα αναγνωρίζει πλέον αυτόματα όλα τα ορίσματα εκείνα που περιγράφηκαν στην αντίστοιχη παράγραφο του δευτερου κεφαλαίου, όπως τα -display {display_string}, -geometry {geometry_string}, -title {title_string} κτλ.

Η σύνταξη της XtInitialize είναι η ακόλουθη:

    Widget XtInitialize(
               String           shell_name,
               String           application_class,
               XrmOptionDescRec options,
               Cardinal         num_options,
               Cardinal        *argc,
               String           argv
           );
Η XtInitialize επιστρέφει μία δομή Widget, ή πιο απλά ένα widget. Το widget αυτό είναι το toplevel shell, το οποίο αντιστοιχεί στο παράθυρο του προγράμματος. Στη συνέχεια όσα νέα widget δημιουργηθούν θα είναι παιδιά, ή γενικότερα απόγονοι του βασικού αυτού widget. Το πρώτο όρισμα είναι μια συμβολοσειρά που περιέχει το όνομα (name) toplevel shell, το οποίο ταυτίζεται με αυτό του προγράμματος ενώ το δεύτερο όρισμα είναι μια συμβολοσειρά με την κλάση (class) στη οποία ανήκει. Το όνομα και η κλάση του προγράμματος χρησιμοποιούνται από την XtInitialize για την αναζήτηση των resources που απευθύνονται σε αυτό. Και τα δύο ορίσματα υπακούουν στους κανόνες σχετικά με τα resources που αναφέρθηκαν στις αντίστοιχες παραγράφους του δευτέρου κεφαλαίου. Το τρίτο όρισμα είναι τυχόν επιπλέον παράμετροι που θέλουμε να να παίρνει το πρόγραμμα εκτός από τις τυπικές που αναφέρθηκαν παραπάνω (-display κτλ.). Οι πληροφορίες για τις επιπλεόν παραμέτρους δίνονται σε ειδική μορφή, με τη χρήση της δομής XrmOptionDescRec. Η συγκεκριμένη δομή δεν περιγράφεται εδώ. Το επόμενο όρισμα είναι το πλήθος των επιπλέον παραμέτρων που προσθέτουμε. Τέλος, τα δύο τελευταία ορίσματα της XtInitialize είναι το πλήθος και οι τιμές των ορισμάτων που έλαβε το πρόγραμμα κατά την εκκίνηση του (τα κλασικά argc και argv). Τα ορίσματα αυτά είναι απαραίτητα για να μπορέσει το Xtoolkit να εξάγει αυτά που αφορούν και αυτά που του έχουμε ορίσει εμείς.

Ένα πάραδειγμα κλήσης της XtInitialize είναι το ακόλουθο:

    #include 
    
    main( argc, argv )
    int     argc;
    char  **argv;
    {
        Widget    toplevel;
    
        toplevel = XtInitialize( "myprog", "Program", NULL,
                                 0, argc, argv );
        .
        .
        .
Στο παραπάνω απόσπασμα κώδικα αρχικοποιούμε το Xtoolkit, δημιουργώντας ένα βασικό widget - παράθυρο με το όνομα myprog που ανήκει στην κλάση Program και δεν παίρνει άλλες παραμέτρους εκτός από τις τυπικές.


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