Περιγραφή της πλατφόρμας GNOME

Shaun McCance

Έργο τεκμηρίωσης GNOME

Χορηγείται άδεια αντιγραφής, διανομής και/ή τροποποίησης του παρόντος εγγράφου υπό τους όρους της έκδοσης 1.1 της Ελεύθερης Άδειας Τεκμηρίωσης GNU (GFDL), ή οποιασδήποτε μεταγενέστερης έκδοσής αυτής από το Ίδρυμα Ελεύθερου Λογισμικού (FSF), χωρίς αμετάβλητες ενότητες, κείμενα εμπροσθοφύλλου και κείμενα οπισθοφύλλου. Αντίγραφο της άδειας GFDL είναι διαθέσιμο στον ακόλουθο σύνδεσμο, ή στο αρχείο COPYING-DOCS που διανέμεται μαζί με το παρόν εγχειρίδιο.

Αυτό το εγχειρίδιο αποτελεί μέρος της συλλογής εγχειριδίων του GNOME που διανέμονται υπό τους όρους της GFDL. Αν επιθυμείτε να διανείμετε το παρόν εγχειρίδιο ξεχωριστά από τη συλλογή, οφείλετε να προσθέσετε στο εγχειρίδιο αντίγραφο της άδειας χρήσης, όπως προβλέπεται στην ενότητα 6 της άδειας.

Πολλές από τις ονομασίες που χρησιμοποιούνται από εταιρείες για την διαφοροποίηση των προϊόντων και υπηρεσιών τους έχουν καταχωρισθεί ως εμπορικά σήματα. Σε όποιο σημείο της τεκμηρίωσης GNOME τυχόν εμφανίζονται αυτές οι ονομασίες, και εφόσον τα μέλη του Έργου τεκμηρίωσης GNOME έχουν λάβει γνώση αυτών των εμπορικών σημάτων, οι ονομασίες ή τα αρχικά αυτών θα γράφονται με κεφαλαίους χαρακτήρες.

ΤΟ ΠΑΡΟΝ ΕΓΓΡΑΦΟ ΚΑΙ ΟΙ ΤΡΟΠΟΙΗΜΕΝΕΣ ΕΚΔΟΣΕΙΣ ΑΥΤΟΥ ΠΑΡΕΧΟΝΤΑΙ ΥΠΟ ΤΟΥΣ ΟΡΟΥΣ ΤΗΣ ΕΛΕΥΘΕΡΗΣ ΑΔΕΙΑΣ ΤΕΚΜΗΡΙΩΣΗΣ GNU (GFDL) ΚΑΙ ΜΕ ΤΗΝ ΠΕΡΑΙΤΕΡΩ ΔΙΕΥΚΡΙΝΙΣΗ ΟΤΙ:

  1. ΤΟ ΠΑΡΟΝ ΕΓΓΡΑΦΟ ΠΑΡΕΧΕΤΑΙ "ΩΣ ΕΧΕΙ", ΧΩΡΙΣ ΟΠΟΙΑΔΗΠΟΤΕ ΑΛΛΗ ΕΓΓΥΗΣΗ, ΕΙΤΕ ΡΗΤΗ ΕΙΤΕ ΣΙΩΠΗΡΗ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ, ΧΩΡΙΣ ΠΕΡΙΟΡΙΣΜΟ, ΤΗΣ ΕΓΓΥΗΣΗΣ ΟΤΙ ΤΟ ΕΓΓΡΑΦΟ, Ή Η ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚΔΟΣΗ ΑΥΤΟΥ, ΕΙΝΑΙ ΕΜΠΟΡΕΥΣΙΜΟ, ΚΑΤΑΛΛΗΛΟ ΓΙΑ ΕΙΔΙΚΟ ΣΚΟΠΟ ΚΑΙ ΔΕΝ ΠΡΟΣΒΑΛΛΕΙ ΔΙΚΑΙΩΜΑΤΑ ΤΡΙΤΩΝ. Ο ΧΡΗΣΤΗΣ ΑΝΑΛΑΜΒΑΝΕΙ ΕΞ ΟΛΟΚΛΗΡΟΥ ΤΗΝ ΕΘΥΝΗ ΩΣ ΠΡΟΣ ΤΗΝ ΠΟΙΟΤΗΤΑ, ΤΗΝ ΑΚΡΙΒΕΙΑ ΚΑΙ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή ΤΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗΣ ΕΚΔΟΣΗΣ ΑΥΤΟΥ. ΣΕ ΠΕΡΙΠΤΩΣΗ ΠΟΥ ΟΠΟΙΟΔΗΠΟΤΕ ΕΓΓΡΑΦΟ Ή ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚΔΟΣΗ ΑΥΤΟΥ ΑΠΟΔΕΙΧΘΟΥΝ ΕΛΑΤΤΩΜΑΤΙΚΑ ΚΑΘ' ΟΙΟΝΔΗΠΟΤΕ ΤΡΟΠΟ, Ο ΧΡΗΣΤΗΣ (ΚΑΙ ΟΧΙ Ο ΑΡΧΙΚΟΣ ΣΥΓΓΡΑΦΕΑΣ, ΔΗΜΙΟΥΡΓΟΣ Ή ΟΠΟΙΟΣΔΗΠΟΤΕ ΣΥΝΤΕΛΕΣΤΗΣ) ΑΝΑΛΑΜΒΑΝΕΙ ΤΟ ΚΟΣΤΟΣ ΟΠΟΙΑΣΔΗΠΟΤΕ ΑΝΑΓΚΑΙΑΣ ΣΥΝΤΗΡΗΣΗΣ, ΕΠΙΣΚΕΥΗΣ Ή ΔΙΟΡΘΩΣΗΣ. Η ΠΑΡΟΥΣΑ ΑΠΟΠΟΙΗΣΗ ΕΓΓΥΗΣΗΣ ΑΠΟΤΕΛΕΙ ΑΝΑΠΟΣΠΑΣΤΟ ΜΕΡΟΣ ΤΗΣ ΑΔΕΙΑΣ. ΔΕΝ ΕΠΙΤΡΕΠΕΤΑΙ ΟΥΔΕΜΙΑ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΕΚΔΟΣΕΩΝ ΑΥΤΟΥ ΣΥΜΦΩΝΑ ΜΕ ΤΟΥΣ ΟΡΟΥΣ ΤΗΣ ΠΑΡΟΥΣΑΣ, ΠΑΡΑ ΜΟΝΟ ΕΑΝ ΣΥΝΟΔΕΥΕΤΑΙ ΑΠΟ ΤΗΝ ΑΠΟΠΟΙΗΣΗ ΕΓΓΥΗΣΗΣ, ΚΑΙ

  2. Ο ΔΗΜΙΟΥΡΓΟΣ, Ο ΑΡΧΙΚΟΣ ΣΥΓΓΡΑΦΕΑΣ, ΟΙ ΣΥΝΤΕΛΕΣΤΕΣ Ή ΟΙ ΔΙΑΝΟΜΕΙΣ ΤΟΥ ΕΓΓΡΑΦΟΥ Ή ΤΡΟΠΟΠΟΙΗΜΕΝΗΣ ΕΚΔΟΣΗΣ ΑΥΤΟΥ, ΚΑΘΩΣ ΚΑΙ ΟΙ ΠΡΟΜΗΘΕΥΤΕΣ ΟΠΟΙΩΝΔΗΠΟΤΕ ΕΚ ΤΩΝ ΠΡΟΑΝΑΦΕΡΟΜΕΝΩΝ ΜΕΡΩΝ, ΔΕΝ ΕΥΘΥΝΟΝΤΑΙ ΕΝΑΝΤΙ ΟΙΟΥΔΗΠΟΤΕ, ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ ΚΑΙ ΥΠΟ ΚΑΜΙΑ ΕΡΜΗΝΕΙΑ ΝΟΜΟΥ, ΕΙΤΕ ΕΞ ΑΔΙΚΟΠΡΑΞΙΑΣ (ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ ΤΗΣ ΑΜΕΛΕΙΑΣ) ΕΙΤΕ ΣΤΟ ΠΛΑΙΣΙΟ ΣΥΜΒΑΤΙΚΗΣ Ή ΑΛΛΗΣ ΥΠΟΧΡΕΩΣΗΣ, ΓΙΑ ΤΥΧΟΝ ΑΜΕΣΕΣ, ΕΜΜΕΣΕΣ, ΕΙΔΙΚΕΣ, ΤΥΧΑΙΕΣ Ή ΣΥΝΕΠΑΚΟΛΟΥΘΕΣ ΖΗΜΙΕΣ ΟΠΟΙΑΣΔΗΠΟΤΕ ΜΟΡΦΗΣ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΧΩΡΙΣ ΠΕΡΙΟΡΙΣΜΟ, ΖΗΜΙΩΝ ΛΟΓΩ ΑΠΩΛΕΙΑΣ ΦΗΜΗΣ ΚΑΙ ΠΕΛΑΤΕΙΑΣ, ΔΙΑΚΟΠΗΣ ΕΡΓΑΣΙΩΝ, ΔΥΣΛΕΙΤΟΥΡΓΙΑΣ Ή ΒΛΑΒΗΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, Ή ΚΑΘΕ ΑΛΛΗΣ ΖΗΜΙΑΣ Ή ΑΠΩΛΕΙΑΣ ΠΟΥ ΟΦΕΙΛΕΤΑΙ Ή ΣΧΕΤΙΖΕΤΑΙ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΕΓΓΡΑΦΟΥ ΚΑΙ ΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΕΚΔΟΣΕΩΝ ΑΥΤΟΥ, ΑΚΟΜΑ ΚΑΙ ΑΝ ΤΑ ΩΣ ΑΝΩ ΜΕΡΗ ΕΙΧΑΝ ΛΑΒΕΙ ΓΝΩΣΗ ΤΗΣ ΠΙΘΑΝΟΤΗΤΑΣ ΠΡΟΚΛΗΣΗΣ ΤΕΤΟΙΩΝ ΖΗΜΙΩΝ.

2007-03-16

Abstract

Περιγραφή των πανίσχυρων τεχνολογιών της πλατφόρμας GNOME.


Table of Contents

1. Εισαγωγή
Σε ποιους απευθύνεται αυτό το έγγραφο
Η οικογένεια του GNOME
2. Επισκόπηση πλατφόρμας
Πυρήνας τεχνολογιών
IPC και Δικτύωση
Τεχνολογίες επιφάνειας εργασίας
3. Πυρήνας τεχνολογιών
Γραφικές διεπαφές
GTK+
Libglade
Pango
GDK
Cairo
Εικονικό σύστημα αρχείων
Ρύθμιση και κλείδωμα
Διεθνοποίηση
Προσιτότητα
Πολυμέσα
Εκτύπωση
GNOME Print
CUPS
4. IPC και Δικτύωση
Πρόχειρα, σύρσιμο και απόθεση
D-BUS
Bonobo και CORBA
Ανακάλυψη υπηρεσιών
XML και υπηρεσίες ιστού
SOAP
Επεξεργασία XML
Μετατροπή XML μέσω XSLT
5. Τεχνολογίες επιφάνειας εργασίας
Μητρώα εφαρμογών και τύπων αρχείων
Μικροεφαρμογές πίνακα εφαρμογών
Περιοχή ειδοποιήσεων
Διαχειριστής αρχείων
Διαχειριστής παραθύρων
Κέντρο ελέγχου
Αποθήκευση συνθηματικών
Διαχείριση συνεδριών
Βιβλίο διευθύνσεων και ημερολόγιο
Χρηστικότητα
Τεκμηρίωση
6. Συνδέσεις γλωσσών
C++
Java
Perl
Python
Άλλες γλώσσες
A. Σύντομη επισκόπηση μονάδων
Μονάδες πλατφόρμας
Μονάδες επιφάνειας εργασίας

List of Figures

3.1. Βιβλιοθήκες γραφικών και στρώσεις
3.2. Εμφάνιση πολλαπλών γλωσσών με Pango
3.3. Το Gnumeric σε διάφορες γλώσσες

Chapter 1. Εισαγωγή

Το GNOME είναι ένα ισχυρό αλλά απλό περιβάλλον επιφάνειας εργασίας που επικεντρώνεται ιδιαίτερα στη χρηστικότητα, την προσιτότητα και τη διεθνοποίηση. Το GNOME έχει σχεδιαστεί έτσι ώστε να μπορεί να το χρησιμοποιήσει ο καθένας, ανεξάρτητα από τις τεχνικές του γνώσεις, αναπηρίες ή μητρική γλώσσα. Το GNOME απλοποιεί τη χρήση των υπολογιστών για όλους μας.

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

Σε ποιους απευθύνεται αυτό το έγγραφο

Αν επιθυμείτε να δημιουργήσετε λογισμικό χρησιμοποιώντας την πλατφόρμα GNOME, τότε αυτό το έγγραφο είναι για εσάς. Προγραμματίζοντας στην πλατφόρμα GNOME θα μπορέσετε να δημιουργήσετε ομοιόμορφες εφαρμογές που θα ενσωματώνονται άψογα στην επιφάνεια εργασίας του χρήστη. Αυτός ο οδηγός αποτελεί μια εισαγωγή στα διάφορα συστατικά της πλατφόρμας, ώστε να γνωρίζετε για τι είναι υπεύθυνες οι διάφορες βιβλιοθήκες. Επίσης, ο οδηγός αυτός περιέχει συνδέσμους προς επιπλέον, λεπτομερέστερη, τεκμηρίωση, επιτρέποντάς σας να εμβαθύνετε στα διάφορα συστατικά της πλατφόρμας.

Ο οδηγός αυτός μπορεί επίσης να σας χρησιμεύσει αν αναζητάτε την κατάλληλη πλατφόρμα προγραμματισμού για το έργο σας, γιατί σας δείχνει πώς μπορείτε να χρησιμοποιήσετε την πλατφόρμα GNOME για να δημιουργήσετε χρήσιμο λογισμικό.

Παράλληλα, ο οδηγός αυτός περιγράφει το πώς μπορείτε να επεκτείνετε την επιφάνεια εργασίας GNOME, χρησιμοποιώντας πρόσθετα, μικροεφαρμογές πινάκων εφαρμογών και άλλα χρήσιμα εργαλεία. Αν θέλετε να προσθέσετε λειτουργίες που θα ενσωματώνονται στην επιφάνεια εργασίας του GNOME, τότε αυτός ο οδηγός, ειδικά η Chapter 5, Τεχνολογίες επιφάνειας εργασίας, είναι για εσάς.

Αν διαθέτετε ήδη λογισμικό και επιθυμείτε να το μεταφέρετε στην πλατφόρμα GNOME, εκτός από αυτόν τον οδηγό συμβουλευτείτε και τον οδηγό Guide For ISVs.

Η οικογένεια του GNOME

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

Ιστότοποι

www.gnome.org

Ο κύριος ιστότοπος για τους χρήστες του GNOME. Περιέχει λήψεις, τεκμηρίωση και πληροφορίες για τις εκδόσεις.

library.gnome.org

Η πηγή για όλη την τεκμηρίωση του GNOME. Περιέχει όλη την τεκμηρίωση του GNOME για χρήστες και προγραμματιστές και ενημερώνεται αυτόματα σε κάθε έκδοση.

foundation.gnome.org

Ο ιστότοπος του ιδρύματος GNOME, του μη κερδοσκοπικού ιδρύματος που επιβλέπει την ανάπτυξη του GNOME.

bugzilla.gnome.org

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

live.gnome.org

Το wiki του GNOME. Πλέον, πολλά έργα του GNOME χρησιμοποιούν το wiki ως τον κύριο ιστότοπό τους. Επίσης, το wiki χρησιμοποιείται συχνά για τη σχεδίαση της μελλοντικής ανάπτυξης του GNOME.

developer.gnome.org

