Το Word από το Α ως το Ω

Ενότητες θέματος

Από τη θεωρία...

...Στην πράξη

Προσαρμογή εργαλειοθήκης γρήγορης πρόσβασης για προχωρημένους

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

Από τη θεωρία...

Η προσαρμογή της ΕΓΠ μπορεί να είναι γενική (διαθέσιμη σε όλα τα έγγραφα) ή περιορισμένη σε ένα συγκεκριμένο πρότυπο ή έγγραφο.

Τα αρχεία αυτά είναι αρχεία απλού κειμένου και μπορείτε να τα επεξεργαστείτε με το Σημειωματάριο των Windows. Εδώ χρησιμοποιώ άλλο πρόγραμμα, για να διευκολύνω οπτικά όσους δεν έχουν μερικές ειδικές γνώσεις που χρειάζονται.


Εικ. 1: Περιεχόμενα του αρχείου Word.officeUI

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


Εικ. 2: Περιεχόμενα Word.officeUI με δομή xml

Τώρα τα πράγματα γίνονται πολύ πιο εύκολα. Κατ' αρχάς αγνοείστε τις γραμμές 8-15. Τις έκοψα για οικονομία χώρου και επειδή ο κώδικάς τους δεν διαφέρει από τις διπλανές γραμμές.

Για να αποφύγουμε τα πολύ θεωρητικά, δείτε τη δομή της γλώσσας XML σαν... κουτιά. Το κάθε τι αποτελεί ένα κουτί, που καταλαμβάνει συγκεκριμένο χώρο με αρχή και τέλος. Έτσι, ένα κουτί στον κώδικα του παραδείγματος είναι από το <mso:customUI> μέχρι το </mso:customUI>. Τα όρια ορίζονται πάντα με μια ειδική επισήμανση, ενώ το τέλος διακρίνεται από την κάθετο, η οποία, σε άλλες περιπτώσεις συνοδεύεται και από το όνομα της επισήμανσης, σε άλλες όχι (π.χ. στη γραμμή 6 το τέλος είναι "/>"). Το συγκεκριμένο κουτί, όπως μπορεί να φανταστεί κάποιος από το όνομά του, δηλώνει ότι περιέχει τις προσαρμογές (custom) που επηρεάζουν το γραφικό περιβάλλον του προγράμματος (UI - User Interface).

Εδώ τελειώσαμε; Όχι! γιατί το κουτί <mso:customUI>...</mso:customUI> περιέχει άλλα πράγματα, όπως είναι οι δυο δηλώσεις xmlns:x1 και xmlns:mso, που δεν έχουμε λόγο να αναλύσουμε στο... σημερινό μάθημα, αλλά και ένα ακόμα "υπο-κουτί" με όνομα <mso:ribbon>...</mso:ribbon>. Κι εδώ, όπως ίσως καταλάβατε, αυτό το κουτί περιορίζει την έκταση των προσαρμογών σε μια συγκεκριμένη περιοχή του περιβάλλοντος, την κορδέλα. Όπως φαίνεται δε και στην εικόνα 2, ο κώδικας κάθε υπο-επιπέδου έχει λίγο μεγαλύτερη εσοχή για να μας υπενθυμίζει οπτικά ότι υπάρχει μια διακριτή ιεραρχία επιπέδων και κυρίως για να μη κάνουμε λάθος και ξεπεράσουμε τα όρια του κουτιού. Π.χ. το τέλος τού </mso:ribbon> δεν μπορεί να είναι έξω από το τέλος τού </mso:customUI> που ορίζει το αμέσως ανώτερο επίπεδο.

Εδώ τελειώσαμε; Όχι! γιατί το κουτί <mso:ribbon>...</mso:ribbon> περιέχει άλλα πράγματα...

Αλλά φτάνει ως εδώ. Μέχρι τώρα πρέπει να καταλάβατε το χωροταξικό νόημα της XML. Ας επικεντρωθούμε στο μικρότερο κουτί του αρχείου, που περιέχει τις οδηγίες που "λένε" στο Word ποια θα είναι τα χαρακτηριστικά της εργαλειοθήκης γρήγορης πρόσβασης, που θα είναι κοινά σε όλα τα έγγραφα και πρότυπα (<mso:sharedControls>... </mso:sharedControls>). Ιδιαίτερα δε θα ασχοληθούμε με τις οδηγίες που αφορούν τη διαχείριση των ενσωματωμένων εντολών, που δεν μπορούμε να διαχειριστούμε με τα εργαλεία του Word.

