containers.md 4.5 KB

Tárolók

Ha egy tárolót egy [kapcsoló] mező előz meg, akkor az a kapcsoló ennek a tárolónak a láthatóságát fogja kapcsolni.

Felugró

Kirajzol egy felugrót.

Paraméter Leírás
form->type UI_POPUP
form->flags Esetleg UI_HIDDEN, UI_DRAGGABLE vagy UI_RESIZABLE
form->ptr Mutató egy másik ui_form_t bufferre
form->m Margó pixelekben
form->p Eltartás pixelekben
form->label Cím, lokalizált sztringtömb index (vagy 0)

Menü

Ugyanaz, mint a felugró, de alapból UI_HIDDEN, azaz elrejtett és egyszerre csak egy menü lehet megjelenítve. A gyerek [pipa] és [választó] mezői ki lesznek emelve, amikor az egér föléjük kerül.

Paraméter Leírás
form->type UI_MENU
form->flags Esetleg UI_SCROLL
form->ptr Mutató egy másik ui_form_t bufferre
form->m Margó pixelekben
form->p Eltartás pixelekben

Divízió

Nem rajzol ki semmit, csak csoportosíthatóvá teszi a mezőket, hogy egyszerre lehessen őket megjeleníteni / elrejteni meg pozícionálni.

Paraméter Leírás
form->type UI_DIV
form->flags Esetleg UI_SCROLL
form->ptr Mutató egy másik ui_form_t bufferre
form->m Margó pixelekben
form->p Eltartás pixelekben

Táblázat

Adatmezőket rajzol ki táblázat vagy rács formájában. Be kell húzni hozzá az ui_table.h modult.

Paraméter Leírás
form->type UI_TABLE
form->flags Esetleg UI_SCROLL vagy UI_NOHEADER
form->ptr Mutató az adatokra
form->tblsel A kiválasztott adatrekord indexe
form->tblnum Adatrekordok száma
form->tblsiz Egy adatrekord mérete bájtokban
form->tblrow Sor mérete pixelekben
form->tblcol Oszlop mérete pixelekben (rács esetén, egyébként 0)
form->data Mutató az ui_form_t fejléclistára
form->cmps Összehasonlító függvények rendezéshez (vagy NULL)
form->m Cellamargó pixelekben

A form->ptr mutat az adatrekordokra, ami táblázat esetén valószínűleg egy struktúrákat tartalmazó tömb. A form->data listának legalább egy UI mezőt kell tartalmaznia, és MINDIG egy UI_END mezővel kell lezárni. Ez tárolja a hdr fejléceket, valamint megadja az adott oszlop megjelenítését. Táblázathoz a form->tblcol értékét 0-ára kell állítani, és ilyenkor valószínűleg a form->data több fejlécet fog tartalmazni. Rács esetén a form->tblcol nem nulla és ilyenkor egységesen minden cellához az első form->data fejléc használatos.

Paraméter Leírás
hdr->type A cella megjelenítésének típusa
hdr->tblhdr Fejléc cím, lokalizált sztringtömb index
hdr->tblofs A mező adatrekordon belüli címe (csak táblázat esetén)
hdr->flags UI_POINTER, ha az oszlop mezője egy mutató
hdr->w Oszlop szélessége, használható UI_PERCENT

A rendezés engedélyezéséhez kétszer annyi komparátor funkciót kell megadni, mint ahány fejlécmező van. Oszloponként az első a növekvő, a második a csökkenő sorrendért felel.

typedef int (*ui_comp)(const void *a, const void *b);

A prototípusuk a szabványos POSIX komparátoré, a libc qsort() gyorsrendezés függvényének adódnak át paraméterül.