Ο παλαιός ιστότοπος για τους προγραμματιστές. Παλαιότερα περιείχε τεκμηρίωση για προγραμματιστές και πληροφορίες για τις ομάδες χρηστικότητας, τεκμηρίωσης και μετάφρασης. Πλέον, επικαλύπτεται σε μεγάλο βαθμό από τα library.gnome.org και live.gnome.org. Ωστόσο, μπορεί στον ιστότοπο αυτό να βρείτε πληροφορίες που δεν βρίσκονται πουθενά αλλού.

mail.gnome.org

Πληροφορίες σχετικά με τις λίστες ταχυδρομείου του GNOME. Περιέχει τα πλήρη αρχεία των λιστών ταχυδρομείου του GNOME.

svn.gnome.org

Το αποθετήριο Subversion του GNOME, που εποπτεύει όλο τον πηγαίο κώδικα του GNOME από την ημέρα που δημιουργήθηκε.

Λίστες ταχυδρομείου

gnome-list

Η κύρια λίστα ταχυδρομείου για τους χρήστες του GNOME.

gnome-devel-list

Πληροφορίες και ερωτήσεις για προγραμματιστές που χρησιμοποιούν την πλατφόρμα GNOME.

gnome-love

Το πρώτο μέρος που θα πρέπει να κοιτάξετε αν θέλετε να συνεισφέρετε στο GNOME.

gnome-accessibility-list

Πληροφορίες για την προσιτότητα στις εφαρμογές του GNOME.

gnome-doc-list

Πληροφορίες για τη συγγραφή τεκμηρίωσης για εφαρμογές GNOME.

gnome-i18n

Πληροφορίες για τη διεθνοποίηση και τοπικοποίηση των εφαρμογών GNOME.

usability

Πληροφορίες σχετικά με τη χρηστικότητα στις εφαρμογές GNOME.

Συνέδρια

GUADEC

Το κύριο συνέδριο για τους χρήστες και προγραμματιστές του GNOME. Το GUADEC διοργανώνεται ετησίως, το Μάιο ή τον Ιούνιο. Κάθε χρόνο φιλοξενείται σε διαφορετική ευρωπαϊκή πόλη, επιτρέποντάς μας να γνωρίσουμε καλύτερα την Ευρώπη. Το GUADEC περιλαμβάνει δραστηριότητες για χρήστες, προγραμματιστές και διανομείς.

Σύνοδος κορυφής του GNOME (GNOME Summit)

Η συνάντηση των χάκερ. Η σύνοδος αφορά κυρίως όσους ήδη προγραμματίζουν για το GNOME, αν και συχνά διαθέτει χρήσιμα στοιχεία για νέους προγραμματιστές. Η σύνοδος διοργανώνεται σε ετήσια βάση στη Βοστόνη των ΗΠΑ.

GNOME.conf.au

Μια ανεπίσημη συνάντηση που διοργανώνεται ετησίως από το linux.conf.au.

Άλλοι οργανισμοί

freedesktop.org

Μια προσπάθεια συνεργασίας για την επίτευξη διαλειτουργικότητας και την κοινή χρήση τεχνολογιών σε διαφορετικά περιβάλλοντα επιφάνειας εργασίας. Μέσω του freedesktop.org, το GNOME συνεργάζεται με έργα όπως το KDE και το XFCE, για να επιτρέψει στους προγραμματιστές εφαρμογών να βελτιώσουν την εμπειρία των χρηστών τους.

Mozilla

Η ελεύθερη μηχανή ιστού, και όχι μόνο. Το GNOME διατηρεί στενές σχέσεις με την ομάδα ανάπτυξης του Mozilla, με στόχο τη γενικότερη βελτίωση της διεπαφής χρήστη.

OpenOffice.org

Η ελεύθερη σουίτα εφαρμογών γραφείου. Το GNOME συνεργάζεται με την ομάδα ανάπτυξης του OpenOffice.org με στόχο την καλύτερη ενσωμάτωση της διεπαφής της ελεύθερης αυτής σουίτας στο GNOME.

Ίδρυμα Ελεύθερου Λογισμικού

Ελευθερία. Το Ίδρυμα Ελεύθερου Λογισμικού ιδρύθηκε το 1985 και εργάζεται σκληρά για τη δημιουργία απολύτως ελεύθερων λειτουργικών συστημάτων, που παρέχουν στους χρήστες τους την ελευθερία να χρησιμοποιούν, να τροποποιούν και να αναδιανέμουν το λογισμικό τους. Ως κομμάτι του έργου GNU, το GNOME στοχεύει στην παροχή ενός απολύτως ελεύθερου περιβάλλοντος επιφάνειας εργασίας.

Chapter 2. Επισκόπηση πλατφόρμας

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

Πυρήνας τεχνολογιών

Το GNOME παρέχει μια σειρά από βιβλιοθήκες για τη δημιουργία ελκυστικών γραφικών διεπαφών. Παρέχει βιβλιοθήκες για την εμφάνιση και επεξεργασία των βασικών ελέγχων της διεπαφής χρήστη, για την μορφοποίηση και εμφάνιση κειμένου στις περισσότερες γραφές του κόσμου, και για τη σχεδίαση περίπλοκων διανυσματικών γραφικών στην οθόνη. Οι γραφικές τεχνολογίες του GNOME περιγράφονται στην the section called “Γραφικές διεπαφές”.

Η βιβλιοθήκη GIO του GLib, μαζί με το σύστημα υποστήριξης GVFS, προσφέρει ένα αφηρημένο μοντέλο του συστήματος αρχείων που επιτρέπει στους χρήστες να εργάζονται τόσο με αρχεία σε απομακρυσμένους εξυπηρετητές, όσο και με αρχεία των τοπικών συστημάτων αρχείων.Η GIO παρέχει ένα API υψηλού επιπέδου για τις ενέργειες αρχείων, διευκολύνοντας και επιταχύνοντας την ανάπτυξη λογισμικού. Η χρήση της GIO παρέχει στην εφαρμογή σας αυτόματη υποστήριξη για απομακρυσμένα αρχεία και φακέλους. Η GIO και το GVFS περιγράφονται στην the section called “Εικονικό σύστημα αρχείων”.

Το GNOME παρέχει τη βιβλιοθήκη και την υπηρεσία GConf για την αποθήκευση και ανάκτηση των προτιμήσεων του χρήστη. Το GConf διαθέτει ένα απλό API που διευκολύνει την προσθήκη άμεσα εφαρμόσιμων προτιμήσεων στην εφαρμογή σας. Η χρήση του GConf επιτρέπει στους διαχειριστές συστημάτων να καθορίζουν προεπιλεγμένες και υποχρεωτικές ρυθμίσεις εφαρμογών για τους χρήστες τους. Το GConf περιγράφεται στην the section called “Ρύθμιση και κλείδωμα”.

Το GNOME παρέχει λειτουργίες διεθνοποίησης και προσιτότητας, για να μπορείτε να απευθυνθείτε σε όσο το δυνατόν περισσότερους εν δυνάμει χρήστες. Σε μεγάλο βαθμό, η υποστήριξη για τη διεθνοποίηση και την προσιτότητα είναι ενσωματωμένη στο GNOME, αλλά υπάρχουν πολλά σχετικά ζητήματα με τα οποία θα πρέπει να είστε εξοικειωμένοι κατά την ανάπτυξη εφαρμογών. Η διεθνοποίηση εξετάζεται στην the section called “Διεθνοποίηση” και η προσιτότητα στην the section called “Προσιτότητα”.

Το GNOME περιλαμβάνει το GStreamer, ένα εξαιρετικά ισχυρό πλαίσιο πολυμέσων, για τη δημιουργία, επεξεργασία και αναπαραγωγή ήχου και βίντεο. Το GStreamer εξετάζεται στην the section called “Πολυμέσα”.

Επίσης, το GNOME παρέχει ένα ολοκληρωμένο πλαίσιο εκτύπωσης που συμπληρώνει το CUPS, όπου είναι δυνατόν. Το πλαίσιο εκτύπωσης του GNOME σας επιτρέπει να παρέχετε μια ενιαία διεπαφή και εκτυπώσεις υψηλής ποιότητας. Το πλαίσιο εκτύπωσης περιγράφεται στην the section called “Εκτύπωση”.

IPC και Δικτύωση

Η επιφάνεια εργασίας GNOME υποστηρίζει πλήρως τη μεταφορά δεδομένων μέσω του προχείρου ή μέσω συρσίματος και απόθεσης. Τα API της GTK+ σας βοηθούν να δημιουργήσετε εφαρμογές που συνεργάζονται άψογα με την υπόλοιπη επιφάνεια εργασίας. Το πρόχειρο και οι δυνατότητες συρσίματος και απόθεσης εξετάζονται στην the section called “Πρόχειρα, σύρσιμο και απόθεση”.

Μαζί με το freedesktop.org, το GNOME παρέχει το σύστημα μηνυμάτων D-Bus. Το D-Bus είναι ένας δίαυλος μηνυμάτων για πολλαπλές επιφάνειες εργασίας που επιτρέπει σε εφαρμογές κάθε είδους να επικοινωνούν μεταξύ τους. Το D-Bus εξετάζεται στην the section called “D-BUS”.

Το GNOME χρησιμοποιεί το σύστημα συστατικών Bonobo, που έχει βασιστεί πάνω στο CORBA. Το Bonobo επιτρέπει στους προγραμματιστές να δημιουργούν περίπλοκα ενσωματώσιμα συστατικά, που μπορούν να επαναχρησιμοποιηθούν σε διαφορετικά προγράμματα. Το Bonobo εξετάζεται στηνthe section called “Bonobo και CORBA”.

Για να απλοποιήσει τη διαχείριση δικτύων, το GNOME υποστηρίζει την Ανακάλυψη Υπηρεσιών DNS. Η Ανακάλυψη Υπηρεσιών DNS επιτρέπει στις εφαρμογές να ανακαλύπτουν αυτόματα υπηρεσίες σε ένα τοπικό δίκτυο, χωρίς να απαιτούν την παροχή διευθύνσεων δικτύου από το χρήστη. Η Ανακάλυψη Υπηρεσιών DNS περιγράφεται στην the section called “Ανακάλυψη υπηρεσιών”.

Τέλος, το GNOME παρέχει μια σειρά βιβλιοθηκών για την εργασία με XML και υπηρεσίες ιστού, καθώς αυτές οι τεχνολογίες αποδεικνύονται όλο και πιο σημαντικές για τους προγραμματιστές εφαρμογών. Οι υπηρεσίες XML και διαδικτύου περιγράφονται στην the section called “XML και υπηρεσίες ιστού”.

Τεχνολογίες επιφάνειας εργασίας

Η επιφάνεια εργασίας GNOME παρέχει πολλές δυνατότητες μεγαλύτερης ενσωμάτωσης των εφαρμογών, όπως η προσθήκη μικροεφαρμογών στους πίνακες εφαρμογών ή προσθέτων στο διαχειριστή αρχείων. Πολλές από αυτές τις δυνατότητες εξετάζονται στην Chapter 5, Τεχνολογίες επιφάνειας εργασίας.

Το GNOME παρέχει ολοκληρωμένες Κατευθυντήριες Γραμμές Διεπαφής με Ανθρώπους, επιτρέποντάς σας να δημιουργείτε περισσότερο εύχρηστες εφαρμογές. Τα πρότυπα χρηστικότητας του GNOME ήταν τα πρώτα του είδους τους για ελεύθερο περιβάλλον επιφάνειας εργασίας, και εξακολουθούν να βελτιώνονται χάρη στη δέσμευση του GNOME για παροχή όσο το δυνατόν καλύτερης εμπειρίας στο χρήστη. Η χρηστικότητα εξετάζεται στην the section called “Χρηστικότητα”.

Το GNOME επίσης παρέχει ένα ολοκληρωμένο σύστημα βοήθειας, καθώς και κατευθυντήριες γραμμές για το ύφος/στυλ της τεκμηρίωσης. Αν και συχνά υποτιμάται η σημασία της, η καλή βοήθεια μπορεί να συμβάλει ιδιαίτερα στη βελτίωση του λογισμικού σας. Η τεκμηρίωση εξετάζεται στην the section called “Τεκμηρίωση”.

Chapter 3. Πυρήνας τεχνολογιών

Γραφικές διεπαφές

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

Η πλατφόρμα GNOME διαθέτει προηγμένα γραφικά και τεχνολογίες διεπαφής χρήστη που περιλαμβάνουν τα πάντα, από τους κλασικούς ελέγχους διεπαφής χρήστη, μέχρι API για τη σχεδίαση γραφικών υψηλής ποιότητας στην οθόνη. Η χρήση των τεχνολογιών γραφικών του GNOME σας επιτρέπει να δημιουργείτε εφαρμογές με ελκυστική και ομοιόμορφη εμφάνιση και απλούστατες στην εκμάθησή τους.

Figure 3.1. Βιβλιοθήκες γραφικών και στρώσεις

Βιβλιοθήκες γραφικών και στρώσεις

GTK+

Η GTK+ είναι η βασική βιβλιοθήκη που χρησιμοποιείται για την κατασκευή διεπαφών χρήστη στο GNOME. Παρέχει όλους τους ελέγχους διεπαφής χρήστη, γνωστούς και ως γραφικά συστατικά (widgets), που χρησιμοποιούν οι συνήθεις γραφικές εφαρμογές. Το μοντέρνο και αντικειμενοστραφές API της σας επιτρέπει να δημιουργείτε ελκυστικές και προηγμένες διεπαφές χρήστη, χωρίς να χρειάζεται να ασχοληθείτε με τις λεπτομέρειες χαμηλού επιπέδου της σχεδίασης και της επικοινωνίας με συσκευές.

Πέρα από τα βασικά γραφικά συστατικά, όπως είναι τα κουμπιά, τα κουτάκια επιλογών και τα πεδία κειμένου, η GTK+ παρέχει επίσης πανίσχυρα API MVC (Model-View-Controller) για τη χρήση προβολών δέντρου, πεδίων κειμένου πολλαπλών γραμμών και ενεργειών στα μενού και τις εργαλειοθήκες.

Στη GTK+ τα γραφικά συστατικά τοποθετούνται στα παράθυρα σύμφωνα με ένα μοντέλο συσκευασίας σε πλαίσια (boxes). Οι προγραμματιστές απλά καθορίζουν πώς θα συσκευαστούν τα γραφικά συστατικά εντός των πλαισίων που τα περιέχουν, χωρίς να χρειάζεται να τα τοποθετήσουν σε συγκεκριμένες θέσεις χρησιμοποιώντας απόλυτες συντεταγμένες. Η GTK+ διασφαλίζει ότι τα παράθυρα θα μπορούν να χωρέσουν όλο το περιεχόμενό, αλλάζοντας αυτόματα το μέγεθoς των παραθύρων όποτε χρειάζεται.

Επειδή η GTK+ παρέχει ένα ιδιαίτερα ευέλικτο API, η ανάπτυξη νέων γραφικών συστατικών για χρήση σε εφαρμογές GTK+ είναι ιδιαίτερα εύκολη. Υπάρχουν αρκετές βιβλιοθήκες τρίτων μερών που παρέχουν πρόσθετα γραφικά συστατικά, ενώ πολλοί προγραμματιστές δημιουργούν ειδικά γραφικά συστατικά για τις εφαρμογές τους.

Η GTK+ αναλαμβάνει να χειριστεί τις δύσκολες λεπτομέρειες των διεπαφών χρήστη και της διάδρασης με το χρήστη και παρέχει ένα απλό αλλά ισχυρό API, που σας επιτρέπει να επικεντρωθείτε στις λεπτομέρειες της εφαρμογής σας. Οι εφαρμογές που αναπτύσσονται με τη GTK+ υιοθετούν αυτομάτως το θέμα και τις γραμματοσειρές του χρήστη, συνεργάζονται χωρίς προβλήματα με τις τεχνολογίες προσιτότητας, και γενικά συμπεριφέρονται ακριβώς όπως αναμένουν οι χρήστες.

Για περισσότερες πληροφορίες σχετικά με τη GTK+, δείτε το GTK+ Reference Manual ή επισκεφθείτε τον ιστότοπο της GTK+.

Libglade

Η Libglade είναι μια βιβλιοθήκη για τη δυναμική κατασκευή διεπαφών χρήστη από περιγραφές XML. Μπορείτε να χρησιμοποιήσετε μια εφαρμογή δημιουργίας γραφικών διεπαφών, όπως το Glade, για να κατασκευάσετε τη διεπαφή χρήστη, και στη συνέχεια να εξάγετε την περιγραφή της διεπαφής στην εφαρμογή σας. Έτσι μπορείτε να δημιουργείτε περίπλοκες διατάξεις και να προσαρμόζετε τις λεπτομέρειες των διατάξεών σας.

Το Libglade επιτρέπει στους προγραμματιστές να επικεντρωθούν στη λογική της εφαρμογής κατά τη συγγραφή του κώδικα, και να μην επιβαρύνουν τον κώδικα με τις λεπτομέρειες κατασκευής της διεπαφής. Επιπλέον, οι εφαρμογές δημιουργίας γραφικών διεπαφών επιτρέπουν στους επαγγελματίες σχεδιαστές διεπαφών να σχεδιάζουν διεπαφές χωρίς να γνωρίζουν προγραμματισμό.

Για περισσότερες πληροφορίες σχετικά με το Libglade, δείτε το Libglade Reference Manual.

Pango

Η Pango είναι η βασική βιβλιοθήκη χειρισμού κειμένου και γραμματοσειρών της πλατφόρμας GNOME. Είναι υπεύθυνη για την εμφάνιση και τη διάταξη του κειμένου και χρησιμοποιείται παντού στη GTK+.[1]

Η Pango προσφέρει εκτεταμένη κάλυψη για τα συστήματα γραφής που χρησιμοποιούνται σε διάφορα μέρη σε όλο τον κόσμο. Πολλές γραφές γλωσσών χρησιμοποιούν περίπλοκους κανόνες για τη διάταξη των συμβόλων τους και τη σύνθεση των χαρακτήρων τους. Μέσω της Pango, σχεδόν όλες οι γλώσσες μπορούν να γράφονται και να εμφανίζονται σωστά, επιτρέποντας στους χρήστες σε όλο τον κόσμο να διαβάζουν κείμενα στη μητρική τους γλώσσα. Η Pango υποστηρίζει αυτόματα τα διάφορα συστήματα γραφής· οι προγραμματιστές δεν χρειάζεται να γράφουν ειδικό κώδικα για να προσθέτουν υποστήριξη για άλλες γλώσσες.

Figure 3.2. Εμφάνιση πολλαπλών γλωσσών με Pango

Εμφάνιση πολλαπλών γλωσσών με Pango

Η Pango υποστηρίζει τα συνήθη στυλ κειμένου, όπως είναι οι πλάγιοι χαρακτήρες, οι έντονοι χαρακτήρες και οι υπογραμμίσεις. Η Pango χρησιμοποιεί μια απλή σύνταξη που θυμίζει XML και ονομάζεται PangoMarkup, η οποία σας επιτρέπει να ρυθμίζετε το μέγεθος, το χρώμα και το στυλ της γραμματοσειράς, καθώς και άλλα γνωρίσματα του κειμένου. Χρησιμοποιώντας PangoMarkup, μπορείτε να ορίζετε το εντός της γραμμής στυλ χωρίς να χρειάζεται να το προσθέτετε ξανά σε κάθε μπλοκ κειμένου. Η PangoMarkup μπορεί να χρησιμοποιηθεί απευθείας από τη GTK+, επιτρέποντάς σας να διαμορφώνετε με ευκολία το στυλ του κειμένου των γραφικών διεπαφών σας.

Χρησιμοποιήστε απευθείας την Pango κάθε φορά που επιθυμείτε να εμφανίσετε κείμενο στην οθόνη ή σε άλλο μέσο. Η χρήση της Pango επιτρέπει στη διάταξη του κειμένου σας να αναγνωρίζεται χωρίς κανένα πρόβλημα από τη GTK+ και την υπόλοιπη πλατφόρμα του GNOME. Επομένως, σας βοηθάει να δημιουργήσετε φορητό κώδικα και, κυρίως, διασφαλίζει ότι η εφαρμογή σας θα εμφανίζει άψογα κείμενο σε εκατοντάδες διαφορετικές γλώσσες.

Για περισσότερες πληροφορίες σχετικά με την Pango, δείτε το Pango Reference Manual.

GDK

Η GDK είναι η βιβλιοθήκη χαμηλού επιπέδου που χρησιμοποιεί η GTK+ για τη διάδραση με το σύστημα, όσον αφορά τα γραφικά και τις συσκευές εισόδου. Αν και σπάνια θα χρειαστεί να συμπεριλάβετε τη GDK απευθείας στον κώδικα της εφαρμογής σας, καλό είναι να γνωρίζετε ότι περιέχει όλες τις απαιτούμενες λειτουργίες για τη σχεδίαση αντικειμένων και κειμένου στην οθόνη, καθώς και για τη διάδραση με το χρήστη μέσω διαφόρων συσκευών εισόδου. [2]

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

Η GDK σας προσφέρει απευθείας πρόσβαση σε γεγονότα από το πληκτρολόγιο, το ποντίκι και άλλες συσκευές εισόδου, αντί να σας αναγκάζει να χρησιμοποιείτε τα σήματα υψηλού επιπέδου που χρησιμοποιεί η GTK+. Παράλληλα, η GDK παρέχει ρουτίνες χαμηλού επιπέδου για την πρόσβαση στα δεδομένα συρσίματος και απόθεσης, καθώς και προχείρου του συστήματος. Κατά την υλοποίηση προσαρμοσμένων ελέγχων, ίσως να χρειαστείτε αυτού του είδους την πρόσβαση για να υλοποιήσετε ορισμένες συμπεριφορές επικοινωνίας με το χρήστη.

Η GDK παρέχει και άλλες λειτουργίες που απαιτούνται για την υλοποίηση ενός ολοκληρωμένου toolkit γραφικών, όπως η GTK+. Καθώς η GDK λειτουργεί ως αφαιρετικό μοντέλο πλατφόρμας, επιτρέποντας στη GTK+ να λειτουργεί σε πολλαπλά περιβάλλοντα, παρέχει ένα API για όλες τις λειτουργίες συστήματος που απαιτεί η GTK+, παρέχοντας πληροφορίες για τις πολλαπλές οθόνες, την ανάλυση και το βάθος των χρωμάτων, τους χάρτες χρωμάτων και τους δρομείς.

Χρησιμοποιήστε τη GDK αν χρειάζεστε πρόσβαση χαμηλού επιπέδου στην υποδομή παραθύρων του συστήματος, όπως τα γεγονότα, τα παράθυρα και το πρόχειρο. Μια τέτοια χρήση της GDK διασφαλίζει τη φορητότητα του κώδικά σας και την ορθή του ενσωμάτωση στον υπόλοιπο κώδικά GTK+. Ωστόσο, στις περισσότερες περιπτώσεις δεν συνιστάται η χρήση των απλών ρουτινών σχεδίασης της GDK. Προτιμήστε, καλύτερα, τις εκτεταμένες δυνατότητες της Cairo.

Για περισσότερες πληροφορίες σχετικά με τη GDK, δείτε το GDK Reference Manual.

Cairo

Η Cairo είναι μια βιβλιοθήκη δισδιάστατων γραφικών που περιλαμβάνει ένα προηγμένο API για τη σχεδίαση διανυσματικών γραφικών, σύνθεσης εικόνων (compositing) και εμφάνισης anti-aliased κειμένου. Η Cairo υποστηρίζει διάφορες συσκευές εξόδου, όπως το Σύστημα Παραθύρων X , τα Microsoft Windows και οι ενδιάμεσες μνήμες εικόνων, επιτρέποντάς σας να γράφετε κώδικα για τη σχεδίαση γραφικών επί διαφόρων μέσων, ο οποίος θα λειτουργεί ανεξαρτήτως πλατφόρμας.

Το μοντέλο σχεδίασης της Cairo θυμίζει τα αντίστοιχα μοντέλα των PostScript και PDF. Το API της Cairo παρέχει λειτουργίες σχεδίασης όπως η χρήση κυβικών καμπυλών Bézier (cubic Bézier splines) για περιγράμματα και γεμίσματα, η σύνθεση εικόνων και οι αναλογικές μετατροπές (affine transformations). Αυτές οι διανυσματικές λειτουργίες σας επιτρέπουν να έχετε πλούσια, anti-aliased γραφικά χωρίς να χρησιμοποιείτε δαπανηρές μεθόδους σχεδίασης βάσει εικονοστοιχείων.

Το προηγμένο μοντέλο σχεδίασης της Cairo προσφέρει εμφάνιση υψηλής ποιότητας σε διάφορα μέσα. Χρησιμοποιώντας το ίδιο API μπορείτε να δημιουργήσετε εκθαμβωτικό κείμενο και γραφικά για εμφάνιση στην οθόνη, να αποδώσετε εικόνες, ή να παράγετε πεντακάθαρα αποτελέσματα για εκτύπωση.

Χρησιμοποιήστε την Cairo όποτε χρειάζεστε να σχεδιάσετε επιπλέον γραφικά, πέρα από τα γραφικά συστατικά που σας παρέχει η GTK+. Μεγάλο μέρος της σχεδίασης εντός της GTK+. γίνεται με χρήση της Cairo. Χρησιμοποιώντας την Cairo για τα γραφικά σας, εφοδιάζετε την εφαρμογή σας με γραφικά υψηλής ποιότητας, anti-aliased και προσαρμόσιμα σε οποιαδήποτε ανάλυση.

Για περισσότερες πληροφορίες σχετικά με την Cairo, ανατρέξτε στο Cairo: A Vector Graphics Library.

Εικονικό σύστημα αρχείων

Η GIO αποτελεί τμήμα της GLib και είναι η βασική βιβλιοθήκη που χρησιμοποιείται για ενέργειες αρχείων και φακέλων σε εφαρμογές GNOME. Η GIO παρέχει ένα ενιαίο αφαιρετικό μοντέλο του συστήματος αρχείων με συστήματα υποστήριξης που δέχονται πρόσθετα (pluggable backends). Στο GNOME, η βιβλιοθήκη GVFS παρέχει ένα σύστημα υποστήριξης της GIO που υλοποιεί διάφορα δικτυακά και τοπικά πρωτόκολλα. Χρησιμοποιώντας τη GIO μαζί με τη GVFS επιτρέπετε στην εφαρμογή σας να εργάζεται εξίσου εύκολα με αρχεία σε απομακρυσμένα μηχανήματα και με τοπικά αρχεία.

Η GIO μπορεί να παρέχει εκτεταμένες πληροφορίες για αρχεία και φακέλους, όπως ο τύπος MIME και το εικονίδιο ενός αρχείου, καθώς και οι εφαρμογές που χρησιμοποιούνται για να το ανοίξουν. Επειδή η GVFS χρησιμοποιεί το πρότυπο του freedesktop.org για να καθορίζει τους τύπους αρχείων και τις εφαρμογές που μπορούν να τα ανοίξουν, λειτουργεί άψογα σε διάφορα ελεύθερα περιβάλλοντα επιφάνειας εργασίας, επιτρέποντας στους ανεξάρτητους προγραμματιστές να δημιουργούν λογισμικό που λειτουργεί σε πολλά διαφορετικά περιβάλλοντα.

Η GIO χρησιμοποιείται παντού στην επιφάνεια εργασίας του GNOME. Ο Ναυτίλος, ο διαχειριστής αρχείων, χρησιμοποιεί τη GIO για να εμφανίζει τους τοπικούς φακέλους και τους φακέλους σε απομακρυσμένα συστήματα. Στην πράξη, αυτό σημαίνει ότι για το χρήστη δεν υπάρχει διαφορά μεταξύ εξυπηρετητών δικτύου και τοπικών φακέλων: Μπορούν να σύρουν και να αποθέτουν αρχεία μεταξύ των δύο, να βλέπουν τις ιδιότητές τους, και να τα ανοίγουν σε οποιαδήποτε εφαρμογή. Η χρήση της GIO θα επιτρέψει στην εφαρμογή σας να ανοίγει όλα τα αρχεία στα οποία έχουν πρόσβαση οι χρήστες μέσω της επιφάνειας εργασίας.

Για περισσότερες πληροφορίες σχετικά με τη GIO, δείτε το GIO Reference Manual.

Σε παλαιότερες εκδόσεις του GNOME χρησιμοποιούνταν η βιβλιοθήκη GnomeVFS για την πρόσβαση σε αρχεία και φακέλους. Παρόλο που η GnomeVFS παρείχε πολλές από τις λειτουργίες της GIO, όπως εύκολη πρόσβαση σε απομακρυσμένους φακέλους, διέθετε και ορισμένους περιορισμούς που εξαλείφθηκαν στη GIO. H GnomeVFS τελεί υπό κατάργηση και δεν πρέπει να χρησιμοποιείται για την παραγωγή νέου κώδικα, παρόλο που η υποστήριξή της θα συνεχιστεί καθ' όλη τη διάρκεια ζωής του GNOME 2. Για πληροφορίες σχετικά με τη GnomeVFS, δείτε το GnomeVFS - Filesystem Abstraction Library.

Ρύθμιση και κλείδωμα

Το GConf είναι το σύστημα αποθήκευσης και ανάκτησης ρυθμίσεων του GNOME.Το GConf αποτελείται από δύο τμήματα: μία βιβλιοθήκη πελάτη για την πρόσβαση στις ρυθμίσεις και μία υπηρεσία συνεδρίας, υπεύθυνη για τις πρακτικές λεπτομέρειες της αποθήκευσης και ανάκτησης των ρυθμίσεων. Η χρήση υπηρεσίας επιτρέπει στο GConf να χρησιμοποιεί διαφορετικά συστήματα υποστήριξης για την αποθήκευση, να επικυρώνει τα δεδομένα που εισάγονται και να προσφέρει ταυτόχρονη πρόσβαση σε διάφορες εφαρμογές.

Οι ρυθμίσεις που φυλάσσονται στο GConf αποθηκεύονται και ανακτώνται με βάση ένα μοναδικό κλειδί, ή αναγνωριστικό αλφαριθμητικό. Τα κλειδιά χρησιμοποιούν ένα απλό, ιεραρχικό namespace για να αποφεύγουν τις συγκρούσεις μεταξύ των ρυθμίσεων των εφαρμογών και της επιφάνειας εργασίας. Μπορείτε να παρέχετε ένα αρχείο σχήματος με λεπτομερείς πληροφορίες για τα κλειδιά ρυθμίσεων της εφαρμογής σας. Έτσι, επιτρέπετε στο GConf να επικυρώνει τον τύπο της τιμής και να εμφανίζει τοπικοποιημένη τεκμηρίωση για το κλειδί. Επίσης, βοηθάτε τους διαχειριστές συστημάτων, επιτρέποντάς τους να κάνουν πολλαπλές ρυθμίσεις μαζί, χωρίς να χρειάζεται να ανοίγουν διαφορετικούς διαλόγους προτιμήσεων.

Το GConf μπορεί να αναζητά πολλές διαφορετικές ρυθμίσεις ταυτόχρονα, π.χ. ρυθμίσεις από διαφορετικές τοποθεσίες του συστήματος αρχείων. Ρυθμίζοντας κατάλληλα τις πηγές του συστήματος, το GConf επιτρέπει στους διαχειριστές συστημάτων να επιλέγουν τόσο προεπιλεγμένες όσο και υποχρεωτικές ρυθμίσεις για όλους τους χρήστες. Εργαλεία όπως ο Επεξεργαστής ρυθμίσεων του GNOME και το Sabayon διευκολύνουν σημαντικά την εγκατάσταση πλήρως ρυθμισμένων συστημάτων με χρήση του GConf.

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

