Customize Toolbar#
Podstawowe informacje#
- Wersja: 4.2
- Architektura: 32-bit i 64-bit
- Źródło: SourceForge
- Autor: DW-dev
- Przeznaczenie: Daje kontrolę nad przyciskami umieszczanymi na Pasku narzędzi.
Dodatkowe materiały:
Instalacja#
Proces instalacji wtyczki przebiega w sposób standardowy. Finalnie na całą wtyczkę składają się następujące pliki i foldery:
NPP\plugins\_CustomizeToolbar\_CustomizeToolbar.dllNPP\plugins\Config\CustomizeToolbar.dat- pojawia się po pierwszym zamknięciu NPP.NPP\plugins\Config\CustomizeToolbar.btn- pojawia się po włączeniu opcjiCustom Buttons(jeśli sami nie utworzymy takiego pliku).
Menu wtyczki#
U góry na Pasku menu plugin tworzy następujące menu wtyczki:

Rysunek. Customize Toolbar - menu wtyczki w domyślnym stanie
Opis#
Wtyczka daje pełną kontrolę nad wszystkimi przyciskami widocznymi na Pasku narzędzi. Na starcie wtyczka definiuje 29 dodatkowych przycisków dla najczęściej używanych poleceń w NPP. Oczywiście standardowe przyciski pochodzące z samego programu, jaki i przyciski z dogranych w późniejszym czasie pluginów (jeśli istnieją), również zostają obsłużone przez wtyczkę.
Zarządzanie przyciskami#
Kiedy wtyczka zostaje po raz pierwszy zainstalowana to żadne dodatkowe przyciski nie są jeszcze wyświetlane na Pasku narzędzi. Kontrolę nad przyciskami przeprowadza się za pośrednictwem okna Dostosowanie paska narzędzi #, które przywołujemy klikając u góry na Pasku menu kolejno Wtyczki >> Customize Toolbar >> Customize....

