Το γραφικό συστατικό περιοχής σχεδίασης

Το γραφικό συστατικό DrawingArea είναι ένα κενό παράθυρο που σας δίνει την ελευθερία της δημιουργίας οποιουδήποτε γραφικού επιθυμείτε. Μαζί με την ελευθερία έρχεται η ευθύνη χειρισμού σημάτων σχεδίασης στο γραφικό συστατικό. Όταν ένα γραφικό συστατικό πρωτοεμφανίζεται, ή όταν καλύπτεται και έπειτα αποκαλύπτεται ξανά, χρειάζεται να ανασχεδιαστεί. Τα περισσότερα γραφικά συστατικά έχουν κώδικα για να το κάνουν αυτό, αλλά το DrawingArea δεν έχει, επιτρέποντας σας να γράψετε τον δικό σας χειριστή σήματος για να προσδιορίσετε πώς τα περιεχόμενα του γραφικού συστατικού θα σχεδιαστούν. Αυτό γίνεται συχνά με αντικατάσταση της εικονικής συνάρτησης μέλους on_draw().

Η GTK+ χρησιμοποιεί την API σχεδίασης Cairo. Με την gtkmm, μπορείτε να χρησιμοποιήσετε την API της C++ για cairo cairomm.

Μπορείτε να σχεδιάσετε πολύ προχωρημένα σχήματα χρησιμοποιώντας το Cairo, αλλά οι μέθοδοι για να γίνει αυτό είναι αρκετά βασικές. Το Cairo παρέχει μεθόδους για σχεδίαση ευθειών γραμμών, καμπύλων γραμμών και τόξων (συμπεριλαμβανομένων κύκλων). Αυτά τα βασικά σχήματα μπορούν να συνδυαστούν για να δημιουργήσουν πιο σύνθετα σχήματα και μονοπάτια που μπορούν να γεμίσουν με συμπαγή χρώματα, διαβαθμίσεις, μοτίβα και άλλα. Επιπλέον, το Cairo μπορεί να εκτελέσει σύνθετους μετασχηματισμούς, να συνθέσει εικόνες και να αποδώσει εξομαλυμένο κείμενο.

Cairo και Pango

Αν και το Cairo μπορεί να αποδώσει κείμενο, δεν σημαίνει ότι είναι αντικατάσταση του Pango. Το Pango είναι μια καλύτερη επιλογή αν χρειάζεται να εκτελέσετε πιο προχωρημένη απόδοση κειμένου όπως αναδίπλωση ή ελλειπτικό κείμενο. Η σχεδίαση κειμένου με το Cairo πρέπει να γίνεται μόνο αν το κείμενο είναι μέρος ενός γραφικού.

Σε αυτήν την ενότητα του μαθήματος, θα καλύψουμε το βασικό πρότυπο σχεδίασης του Cairo, θα περιγράψουμε κάθε βασικό στοιχείο σχεδίασης με κάποιες λεπτομέρειες (με παραδείγματα) και έπειτα θα παρουσιάσουμε μια απλή εφαρμογή που χρησιμοποιεί Cairo για τη σχεδίαση ενός προσαρμοσμένου γραφικού συστατικού ρολογιού.