Οι οδηγίες για τις ενσωματωμένες εντολές του Word λοιπόν, αποτελούνται από τρία απαραίτητα στοιχεία:

Οι 13 εντολές που ανέφερα προηγουμένως κρατούν και τις 13 πρώτες θέσεις ταξινόμησης των εντολών και έχουν προκαθορισμένη σειρά. Μπορείτε όμως να αλλάξετε αυτή τη σειρά με την κατάλληλη οδηγία. Για παράδειγμα, στην εικόνα 2 φαίνεται ο κώδικας για τις εντολές που έχω προσθέσει στις γραμμές 18-24. Αυτές, επειδή είναι πρόσθετες στην ΕΓΠ θα εμφανίζονται με τη σειρά που έχω καταχωρίσει τον κώδικα. Επειδή όμως θέλω να "διακόψω" την προκαθορισμένη σειρά των εργαλείων για να παρεμβάλλω αυτά που προσθέτω πρέπει να δηλώσω σε ποιο σημείο κάνω τη διακοπή της σειράς με την εντολή insertBeforeQ. Έτσι, για να εμφανίζονται οι εντολές μου πριν το εργαλείο Λειτουργία αφής/ποντικιού, το δηλώνω στο Word: insertBeforeQ="mso:PointerModeOptions". Διαφορετικά, όπου και να είναι καταχωρημένος ο κώδικας, οι εντολές θα εμφανίζονται μετά το τελευταίο προεπιλεγμένο εργαλείο που εμφανίζεται στην ΕΓΠ.

...Στην πράξη

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


Εικ. 3: Σελίδα προσαρμογής ΕΓΠ (απόσπασμα)

Η εικόνα 3 δείχνει ένα απόσπασμα από τη σελίδα προσαρμογής της ΕΓΠ. (Καρτέλα παρασκηνίου Αρχείο > Επιλογές > Προσαρμογή Γραμμής εργαλείων γρήγορης πρόσβασης). Όπως εμφανίζονται οι εντολές εδώ, έτσι θα εμφανίζονται και στην ΕΓΠ κι απ' ό,τι φαίνεται, οι εντολές που δώσαμε δεν έκαναν και πολλά πράγματα: Μπορεί να πετύχαμε μεν οι εντολές να εμφανίζονται με μια σειρά και μάλιστα πριν την εντολή Λειτουργεία αφής/ποντικιού, όπως ορίσαμε με τον κώδικα, αλλά το εικονίδιο δεν είναι καθόλου κατατοπιστικό για το τι κάνει κάθε εντολή. Κι όπως φαίνεται στην εικόνα, το κουμπί Τροποποίηση είναι απενεργοποιημένο και δεν μπορούμε να το διορθώσουμε. Άρα, θα χρειαστεί να επέμβουμε πάλι στον κώδικα.


Εικ. 4: Εμφάνιση της ΕΓΠ μετά την ενημέρωση του κώδικα

Μπορεί να μην είναι τόσο σπουδαίο, αλλά με τα τρία εικονίδια που δήλωσα έκανα την εμφάνιση της ΕΓΠ πιο αποδοτική. Τώρα ξέρω πιο εικονίδιο αντιπροσωπεύει το στυλ Επικεφαλίδας 1, ποιο το στυλ Επικεφαλίδας 2 και ποιο δένει τις γραμμές μαζί. Μια πινελιά χρειάζεται ακόμα να εξηγήσω πού εξυπηρετεί η Διατήρηση γραμμών μαζί. (Εγώ το ξέρω. Ενδιαφέρομαι για κάποιον άλλον, που θα του δώσω τις τροποποιήσεις μου):


Εικ. 5: Ενημέρωση του κώδικα για εμφάνιση συμβουλής οθόνης στις εντολές της ΕΓΠ

