Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
78
3.pierwSzeokno
3.4.3.
Skrótyklawiaturowemenu
Wszystkieznanemimenu,zjakimispotkałemsięwróżnychprogramach,zawszeudostępniałyskróty
klawiaturowedonajbardziejtypowychlubnajczęściejużywanychopcji.Skrótyklawiaturowetak
powszechne,żedoczekałysięswoistegostandardu,zgodniezktórymposzczególnymibardzokon-
kretnymfunkcjomprogramuprzypisujesiętesameskróty,niezależnieodaplikacjilubjejtwórcy.
Wszelkieodstępstwaodzasadspotykająsięnajczęściejzniechęciąużytkownikówprogramu,asame
skrótywyglądająprzytymnienaturalnie.Wyobraźsobie,żeinicjujeszdrukowaniedokumentukombi-
nacjąklawiszyCtrl+A,aakcjęwklejaniazawartościschowkakombinacjąCtrl+N.Niedopomyślenia,
prawda?Dlategowłaśniebardzoważnejestprzemyślaneiefektywnewyposażeniemenuwodpowied-
nieskrótyklawiaturowe.
Skrótyklawiaturowemenupowszechniewystępująwdwóchformach.Pierwsząznichjestsystem
nawigacjipomenu,opartynakombinacjachklawiszaAltzróżnymiinnymiklawiszami,drugązaś
jestsystemdowolnychskrótówklawiaturowych,inicjującychkonkretneakcjezwiązanezpozycjami
menu(czylinp.wszystkimznanyiwspomnianyjużskrótCtrl+A).
ImplementacjaskrótówklawiaturowychwmenuwxWidgetsjestniezwykleprosta.Pierwszyze
wspomnianychtypówskrótówuzyskujemyprzezdodanieprzedjednązliterskładającychsięna
etykietępozycjimenuznakuampersand(&),czylitzw.potocznieetki.Drugitypskrótówklawiatu-
rowychtworzymyprzezokreśleniekombinacjiklawiszytużpoetykieciepozycjimenu,oddzielając
odniejdefinicjęskrótuzapomocąznakutabulatora\t.Separatoremkombinacjiklawiszyjestwtym
przypadkukrótkidywiz(myślnik).Najlepiejzobrazujetoprzykład.Zmodyfikujterazkodprogramu
zgodnieztymkodem:
mFile->AppendCheckItem(wxID_ANY,wxT("Pokaż&datę\tCtrl-D"),wxT("Pokazujedatę"));
mFile->Append(wxID_ANY,wxT("Pokaż&wersjęsystemu\tCtrl-W"),
wxT("Pokazujewersjęsystemu"));
mFile->AppendSeparator();
mFile->Append(wxID_ANY,wxT("&Zamknijprogram\tCtrl-X"),wxT("Zamykaprogram"));
mHelp->Append(wxID_ANY,wxT("&Oprogramie\tF1"),wxT("Oprogramie"));
mb->Append(mFile,wxT("&Plik"));
mb->Append(mHelp,wxT("P&omoc"));
this->SetMenuBar(mb);
Rysunek3.5.Przykładowykodwakcji,czylirealizacjaskrótówklawiaturowychmenuwUbuntuLinux.Podkreślenia
skrótówzrealizowanychzapomocąznakuampersandstająsięwidocznedopieropowciśnięciuklawiszaAlt