3.4.2 ΤΥΠΟΙ ΓΕΓΟΝΟΤΩΝ
Υπάρχουν τριάντα τρεις τύποι γεγονότων, όπως ορίζονται και στο Χ.h
, μαζί με
τις αντίστοιχες μάσκες τους για την XSelectInput
. Μπορούν να χωριστούν σε
κατηγορίες όπως γεγονότα σχετικά με το ποντίκι, γεγονότα σχετικά με το
πληκτρολόγιο και γεγονότα σχετικά με τα παράθυρα. Τα κοινότερα από αυτά
(μαζί με τις μάσκες τους σε παρένθεση) είναι:
KeyPress (KeyPressMask), KeyRelease (KeyReleaseMask)
παράγονται όταν πατηθεί ή αφεθεί ένα πλήκτρο του πληκτρολογίου. Η δομή
XEvent
που επιστρέφεται από την XNextEvent
περιέχει τις επιπλέον πληροφορίες
για το ποιό πλήκτρο ήταν.
-
ButtonPress (ButtonPressMask), ButtonRelease (ButtonReleaseMask)
- παράγονται όταν πατηθεί ή αφεθεί ένα κουμπί του ποντικιού. Η δομή
XEvent
που
επιστρέφεται από την XNextEvent
περιέχει τις επιπλέον πληροφορίες για το
ποιό κουμπί ήταν.
-
MotionNotify (PointerMotionMask, ButtonMotionMask, Button1MotionMask,
Button2MotionMask, Button3MotionMask, Button3MotionMask, Button4MotionMask,
Button5MotionMask)
- παράγονται όταν κινηθεί το ποντίκι έχοντας πατημένο κάποιο κουμπί του ή οχι
(αναλόγως με την μάσκα που χρησιμοποιήθηκε). Τα γεγονότα αυτά είναι πολλά
και η ροή τους συνεχής επιβαρύνοντας αρκετά το πρόγραμμα, γι'αυτό και πρέπει
να ζητούνται μόνο όταν είναι απολύτως αναγκαία.
-
EnterNotify (EnterWindowMask), LeaveNotify (LeaveWindowMask)
- παράγονται όταν ο δείκτης του ποντικιού μπει ή βγει από ένα παράθυρο. Είναι
χρήσιμα για να καταλαβαίνουμε αν ο χρήστης δουλεύει με το πρόγραμμα ή όχι.
-
Expose (ExposureMask)
- παράγεται όταν ένα παράθυρο (ή μέρος του) εμφανιστεί στην οθόνη. Αυτό μπορεί
να συμβεί όταν ένα παράθυρο ήταν (μερικά) καλυμένο από άλλα και ο χρήστης (ή
το ίδιο το πρόγραμμα) το ύψωσε (raising) πάνω από τα αυτά. Στην περίπτωση
αυτή το παράθυρο χρειάζεται να ξανασχεδιαστεί (redrawing) γιατί το μέρος που
ήταν καλυμένο και εμφανίστηκε είναι σβησμένο. Για το λόγο αυτό τα γεγονότα
τύπου
expose
είναι πολύ σημαντικά και πρέπει να περιλαμβάνονται σε κάθε
πρόγραμμα.
-
MapNotify (StructureNotifyMask), UnmapNotify (StructureNotifyMask)
- παράγονται όταν το παράθυρο εμφανιστεί (mapping) ή φύγει (unmapping) από την
οθόνη.
-
ConfigureNotify (StructureNotifyMask)
- παράγεται όταν αλλάξουν τα χαρακτηριστικά του παραθύρου. Με το γεγονός αυτό
μπορούμε να αντιληφθούμε, για παράδειγμα, αν ο χρήστης άλλαξε τη θέση ή το
μεγέθος του παραθύρου και αναλόγως να προσαρμόσουμε την εμφάνισή του.