FLTK - FLTK

FLTK
FLTK shadow.svg
Pierwsze wydanie 1998 ; 23 lata temu ( 1998 )
Wersja stabilna 1.3.7 (25 lipca 2021 ; 45 dni temu ) [±] ( 2021-07-25 )
Wersja zapoznawcza 1.4.x-20200821-4c012bd7 (21 sierpnia 2020 ; 12 miesięcy temu ) [±] ( 2020-08-21 )
Magazyn
Napisane w C++
System operacyjny Uniksowy z X11 , macOS , Microsoft Windows , AmigaOS 4
Rodzaj Biblioteka interfejsu użytkownika
Licencja GNU Lesser General Public License w wersji 2 z wyjątkiem umożliwiającym łączenie statyczne
Strona internetowa www .fltk .org

Fast Light Toolkit ( FLTK , wymawiane fulltick ) to wieloplatformowa biblioteka widżetów (graficzny element kontrolny) dla graficznych interfejsów użytkownika (GUI), opracowana przez Billa Spitzaka i innych. Stworzony, aby dostosować się do programowania grafiki 3D , ma interfejs do OpenGL , ale nadaje się również do ogólnego programowania GUI.

Używając własnego widżetu, systemów rysowania i zdarzeń wyabstrahowanych z bazowego kodu zależnego od systemu, umożliwia pisanie programów, które wyglądają tak samo we wszystkich obsługiwanych systemach operacyjnych .

FLTK to darmowe oprogramowanie o otwartym kodzie źródłowym , na licencji GNU Lesser General Public License (LGPL) z dodaną klauzulą ​​zezwalającą na statyczne łączenie z aplikacji z niekompatybilnymi licencjami.

W przeciwieństwie do bibliotek interfejsu użytkownika, takich jak GTK , Qt i wxWidgets , FLTK używa lżejszej konstrukcji i ogranicza się do funkcjonalności GUI. Z tego powodu biblioteka jest bardzo mała (program FLTK "Hello World" ma około 100 KiB ) i zwykle jest połączona statycznie . Pozwala również uniknąć złożonych makr, oddzielnych preprocesorów kodu i korzystania z niektórych zaawansowanych funkcji C++ : szablonów, wyjątków i informacji o typie czasu wykonywania (RTTI) lub, w przypadku FLTK 1.x, przestrzeni nazw . W połączeniu ze skromnym rozmiarem pakietu sprawia to, że nauka jest stosunkowo łatwa dla nowych użytkowników.

Te zalety mają odpowiednie wady. FLTK oferuje mniej widżetów niż większość zestawów narzędzi GUI, a ze względu na użycie nienatywnych widżetów nie ma natywnego wyglądu i działania na żadnej platformie.

Znaczenie nazwy

FLTK został pierwotnie zaprojektowany tak, aby był kompatybilny z Biblioteką formularzy napisaną dla maszyn Silicon Graphics (SGI) (pochodna tej biblioteki o nazwie XForms jest nadal dość często używana). W tej bibliotece wszystkie funkcje i struktury zaczynają się od fl_. To nazewnictwo zostało rozszerzone na wszystkie nowe metody i widżety w bibliotece C++, a ten przedrostek FLzostał przyjęty jako nazwa biblioteki. Po wydaniu FL jako open source odkryto, że wyszukiwanie „FL” w Internecie było problemem, ponieważ jest to również skrót od Florida . Po wielu debatach i poszukiwaniach nowej nazwy dla zestawu narzędzi, która była już używana przez kilka osób, Bill Spitzak wymyślił Fast Light Tool Kit (FLTK).

Architektura

FLTK to zorientowany obiektowo zestaw narzędzi widgetów napisany w języku programowania C++ . Podczas gdy GTK jest głównie dla X Window System , FLTK działa na innych platformach, w tym Microsoft Windows (interfejs z Windows API ) i OS X (interfejs z Quartz ). Wayland back-end jest dyskutowany. FLTK2 zyskał eksperymentalne wsparcie dla opcjonalnego korzystania z biblioteki graficznej cairo .

Wiązania językowe

Biblioteka napisana w jednym języku programowania może być używana w innym języku, jeśli napisane są powiązania języka . FLTK posiada szereg wiązań dla różnych języków.

FLTK został zaprojektowany głównie i jest napisany w języku programowania C++ . Istnieją jednak powiązania dla innych języków, na przykład Lua , Perl , Python , Ruby , Rust i Tcl .

Dla FLTK 1.x ten przykład tworzy okno z przyciskiem OK :

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>

int main(int argc, char *argv[]) {
   Fl_Window* w = new Fl_Window(330, 190);
   new Fl_Button(110, 130, 100, 35, "Okay");
   w->end();
   w->show(argc, argv);
   return Fl::run();
}

