inputs.md 9.2 KB

Bevitel

Szöveg

Kirajzol egy szövegbeviteli mezőt. A bufferben egy nullával lezárt UTF-8 sztringnek kell lennie. Alapból bármilyen nem vezérlőkaraktert elfogad, de ez tovább szűkíthető: UI_FILTER_ID (egy UNIX azonosító), UI_FILTER_VAR (változónév, mint a UNIX azonosító, csak nem kezdődhet számmal), UI_FILTER_EXPR (kifejezés, mint a változó plusz zárójelek és operátorok), és UI_FILTER_HEX (csak a hexadecimálishoz szükséges 0-9A-F gombokat engedi). Az UI_FILTER_PASS nem a bementet, hanem a kimenetet szűri, csillagokat jelenít meg. Beillesztés is működik. Ha az ui_textosk.h modul be van húzva, akkor bevitelkor megjelenít szoftveresen egy billentyűzetet a képernyőn, egyébként az OS-specifikus OSK csak akkor jelenik meg, ha a platform támogatja azt.

Paraméter Leírás
form->type UI_TEXT
form->ptr Mutató a bufferre
form->max A buffer mérete
form->inc 0 bármi, vagy valamelyik UI_FILTER_x filter

Választódoboz

Kirajzol egy választódobozt. Ha rákattintanak, akkor az opciók egy felugróban jelennek meg.

Paraméter Leírás
form->type UI_SELECT
form->ptr Mutató az int értékre
form->optc Maximum érték plusz 1, opciók száma
form->optv Mutató egy sztringtömbre, opciók
form->m Jobb margó

Opciólista

Kirajzol egy opciólistát. Pont, mint a választódoboz, csak számbekérő megjelenéssel, nincs felugró.

Paraméter Leírás
form->type UI_OPTION
form->ptr Mutató az int értékre
form->optc Maximum érték plusz 1, opciók száma
form->optv Mutató egy sztringtömbre, opciók
form->m Bal és jobb margó

Lebegőpont

Kirajzol egy lebegőpontos számbeviteli mezőt.

Paraméter Leírás
form->type UI_FLOAT
form->ptr Mutató az értékre
form->fmin Minimum érték
form->fmax Maximum érték
form->finc Léptetési érték
form->m Bal és jobb margó

Egészszám

Kirajzol egy egészszámbeviteli mezőt. A szám a define végén jelzi, hogy hány biten tárolódik az érték.

Paraméter Leírás
form->type UI_INT8 / UI_INT16 / UI_INT32 / UI_INT64
form->ptr Mutató az értékre
form->min Minimum érték
form->max Maximum érték
form->inc Léptetési érték
form->m Bal és jobb margó

Csúszka

Kirajzol egy egészszámbeviteli mezőt csúszkaként (csak 32 bit).

Paraméter Leírás
form->type UI_SLIDER
form->ptr Mutató az értékre
form->min Minimum érték
form->max Maximum érték
form->inc Léptetési érték

Függőleges szkrollozó

Kirajzol egy függőleges szkroll mezőt (csak 32 bit). A [tárolók] maguktól kezelik a szkrollozást, szóval ez bármi más esetre.

Paraméter Leírás
form->type UI_VSCRBAR
form->ptr Mutató az int értékre
form->max Maximum érték

Vízszintes szkrollozó

Kirajzol egy vízszintes szkroll mezőt (csak 32 bit).

Paraméter Leírás
form->type UI_HSCRBAR
form->ptr Mutató az int értékre
form->max Maximum érték

Szín

Kirajzol egy egészszámbeviteli mezőt színként (csak 32 bit). Ha rákattintanak, akkor egy színválasztó ugrik fel.

Paraméter Leírás
form->type UI_COLOR
form->ptr Mutató az int értékre

Fájl

Kirajzol egy szövegbeviteli mezőt. A bufferben egy nullával lezárt UTF-8 sztringnek kell lennie az elérési úttal. Ha a felhasználó rákattint, akkor egy [elérési út] választót hoz elő, amivel a sztring egyszerűen szerkeszthető. Az str paraméter leírását lásd ott. Be kell húzni hozzá az ui_file.h modult.

Paraméter Leírás
form->type UI_FILE
form->ptr Mutató a bufferre az elérési úttal
form->max A buffer mérete
form->min Az elérési út választó minimális magassága
form->str Lokalizált sztringtömb indexe (vagy 0)

Elérési út

Kirajzol egy elérési út választót. Az str a lokalizált sztring tömbben egy 8 sztringből álló csoport első indexe, ezek rendre: fájl neve, mérete, módosítási dátuma, most, N perce, egy órája, N órája, tegnap. Be kell húzni hozzá az ui_file.h modult.

Paraméter Leírás
form->type UI_PATH
form->ptr Mutató a bufferre az elérési úttal
form->max A buffer mérete
form->str Lokalizált sztringtömb indexe (vagy 0)
form->data Mutató az ui_path_t kontextusra

Az ui_path_t struktúra pedig a következő:

Mező Leírás
flags Elérési út jelzőbitek
exts Kiterjesztéslista (vagy NULL)
select Kiválasztás rendben (vagy NULL)

A jelzőbitek:

Define Leírás
UI_PATH_SEARCH Keresőmezőt is tartalmazzon
UI_PATH_NEWDIR Új könyvtár létrehozása gomb is legyen
UI_PATH_ONLYDIR Csak könyvtárakat listázzon
UI_PATH_HIDDEN Listázza a rejtett fájlokat is

A kiterjesztéslista egy nullával lezárt sztringeket tartalmazó lista, amit két nulla karakter zár, például png\0jpg\0\0. Ha meg van adva, akkor a lista csak az itt felsorolt kiterjesztésű fájlokat fogja tartalmazni.

Ha a select visszahívás NULL, akkor egyszerűen az alkönyvtárakba belép, a fájlokat meg visszaadja. Ha meg van adva

typedef int (*ui_form_select)(char *path, int isdir);

formában, akkor az 1-el tér vissza, ha az elérési út kiválasztható, egyébként 0-ával. Ha 0-val tért vissza, akkor az alkönyvtárakba belép, a fájlokkal pedig semmit sem csinál. A path paraméter könyvtárelválasztóra végződik, ha az egy könyvtár, és ilyenkor az isdir értéke 1. Ez arra használható, hogy további kritériát szabjunk a kiválasztandó elérési útnak, például könyvtárak esetében hogy tartalmaz-e egy bizonyos fájlt, vagy fájlok esetében hogy adott mágikus bájttal kezdődik-e vagy sem. A megadott visszahívás bármilyen plusz ellenőrzést implementálhat.