IUP
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 15. března 2021; kontroly vyžadují
7 úprav .
IUP je multiplatformní knihovna základních prvků grafického uživatelského rozhraní využívající C a Lua . S jeho pomocí můžete vytvářet rychlé, grafické aplikace, které nevyžadují kompilaci.
Podporované jazyky a platformy
Na Linuxu a dalších unixových operačních systémech funguje přes Gtk , Motif / Lesstif nebo přímou interakci s X serverem . V systému Windows používá grafické funkce tohoto operačního systému. V roce 2017 byly představeny backendy, které umožňují vyvíjet nativní aplikace pro MacOS [2] , iOS [3] , Android [4] pomocí IUP , a také webové aplikace využívající Emscripten [5] [6] .
Knihovna je napsána v C a její architektura ji umožňuje používat poměrně přirozeným způsobem z objektově orientovaného kódu C++ . Vyvinutý na Katolické univerzitě v Rio de Janeiru [7] , stejně jako Lua , podporuje integraci s tímto skriptovacím jazykem hned po vybalení.
K dispozici jsou také knihovny obalů pro použití IUP v mnoha jazycích, jako je Ruby [8] , Euphoria [9] , FreeBasic [10] , Perl [11] , Schéma [12] , Eiffel [13] , Nim [14] a další.
Funkce
IUP tradičně používá k popisu zdrojových souborů jazyk LED , který je v moderních verzích knihovny považován za zastaralý a je nahrazen jazykem Lua . Je možné vytvářet IUP aplikace bez použití LED nebo Lua, pouze pomocí C API.
Knihovna také obsahuje jednoduché RAD IDE vyvinuté v roce 1994 IupVisualLED [15] , které umožňuje editaci GUI dialogů v režimu blízkém WYSIWYG . IupVisualLED také umožňuje exportovat výsledný kód do LED, Lua nebo C. Pro práci se skripty Lua obsahuje IUP IupLuaScripter, editor kódu Lua s podporou ladění.
IUP má poměrně minimalistické API (asi sto funkcí C) a liší se od jiných podobných knihoven způsobem, jakým implementuje 4 důležité koncepty:
- Čas vytvořit ovládací prvky . Když je vytvořen widget , není okamžitě zobrazen v OS . Provádí se, když je zobrazen dialog obsahující widget, nebo ručním voláním funkce IupMappro tento dialog.
- Systém atributů . V IUP je velmi málo funkcí, protože hlavním způsobem práce s widgety je přístup k jejich atributům (typ textu) pomocí funkcí IupSetAttribute a IupGetAttribute.
- Abstraktní umístění rozložení . Widgety v IUP nejsou nikdy umístěny podle explicitních souřadnic; jejich pozice se počítají dynamicky, podle abstraktní hierarchie rozvržení definované kontejnerovými widgety IupFill, IupHboxatd IupVbox. (avšak explicitní umístění je povoleno uvnitř kontejnerových widgetů speciálního typu).
- Systém zpětného volání . Jazyk LED podporuje nepřímé propojení widgetů s funkcemi zpětného volání . Chcete-li svázat funkci C, použijte konstrukt IupSetFunction имяnásledovaný svázáním atributů zpětného volání pomocí IupSetAttribute. Můžete také přímo svázat widget se zpětným voláním pomocí IupSetCallback.
Návrh IUP odstranil omezení třídy/typu instancí objektu, ale zachoval hierarchii dědičnosti ve stylu Lua (viz prototypové programování ).
Počínaje verzí 3.9 IUP podporuje řetězce UTF-8 .
Další funkce
Kromě vytváření widgetů nabízí IUP řadu dalších funkcí:
- výkres;
- vytváření polí a hash tabulek;
- práce se strunami;
- získávání informací o písmech;
- získávání informací o systému.
Licence
IUP je k dispozici ke stažení, bezplatnému použití, úpravám, komerčnímu použití a distribuci pod licencí MIT [16] .
Poznámky
- ↑ Projekt iup Open Source na Open Hub: Stránka jazyků - 2006.
- ↑ Projekt IupCocoa na GitHubu
- ↑ Projekt IupCocoaTouch na GitHubu
- ↑ Projekt IupAndroid na GitHubu
- ↑ Projekt IupEmscripten na GitHubu
- ↑ Lua Workshop 2017: IUP Next – Eric Wing a Chris Matzenbach na YouTube
- ↑ Součástí vývojářů IUP jsou také vývojáři Lua
- ↑ Ruby-IUP Archivováno 14. dubna 2011 na Wayback Machine ( úložiště zdrojového kódu Archivováno 11. června 2018 na Wayback Machine na githubu )
- ↑ EuIup . Získáno 26. dubna 2011. Archivováno z originálu 14. července 2012. (neurčitý)
- ↑ Portable GUI toolkit (IUP) verze 3.0 (RC2) Archivováno 4. února 2010 na Wayback Machine na fóru FreeBasic
- ↑ perl-iup . Získáno 26. dubna 2011. Archivováno z originálu 11. června 2018. (neurčitý)
- ↑ IUP: IUP (downlink) . Datum přístupu: 29. května 2012. Archivováno z originálu 9. března 2011. (neurčitý) Archivováno z originálu 9. března 2011.
- ↑ eiffel-iup Archivováno 26. září 2019 na Wayback Machine - knihovna sady nástrojů IUP pro GOBO Eiffel
- ↑ IUP-wrapper je archivován 26. ledna 2017 v části Wayback Machine standardní knihovny Nim
- ↑ Oliveira Prates, R.; Gattass, M. a Figueiredo, LH Vizuální LED: Interaktivní rozhraní pro grafické rozhraní (port.) // M.Sc. disertační práce, Katedra informatiky. - PUC-Rio , 1994. Archivováno z originálu 2. září 2009.
- ↑ Licence knihovny Tecgraf . Získáno 15. září 2009. Archivováno z originálu 22. října 2009. (neurčitý)
Odkazy
Toolkity (sady) prvků GUI |
---|
na nízké úrovni |
|
---|
vysoká úroveň | OS Amiga |
|
---|
MacOS a macOS |
- Kakao
- macapp
- MacZoop
- Elektrárna
|
---|
Okna |
|
---|
UNIX , pod X |
|
---|
Více platforem _ | Na bázi Flash |
|
---|
Založeno na XML, AJAX nebo SVG |
|
---|
Založený na Javě |
|
---|
Založeno na C nebo C++ |
|
---|
Založeno na Common Lisp |
|
---|
Založeno na Pascalu |
|
---|
Založeno na Pythonu |
|
---|
Na základě Objective-C |
|
---|
|
---|
|
---|