Rysunek. Customize Toolbar - okno Dostosowanie paska narzędzi
W oknie tym możemy dowolnie manewrować wyświetlaniem i położeniem poszczególnych przycisków. Udostępniono także opcję powrotu do pierwotnego położenia standardowych przyciski programu poprzez kliknięcie na przycisk Zresetuj. Warto poświęcić nieco czasu i powyciągać sobie najważniejsze lub najczęściej przez nas używane przyciski. Poszczególne grupy przycisków spełniających podobne zadania można oddzielać od siebie przyciskiem Separator.
Gdy liczba przycisków na Pasku narzędzi będzie większa niż szerokość głównego okna programu, to niewidoczne przyciski zostaną zwinięte do jednej listy dostępnej przez dedykowany wskaźnik >>. Dodatek umożliwia włączenie opcji Wrap Toolbar, która rozłoży przyciski na wiele wierszy, przez co zawsze pozostaną widoczne, niezależnie od szerokości głównego okna programu.
Od wersji 4.0 wprowadzono szereg udogodnień. Dwukrotne kliknięcie lewym przyciskiem myszy w wolnym obszarze Paska narzędzi automatycznie otworzy okno Dostosowanie paska narzędzi. Istnieje też osobny przycisk Customize... (z ikonką
) otwierający omawiane okno, który można sobie wyciągnąć na Pasek narzędzi. Wszystkie przyciski na Pasku narzędzi można wprost przeciągać i upuszczać klikając je lewym przyciskiem myszki z jednoczesnym wciśnięciem klawisza Shift. Wynika z tego kilka ciekawych zachowań:
- Jeśli przeciągniemy ostatni przyciska za siebie samego to pojawi się nowy separator przed tym przyciskiem.
- Jeśli przeciągniemy ostatni przycisk na Pasek kart to pojawi się nowy separator przed tym przyciskiem, a jak na Pasek menu to separator zostanie usunięty (jeśli jakiś separator istniał przed tym przyciskiem).
- Jeśli przeciągniemy przedostatni przycisk na Pasek menu to pojawi się nowy separator przed tym przyciskiem.
- Jeśli przeciągniemy pierwszy przycisk po prawej stronie separatora na ten separator, to separator zostanie usunięty.
- Nie da się przemieszczać samych separatorów za pomocą przeciągania, można to zrobić pośrednio przeciągając inne przyciski.
- Jeśli przeciągniemy dowolny przycisk w Obszar edycji, na kontener lewy/prawy/górny/dolny, na Pasek tytułu, na Pasek stanu lub poza główne okno programu to przycisk zniknie z Paska narzędzi, ale wciąż pozostanie dostępny w oknie Dostosowanie paska narzędzi.
Powyższe sztuczki pozwalają pominąć okno Dostosowanie paska narzędzi przy przemieszczaniu już wyciągniętych przycisków widocznych na Pasku narzędzi. Z drugiej jednak strony okno to zapewnia kompleksowe sterowanie wszystkimi przyciskami (widocznymi jak i niewidocznymi), i w pewnych sytuacja skorzystanie z niego jest wręcz niezbędne.
Tworzenie dodatkowych przycisków#
Prawdziwą siłą omawianej wtyczki jest możliwość tworzenia własnych przycisków dostępna od wersji 3.0 (relase note, info z forum). Dotyczy to dowolnej opcji NPP jak i dogranych pluginów. Cały proces powinien przebiegać w następujący sposób:
Instrukcja obsługi (w języku angielskim) znajduje się w opcjach wtyczki, wystarczy wybrać u góry na Pasku menu kolejno Wtyczki >> Customize Toolbar >> Help - OverView lub Help - Custom Buttons.
Definicje przycisków umieszcza się w pliku
CustomizeToolbar.btnw folderzeNPP\plugins\Config. Plik ten musi używać kodowania Unicode UTF-16 Little Endian, z opcjonalnym znakiem BOM oraz znakami nowej linii CR-LF.Jeśli wspomnianego pliku nie będzie to należy go utworzyć samodzielnie. Można w tym celu skorzystać z samego NPP po prostu tworząc nowy plik i wybierając u góry na Pasku menu kolejno
Format >> Koduj w UCS-2 LE BOM. Można też utworzyć nowy plik windowsowym Notatnikiem i przy zapisie poprzezPliki >> Zapisz jako...wybrać kodowanie Unicode.Trzecią możliwością będzie wybranie u góry na Pasku menu kolejno
Wtyczki >> Customize Toolbar >> Custom Buttons, co spowoduje automatyczne utworzenie prawidłowego pliku (jeśli do tej pory nie istniał), ale z domyślną definicją dwóch przycisków. Należy wyedytować plik i usunąć zbędne wpisy.Deklarujemy właściwą dla nas liczbę przycisków (maksymalnie 100) za pomocą definicji. Każdą definicję dla kolejnego przycisku umieszczamy w nowej linii. Poszczególne definicje można rozdzielać między sobą pustymi linami, które nie mogą zawierać żadnego znaku, nawet spacji, w przeciwnym razie zostaną potraktowane jak błędne definicje.
Definicja # w swojej pełnej postaci składa się z pięcioelementowej list, gdzie separatorem między elementami jest przecinek, co można wyrazić zapisem
A,B,C,D,E. Pierwsze cztery elementy to łańcuchy znakowe określające położenia danego polecenia na Pasku menu (wliczając w to zagnieżdżenia), a ostatni to ścieżka do pliku ikonki przycisku.W zależności od poziomu zagnieżdżenia danego polecenia elementy
CiDmogą nie występować, podobnie jest ze ścieżką do pliku ikonki reprezentowaną przez elementE, którą można pominąć (wówczas użyta zostanie domyślna ikonka kolorowego młotka #
). Następujące zapisy są poprawne i oznaczają jedną i tę samą definicję: A,BlubA,B,lubA,B,,lubA,B,,,.Własna ikonka dla przycisku zawsze wymaga podania listy pięcioelementowej, tj. musi ona zawierać 4 przecinki, gdzie za ostatnim przecinkiem podajemy ścieżkę do pliku ikonki, przykładowo
A,B,,,E. Kiedy ścieżka wskazuje na nieistniejący plik ikonki to ponownie użyta zostanie domyślna ikonka kolorowego młotka.Jeśli definicja wskazuje na polecenie z przypisanym standardowym przyciskiem wewnątrz NPP to zostanie on zastąpiony przez tę definicję. Alternatywnie do zmiany ikonek w standardowych przyciskach NPP można skorzystać z wbudowanego rozwiązania w postaci pliku
NPP\toolbarIcons.xml(szczegóły).Jeśli kilka prawidłowych definicji określa to samo polecenie to użyta zostanie ta ostatnia.
W przypadku błędnie utworzonej definicji (np. poprzez niewłaściwe określenie położenia danej opcji w menu) użyta zostanie domyślna ikonka szarego młotka #
, chyba że definicja zawiera prawidłową ścieżkę do pliku ikonki, to zamiast młotka pojawi się ta ikonka, ale z wymuszoną konwersją do szarych barw, dla przykładu ikonka
zmienia się w
. Błędna definicja (choćby linia z jedną spacją) zawsze tworzy przycisk, po najechaniu którego pojawi się dymek z odpowiednim komunikatem Custom Button Error: xxx. Szary kolor przycisku nie zawsze oznacza błędną definicję, niektóre przyciski posiadają dwa stany wyrażane kolorem lub szarością. Opis umieszczany w dymku po najechaniu myszą na przycisku to najpewniejszy sposób weryfikacji poprawności definicji.Ikonki dla przycisków muszą być plikami z rozszerzeniem
.bmp, w formacie 16x16 oraz z 8-bitową głębią kolorów. Wszelkie piksele tego samego koloru, co lewy dolny piksel, będą przezroczyste.Jeśli chodzi o położenie ikonek to zaleca się umieszczać je wprost w katalogu
NPP\plugins\Config. Nie jest to jednak sztywna reguła. Można definiować ścieżki relatywne, gdzie folderem startowym (polecenie./lub/) jest katalog wtyczki. Pozwala to współdzielić te same pliki ikonek między różnymi wersjami programu (polecenie../przechodzi o 1 folder wyżej, polecenie../../przechodzi o dwa foldery wyżej, itd.). W ścieżkach można używać zamiennie znaków/i\.Polecam ściągnięcie darmowego zestawu ikonek FamFamFam (zawiera 1000 ikonek).
Po włączeniu u góry na Pasku menu opcji
Wtyczki >> Customize Toolbar >> Custom Buttonsi ponownym uruchomieniu NPP przyciski powinny pojawić się na Pasku narzędzi. Można nimi manewrować wprost lub za pomocą okna Dostosowanie paska narzędzi.
Poniżej zamieszczam poprawną zawartość pliku NPP\plugins\Config\CustomizeToolbar.btn z definicjami dla paru przycisków:
Edycja,Tablica znaków Edycja,Tablica znaków, Edycja,Tablica znaków,, Edycja,Tablica znaków,,, Edycja,Tablica znaków,,,z_ascii.bmp Ustawienia,Ustawienia...,,,z_config.bmp Ustawienia,Skróty klawiszowe...,,,z_shortcut.bmp Wtyczki,Color Picker,Color Picker,,../../../wspolne/z_color1.bmp Wtyczki,Quick Color Picker +,Enable Quick Color Picker,,../../../wspolne/z_color2.bmp Wtyczki,Color Picker,Color Picker,,ikonki/color1.bmp Wtyczki,Color Picker,Color Picker,,/ikonki/color1.bmp Wtyczki,Color Picker,Color Picker,,./ikonki/color1.bmp
Wskazówki#
Ważnym jest, że w przeciwieństwie do konfiguracji menu kontekstowego Obszaru edycji, tutaj w deklaracjach przycisków wszystkie nazwy z Paska menu należy podawać zgodnie z aktualnie wybranym tłumaczeniem (bezpośrednie odwołanie do numeru ID polecenia nie jest wspierane przez wtyczkę). Ponadto trzeba zachować precyzję z dokładnością do jednego znaku w nazwie (nawet białego, np. spacji). W przeszłości zdarzało się, że w polskim tłumaczeniu niektórym poleceniom niepotrzebnie dostawiano znaki spacji na końcu ich nazw, np. "Tablica znaków ". Patrząc jedynie na GUI programu jest to niemożliwe do wykrycia, a próba utworzenia definicji bez tej jednej spacji oczywiście powodowała pojawienie się przycisku z domyślną ikonką szarego młotka. Uczulam przed tego typu kwiatkami.
Kolejnym # problemem mogą być notoryczne zmiany w polskim tłumaczeniu. Jeśli przy aktualizacji NPP niechcący lub świadomie usuniemy plik NPP\nativeLang.xml to otrzymamy aktualną wersję tłumaczenia. Kłopot polega na tym, że z niewiadomego mi powodu, niektóre osoby ciągle gmerają w polskim tłumaczeniu, niekiedy zmieniając już utrwalone nazwy ich analogicznymi wersjami, np. Ustawienia vs Preferencje, Pluginy vs Wtyczki, Skróty klawiaturowe vs Skróty klawiszowe, można wymieniać bez końca. Jeśli w definicjach przycisków korzystaliśmy ze zmienionych nazw to staną się one nieprawidłowe i w zamian otrzymamy przyciski z domyślną ikonką szarego młotka. W razie problemów należy skorygować definicje dla wszystkich niedziałających przycisków.