Το GConf διευκολύνει το κλείδωμα συστημάτων με τον ορισμό συγκεκριμένων κλειδιών ως κλειδιών μόνο για ανάγνωση, απαγορεύοντας έτσι στους χρήστες να αλλάζουν τις τιμές τους. Επιπλέον, το GNOME παρέχει μια σειρά από κλειδιά υψηλού επιπέδου που μπορούν να χρησιμοποιηθούν για να απενεργοποιήσουν ενέργειες όπως η αποθήκευση στο δίσκο ή η αλλαγή της διάταξης του πίνακα εφαρμογών. Εργαλεία όπως το Pessulus βοηθούν τους διαχειριστές συστημάτων να βρίσκουν και να κλειδώνουν τέτοιου είδους σημαντικά κλειδιά.

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

Για περισσότερες πληροφορίες σχετικά με το GConf, δείτε το GConf Reference Manual.

Διεθνοποίηση

Η πλατφόρμα επιφάνειας εργασίας και προγραμματισμού του GNOME υποστηρίζει πλήρως τη διεθνοποίηση και τοπικοποίηση των εφαρμογών. Διεθνοποίηση είναι η διαδικασία με την οποία διασφαλίζεται ότι μια εφαρμογή θα μπορεί να τοπικοποιηθεί. Περιλαμβάνει τη σήμανση όλων των μεταφράσιμων αλφαριθμητικών και την τροποποίησή τους έτσι ώστε να κάνουν ορθή χρήση των αριθμών και μορφοποιημένων αλφαριθμητικών (format strings), και να επιτρέπουν την προσαρμογή τους σε διαφορετικές συμβάσεις εμφάνισης ώρας και ημερομηνίας, μονάδων και μορφοποίησης.

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

Αυτοί οι μεταφραστικοί τομείς μπορούν να δημιουργηθούν μέσω των αρχείων PO, τα οποία μπορούν να χρησιμοποιούν οι μεταφραστές για να εντοπίζουν αλλαγές στα αλφαριθμητικά και να ενημερώνουν τις μεταφράσεις τους, αν χρειάζεται. Το GNOME περιλαμβάνει το intltool, ένα εργαλείο για τη διαχείριση μεταφράσεων αποθηκευμένων σε αρχεία PO. Χρησιμοποιώντας το intltool, οι μεταφραστές μπορούν να χρησιμοποιούν αρχεία PO για τη μετάφραση τόσο των αλφαριθμητικών της εφαρμογής σας, όσο και των άλλων τύπων αρχείων που χρησιμοποιείτε, όπως αρχείων σχημάτων GConf, εγγραφών επιφάνειας εργασίας και XML.

Επιπλέον, το GNOME παρέχει το εργαλείο xml2po στο πακέτο gnome-doc-utils. Αυτό το εργαλείο επιτρέπει στους μεταφραστές να χρησιμοποιούν αρχεία PO για να δημιουργούν μεταφρασμένες εκδοχές της τεκμηρίωσης που είναι γραμμένη σε διάφορες μορφές XML, όπως XHTML και DocBook.

Η διεθνοποίηση δεν είναι μόνο η δυνατότητα μετάφρασης αλφαριθμητικών, γι' αυτό το GNOME σας παρέχει υποστήριξη σε κάθε βήμα της διαδικασίας. Έτσι, η GTK+ προσαρμόζεται αυτόματα στις ανάγκες των γλωσσών που διαβάζονται από δεξιά προς αριστερά, ενώ η Pango υποστηρίζει πλήρως την εμφάνιση κειμένου διπλής κατεύθυνσης, καθώς και κειμένου σε πολλά διαφορετικά συστήματα γραφής. Η GTK+ υποστηρίζει ποικιλία μεθόδων εισόδου, επιτρέποντας στους χρήστες κάθε διαφορετικής γλώσσας να εισάγουν εύκολα κείμενο από το πληκτρολόγιό τους. Ολόκληρη η πλατφόρμα GNOME χρησιμοποιεί εγγενώς την κωδικοποίηση UTF-8 του Unicode, παρέχοντας πρόσβαση σε όλους τους χαρακτήρες και τα συστήματα γραφής παγκοσμίως.

Figure 3.3. Το Gnumeric σε διάφορες γλώσσες

Το Gnumeric σε διάφορες γλώσσες

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

Για περισσότερες πληροφορίες σχετικά με τη διεθνοποίηση στο GNOME, ανατρέξτε στο Internationalizing GNOME Applications.

Προσιτότητα

Η προσιτότητα είναι η διαδικασία μέσω της οποίας διασφαλίζετε ότι η εφαρμογή σας θα μπορεί να χρησιμοποιηθεί από άτομα με διάφορες αναπηρίες. Υπάρχουν πολλές μορφές αναπηριών: προβλήματα όρασης, κίνησης και ακοής, γνωσιακές και γλωσσικές δυσκολίες, παροξυσμικές διαταραχές. Πολλοί άνθρωποι εμφανίζουν κάποια αναπηρία, άρα, καθιστώντας την εφαρμογή σας προσιτή, διευρύνετε τον κύκλο των χρηστών σας.

Το GNOME υποστηρίζει συσκευές προσιτότητας μέσω του πλαισίου ATK. Αυτό το πλαίσιο ορίζει ένα σύνολο διεπαφών, τις οποίες χρησιμοποιούν τα συστατικά των γραφικών διεπαφών. Για παράδειγμα, έτσι επιτρέπεται στους αναγνώστες οθόνης να διαβάζουν το κείμενο μιας διεπαφής και να αλληλεπιδρούν με τους ελέγχους της. Η υποστήριξη για την ATK ενσωματώνεται στη GTK+ και την υπόλοιπη πλατφόρμα GNOME μέσω της βιβλιοθήκης GAIL, έτσι ώστε όλες οι εφαρμογές που χρησιμοποιούν τη GTK+ να μπορούν να προσφέρουν αυτόματα ένα λογικό επίπεδο προσιτότητας.

Παρόλα αυτά, θα πρέπει να λαμβάνετε υπόψη σας την προσιτότητα κατά την ανάπτυξη των εφαρμογών σας. Αν και οι διεπαφές GTK+ παρέχουν αυτόματα ένα λογικό επίπεδο προσιτότητας, μπορείτε να βελτιώσετε τη συνεργασία του προγράμματός σας με τα εργαλεία προσιτότητας, παρέχοντας ορισμένες επιπρόσθετες πληροφορίες στη GTK+. Αν έχετε δημιουργήσει προσαρμοσμένα γραφικά συστατικά, διασφαλίστε ότι το ATK έχει πρόσβαση στις ιδιότητές τους. Επίσης, αποφύγετε να χρησιμοποιείτε ήχο, γραφικά ή χρώματα ως το μοναδικό μέσο παροχής πληροφοριών στο χρήστη.

Η επιφάνεια εργασίας GNOME περιλαμβάνει μια σειρά από εργαλεία προσιτότητας που επιτρέπουν στους χρήστες με αναπηρίες να αξιοποιούν πλήρως την επιφάνεια εργασίας και τις εφαρμογές της. Οι εφαρμογές που υλοποιούν πλήρως την ATK μπορούν να συνεργαστούν καλά με τα εργαλεία προσιτότητας. Τα εργαλεία προσιτότητας του GNOME περιλαμβάνουν έναν αναγνώστη οθόνης, ένα μεγεθυντή οθόνης, ένα πληκτρολόγιο οθόνης και το Dasher, ένα καινοτόμο εργαλείο εισαγωγής κειμένου με πρόβλεψη.

Για λεπτομερείς συστάσεις σχετικά με την προσιτότητα, δείτε το GNOME Accessibility for Developers. Επίσης, τα ATK - Accessibility Toolkit και GAIL Reference Manual.

Πολυμέσα

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

Το GStreamer παρέχει μια ευέλικτη αρχιτεκτονική, σύμφωνα με την οποία η επεξεργασία των πολυμέσων γίνεται μέσω μιας αλληλουχίας (pipeline) στοιχείων. Κάθε στοιχείο μπορεί να εφαρμόζει φίλτρα στο περιεχόμενο (π.χ. κωδικοποίηση ή αποκωδικοποίηση), να συνδυάζει πολλαπλές πηγές, ή να μετατρέπει το περιεχόμενο. Η αρχιτεκτονική αυτή επιτρέπει την τυχαία διάταξη των στοιχείων, κάτι που προσφέρει στο GStreamer τη δυνατότητα να παράγει σχεδόν ό,τι αποτέλεσμα μπορείτε να φανταστείτε. Επιπλέον, το GStreamer έχει σχεδιαστεί με γνώμονα τη χαμηλή επιβάρυνση, και άρα μπορεί να χρησιμοποιείται από εφαρμογές με αυξημένες ανάγκες σε λανθάνοντα χρόνο.

Το GStreamer παρέχει ένα ισχυρότατο API για την επεξεργασία πολυμέσων, παρέχει όμως και εύχρηστες ρουτίνες για την απλή αναπαραγωγή πολυμέσων. Το GStreamer μπορεί να δημιουργεί αυτόματα αλληλουχίες για την ανάγνωση και αναπαραγωγή αρχείων στις μορφές που υποστηρίζει, επιτρέποντάς σας να προσθέτετε εύκολα ήχο και βίντεο στην εφαρμογή σας.

Η αρχιτεκτονική του GStreamer επιτρέπει τη χρήση προσθέτων για την προσθήκη κωδικοποιητών, αποκωδικοποιητών και διαφόρων φίλτρων περιεχομένου. Οι εξωτερικοί προγραμματιστές μπορούν να παρέχουν πρόσθετα για το GStreamer, τα οποία καθίστανται αυτομάτως διαθέσιμα σε όλες τις εφαρμογές που χρησιμοποιούν το GStreamer. Τα πρόσθετα μπορούν να αφορούν την υποστήριξη νέων μορφών πολυμέσων, ή νέα εφέ και λειτουργίες.

Χρησιμοποιήστε το GStreamer οποτεδήποτε χρειαστείτε να διαβάσετε ή να αναπαράγετε πολυμέσα, ή αν η εφαρμογή σας κάνει επεξεργασία ήχου ή βίντεο. Η χρήση του GStreamer διευκολύνει την ανάπτυξη της εφαρμογής σας και σας παρέχει δοκιμασμένες λύσεις για την κάλυψη των αναγκών σας.

Για αναλυτικές πληροφορίες σχετικά με το GStreamer, δείτε τα GStreamer Application Development Manual, GStreamer 0.10 Core Reference Manual και GStreamer documentation page.

Εκτύπωση

Οι περισσότερες εφαρμογές χρειάζονται υποστήριξη εκτύπωσης, καθώς οι χρήστες αναμένουν ότι θα μπορούν να εκτυπώσουν αυτό που βλέπουν στην οθόνη τους. Η πλατφόρμα GNOME παρέχει βιβλιοθήκες που επιτρέπουν στην εφαρμογή σας να υποστηρίζει εκτυπώσεις υψηλής ποιότητας.

GNOME Print

Το πλαίσιο GNOME Print περιλαμβάνει δύο βιβλιοθήκες που επιτρέπουν στην εφαρμογή σας να παρέχει εκτύπωση υψηλής ποιότητας μέσω μιας ενιαίας διεπαφής. Η βάση του πλαισίου είναι η libgnomeprint, η βιβλιοθήκη που δημιουργεί την έξοδο PostScript που αποστέλλεται στον εκτυπωτή. Από πάνω βρίσκεται η libgnomeprintui, που παρέχει τους κλασικούς ελέγχους εκτύπωσης για τη διεπαφή χρήστη σας.

Note

Αυτή τη στιγμή γίνεται προσπάθεια απευθείας ενσωμάτωσης της εκτύπωσης στη GTK+, έτσι ώστε να δημιουργηθεί ένα API εκτύπωσης για πολλαπλές πλατφόρμες, που θα μπορούν να χρησιμοποιούν όλες οι εφαρμογές. Όταν προστεθεί η υποστήριξη εκτύπωσης στη GTK+, το τρέχον πλαίσιο εκτύπωσης του GNOME θα τελεί υπό κατάργηση. Παρόλα αυτά, προκειμένου να διασφαλιστεί η σταθερότητα των API και ABI, θα εξακολουθήσει να λειτουργεί και να υποστηρίζεται καθ' όλη τη διάρκεια ζωής του GNOME 2.

Η βιβλιοθήκη libgnomeprint υλοποιεί το μοντέλο απεικόνισης PostScript, που χρησιμοποιείται από τους περισσότερους εκτυπωτές. Για τους εκτυπωτές που δεν υποστηρίζουν PostScript, μπορεί να παρασχεθεί υποστήριξη μέσω CUPS (περιγράφεται παρακάτω). Πέρα από την κλασική απεικόνιση PostScript, η libgnomeprint υποστηρίζει επίσης κανάλια άλφα και αντιταύτιση (anti-aliasing).

Η βιβλιοθήκη libgnomeprintui παρέχει το συνήθη διάλογο εκτύπωσης, ένα διάλογο προεπισκόπησης εκτύπωσης, καθώς και διάφορους άλλους ελέγχους και λειτουργίες που απαιτούνται για την ενσωμάτωση της εκτύπωσης σε μία εύληπτη διεπαφή χρήστη. Το πλαίσιο εκτύπωσης του GNOME αναλαμβάνει τις λεπτομέρειες του εντοπισμού εκτυπωτών και της ανάθεσης (spooling) των εκτυπώσεων, ενώ επίσης προσφέρει εξαγωγή σε PostScript ή PDF απευθείας από το διάλογο εκτύπωσης.

Χρησιμοποιήστε τη libgnomeprint για να μετατρέψετε σε PostScript περιεχόμενο προς εκτύπωση. Χρησιμοποιήστε τη libgnomeprintui για να δημιουργήσετε διεπαφή χρήστη για την εκτύπωση, ακόμη και αν η έξοδος προέρχεται από διαφορετική πηγή. Η χρήση του πλαισίου εκτύπωσης του GNOME παρέχει στους χρήστες σας μια ενιαία διεπαφή χρήστη, με όλες τις αναμενόμενες λειτουργίες μιας εφαρμογής εκτύπωσης.

CUPS

Στα περισσότερα συστήματα GNOME το CUPS (Common UNIX Printing System) λειτουργεί ως σύστημα εκτύπωσης χαμηλού επιπέδου. Το CUPS παρέχει μία σύγχρονη, πλούσια σε δυνατότητες, αρχιτεκτονική για τον εντοπισμό εκτυπωτών, την πρόσβαση στις επιλογές εκτύπωσης και την ανάθεση των εργασιών εκτύπωσης σε διάφορους τύπους εκτυπωτών.

Το CUPS παρέχει μια σειρά από βοηθήματα για την αυτόματη ανακάλυψη τοπικών και δικτυακών εκτυπωτών. Έτσι, επιτρέπει στους χρήστες να βλέπουν όλους τους διαθέσιμους εκτυπωτές, αλλά και να χρησιμοποιούν διάφορους τύπους εκτυπωτών χωρίς να απαιτούνται χειροκίνητες ρυθμίσεις.

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

Το CUPS παρέχει επίσης επιλογές ρυθμίσεων για τους εκτυπωτές, με τη μορφή αρχείων PPD (PostScript Printer Description). Οι ρυθμίσεις PPD επιτρέπουν στις εφαρμογές να εμφανίζουν στο χρήστη όλες τις δυνατότητες κάθε μεμονωμένου εκτυπωτή μέσω μιας ενιαίας διεπαφής χρήστη. Για παράδειγμα, το PPD σας επιτρέπει να διαπιστώνετε αν ο εκτυπωτής υποστηρίζει την ταξινόμηση και συρραφή των εκτυπώσεων, ώστε να παρέχετε τη σχετική επιλογή στη διεπαφή χρήστη.

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