Όπως βλέπετε, η συμβουλή οθόνης δηλώνεται με τις οδηγίες screentip για την επικεφαλίδα, με έντονα γράμματα, και supertip για την επεξήγηση. Θα ήμουν πολύ ικανοποιημένος αν μπορούσα να προσαρμόσω και το πλάτος του πλαισίου με τη συμβουλή οθόνης, αλλά δε βαριέσαι! Ας μείνουμε σ' αυτά που μας επιτρέπει το Word...

Και για να ολοκληρώσουμε, να πω ορισμένα ακόμα για τη συμπεριφορά του Word σε σχέση με τον κώδικα, που θέλουν τη προσοχή σας:

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

Δεύτερον. Προσέξτε στις εντολές τα πεζά-κεφαλαία γιατί παίζουν ρόλο.

Τρίτον. Όποιο πρόγραμμα κι αν χρησιμοποιείτε για την επεξεργασία του κώδικα, το αρχείο πρέπει να αποθηκεύεται σε κωδικοποίηση Unicode (UTF-8). Ειδικά όταν περιέχει και ελληνικό κείμενο.

Τέταρτον. Εδώ "τακτοποίησα" τον κώδικα για να διευκολύνω στην κατανόηση της σύνταξης. Το Word ποσώς το ενδιαφέρει η ομορφιά. Διαβάζει τον κώδικα γραμμικά, έναν - έναν χαρακτήρα όπως τους συναντάει. Γι' αυτό και στο supertip (εικ. 5) δεν έχω αφήσει κενά διαστήματα για να τηρήσω τις εσοχές που λέω στο θεωρητικό μέρος ανωτέρω ότι πρέπει να έχει ο κώδικας. Διαφορετικά το Word θα εμφάνιζε τα κενά διαστήματα και στη συμβουλή οθόνης. Μάλιστα, αν προσέξετε καλύτερα τη συμβουλή οθόνης στην εικόνα 5 ίσως δείτε ότι στο κείμενο, η δεύτερη, τρίτη και τέταρτη γραμμή έχουν μια ελάχιστη εσοχή σε σχέση με την πρώτη. Αυτό οφείλεται στο ότι μετά τον κωδικό του χαρακτήρα αλλαγής γραμμής (&#10;) υπάρχει ο χαρακτήρας του ENTER που πάτησα για να αλλάξω γραμμή, τον οποίο το Word μεταφράζει σε ένα κενό διάστημα. Κανονικά, αμέσως μετά τις αλλαγές γραμμής (&#10;) θα έπρεπε να ακολουθεί το επόμενο κείμενο, όλο σε μια γραμμή. Σε τελική ανάλυση μπορείτε να γράψετε το κείμενο χωρίς τους χαρακτήρες αλλαγής γραμμής. Το Word θα το αναδιπλώσει με βάση το διαθέσιμο πλάτος του πλαισίου που το περιέχει.

Πέμπτον. Όπως ανέφερα, μπορούμε να δηλώσουμε εμείς το εικονίδιο που θέλουμε με τη οδηγία imageMso="". Στα εισαγωγικά θα βάλετε μια τιμή από τον πίνακα εικονιδίων που είναι διαθέσιμος στο site της Microsoft. Το πρόβλημα είναι ότι ο πίνακας έχει μόνο τις ονομασίες των εικονιδίων χωρίς να δείχνει και το αντίστοιχο εικονίδιο. Άρα πώς θα ξέρετε ποιο imageMso ταιριάζει στην εντολή που θέλετε να εκπροσωπεί; Με μια αναζήτηση στο διαδίκτυο θα βρείτε σχετικές σελίδες. Αποφεύγω να τις αναφέρω εδώ γιατί ίσως προκύπτουν ζητήματα πνευματικών δικαιωμάτων της Microsoft.

Θέμα
Προσαρμογή εργαλειοθήκης γρήγορης πρόσβασης για προχωρημένους
Κείμενο
Γιώργος ο Αδαής
Συμβολή
«Modify/Customize QAT Icons, Labels or add Supertip text», gregmaxey.com
Ταυτότητα
30200.006/0063
Έκδοση
4/5/20
Σήμανση
Word.officeUI, customUI.xml, γλώσσα XML, ενσωματωμένη εντολή, screentip, supertip, imageMso

Λεξικό ορολογίας

Όροι χρήσης | πολιτική cookies

© 2010 - 2021, Γιώργος ο Αδαής