Projektanci GUI

FLTK zawiera Fast Light User Interface Designer ( FLUID ), graficzny projektant GUI , który generuje pliki źródłowe i nagłówkowe C++ .

Posługiwać się

Wiele programów i projektów korzysta z FLTK, w tym:

  • Nanolinux , 14 MB dystrybucja Linuksa
  • XFDOS, dystrybucja oparta na FreeDOS z graficznym interfejsem użytkownika , przenosząca Nano-X i FLTK
  • Agenda VR3 , A Linux -na osobisty asystent cyfrowy z oprogramowaniem opartym na FLTK.
    • oprogramowanie Agenda VR3 innej firmy
  • Amnesia: The Dark Descent od Frictional Games używa FLTK jako aplikacji uruchamiającej
  • MwendanoWD , puzzle logiczne na komputer osobisty firmy YPH.
  • Audio:
    • Fldigi , oprogramowanie radia amatorskiego , umożliwia transmisję danych i czat tekstowy za pośrednictwem trybów cyfrowych, takich jak PSK31
    • Giada, looper, mikrosekwencer, oprogramowanie odtwarzacza sampli, open-source
    • Prodatum, edytor ustawień syntezatora, wykorzystuje realistyczny projekt interfejsu
    • ZynAddSubFX , syntezator oprogramowania o otwartym kodzie źródłowym
  • DiSTI GL Studio, narzędzie do tworzenia interfejsu człowiek-maszyna
  • Inżynieria:
    • ForcePAD, intuicyjne narzędzie do wizualizacji zachowania konstrukcji poddanych obciążeniom i warunkom brzegowym
    • Gmsh , generator siatki elementów skończonych typu open source
    • RoboCIM, oprogramowanie do symulacji i sterowania pracą systemu serwo robota i urządzeń zewnętrznych
  • Środowisko pulpitu Equinox (EDE)
  • Oprogramowanie do nagrywania dysków optycznych FlBurn dla systemu Linux
  • Grafika:
    • Avimator , redaktor Hierarchii Biowizji (BVH)
    • CinePaint , oprogramowanie do głębokiego malowania, migracja z GTK do FLTK, open-source
    • ITK-SNAP , aplikacja do segmentacji obrazów medycznych, open-source
    • Nuke , cyfrowy program do komponowania. Do wersji 5, teraz zastąpione przez Qt
    • Otwórz edytor filmów
    • OpenVSP, parametryczne szkicowanie samolotów NASA, niedawno udostępnione na zasadach open source
    • PosteRazor, oprogramowanie do drukowania plakatów typu open source dla systemów Windows, OS X, Linux
    • Tilemap Studio, edytor map kafelkowych typu open source dla projektów Game Boy, Color, Advance, DS i SNES
  • SmallBASIC , port Windows
  • Przeglądarki internetowe:
    • Dillo , Dillo-2 był oparty na FLTK-2, porzucenie tej gałęzi FLTK, bez oficjalnego wydania, było główną przyczyną uruchomienia Dillo-3 przy użyciu FLTK1.3
    • Po piąte, powiela funkcjonowanie wczesnej Opery
    • NetRider
  • Wizualizator mózgu: interaktywny wizualizator typu open source do trójwymiarowych modeli mózgu na dużą skalę. Część systemu symulacji organizacji mózgu (BOSS) opracowanego na Uniwersytecie Stony Brook
  • Menedżery okien X :

Wersje

Ta historia wersji jest przykładem czasami burzliwej natury rozwoju oprogramowania typu open source .

1.0.x

To jest poprzednia stabilna wersja, teraz nieutrzymywana.

1.1.x

To jest poprzednia stabilna wersja, teraz nieutrzymywana.

Oddział 2.0

Była to gałąź programistyczna, od dawna uważana za kolejny krok w ewolucji FLTK, z wieloma nowymi funkcjami i czystszym stylem programowania. Nigdy nie osiągnął stabilności, a rozwój w dużej mierze ustał. Oddział jest teraz nieaktywny.

1.2.x

Była to próba wzięcia niektórych z najlepszych funkcji 2.0 i połączenia ich z powrotem do bardziej popularnej gałęzi 1.1. Nie jest już rozwijany.

1.3.x

Aktualna stabilna wersja. Zapewnia obsługę UTF-8.

1.4.x

Aktualna gałąź rozwoju. Dodaje więcej funkcji do 1.3.

Oddział 3.0

Ta gałąź to przede wszystkim konceptualny model przyszłej pracy. Teraz nieaktywny.

Zobacz też

Bibliografia

Zewnętrzne linki