[1] Η μηχανή διάταξης Pango μπορεί να χρησιμοποιηθεί με διαφορετικά συστήματα υποστήριξης γραμματοσειρών και γραφικών. Στα περισσότερα συστήματα GNOME, η Pango χρησιμοποιεί τα FreeType, fontconfig και Cairo για να αποκτά πρόσβαση στις γραμματοσειρές και να προβάλλει κείμενο. Σε άλλα συστήματα, η Pango χρησιμοποιεί τα εγγενή συστήματα γραφικών, όπως το Uniscribe στα Microsoft Windows και το ATSUI στο MacOS.

[2] Η GDK λειτουργεί σε πολλές διαφορετικές πλατφόρμες, όπως το Σύστημα Παραθύρων X ή τα Microsoft Windows, DirectFB και Quartz. Η GDK παρέχει το ίδιο API σε όλες τις πλατφόρμες, επιτρέποντας την εκτέλεση της GTK+ και των εφαρμογών GTK+ χωρίς τροποποιήσεις.

Chapter 4. IPC και Δικτύωση

Πρόχειρα, σύρσιμο και απόθεση

Καθώς οι χρήστες εργάζονται με όλο και περισσότερους τύπους δεδομένων και εφαρμογές, χρειάζονται όλο και πιο συχνά να χρησιμοποιούν τα αντικείμενα και τα δεδομένα τους σε διαφορετικές εφαρμογές. Το GNOME υποστηρίζει δύο συγγενικές μεθόδους μεταφοράς δεδομένων μεταξύ εφαρμογών: τις ενέργειες συρσίματος και απόθεσης, και την αντιγραφή και επικόλληση από το πρόχειρο του συστήματος. Τόσο το πρόχειρο, όσο και το σύρσιμο και η απόθεση, συνεργάζονται με πολλές διαφορετικές εφαρμογές, συμπεριλαμβανομένων και εφαρμογών που δεν έχουν αναπτυχθεί στο GNOME.

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

Οι ενέργειες συρσίματος και απόθεσης μοιάζουν με τις προηγούμενες, αλλά απαιτούν συνεχή παρακολούθηση της θέσης του δείκτη, καθώς αυτός μετακινείται μεταξύ διάφορων πιθανών προορισμών για την απόθεση. Όταν μία εφαρμογή ειδοποιείται ότι ο δείκτης περνάει από πάνω της κατά τη διάρκεια συρσίματος, πρέπει να ενημερώσει την εμφάνιση του δρομέα, έτσι ώστε να φαίνεται αν μπορεί ή όχι να δεχτεί την απόθεση. Η GTK+ παρέχει υποστήριξη για τις ενέργειες συρσίματος και απόθεσης μέσω ενός προηγμένου API που διευκολύνει τη διαχείριση των προορισμών απόθεσης της εφαρμογής σας.

Τόσο οι ενέργειες προχείρου, όσο και οι ενέργειες συρσίματος και απόθεσης, υποστηρίζουν τη διαπραγμάτευση περιεχομένου. Όταν μια εφαρμογή είναι σε θέση να προσφέρει δεδομένα, δημοσιοποιεί τις μορφές στις οποίες διατίθενται αυτά τα δεδομένα. Οι εφαρμογές-παραλήπτες μπορούν να ζητήσουν τη μορφή που θεωρούν καταλληλότερη. Για παράδειγμα, αν ο χρήστης αντιγράψει κείμενο από τον περιηγητή του, ένας επεξεργαστής κειμένου μπορεί να διατηρήσει τη μορφοποίηση του πρωτοτύπου, ζητώντας να λάβει τα δεδομένα σε μορφή HTML, ενώ ένας επεξεργαστής απλού κειμένου μπορεί να λάβει το κείμενο χωρίς μορφοποίηση.

Πρέπει να παρέχετε δυνατότητες προχείρου, καθώς και συρσίματος και απόθεσης, για όλα τα δεδομένα που χρησιμοποιεί η εφαρμογή σας. Οι δυνατότητες αυτές δεν χρησιμεύουν μόνο στην αντιγραφή κειμένου: αρχεία, γραφικά και ηχητικά αποσπάσματα αποτελούν παραδείγματα δεδομένων που μπορούν να μεταφερθούν μεταξύ εφαρμογών. Αν χρησιμοποιείτε GTK+, απολαμβάνετε αυτόματη υποστήριξη για πρόχειρο, καθώς και σύρσιμο και απόθεση, για τις περιοχές κειμένου, τα κουμπιά χρωμάτων, τους επιλογείς αρχείων και άλλους εγγενείς ελέγχους της διεπαφής χρήστη. Χρησιμοποιήστε τα API της GTK+ για να προσφέρετε υποστήριξη για περαιτέρω δεδομένα της εφαρμογής σας.

Για περισσότερες πληροφορίες, ανατρέξτε στα Drag-and-Drop Protocol for the X Window System, X Clipboard Explanation και Clipboard Manager Specification.

D-BUS

Το D-Bus είναι ένας δίαυλος μηνυμάτων που λειτουργεί σε πολλαπλές επιφάνειες εργασίας και επιτρέπει την αποστολή μηνυμάτων μεταξύ εφαρμογών, επιφάνειας εργασίας και συστατικών χαμηλού επιπέδου του συστήματος. Το D-Bus παρέχει ένα απλό API για την αποστολή μηνυμάτων προς συγκεκριμένες υπηρεσίες και για τη μετάδοση των μηνυμάτων σε όλες τις ενδιαφερόμενες υπηρεσίες. Το D-Bus επιτρέπει σε διάφορους τύπους εφαρμογών να επικοινωνούν και να συνεργάζονται μεταξύ τους και με την επιφάνεια εργασίας, προσφέροντας στο χρήστη βελτιωμένη διαδραστικότητα και πλουσιότερες εμπειρίες.

Το D-Bus παρέχει ένα δίαυλο συνεδρίας και ένα δίαυλο συστήματος. Ο δίαυλος συνεδρίας χρησιμοποιείται από εφαρμογές σε συνεδρίες με έναν μοναδικό χρήστη, και τους επιτρέπει να μοιράζονται δεδομένα και ειδοποιήσεις για γεγονότα, καθώς και να ενσωματώνονται στην επιφάνεια εργασίας του χρήστη. Για παράδειγμα, η εφαρμογή αναπαραγωγής ταινιών μπορεί να στείλει ένα μήνυμα D-Bus για να εμποδίσει την ενεργοποίηση της προστασίας οθόνης, όταν ο χρήστης παρακολουθεί ταινία.

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

Το D-Bus αναπτύσσεται από το freedesktop.org· επομένως, μπορείτε να το χρησιμοποιήσετε σε διαφορετικά περιβάλλοντα και εφαρμογές. Επειδή το D-Bus λειτουργεί σε πολλαπλές επιφάνειες εργασίας, μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε φορητό και ευέλικτο λογισμικό που θα συνεργάζεται άψογα με την επιφάνεια εργασίας του χρήστη, ανεξάρτητα από το ποια θα είναι αυτή.

Για περισσότερες πληροφορίες σχετικά με το D-Bus, δείτε τα D-BUS Tutorial και D-BUS Specification.

Bonobo και CORBA

Το Bonobo είναι ένα πλαίσιο δημιουργίας επαναχρησιμοποιήσιμων συστατικών για εφαρμογές. Βασίζεται στο βιομηχανικό πρότυπο CORBA (Common Object Request Broker Architecture) και παρέχει όλες τις βασικές διεπαφές που απαιτούνται για τη δημιουργία και χρήση λειτουργικών και εύχρηστων συστατικών σε εφαρμογές GNOME.

Τα συστατικά Bonobo χρησιμοποιούνται σε πολλές διαφορετικές περιπτώσεις και βοηθούν στη δημιουργία ευέλικτου και επεκτάσιμου λογισμικού. Για παράδειγμα, ένα συστατικό για την αναπαραγωγή πολυμέσων μπορεί να ενσωματωθεί σε επεξεργαστή κειμένου, προσθέτοντάς του, στην ουσία, υποστήριξη πολυμέσων, χωρίς ο επεξεργαστής κειμένου να συμμετέχει άμεσα στη διαδικασία. Τα συστατικά Bonobo χρησιμοποιούνται επίσης για την ενσωμάτωση μικροεφαρμογών στον πίνακα εφαρμογών GNOME. Η χρήση του Bonobo παρέχει στις μικροεφαρμογές αποτελεσματική επικοινωνία με τον πίνακα εφαρμογών, δημιουργώντας μια ενιαία διεπαφή για τον χρήστη.

Τα συστατικά Bonobo δεν περιορίζονται στους γραφικούς ελέγχους. Το Bonobo χρησιμοποιείται και από το Evolution, τη σουίτα ηλεκτρονικού ταχυδρομείου του GNOME, για να παρέχει πρόσβαση στο βιβλίο διευθύνσεων και το ημερολόγιο των χρηστών. Έτσι, επιτρέπει στους χρήστες να διατηρούν όλα τα στοιχεία τους σε ένα μέρος, από το οποίο μπορούν να τα ανακτούν όλες οι υπόλοιπες εφαρμογές.

Το Bonobo είναι βασισμένο στο CORBA· επιτρέπει λοιπόν στα συστατικά να εκτελούνται σε ξεχωριστές διεργασίες. Τα συστατικά ενδέχεται να έχουν γραφτεί σε διαφορετικές γλώσσες και να εκτελούνται από διαφορετικά runtimes· ο μόνος περιορισμός είναι να χρησιμοποιούν μία διεπαφή που καθορίζεται σε γλώσσα IDL (Interface Definition Language). Η ευέλικτη σχεδίαση του CORBA προβλέπει ακόμη και την εκτέλεση συστατικών από διαφορετικά μηχανήματα εντός του δικτύου.

Το GNOME παρέχει τη δική του γρήγορη και ελαφριά υλοποίηση του CORBA, το ORBit. Επίσης, τα εργαλεία και οι βιβλιοθήκες του GNOME επιτρέπουν και τη συγγραφή συστατικών σε C, μια γλώσσα που συχνά αγνοείται από άλλες υλοποιήσεις του CORBA. Το ORBit είναι μια εξαιρετικά γρήγορη υλοποίηση του CORBA.

Το Bonobo συμπληρώνει τα κενά του CORBA, παρέχοντας τις επιπλέον διεπαφές και προδιαγραφές που απαιτούνται για την επίτευξη ομοιομορφίας των συστατικών. Μπορείτε πάντως να χρησιμοποιήσετε το CORBA χωρίς το Bonobo, αν και σπάνια χρειάζεται κάτι τέτοιο. Ένα παράδειγμα είναι οι υποδομές προσιτότητας του GNOME, που χρησιμοποιούν το CORBA για να επιτρέπουν στις βοηθητικές τεχνολογίες να εποπτεύουν και να συνεργάζονται με τις εκτελούμενες εφαρμογές.

Ίσως σας ενδιαφέρει η χρήση του Bonobo για την παροχή περίπλοκων γραφικών συστατικών που μπορούν να ενσωματωθούν σε εφαρμογές. Όμως, για την πλειοψηφία των αναγκών του σε IPC, το GNOME προτιμά πλέον το D-Bus, καθώς η ενσωμάτωση του D-Bus σε εφαρμογές είναι σαφώς ευκολότερη.

Για περισσότερες πληροφορίες σχετικά με το Bonobo, δείτε τα Libbonobo Reference Manual και LibbonoboUI Reference Manual. Για πληροφορίες σχετικά με το ORBit, την υλοποίηση του GNOME για το CORBA, ανατρέξτε στο ORBit2 Reference Manual.

Ανακάλυψη υπηρεσιών

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

Η Ανακάλυψη Υπηρεσιών DNS χρησιμοποιείται ήδη σε διάφορα σημεία στο GNOME, και στο μέλλον πρόκειται να αυξηθεί η υποστήριξη. Για παράδειγμα, ο Ναυτίλος, ο διαχειριστής αρχείων του GNOME, χρησιμοποιεί την Ανακάλυψη Υπηρεσιών DNS για να εντοπίζει τους εξυπηρετητές αρχείων του τοπικού δικτύου. Το Ekiga, η εφαρμογή τηλεφωνίας και βιντεοδιάσκεψης του GNOME, τη χρησιμοποιεί για να εντοπίζει και να δημοσιοποιεί την παρουσία του χρήστη, καθώς και για να εντοπίζει άλλους χρήστες στο τοπικό δίκτυο.

Η βιβλιοθήκη Avahi παρέχει πλήρη υποστήριξη για την Ανακάλυψη Υπηρεσιών DNS. Για περισσότερες πληροφορίες σχετικά με την Avahi, επισκεφθείτε τον ιστότοπο της Avahi.

XML και υπηρεσίες ιστού

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

Η πλατφόρμα GNOME υποστηρίζει τη χρήση υπηρεσιών ιστού από τις εφαρμογές σας, και παρέχει ολοκληρωμένες βιβλιοθήκες για την χρήση, διαχείριση και μετατροπή της XML, της γλώσσας του ιστού.

SOAP

Μέσω της βιβλιοθήκης libsoup, το GNOME υποστηρίζει το SOAP, ένα ευρέως χρησιμοποιούμενο πρωτόκολλο για την αποστολή μηνυμάτων XML μέσω HTTP. Το SOAP επιτρέπει στους προγραμματιστές να εκθέτουν μια διεπαφή στον ιστό, ώστε να μπορεί στη συνέχεια να χρησιμοποιηθεί από εφαρμογές για την ανάκτηση πληροφοριών, την αποστολή δεδομένων, την εκτέλεση συναλλαγών και πολλές ακόμη λειτουργίες.

Το SOAP μπορεί να χρησιμοποιηθεί για την αναζήτηση και ανάκτηση πληροφοριών, για την επικοινωνία με ένα ηλεκτρονικό κατάστημα, για τη διαχείριση των λογαριασμών των χρηστών σε άλλα συστήματα, και για πολλές ακόμη λειτουργίες. Καθώς οι υπηρεσίες ιστού χρησιμοποιούνται όλο και περισσότερο για την παροχή βασικών υπηρεσιών στους χρήστες, το SOAP επιτρέπει στις εφαρμογές που το χρησιμοποιούν να παρέχουν ακόμη πιο ολοκληρωμένες και πλούσιες εμπειρίες στο χρήστη.

Η βιβλιοθήκη libsoup περιέχει μια υλοποίηση του HTTP και μια ομάδα API για τη δημιουργία και χρήση μηνυμάτων SOAP. Επίσης, υποστηρίζει ασφαλή πιστοποίηση, επιτρέποντάς σας να χρησιμοποιείτε υπηρεσίες ιστού για να αποκτάτε πρόσβαση σε ιδιωτικούς λογαριασμούς μέσω ασφαλούς σύνδεσης. Η χρήση του libsoup απλοποιεί τη χρήση υπηρεσιών ιστού, καθώς δεν απαιτεί να αναλύετε και να ερμηνεύετε μόνοι σας τα μηνύματα που αποστέλλονται μέσω SOAP.

Για περισσότερες πληροφορίες σχετικά με το libsoup, ανατρέξτε στο libsoup Reference Manual.

Επεξεργασία XML

Από το 1988, που έκανε την επίσημή της εμφάνιση, η XML (eXtensible Markup Langauge) χρησιμοποιείται σε συνεχώς αυξανόμενο αριθμό εφαρμογών. Και έχει πολλές διαφορετικές χρήσεις, από τις μορφές εγγράφων όπως τα XHMTL και DocBook, μέχρι τα πρωτόκολλα διαδικτύου όπως το SOAP και το Jabber. Η XML διαθέτει μια απλή και καθαρή βασική σύνταξη, που επιτρέπει σε κάθε εφαρμογή να εστιάσει στις δικές της ανάγκες.

