libLuna Dokumentacja
PL EN
GitHub

Biblioteka · 77 widgetów

Widgety libLuny

Wszystko, co można narysować i obsłużyć, w jednym miejscu: od Button i Entry po NavigationView, HeaderBar i dialogi. Podglądy nie są makietami — pochodzą z prawdziwego renderera libLuny w jasnym i ciemnym motywie.

Ładowanie…

Wspólny kontrakt

Każdy widget respektuje ten sam rytm: paint rysuje, hit sprawdza trafienie, a click_at lub inna metoda *_at zwraca wynik interakcji. Stan prezentacji (hover, pressed, wartość, kursor) należy do struktury widgetu albo do aplikacji.

rust · wzorzec użycia
let mut widget = Button::new("Zapisz");

// 1. rysowanie — bez zmiany stanu
let mut ctx = PaintCtx::new(scene, &theme, text);
widget.paint(&mut ctx, rect);

// 2. trafienie i reakcja — decyzja po stronie aplikacji
if widget.click_at(rect, pointer) {
    save();
}

Niektóre widgety przyjmują dodatkowo &Theme lub &TextEngine (np. SplitButton::rects, TabBar::click_at). Pełne sygnatury są w indeksie API i w rustdoc.

Aliasy w duchu GTK4 / libadwaita

Jeśli przychodzisz z GTK, część nazw będzie znajoma. Aliasy wskazują na te same typy — nie ma dwóch implementacji.

  • Carousel = Pager
  • ScrolledWindow = ScrollView
  • StackSwitcher = ViewSwitcher
  • Notebook = TabView
  • ListBox = NavList

Cała galeria naraz

Ten sam ekran jest dostępny w demo aplikacji (cargo run --manifest-path apps/luna-demo/Cargo.toml --bin gallery) i jako zrzut offline.

Galeria deweloperskaLista, wyszukiwarka, podgląd i przykład kodu w jednym ekranie.

Gdzie szukać szczegółów