3.2.4 ΕΜΦΑΝΙΣΗ ΤΟΥ ΠΑΡΑΘΥΡΟΥ


Έχοντας ανοίξει το παράθυρο και ορίσει όλα τα χαρακτηριστικά του μπορούμε να το εμφανίσουμε στην οθόνη. Αυτό χρειάζεται γιατί η δημιουργία ενός παραθύρου στα Χ Windows δεν συνεπάγεται και την άμεση εμφάνισή του στην οθόνη. Το παράθυρο υπάρχει στη μνήμη του υπολογιστή αλλά δεν φαίνεται στην οθόνη (unmapped), για να το εμφανίσουμε (mapping) πρέπει να χρησιμοποιήσουμε μια από τις συναρτήσεις XMapWindow, XMapRaised και XMapSubWindows. Η πρώτη εμφανίζει το παράθυρο, η δεύτερη το εμφανίζει και το υψώνει πάνω από όλα τα άλλα παράθυρα ώστε να είναι όλο ορατό και η τρίτη εμφανίζει το παράθυρο μαζί με όλα τα παιδιά του (αν έχει). Και οι τρεις παίρνουν τα ίδια ορίσματα, το display και το παράθυρο. Π.χ.

    XMapWindow( Display display, Window window );
Σε αντιστοιχία με τις παραπάνω συναρτήσεις υπάρχουν και οι XUnmapWindow, XUnmapSubWindows, οι οποίες εξαφανίζουν παράθυρα από την οθόνη. Οι παραπάνω συναρτήσεις είναι πολύ χρήσιμες γιατί χάρη σε αυτές μπορούμε να έχουμε πολλά παράθυρα, και να εμφανίζουμε κάθε φορά μόνο αυτά που χρειαζόμαστε ενώ τα υπόλοιπα μένουν αφανή (unmapped). Δεν χρειάζεται, δηλαδή κάθε φορά να δημιουργούμε (με την XCreateWindow) τα παράθυρα και μετά να τα διαγράφουμε για να φυγουν από την οθόνη. Η δημιουργία τους γίνεται μια φορά στην αρχή του προγράμματος, όπως και η διαγραφή τους στο τέλος του, ενώ ενδιάμεσα τα εμφανίζουμε και τα εξαφανίζουμε με mapping και unmapping. Στις συναρτήσεις αυτές στηρίζεται και ο μηχανισμός της εικονοποιήσης (iconifying) των παραθύρων από τον window manager. Τέλος πρέπει να σημειωθεί ότι μπορούμε να σχεδιάσουμε ή να αλλάξουμε όλα τα χαρακτηριστικά ενός παραθύρου ακόμα και όταν είναι αφανές (unmapped).

Στο σημείο αυτό είναι καλό να αναφερθούμε και στη συνάρτηση XFlush της Xlib. Η Xlib για λόγους καλύτερης απόδοσης διατηρεί σε μια ουρά τα αιτήματα του προγράμματος προς τον εξυπηρετητή. Με ορισμένες συναρτήσεις, όπως είναι η XFlush, τα αιτήματα που βρίσκονται στην ουρά στέλνονται στον εξυπηρετητή. Η λογική αυτή στηρίζεται και στο γεγονός ότι τα Χ Windows λειτουργούν συνήθως πάνω σε δίκτυο, οπότε είναι καλό τα μηνύματα που μεταφέρονται να είναι σε ομάδες ώστε να σχηματίζουν πακέτα.

Για την καλύτερη απόδοση των προγραμμάτων των Χ Windows είναι καλό να εκτελούμε διάφορες κλήσεις συναρτήσεων κατά ομάδες - ενότητες στο τέλος των οποίων να υπάρχει μια κλήση της XFlush. Με τον τρόπο αυτό βελτιώνουμε την απόδοση των προγραμμάτων και ομαλοποιούμε τη συνολική λειτουργία του συστήματος.

Η XFlush παίρνει ένα όρισμα, το δείκτη στο display.


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