Το GNOME συμπεριλαμβάνει τη βιβλιοθήκη libxml2 και τη χρησιμοποιεί εκτενώς σε όλη την επιφάνεια εργασίας. Η βιβλιοθήκη libxml2 είναι μια γρήγορη και απολύτως σύμμορφη με τα πρότυπα βιβλιοθήκη επεξεργασίας της XML, που σας προσφέρει όλα όσα χρειάζεστε για να χρησιμοποιήσετε XML στην εφαρμογή σας.

Η βιβλιοθήκη libxml2 προσφέρει μια σειρά από API για εργασία με XML, παρέχοντάς σας τη δυνατότητα να επιλέξετε αυτό που καλύπτει τις προγραμματιστικές σας ανάγκες. Πέρα από το API του εγγενούς δέντρου, η libxml2 παρέχει επίσης το βασισμένο στην επανάκληση (callback) SAX2 API, διεπαφές ανάγνωσης και εγγραφής ροών XML και πλήρη υποστήριξη του XPath.

Η libxml2 υποστηρίζει μεν το DTD, αλλά υποστηρίζει πλήρως και την επικύρωση (validation) εγγράφων μέσω του RELAX NG, που διαθέτει πιο ευέλικτο μοντέλο επικύρωσης, παραμένοντας απλό στη χρήση. Επίσης, υποστηρίζει μερικώς την XML Schema, τη νέα γλώσσα του W3C.

Όποτε επιθυμείτε να εργαστείτε απευθείας με XML στην εφαρμογή σας, χρησιμοποιήστε τη libxml2. Η libxml2 διασφαλίζει ότι η ανάλυση, η επεξεργασία και η έξοδος XML θα συμμορφώνονται πλήρως με τα πρότυπα. Άρα, δεν θα χρειάζεται να ανησυχείτε για ασυμβατότητες μεταξύ εφαρμογών.

Για περισσότερες πληροφορίες σχετικά με τη libxml2, δείτε τα Libxml Tutorial και Reference Manual for libxml2.

Μετατροπή XML μέσω XSLT

Η XSLT είναι μια γλώσσα βασισμένη στην XML για τη μετατροπή της XML σε άλλες μορφές. Η XSLT είναι μια γλώσσα που βασίζεται σε πρότυπα (templates), που σας επιτρέπουν να αντιστοιχίζετε συγκεκριμένους τύπους στοιχείων XML και να παράγετε την κατάλληλη έξοδο. Βασισμένη στην XML και την XPath, η XSLT επιτρέπει στους προγραμματιστές να παράγουν καθαρά πρότυπα σε αυτοτελείς μονάδες (modules) για τη μετατροπή διαλέκτων XML σε μορφές καταλληλότερες για την εκάστοτε εφαρμογή.

Το GNOME συμπεριλαμβάνει τη βιβλιοθήκη libxslt, μια πλήρη υλοποίηση της XSLT. Η βιβλιοθήκη libxslt έχει χτιστεί πάνω από την υποστήριξη XML και XPath της libxml2, κάτι που της επιτρέπει να είναι γρήγορη και να συμμορφώνεται απολύτως με τα πρότυπα.

Αν επιθυμείτε να μετατρέψετε έγγραφα XML, χρησιμοποιήστε την libxslt. Αν και η XSLT δεν είναι πάντα η κατάλληλη λύση για την επεξεργασία της XML, απλοποιεί σημαντικά τη διαδικασία ανάπτυξης. Επίσης, η libxslt σας επιτρέπει να προσθέτετε επεκτάσεις στοιχείων και συναρτήσεων, για να μπορείτε να την προσαρμόζετε στις ανάγκες της εφαρμογής σας.

Για περισσότερες πληροφορίες σχετικά με την libxslt, ανατρέξτε στο XSLT C library for Gnome.

Chapter 5. Τεχνολογίες επιφάνειας εργασίας

Μητρώα εφαρμογών και τύπων αρχείων

Για να είναι χρήσιμη μια εφαρμογή, ο χρήστης θα πρέπει να μπορεί να την εντοπίσει και να την εκτελέσει. Οι χρήστες της επιφάνειας GNOME μπορούν να εκτελούν εφαρμογές είτε από το μενού εφαρμογών, είτε ανοίγοντας αρχεία στο διαχειριστή αρχείων. Η επιφάνεια εργασίας GNOME σας επιτρέπει να προσθέτετε εφαρμογές και τύπους αρχείων κατά την εγκατάσταση της εφαρμογής σας. Ο σχετικός μηχανισμός ακολουθεί τις προδιαγραφές του freedesktop.org, άρα τα ίδια δεδομένα επιτρέπουν στην εφαρμογή σας να λειτουργεί και σε άλλα περιβάλλοντα επιφάνειας εργασίας.

Η προσθήκη της εφαρμογής σας προϋποθέτει απλώς τη δημιουργία ενός αρχείου εγγραφής επιφάνειας εργασίας με τις απαιτούμενες πληροφορίες. Τα αρχεία αυτά χρησιμοποιούν μια απλή σύνταξη κλειδιού-τιμής, με ειδική πρόνοια για την προσθήκη μεταφράσεων για ορισμένες τιμές. Το αρχείο εγγραφής επιφάνειας εργασίας της εφαρμογής σας θα πρέπει να περιέχει τις εξής πληροφορίες:

  • Όνομα και σχόλιο, τα οποία μπορούν να μεταφραστούν σε όλες τις γλώσσες που υποστηρίζει η εφαρμογή σας.

  • Λίστα κατηγοριών (επιλέγονται από προκαθορισμένη λίστα) που θα χρησιμοποιηθεί για την τοποθέτηση της εφαρμογής σας στο μενού εφαρμογών.

  • Εικονίδιο, είτε με τη μορφή πλήρους διαδρομής, είτε ως απλό όνομα εικονιδίου του συστήματος θεμάτων εικονιδίων.

  • Λίστα των τύπων αρχείων που υποστηρίζονται από την εφαρμογή.

  • Εντολή για την εκτέλεση της εφαρμογής σας.

Αν η εφαρμογή σας χειρίζεται προσαρμοσμένους τύπους αρχείων που δεν είναι γνωστοί στο σύστημα, θα πρέπει να προσθέσετε αυτούς τους τύπους στο μητρώο τύπων αρχείων. Η πρόσβαση σε όλους τους τύπους αρχείων γίνεται μέσω τύπων MIME. Για παράδειγμα, ο τύπος MIME των αρχείων ήχου Ogg Vorbis είναι application/ogg. Για να προσθέσετε έναν τύπο MIME, πρέπει να περιγράψετε τον τύπο σε ένα αρχείο XML. Τα αρχεία αυτά περιέχουν μεταφρασμένα ονόματα για τον τύπο αρχείου, καθώς και πληροφορίες για το πώς διαπιστώνεται αν ένα αρχείο ανήκει σε αυτόν τον τύπο, κάτι που συμπεραίνεται είτε από το όνομα του αρχείου, είτε με εξέταση των περιεχομένων του αρχείου.

Για περισσότερες πληροφορίες σχετικά με τις εφαρμογές, δείτε τα Desktop Entry Specification και Desktop Menu Specification. Για περισσότερες πληροφορίες σχετικά με τους τύπους αρχείων, ανατρέξτε στο Shared MIME Info Specification.

Μικροεφαρμογές πίνακα εφαρμογών

Η επιφάνεια εργασίας GNOME διαθέτει ευέλικτους και πανίσχυρους πίνακες εφαρμογών, στους οποίους μπορούν να προστεθούν διάφορες μικρές εφαρμογές, που ονομάζονται μικροεφαρμογές πίνακα εφαρμογών. Οι μικροεφαρμογές παρέχουν γρήγορη πρόσβαση σε διάφορες χρήσιμες πληροφορίες ή λειτουργίες. Για παράδειγμα, η επιφάνεια εργασίας GNOME περιέχει, μεταξύ άλλων, μικροεφαρμογές για την εναλλαγή μεταξύ παραθύρων και χώρων εργασίας, καθώς και για την εμφάνιση του καιρού και της κατάστασης του δικτύου.

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

Οι μικροεφαρμογές αποτελούν ανεξάρτητες διεργασίες που χρησιμοποιούν το Bonobo για να επικοινωνούν με τον πίνακα εφαρμογών. Το Bonobo επιτρέπει στις μικροεφαρμογές να ενσωματώνονται πλήρως στον πίνακα εφαρμογών, προσφέροντας ενιαία εμπειρία στο χρήστη. Για παράδειγμα, κάθε μικροεφαρμογή περιέχει στο σχετικό μενού της ορισμένες βασικές δυνατότητες, όπως η αφαίρεση, η μετακίνηση και το κλείδωμα της μικροεφαρμογής. Βεβαίως, μια μικροεφαρμογή μπορεί να προσθέσει και άλλα στοιχεία στο σχετικό μενού της. Για παράδειγμα, η μικροεφαρμογή Πρόγνωση καιρού περιέχει στο σχετικό μενού της επιλογές για την προβολή λεπτομερούς πρόγνωσης και για την ενημέρωση των εμφανιζόμενων πληροφοριών.

Για περισσότερες πληροφορίες σχετικά με τις μικροεφαρμογές του πίνακα εφαρμογών, δείτε εδώ: Panel Applet Library.

Περιοχή ειδοποιήσεων

Πέρα από τους εκκινητές και τις μικροεφαρμογές, ο πίνακας εφαρμογών του GNOME προσφέρει επίσης μια περιοχή ειδοποιήσεων, που μπορούν να χρησιμοποιούν οι εφαρμογές για να ενημερώνουν τους χρήστες. Οι ειδοποιήσεις μπορούν να ανακοινώνουν την ύπαρξη νέων e-mail ή ενημερώσεων, να υπενθυμίζουν επερχόμενα ραντεβού, και πολλά άλλα.

Οι ειδοποιήσεις είναι απλά εικονίδια, που η εφαρμογή σας μπορεί να τοποθετήσει στην περιοχή ειδοποιήσεων του πίνακα εφαρμογών του χρήστη. Αν ο χρήστης κάνει κλικ στο εικονίδιο, η εφαρμογή σας μπορεί να προβεί σε περαιτέρω ενέργειες. Προς το παρόν, το σύστημα ειδοποιήσεων υλοποιείται μέσω της πειραματικής βιβλιοθήκης Egg· ωστόσο, η επόμενη έκδοση της GTK+ θα υποστηρίζει τα εικονίδια ειδοποιήσεων.

Η περιοχή ειδοποιήσεων βασίζεται σε προδιαγραφές του freedesktop.org, επομένως τα εικονίδια ειδοποιήσεών σας θα λειτουργούν και σε άλλα περιβάλλοντα επιφάνειας εργασίας. Για περισσότερες πληροφορίες σχετικά με την περιοχή ειδοποιήσεων, δείτε το System Tray Protocol Specification.

Διαχειριστής αρχείων

Το GNOME περιλαμβάνει το Ναυτίλο, έναν εύχρηστο και ισχυρό διαχειριστή αρχείων. Ο Ναυτίλος χρησιμοποιεί την προηγμένη τεχνολογία GVFS για να εμφανίζει απομακρυσμένους φακέλους με τον ίδιο τρόπο που εμφανίζει και το τοπικό σύστημα αρχείων, προσφέροντας στους χρήστες πρόσβαση σε όλα τα αρχεία τους, όπου και αν βρίσκονται αυτά, μέσα από μια ενιαία διεπαφή.

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

Τα πρόσθετα του Ναυτίλου επεκτείνουν τη λειτουργικότητα του διαχειριστή αρχείων με διάφορους τρόπους. Έτσι, μπορεί να προσθέτουν επιπλέον πληροφορίες στο διαλόγο με τις ιδιότητες ενός αρχείου, προσφέροντας στο χρήστη όλες τις πληροφορίες που χρειάζεται. Για παράδειγμα, το GNOME περιλαμβάνει ένα πρόσθετο που εμφανίζει επιπλέον πληροφορίες για τα αρχεία ήχου και βίντεο, όπως είναι ο codec που χρησιμοποιήθηκε, οι διαστάσεις του βίντεο, ο καλλιτέχνης και το άλμπουμ ενός αρχείου ήχου που εξήχθη από CD.

Τα πρόσθετα μπορούν επίσης να χρησιμοποιηθούν για την προσθήκη νέων στηλών στην προβολή λίστας και την αυτόματη τοποθέτηση εμβλημάτων σε αρχεία. Έτσι, ο χρήστης μπορεί να αποκτά χρήσιμες πληροφορίες με μια μόνο ματιά. Για παράδειγμα, ένα πρόσθετο του Ναυτίλου θα μπορούσε να παρέχει πληροφορίες ελέγχου εκδόσεων για τους φακέλους που ελήφθησαν από σύστημα ελέγχου εκδόσεων. Οι χρήστες θα μπορούσαν να διαπιστώνουν αμέσως αν το αρχείο είναι ενημερωμένο ή αν έχουν γίνει τοπικές αλλαγές.

Ο Ναυτίλος επιτρέπει ακόμη στους προγραμματιστές να προσθέτουν στοιχεία στα σχετικά μενού των αρχείων και φακέλων. Συνήθως, αυτά τα επιπλέον στοιχεία των σχετικών μενού προσδιορίζουν τους τύπους αρχείων για τους οποίους θα εμφανίζονται, έτσι ώστε να εμφανίζονται μόνο όταν μπορούν να χρησιμοποιηθούν για τα επιλεγμένα αρχεία. Για παράδειγμα, το File Roller, ο διαχειριστής συμπιεσμένων αρχείων του GNOME, προσθέτει στο σχετικό μενού ένα στοιχείο για την άμεση αποσυμπίεση συμπιεσμένων αρχείων. Άλλα πρόσθετα στοιχεία των σχετικών μενού προσφέρουν εύκολη πρόσβαση σε συνηθισμένες ενέργειες για πολλούς διαφορετικούς τύπους αρχείων.

Πέρα από την ευέλικτη αρχιτεκτονική προσθέτων που διαθέτει, ο Ναυτίλος μπορεί επίσης να εμφανίζει μικρογραφίες για όλους τους τύπους αρχείων για τους οποίους υπάρχει διαθέσιμη εφαρμογή δημιουργίας μικρογραφιών. Οι μικρογραφίες εμφανίζουν μια προεπισκόπηση του αρχείου, διευκολύνοντας το χρήστη στην αναζήτηση αρχείων. Το GNOME μπορεί να δημιουργεί αυτόματα μικρογραφίες για τα περισσότερα αρχεία εικόνας και βίντεο, ενώ επιτρέπει στις εφαρμογές να εγκαθιστούν νέες εφαρμογές μικρογραφιών για τη δημιουργία μικρογραφιών για τα δικά τους αρχεία. Το freedesktop.org παρέχει πλήρεις προδιαγραφές για τη διαχείριση των μικρογραφιών, άρα οι εφαρμογές μικρογραφιών σας θα μπορούν να χρησιμοποιούνται από όλες τις εφαρμογές.

Διαχειριστής παραθύρων

Ο διαχειριστής παραθύρων είναι ένα ειδικό πρόγραμμα υπεύθυνο για τη σχεδίαση των περιγραμμάτων και των τίτλων των παραθύρων. Ο διαχειριστής παραθύρων διαχειρίζεται όλες τις ενέργειες που αφορούν τη συμπεριφορά των παραθύρων, όπως είναι η μετακίνηση, η αλλαγή μεγέθους, η ελαχιστοποίηση και η μετακίνηση σε διαφορετικό χώρο εργασίας. Η διαχείριση των παραθύρων γίνεται με ενιαίο τρόπο και με ελάχιστες ή καθόλου παρεμβάσεις από τους προγραμματιστές εφαρμογών. Αν μια εφαρμογή επιθυμεί να επηρεάσει τη συμπεριφορά του διαχειριστή παραθύρων, μπορεί να παρέχει υποδείξεις στο παράθυρό της, χρησιμοποιώντας κλήσεις συναρτήσεων GTK+.

