Παρασκευή 13 Σεπτεμβρίου 2019

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

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

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

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

  • Οι εντολές που ορίζουν τη γενική λειτουργία της ΕΓΠ είναι αποθηκευμένες σε ένα αρχείο με το όνομα Word.officeUI, στον φάκελο %LocalAppData%\Microsoft\Office. (Όταν πρωτοεμφανίστηκε το περιβάλλον με την κορδέλα και την ΕΓΠ στο Word 2007, το αρχείο είχε όνομα Word.qat, ενώ κάπου είδα ότι στο Word 2010, και 2013 είχε όνομα Word.customUI, αλλά πρόκειται για λάθος).
  • Οι αλλαγές της ΕΓΠ που είναι συνημμένες σε ένα πρότυπο ή αρχείο είναι αποθηκευμένες σε ένα αρχείο με το όνομα customUI.xml, που είναι μέρος του συγκεκριμένου προτύπου ή εγγράφου.
    Κανένα από τα δύο αρχεία δεν υπάρχει από πριν. Δημιουργούνται τη στιγμή που θα κάνετε την πρώτη αλλαγή, είτε προσθέτοντας μια εντολή, είτε αλλάζοντας τη σειρά ταξινόμησής τους.

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


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

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


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

Για να αποφύγουμε τα πολύ θεωρητικά, δείτε τη δομή της γλώσσας 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 λοιπόν, αποτελούνται από τρία απαραίτητα στοιχεία:

  • Ο τύπος
    Η εμφάνιση που έχει η κάθε εντολή στο γραφικό περιβάλλον του Word. Ο τύπος μπορεί να είναι control, button, gallery, checkBox κ.ά. Μια λίστα με όλους τους τύπους είναι διαθέσιμη σε μορφή αρχείου Excel που μπορείτε να κατεβάσετε από το site της Microsoft.
  • Το αναγνωριστικό
    Κάθε εντολή του Word διακρίνεται από το αναγνωριστικό της (ID). Εμφανίστε τη σελίδα ρυθμίσεων της κορδέλας ή της ΕΓΠ στο πλαίσιο Επιλογές του Word και τοποθετήστε προσωρινά τον δείκτη σε μία από τις εντολές που εμφανίζονται στις λίστες αυτών των σελίδων. Το ID αναφέρεται μέσα σε παρένθεση, όπως: Δημοφιλείς εντολές | Στοίχιση αριστερά (AlignLeft). Όλα τα αναγνωριστικά αναφέρονται στο ίδιο αρχείο Excel που ανέφερα προηγουμένως.
  • Η εμφανισιμότητα
    Η τιμή που θα δηλώνει αν η εντολή θα εμφανίζεται στην ΕΓΠ ή όχι (visible="true" ή visible="false" αντίστοιχα). Όπως μπορείτε να διαπιστώσετε, αν δεν έχετε προσαρμόσει τον κώδικα του αρχείου, οι εντολές Αποθήκευση, Αναίρεση και Επανάληψη έχουν τιμή "true" καθώς είναι οι εντολές που εμφανίζονται από προεπιλογή στην ΕΓΠ.

    Εδώ είναι το σημείο για μια επισήμανση: Οι γραμμές 6-17, καθώς και η γραμμή 25 αφορούν τις 13 εντολές που έχει το μενού της ΕΓΠ και που εμφανίζεται όταν κάνετε κλικ στο βελάκι που υπάρχει στη δεξιά πλευρά της. (Σε παλαιότερες εκδόσεις οι εντολές ήταν 11). Αν θέλετε μπορείτε να τις προσαρμόσετε, για να εμφανίσετε ή όχι το αντίστοιχο κουμπί της ΕΓΠ, αλλάζοντας την τιμή visible σε "true" ή "false" αντίστοιχα, αλλά δεν τις διαγράφετε.

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

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

Ωραία! Τώρα που μάθατε 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

Ταυτότητα
3.01.007/0092
Έκδοση
13/9/19

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου