Pasek przesuwania

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Pasek przesuwania (ang. scrollbar) jest dość prostym i ogólnym widżetem. Najczęściej służy do przesuwania zawartości innego widżetu, która jest większa, niż przewidziana powierzchnia do wyświetlania tej zawartości. Wiele złożonych widżetów zawiera taki pasek, często nawet tworzony dynamicznie (tzn. nie pojawia się, dopóki wszystko się mieści w wyznaczonych wymiarach).

Paski przesuwania związane z istniejącymi widżetami są obsługiwane automatycznie przez sam widżet. Inna sprawa jest w przypadku widżetów definiowanych przez użytkownika. Użytkownik musi wtedy taki widżet zarówno sam narysować, jak też samemu określić, którą część widżetu aktualnie ma wyświetlać.

Pasek przesuwania można konfigurować pod względem parametrów działania: wielkość "powierzchni chwytnej" oraz delty przesunięcia podczas jego używania przez użytkownika. Pasek zwykle powinien być tak skonstruowany, żeby odległość o jaką przesuwa się "zawartość widżetu" była identyczna, jak wartość, o jaką przesuwa się "powierzchnię chwytną" paska przesuwania.

Pasek przesuwania generuje następujące zdarzenia:

  • przewijanie o linijkę/kolumnę (podpięte do klawiszy kierunkowych)
  • przewijanie o stronę (podpięte do PageUp/PageDown, ale tylko góra-dół, czasem też shift z klawiszami kierunkowymi)
  • przewijane do pozycji (po kliknięciu na powierzchnię boczną, czyli to obok powierzchni chwytnej)
  • przewijanie o "piksel" (po kliknięciu na przyciski strzałek na końcach paska)

Ponadto pasek przesuwania generuje zdarzenie kręcenia kółkiem od myszki. Nie jest to zdarzenie standardowe, a jego obsługa diametralnie różni się w systemie Microsoft Windows i w systemie X Window System. W systemie MS Windows generowane są dwa zdarzenia. Domyślnie przewijany jest pasek, który posiada skupienie, ale programista może wybrać, aby zdarzenie przekazane było widżetowi, nad którym stoi kursor. Natomiast na systemie X Window kręcenie kółkiem jest traktowane jak naciskanie czwartego i piątego przycisku myszki. Zdarzenie przesyłane jest zatem do widżetu nad którym stoi kursor, tak jak to ma miejsce w przypadku pozostałych klawiszy myszy.