Τα εξωτερικά προγράμματα μπορούν, όμως, να αλληλεπιδρούν και άμεσα με το διαχειριστή παραθύρων, ή ακόμη και να ελέγχουν τη συμπεριφορά του. Μέσω της βιβλιοθήκης libwnck του GNOME, οι εφαρμογές μπορούν να λαμβάνουν πληροφορίες για την τοποθέτηση και την κατάσταση όλων των παραθύρων και να δίνουν εντολή στον διαχειριστή παραθύρων να εκτελεί διάφορες ενέργειες στα παράθυρα αυτά.

Η βιβλιοθήκη libwnck δεν ανήκει αποκλειστικά στο διαχειριστή παραθύρων του GNOME. Όλες οι λειτουργίες της χρησιμοποιούν το EWMH (Extended Window Manager Hints). Το EWMH αναπτύχθηκε σε συνεργασία με το freedesktop.org για να παρέχει ενιαία διάδραση των διαχειριστών παραθύρων σε πολλαπλές επιφάνειες εργασίας.

Η συνεργασία του διαχειριστή παραθύρων με το libwnck μπορεί να αξιοποιηθεί για απλές ενέργειες, όπως η εμφάνιση στον πίνακα εφαρμογών της μικροεφαρμογής για τους χώρους εργασίας ή για τη λίστα παραθύρων, αλλά και για πολύπλοκες διαδικασίες, όπως η αυτόματη εκτέλεση ενεργειών σε ένα νέο παράθυρο, ανάλογα με ορισμένες ιδιότητές του.

Κέντρο ελέγχου

Η επιφάνεια εργασίας GNOME παρέχει ένα ενιαίο μενού για όλες τις προτιμήσεις της επιφάνειας εργασίας και τις ρυθμίσεις διαχείρισης του συστήματος. Οι διάφοροι διάλογοι προτιμήσεων και ρυθμίσεων μπορούν να τοποθετούνται σε αυτό το μενού για να διευκολύνεται η πρόσβαση σε αυτές. Μπορείτε να προσθέσετε διαλόγους στο μενού προτιμήσεων, αν τους προσθέσετε στο μητρώο εφαρμογών στην κατηγορία literal>Setting

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

Αποθήκευση συνθηματικών

Το GNOME παρέχει ένα σύγχρονο και ασφαλή διαχειριστή κλειδοθηκών για την αποθήκευση των συνθηματικών των χρηστών, καθώς και άλλων ευαίσθητων δεδομένων. Οι εφαρμογές μπορούν να χρησιμοποιούν τη βιβλιοθήκη του διαχειριστή κλειδοθηκών για την αποθήκευση και ανάκτηση συνθηματικών, ενώ οι χρήστες μπορούν να χρησιμοποιούν την εφαρμογή Διαχείρισης κλειδοθηκών του GNOME για να διαχειρίζονται τα συνθηματικά τους.

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

Ο διαχειριστής κλειδοθηκών παράγει λίστες ελέγχου πρόσβασης για κάθε στοιχείο μιας κλειδοθήκης, επιτρέποντάς σας να ελέγχετε ποιες εφαρμογές θα έχουν πρόσβαση σε αυτό το στοιχείο. Αν μια άγνωστη εφαρμογή προσπαθήσει να αποκτήσει πρόσβαση σε ένα στοιχείο κλειδοθήκης, ο διαχειριστής κλειδοθηκών θα ζητήσει από το χρήστη να επιτρέψει ή να αρνηθεί την πρόσβαση. Κατ' αυτόν τον τρόπο, τυχόν κακόβουλες ή κακογραμμένες εφαρμογές δεν μπορούν να αποκτήσουν πρόσβαση στα ευαίσθητα δεδομένα του χρήστη.

Τα δεδομένα των κλειδοθηκών αποθηκεύονται στο σύστημα αρχείων κρυπτογραφημένα με τον αλγόριθμο κρυπτογράφησης μπλοκ AES, ενώ ο SHA1 χρησιμοποιείται για τα hash των γνωρισμάτων των στοιχείων. Χρησιμοποιώντας το hash των γνωρισμάτων, ο διαχειριστής κλειδοθηκών μπορεί να βρει το στοιχείο που ζητά μια εφαρμογή χωρίς να χρειαστεί να ξεκλειδώσει την κλειδοθήκη. Η κλειδοθήκη ξεκλειδώνεται μόνο αφού βρεθεί το κατάλληλο στοιχείο και δοθεί πρόσβαση σε αυτό.

Ο διαχειριστής κλειδοθηκών παρέχει επίσης μία κλειδοθήκη συνεδρίας. Τα στοιχεία της κλειδοθήκης συνεδρίας δεν αποθηκεύονται ποτέ στο δίσκο και χάνονται μόλις τελειώσει η συνεδρία του χρήστη. Η κλειδοθήκη συνεδρίας μπορεί να χρησιμοποιηθεί για την αποθήκευση συνθηματικών που αφορούν μόνο την τρέχουσα συνεδρία.

Αν χρησιμοποιείτε το GIO για πρόσβαση σε απομακρυσμένους εξυπηρετητές, διαπιστώνετε αμέσως τα πλεονεκτήματα του διαχειριστή κλειδοθηκών. Όποτε το GVFS απαιτεί πιστοποίηση του χρήστη, σας δίνετε η δυνατότητα να αποθηκεύσετε το συνθηματικό σας, είτε στην προεπιλεγμένη κλειδοθήκη, είτε στην κλειδοθήκη της συνεδρίας.

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

Διαχείριση συνεδριών

Το GNOME παρέχει εργαλεία που επιτρέπουν στην εφαρμογή σας να συνεχίζει την ομαλή λειτουργία της από συνεδρία σε συνεδρία. Οι χρήστες μπορούν να αποσυνδέονται ενώ εκτελούνται εφαρμογές, και να βλέπουν αυτές τις εφαρμογές να επαναφέρονται αυτόματα όταν συνδέονται εκ νέου. Αν επιθυμείτε να προσφέρετε αυτή τη δυνατότητα, η εφαρμογή σας θα πρέπει να συνδέεται στο διαχειριστή συνεδρίας και να αποθηκεύει την κατάστασή της κατά την αποσύνδεση του χρήστη.

Το GNOME παρέχει ένα απλό API για τη διαχείριση συνεδριών στη Βιβλιοθήκη Διεπαφής Χρήστη GNOME. Δείτε την ενότητα GnomeClient του GNOME UI Library Reference Manual για περισσότερες πληροφορίες σχετικά με τη χρήση του διαχειριστή συνεδρίας του GNOME.

Βιβλίο διευθύνσεων και ημερολόγιο

Μέσω του Εξυπηρετητή Δεδομένων Evolution, το GNOME παρέχει ενιαίο βιβλίο διευθύνσεων και ημερολόγιο που μπορούν να χρησιμοποιούν όλες οι εφαρμογές για την αποθήκευση και ανάκτηση πληροφοριών. Χρησιμοποιώντας τον Εξυπηρετητή Δεδομένων Evolution, οι χρήστες δεν χρειάζεται πλέον να διατηρούν ξεχωριστές λίστες επαφών για κάθε εφαρμογή, ή να αντιγράφουν οι ίδιοι κάθε ραντεβού τους στο ημερολόγιό τους.

Όλο και περισσότερο, χρησιμοποιούμε τους υπολογιστές για να επικοινωνούμε με φίλους και συναδέλφους. Για να το επιτύχουμε, χρησιμοποιούμε εφαρμογές ηλεκτρονικού ταχυδρομείου, άμεσων μηνυμάτων, τηλεφωνίας και βιντεοδιασκέψεων. Αυτές οι εφαρμογές συχνά περιέχουν λίστες επαφών. Χρησιμοποιώντας τον Εξυπηρετητή Δεδομένων Evolution, οι εφαρμογές μπορούν να αποθηκεύουν επαφές σε μία μοναδική τοποθεσία, επιτρέποντας σε όλες τις εφαρμογές να βλέπουν τα στοιχεία των επαφών του χρήστη.

Επίσης, οι εφαρμογές μπορούν να χρησιμοποιούν τον Εξυπηρετητή Δεδομένων Evolution για να αποθηκεύουν και να ανακτούν τα ραντεβού του χρήστη από το ημερολόγιό του. Για παράδειγμα, αν κάνετε κλικ στο ρολόι του πίνακα εφαρμογών, εμφανίζεται ένα απλό ημερολόγιο. Αν έχετε προγραμματίσει ραντεβού, αυτά εμφανίζονται στο ημερολόγιο. Έτσι, μπορείτε να συμβουλεύεστε τα ραντεβού σας χωρίς να ανοίγετε την πλήρη εφαρμογή ημερολογίου.

Για περισσότερες πληροφορίες σχετικά με το βιβλίο διευθύνσεων, δείτε το Evolution API Reference: libebook. Για περισσότερες πληροφορίες σχετικά με το ημερολόγιο, δείτε το Evolution API Reference: libecal.

Χρηστικότητα

Η επιφάνεια εργασίας του GNOME έχει σχεδιαστεί με γνώμονα τη χρηστικότητα και στοχεύει στην παροχή μιας απλής και ενιαίας εμπειρίας για το χρήστη. Οι άνθρωποι χρησιμοποιούν τους υπολογιστές για να κάνουν τη δουλειά τους (ή να παίζουν παιχνίδια!), όχι για να λύνουν το γρίφο της διεπαφής χρήστη. Κατά τη σχεδίαση της εφαρμογής σας, θα πρέπει να λάβετε υπόψη σας πόσο εύκολα θα αναγνωρίσουν οι χρήστες τα "παραδοσιακά" στοιχεία της διεπαφής χρήστη, πόσο γρήγορα θα εξοικειωθούν με τα "διαφορετικά" στοιχεία της εφαρμογής σας, και πόσο αποτελεσματικά θα μπορούν να εκτελέσουν τις ενέργειες που επιθυμούν, αφού πρώτα εξοικειωθούν μαζί τους.

Το GNOME παρέχει ολοκληρωμένες Κατευθυντήριες Γραμμές Διεπαφής με Ανθρώπους, προκειμένου να σας επιτρέψει να δημιουργήσετε περισσότερο ελκυστικές και εύχρηστες εφαρμογές. Βεβαίως, μερικές κατευθυντήριες γραμμές δεν μπορούν να λύσουν όλα τα προβλήματα χρηστικότητας, ωστόσο, η κατανόηση των κατευθυντήριων γραμμών θα σας διευκολύνει στην ανάπτυξη εύχρηστων εφαρμογών. Για περισσότερες πληροφορίες, παρακαλώ ανατρέξτε εδώ: GNOME Human Interface Guidelines.

Τεκμηρίωση

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

Το GNOME παρέχει ένα ενιαίο πλαίσιο για την παροχή τεκμηρίωσης χρήστη. Μπορείτε να παρέχετε τεκμηρίωση χρησιμοποιώντας το βιομηχανικό πρότυπο DocBook. Η χρήση του DocBook σας απαλλάσσει από το άγχος της μορφοποίησης, καθώς η τεκμηρίωσή σας μορφοποιείται αυτόματα, ακολουθώντας τις ίδιες συμβάσεις με την υπόλοιπη τεκμηρίωση του συστήματος.

Η εφαρμογή βοήθειας του GNOME, το Yelp, προβάλλει και εκτυπώνει την τεκμηρίωση, παρέχει έναν κατάλογο όλης της τεκμηρίωσης του συστήματος, και επιτρέπει στο χρήστη να κάνει αναζήτηση στο πλήρες κείμενο όλων των εγγράφων τεκμηρίωσης. Όλες αυτές οι λειτουργίες σας παρέχονται ελεύθερα, εφόσον χρησιμοποιείτε το σύστημα βοήθειας του GNOME.

Για περισσότερες πληροφορίες σχετικά με τη συγγραφή τεκμηρίωσης για την εφαρμογή σας, δείτε τα GNOME Handbook of Writing Software Documentation, DocBook: The Definitive Guide, και GNOME Documentation Style Guide.

Chapter 6. Συνδέσεις γλωσσών

Αν και η πλατφόρμα GNOME έχει γραφτεί κυρίως σε C, έχει εσκεμμένα γραφτεί κατά τρόπο που να διευκολύνει τη σύνδεση με άλλες γλώσσες προγραμματισμού. Χρησιμοποιώντας τις συνδέσεις γλωσσών, μπορείτε να προγραμματίζετε εγγενώς στην πλατφόρμα GNOME, χρησιμοποιώντας τη γλώσσα που προτιμάτε.

Υπάρχουν συνδέσεις γλωσσών για πολλές γλώσσες προγραμματισμού. Επισήμως, η πλατφόρμα GNOME υποστηρίζει τις συνδέσεις των C++, Java, Perl και Python.

C++

Οι συνδέσεις της C++ καλύπτουν ολόκληρη την πλατφόρμα GNOME, συμπεριλαμβανομένων των GTK+, Glade και GConf. Οι συνδέσεις της C++ συνδέουν όλα τα αντικείμενα με εγγενή αντικείμενα της C++ και επιτρέπουν στους προγραμματιστές να δημιουργούν προσαρμοσμένα γραφικά συστατικά που ακολουθούν τους συνήθεις κανόνες κληρονομικότητας της C++. Παρέχουν ένα πλήρως εγγενές API, με χειριστές σημάτων που διασφαλίζουν την ασφάλεια τύπων, με πλήρη υποστήριξη της βασικής βιβλιοθήκης της C++ και με πλήρη διαχείριση μνήμης σε C++.

Για περισσότερες πληροφορίες σχετικά με τις συνδέσεις GNOME και C++, επισκεφτείτε τον ιστότοπο του gtkmm.

Java

Οι συνδέσεις της Java καλύπτουν ολόκληρη την πλατφόρμα GNOME, συμπεριλαμβανομένων των GTK+, Cairo και GConf. Οι συνδέσεις της Java συνδέουν όλα τα αντικείμενα με εγγενή αντικείμενα της Java και επιτρέπουν στους προγραμματιστές να δημιουργούν προσαρμοσμένα γραφικά συστατικά που ακολουθούν τους συνήθεις κανόνες κληρονομικότητας της Java. Παρέχουν ένα πλήρως εγγενές API, χρησιμοποιώντας, όπου χρειάζεται, τις βιβλιοθήκες κλάσεων και τις διεπαφές της Java.

Για περισσότερες πληροφορίες σχετικά με τις συνδέσεις GNOME και Java, επισκεφτείτε τον ιστότοπο Java-GNOME.

Perl

Οι συνδέσεις της Perl παρέχουν εγγενείς διεπαφές Perl για την πλατφόρμα GNOME, συμπεριλαμβανομένων των GTK+, GnomeVFS και GConf. Οι συνδέσεις της Perl συνδέουν όλα τα αντικείμενα με εγγενή αντικείμενα της Perl και επιτρέπουν στους προγραμματιστές να χρησιμοποιούν τις συνήθεις πρακτικές της Perl για τον χειρισμό τους. Παρέχουν ένα πλήρως εγγενές API, χρησιμοποιώντας, όπου χρειάζεται, τους εγγενείς τύπους δεδομένων της Perl.

Για περισσότερες πληροφορίες σχετικά με τις συνδέσεις GNOME και Perl, επισκεφτείτε τον ιστότοπο gtk2-perl.

Python

Οι συνδέσεις της Python παρέχουν εγγενείς διεπαφές Python για την πλατφόρμα GNOME, συμπεριλαμβανομένων των GTK+, GnomeVFS και GConf. Οι συνδέσεις της Python συνδέουν όλα τα αντικείμενα με εγγενή αντικείμενα της Python και επιτρέπουν στους προγραμματιστές να δημιουργούν προσαρμοσμένα γραφικά συστατικά που ακολουθούν τους συνήθεις κανόνες κληρονομικότητας της Python. Παρέχουν ένα πλήρως εγγενές API που χειρίζεται αυτόματα λεπτομέρειες όπως η μετατροπή τύπου (type casting) και η διαχείριση μνήμης.

