GTK - ΕΙΣΑΓΩΓΗ ΦΩΤΗΣ ΣΙΤΑΡΑΣ A.M: 1117
Τί είναι η GTK; Η GTK είναι μια εργαλειοθήκη (toolkit) για graphical user interfaces (GUI). Στην πραγματικότητα, είναι ένα σύνολο βιβλιοθηκών που σου δίνουν τη δυνατότητα δημιουργίας εφαρμογών βασισμένων σε GUI.. Είναι ανοιχτού κώδικα.Free
Μερικά Ιστορικά... Η GTK δημιουργήθηκε ως παραπροϊόν G TK της γνωστής επίσης ανοικτού κώδικα εφαρμογής, GNU Image Manipulation Program (GIMP) από όπου και πήρε το όνομα της (GIMP ToolKit). ”+” Λίγο αργότερα προστέθηκε στο όνομα της το ”+” (GTK+) όταν και απέκτησε αντικειμενοστραφή χαρακτηριστικά.
Σχεδιασμός της GTK Η GTK είναι στην ουσία μια αντικειμενοστραφής εφαρμογή API (application programmers interface). Όμως είναι σχεδιασμένη σε C και εκτελείται χρησιμοποιώντας την ιδέα των κλάσεων και των callback συναρτήσεων (pointers to functions). Επίσης σχεδιάστηκε έτσι ώστε να υποστηρίζει ένα μεγάλο εύρος γλωσσών προγραμματισμού.
Βιβλιοθήκες της GTK+ Η GTK+ είναι βασισμένη στις εξής τρεις βιβλιοθήκες : Glib Glib: Κανονίζει τη βάση του GTK. Παρέχει χειρισμό Δομών Δεδομένων για C, περίβλημα μεταφερσιμότητας και διεπαφές λειτουργικότητας. Pango Pango: Διαχειρίζεται και διατάσσει το κείμενο.Ουσιαστικά κανονίζει το κείμενο και τα fonts για τη GTK. ATK ATK: Παρέχει ένα set από διεπαφές προσιτότητας, δηλαδή εργαλεία όπως screen readers, μεγενθυντικοί φακοί, εναλλακτικές συσκευές εισόδου κ.α.
Εφαρμογές με GTK+ (1) Gnome GladeGIMP. Μερικές από τις πιό γνωστές εφαρμογές που χρησιμοποιούν GTK είναι το Gnome, το Glade και το GIMP. Επίσης αρκετά projects στοχεύουν στη χρήση GTK για εναλλακτικά display systems αντί της χρησιμοποίησης του X Window. Επίσης αρκετά projects στοχεύουν στη χρήση GTK για εναλλακτικά display systems αντί της χρησιμοποίησης του X Window.
Εφαρμογές με GTK+ (2) GNOME
Εφαρμογές με GTK+ (3) GIMP (Το GIMP σε περιβάλλον Solaris...)
Εφαρμογές με GTK+ (4) GLADE
Πλεονεκτήματα (1) LGPL Είναι ανοιχτού κώδικα και είναι ελεύθερη όχι απλά για να την αποκτήσεις αλλά και να την τροποποιήσεις και να την αναδιανείμεις.Το σημαντικό είναι οτι έχει την άδεια Lesser General Public License(LGPL), που σου παρέχει τη δυνατότητα να κάνεις οποιαδήποτε τροποποίηση στο λογισμικό που καλύπτει αρκεί αυτή να είναι ελεύθερη. Είναι συνεχώς αναπτυσσόμενη από μια μεγάλη κοινότητα χρηστών. Είναι εύκαμπτη με την έννοια οτι οποιαδήποτε λειτουργικότητα προστεθεί από την κοινότητα και την κατέχει ο χρήστης, δεν χρειάζεται να αλλάξει το βασικό design.
Πλεονεκτήματα (2) Είναι επεκτάσιμη γιατί μπορεί και ο ίδιος ο χρήστης να εισάγει το δικό του block και να το χρησιμοποιήσει με τον ίδιο τρόπο όπως και τα υπάρχοντα. Είναι Customizable και μπορεί ο χρήστης να την προσαρμόσει στις δικές του ανάγκες παρέχοντας ένα σύστημα διάδοσης των χαρακτηριστικών σε όλες τις εφαρμογές.Περιλαμβάνει και την επιλογή ”theme” η οποία είναι ένα σετ από customizations που επηρεάζουν το πως τα basic controls της GTK+ δείχνουν και συμπεριφέρονται. Έχει φορητότητα που σημαίνει οτι οι χρήστες μπορούν να την χρησιμοποιήσουν σε πολλά συστήματα.Από την άλλη, οι developers μπορούν να προωθήσουν το λογισμικό τους σε πολυάριθμους χρήστες γράφοντας το πρόγραμμα μόνο μια φορά, καθώς μπορούν να χρησιμοποιήσουν πολλές διαφορετικές προγραμματιστικές και αναπτυξιακές πλατφόρμες, εργαλεία και γλώσσες προγραμματισμού.
Πλεονεκτήματα (3α) Προσφέρει ένα μεγάλο εύρος επιλογών επέκτασης ενός project σε μεγαλύτερο κοινό, συμπεριλαμβάνοντας ένα εξειδικευμένο πλαίσιο εργασίας για: Internationalization: Υποστήριξη από τη διεπαφή της εφαρμογής, πολλαπλών διαλέκτων. Localization: Προσαρμογή της εφαρμογής σε διαφορετικά τοπικά στοιχεία όπως συμβολικοί χαρακτήρες νομισμάτων, παρουσιάση ημερομηνιών, αριθμητικών σημειογραφειών κ.ά. Accessibility: Προσαρμογή της εφαρμογής ώστε να μπορεί να χρησιμοποιηθεί και από εξειδικευμένο κοινό, π.χ. άτομα με ειδικές ανάγκες.
Bindings (1) Η GTK παρέχει ένα σταθερό framework και υποστήριξη αντικειμενοστραφή προγραμματισμού που είναι καλά προσαρμοσμένος στους σκοπούς της βιβλιοθήκης και στοχεύει στο να παρέχει λογική και πειθαρχεία στον προγραμματισμό διεπαφών. Αυτή η σταθερότητα και η πειθαρχεία στοχεύουν στο να γίνει εύκολη και αξιόπιστη η πρόσβαση στην GTK από άλλες διαφορετικές γλώσσες προγραμματισμού.
Bindings (2) Αυτή την πρόσβαση την παρέχουν τα λεγόμενα bindings (δεσίματα) των διαφόρων γλωσσών προγραμματισμού. Το binding μιας γλώσσας επιτρέπει στην GTK να χρησιμοποιηθεί από αυτή τη γλώσσα, στο στυλ αυτής της γλώσσας. Αυτό είναι εύκολο να δημιουργηθεί γιατί η GTK έχει σχεδιαστεί με αυτή την προοπτική. Υπάρχουν GTK bindings για πολλές γλώσσες προγραμματισμού.Μερικές από τις πιο γνωστές : C++, Guile, Perl, Python, Eiffel, Java κ.α.
Bindings (3)
Widgets (1) Widgets Widgets είναι η γενική έκφραση που χρησιμοποιούμε για να περιγράψουμε τα αντικείμενα διεπαφών. Η αντικειμενοστραφής λογική της GTK αναφέρεται στα widgets. Ένα widget καθορίζει μιά κλάση διεπαφής με την οποία συμμορφώνονται όλα τα αντικείμενα διεπαφών.Αυτή η κλάση χορηγεί μία ομοιόμορφη μέθοδο για δοσοληψίες με εφαρμογές που είναι κοινές για όλα τα αντικείμενα όπως hiding and showing, αίτηση και διανομή μεγέθους, γεγονότα κ.α.
Widgets (2) Η GTK επιτρέπει στον προγραμματιστή να χρησιμοποιήσει μια ποικιλία από κλασικά widgets όπως radio/check buttons,menus,list/frames. Αρκετά widgets υπάρχουν μεμονωμένα και αποτελούν βάση για την δημιουργία πιο εξειδικευμένων. Π.χ. Ένα κουμπί (widget) μπορεί να μην περιέχει μιά ταμπέλα αλλά ένα άλλο child widget όπως εικόνα ή οτιδήποτε άλλο επιθυμεί ο προγραμματιστής.Αυτά τα widgets λέγονται container widgets.Είναι δηλαδή widgets που δημιουργούνται από άλλα widgets. Εκτός από τα container widgets υπάρχουν διαθέσιμα πολλά άλλα widgets όπως color selector widget,dialog widget,entry widget κ.α.