Για περισσότερες πληροφορίες σχετικά με τις συνδέσεις GNOME και Python, επισκεφτείτε τον ιστότοπο του PyGTK.

Άλλες γλώσσες

Υπάρχουν πλήρεις ή μερικές συνδέσεις για πολλές ακόμη γλώσσες προγραμματισμού, όπως οι C#, Eiffel, JavaScript, Ruby και Scheme. Αν και δεν υποστηρίζονται επισήμως από το GNOME, πολλές από αυτές τις συνδέσεις διακρίνονται από την ίδια υψηλή ποιότητα των επίσημων συνδέσεων του GNOME, και ορισμένες από αυτές μπορεί να συμπεριληφθούν στις επίσημες συνδέσεις του GNOME σε επόμενες εκδόσεις.

Για να δείτε τον πλήρη κατάλογο των συνδέσεων γλωσσών, επισκεφτείτε τη σελίδα GTK+ bindings.

Appendix A. Σύντομη επισκόπηση μονάδων

Αυτό το παράρτημα περιέχει μια σύντομη περιγραφή των βιβλιοθηκών που συμπεριλαμβάνονται στην πλατφόρμα επιφάνειας εργασίας και προγραμματισμού του GNOME. Οι βιβλιοθήκες καταγράφονται με τη σειρά των μονάδων (modules) τους και συνοδεύονται από μια σύντομη περιγραφή και, όπου δυνατόν, από ένα σύνδεσμο προς την ενότητα του εγγράφου που περιέχει περισσότερες λεπτομέρειες.

Μονάδες πλατφόρμας

Οι μονάδες της πλατφόρμας προγραμματισμού του GNOME προσφέρουν ρητές εγγυήσεις σταθερότητας των API και ABI. Οι εφαρμογές που βασίζονται σε μονάδες της πλατφόρμας θα μπορούν να λειτουργούν χωρίς τροποποιήσεις καθ' όλη τη διάρκεια ζωής του GNOME 2.

GConf

Το GConf παρέχει υπηρεσία και βιβλιοθήκες για την αποθήκευση και ανάκτηση δεδομένων ρυθμίσεων. Το GConf εξετάζεται στην the section called “Ρύθμιση και κλείδωμα”.

ORBit

Η ORBit είναι ένας γρήγορος και ελαφρύς εξυπηρετητής CORBA. Η αρχιτεκτονική συστατικών του GNOME, το Bonobo, βασίζεται στο CORBA. Το CORBA εξετάζεται στην the section called “Bonobo και CORBA”.

atk

Η ATK παρέχει τις διεπαφές προσιτότητας που υλοποιούνται από άλλα toolkit και εφαρμογές. Χάρη στις διεπαφές της ATK, τα εργαλεία προσιτότητας διαθέτουν πλήρη πρόσβαση προκειμένου να βλέπουν και να ελέγχουν τις εκτελούμενες εφαρμογές. Η ATK εξετάζεται στην the section called “Προσιτότητα”.

gail

Η GAIL αποτελεί μια υλοποίηση των διεπαφών της ATK για τις βιβλιοθήκες GTK+ και GNOME, και επιτρέπει στα εργαλεία προσιτότητας να αλληλεπιδρούν με εφαρμογές που έχουν γραφτεί με βάση αυτές τις βιβλιοθήκες. Η προσιτότητα εξετάζεται στην the section called “Προσιτότητα”.

gio

Η βιβλιοθήκη GIO αποτελεί τμήμα της GLib και παρέχει ένα API υψηλού επιπέδου για την πρόσβαση σε αρχεία και φακέλους. Μαζί με τη βιβλιοθήκη GVFS, παρέχει ένα αφαιρετικό μοντέλο του συστήματος αρχείων που επιτρέπει εύκολη πρόσβαση σε τοπικά και απομακρυσμένα αρχεία. Η GIO εξετάζεται στην the section called “Εικονικό σύστημα αρχείων”.

glib

Η GLib παρέχει τα βασικά δομικά συστατικά για εφαρμογές και βιβλιοθήκες γραμμένες σε C. Παρέχει το βασικό σύστημα αντικειμένων του GNOME, την υλοποίηση του κύριου βρόγχου (main), και πλήθος βοηθητικών συναρτήσεων για το χειρισμό αλφαριθμητικών και κοινών δομών δεδομένων.

gnome-vfs

Η GnomeVFS είναι βιβλιοθήκη για την πρόσβαση σε αρχεία και φακέλους η οποία τελεί υπό κατάργηση. Έχει αντικατασταθεί από τη GIO και τη GVFS. Αν γράφετε νέο κώδικα, χρησιμοποιήστε τη GIO στη θέση της.

gtk+

Η GTK+ είναι η βασική βιβλιοθήκη για την κατασκευή διεπαφών χρήστη για εφαρμογές GNOME. Παρέχει ελέγχους διεπαφών χρήστη και σήματα επανάκλησης (callback) για τον έλεγχο αυτών των διεπαφών χρήστη. Η. GTK+ εξετάζεται στην the section called “GTK+”.

gvfs

Η GVFS είναι υλοποίηση συστήματος υποστήριξης της GIO και επιτρέπει την πρόσβαση σε διάφορα πρωτόκολλα μέσω του API της GIO. Οι προγραμματιστές δεν διαθέτουν άμεση πρόσβαση στη GVFS. Ωστόσο, οι εφαρμογές που χρησιμοποιούν τη GIO χρησιμοποιούν αυτόματα τη GVFS στα συστήματα όπου είναι ενεργοποιημένη.

libIDL

Η libIDL είναι μια βιβλιοθήκη για την ανάλυση αρχείων IDL (Interface Definition Language), αρχείων απαραίτητων για τις διεπαφές CORBA. Η libIDL χρησιμοποιείται από την υλοποίηση της CORBA στο GNOME , την ORBit. Η CORBA εξετάζεται στην the section called “Bonobo και CORBA”.

libart_lgpl

Η libart είναι μια βιβλιοθήκη γραφικών που μπορεί να εμφανίζει διανυσματικές διαδρομές. Χρησιμοποιείται από το γραφικό συστατικό GnomeCanvas.

libbonobo

Το Bonobo είναι ένα πλαίσιο για τη δημιουργία επαναχρησιμοποιήσιμων συστατικών για τις εφαρμογές GNOME, που έχει βασιστεί στην CORBA. Το Bonobo εξετάζεται στην the section called “Bonobo και CORBA”.

libbonoboui

Η βιβλιοθήκη διεπαφών χρήστη του Bonobo παρέχει μια σειρά από ελέγχους διεπαφών χρήστη που χρησιμοποιούν το πλαίσιο συστατικών Bonobo. Το Bonobo εξετάζεται στην the section called “Bonobo και CORBA”.

libglade

Η Libglade είναι μια βιβλιοθήκη για τη δυναμική δημιουργία διεπαφών χρήστη από περιγραφές XML. Η Libglade επιτρέπει στους προγραμματιστές να δημιουργούν διεπαφές χρήστη χρησιμοποιώντας μια γραφική διεπαφή δημιουργίας εφαρμογών, και στη συνέχεια να εισάγουν αυτούς ορισμούς διεπαφών. Η Libglade εξετάζεται στην the section called “Libglade”.

libgnome

Η βιβλιοθήκη libgnome παρέχει μια σειρά από χρήσιμες ρουτίνες για τη δημιουργία προηγμένων εφαρμογών, όπως είναι η διαχείριση συνεδριών, η ενεργοποίηση αρχείων και URI, και η προβολή βοήθειας.

libgnomecanvas

Το γραφικό συστατικό GnomeCanvas είναι ένα ευέλικτο συστατικό για τη δημιουργία διαδραστικών δομημένων γραφικών.

libgnomeui

Η βιβλιοθήκη libgnomeui παρέχει πρόσθετα γραφικά συστατικά για χρήση σε εφαρμογές. Πολλά από τα γραφικά συστατικά της libgnomeui έχουν ήδη μεταφερθεί στη GTK+.

libxml2

Η βιβλιοθήκη libxml2 παρέχει μια σειρά από API για χρήση της XML σύμφωνα με τα πρότυπα. Η βιβλιοθήκη libxml2 εξετάζεται στην the section called “Επεξεργασία XML”.

libxslt

Η βιβλιοθήκη libxslt παρέχει μια γρήγορη και ολοκληρωμένη υλοποίηση της XSLT, μιας γλώσσας που χρησιμοποιείται για τη μετατροπή της XML. Η βιβλιοθήκη libxslt εξετάζεται στην the section called “Μετατροπή XML μέσω XSLT”.

pango

Η Pango είναι η κύρια βιβλιοθήκη για το χειρισμό κειμένου και γραμματοσειρών στις εφαρμογές GNOME. Προσφέρει εκτεταμένη υποστήριξη των διαφόρων συστημάτων γραφής που χρησιμοποιούνται παγκοσμίως. Η Pango εξετάζεται στην the section called “Pango”.

Μονάδες επιφάνειας εργασίας

Η μονάδες της επιφάνειας εργασίας GNOME δεν είναι αναγκασμένες να προσφέρουν τις ίδιες εγγυήσεις σταθερότητας των API και ABI που προσφέρουν οι μονάδες της πλατφόρμας, αν και καταβάλλονται προσπάθειες για να παραμένουν σχετικά σταθερές. Συχνά, μία μονάδα εισάγεται πρώτα στην έκδοση της επιφάνειας εργασίας και στη συνέχεια μεταφέρεται στην πλατφόρμα, εφόσον ωριμάσει και σταθεροποιηθεί.

eel

Η βιβλιοθήκη eel παρέχει διάφορα πρόσθετα γραφικά συστατικά, που χρησιμοποιούνται κυρίως από το Ναυτίλο, το διαχειριστή αρχείων του GNOME. Πολλά από τα γραφικά συστατικά της eel έχουν εν τω μεταξύ ενσωματωθεί στη GTK+.

evolution-data-server

Ο Εξυπηρετητής Δεδομένων Evolution παρέχει μια ενιαία τοποθεσία για τις πληροφορίες του βιβλίου διευθύνσεων και του ημερολογίου, επιτρέποντας σε πολλαπλές εφαρμογές να κάνουν κοινή χρήση των ίδιων δεδομένων. Ο Εξυπηρετητής Δεδομένων Evolution εξετάζεται στην the section called “Βιβλίο διευθύνσεων και ημερολόγιο”.

gnome-panel

Πέρα από τον ίδιο τον πίνακα εφαρμογών, το πακέτο gnome-panel περιέχει τις βιβλιοθήκες που χρησιμοποιούνται για τη δημιουργία μικροεφαρμογών που εκτελούνται στον πίνακα εφαρμογών του χρήστη. Οι μικροεφαρμογές των πινάκων εφαρμογών εξετάζονται στην the section called “Μικροεφαρμογές πίνακα εφαρμογών”.

gnome-keyring

Ο διαχειριστής κλειδοθηκών του GNOME είναι ένα χρήσιμο και ασφαλές εργαλείο για την αποθήκευση των συνθηματικών των χρηστών, καθώς και άλλων ευαίσθητων δεδομένων. Τα κλειδιά των κλειδοθηκών είναι κρυπτογραφημένα και απαιτείται ρητή συγκατάθεση του χρήστη για την πρόσβαση σε αυτά. Ο διαχειριστής κλειδοθηκών εξετάζεται στην the section called “Αποθήκευση συνθηματικών”.

gstreamer

Το GStreamer είναι η πανίσχυρη βιβλιοθήκη πολυμέσων που χρησιμοποιείται παντού στο GNOME για την αναπαραγωγή, δημιουργία και επεξεργασία ήχου και βίντεο. Το GStreamer εξετάζεται στην the section called “Πολυμέσα”.

gtkhtml

Η βιβλιοθήκη gtkhtml είναι μία ελαφριά εφαρμογή εμφάνισης HTML με πλήρη υποστήριξη της επεξεργασίας rich text. Χρησιμοποιείται από την εφαρμογή ηλεκτρονικού ταχυδρομείου του Evolution και επιτρέπει στους χρήστες να γράφουν και να διαβάζουν μηνύματα HTML.

gtksourceview

Η βιβλιοθήκη gtksourceview παρέχει μια επέκταση του γραφικού συστατικού GtkTextView για υποστήριξη της αυτόματης επισήμανσης σύνταξης και άλλων λειτουργιών χρήσιμων για την επεξεργασία πηγαίου κώδικα. Χρησιμοποιείται από τον επεξεργαστή κειμένου gedit.

libgail-gnome

Η GAIL αποτελεί μια υλοποίηση των διεπαφών της ATK για τις βιβλιοθήκες GTK+ και GNOME, και επιτρέπει στα εργαλεία προσιτότητας να αλληλεπιδρούν με εφαρμογές που έχουν γραφτεί με βάση αυτές τις βιβλιοθήκες. Η προσιτότητα εξετάζεται στην the section called “Προσιτότητα”.

libgnomeprint

Η βιβλιοθήκη libgnomeprint παρέχει μια υλοποίηση του μοντέλου απεικόνισης PostScript και μπορεί να χρησιμοποιηθεί για την παραγωγή εκτυπώσεων υψηλής ποιότητας. Το πλαίσιο εκτύπωσης GNOME εξετάζεται στην the section called “GNOME Print”.

libgnomeprintui

Η βιβλιοθήκη libgnomeprintui παρέχει ένα συνήθη διάλογο εκτύπωσης, ένα διάλογο προεπισκόπησης εκτύπωσης και διάφορους άλλους ελέγχους απαραίτητους για την εκτύπωση. Το πλαίσιο εκτύπωσης GNOME εξετάζεται στην the section called “GNOME Print”.

libgtop

Η βιβλιοθήκη libgtop παρέχει ένα φορητό API για την απόκτηση πληροφοριών σχετικά με τις εκτελούμενες διεργασίες. Χρησιμοποιείται από την εφαρμογή Παρακολούθησης συστήματος.

librsvg

Η βιβλιοθήκη librsvg παρέχει μια υλοποίηση των γραφικών SVG (Scalable Vector Graphics). Χρησιμοποιείται παντού στην επιφάνεια εργασίας για την εμφάνιση διανυσματικών γραφικών που δεν εξαρτώνται από την ανάλυση.

libsoup

Η βιβλιοθήκη libsoup παρέχει μια υλοποίηση του SOAP (Simple Object Access Protocol), καθώς και του HTTP. Το SOAP μπορεί να χρησιμοποιηθεί για την ενσωμάτωση υπηρεσιών ιστού σε εφαρμογές. Η βιβλιοθήκη libsoup εξετάζεται στην the section called “SOAP”.

libwnck

Η βιβλιοθήκη libwnck παρέχει έναν τρόπο ελέγχου διαχειριστών παραθύρων σύμμορφων με το EWMH, συμπεριλαμβανομένου και του Metacity, του προεπιλεγμένου διαχειριστή παραθύρων του GNOME. Η βιβλιοθήκη libwnck εξετάζεται στην the section called “Διαχειριστής παραθύρων”.

libxklavier

Η βιβλιοθήκη libxklavier παρέχει ένα API υψηλού επιπέδου για την πρόσβαση και ρύθμιση διατάξεων πληκτρολογίου. Χρησιμοποιείται από τις Προτιμήσεις πληκτρολογίου και επιτρέπει στους χρήστες να ορίζουν τη διάταξη και τις επιλογές του πληκτρολογίου τους.

vte

Το VTE είναι ένα γραφικό συστατικό εξομοίωσης τερματικού για χρήση σε εφαρμογές GTK+. Παρέχει ένα ενιαίο API και χρησιμοποιεί την Pango για τη σχεδίαση κειμένου, κάτι που του επιτρέπει να εμφανίζει πλήρως διεθνοποιημένο κείμενο. Το VTE χρησιμοποιείται από την εφαρμογή Τερματικού του GNOME.