Kinézet
Egérmutató
int ui_swcursor(ui_t *ctx, ui_image_t *cursor);
Kikapcsolja a hardveres egérmutatót és helyette egy képet rak ki szoftveresen.
Paraméter |
Leírás |
ctx |
Mutató az UI kontextusra |
cursor |
Mutató a kurzor [kép]re |
Siker esetén 0-val tér vissza, egyébként hibakóddal.
int ui_hwcursor(ui_t *ctx);
Kikapcsolja a szoftveres egérmutatót és engedélyezi a hardverest.
Paraméter |
Leírás |
ctx |
Mutató az UI kontextusra |
Siker esetén 0-val tér vissza, egyébként hibakóddal.
Színtéma
Az SMGUI többféle színtémát is támogat, amik lényegében paletták. Minden palettaelem egy UI elem színének felel meg.
Ezek sorrendben a következők:
- előtér (betűk) színe
- felugró és menü címsor színe
- felugró és menü háttérszíne
- felugró és menü árnyékszíne
- aktív [kapcsoló] előtérszíne
- aktív kapcsoló háttérszíne
- [menü] kielemlés előtérszíne
- menü kiemelés háttérszíne
- inaktív előtérszín
- inaktív háttérszín
- szkrollozó háttérszíne
- beviteli mező előtérszíne
- beviteli mező világos keretszín
- beviteli mező sötét keretszín
- beviteli mező háttérszíne
- kiválasztott beviteli mező előtérszíne
- kiválasztott beviteli mező keretszíne
- kiválasztott beviteli mező kurzorszíne
- normál gomb előtérszíne
- normál gomb árnyékszíne
- normál gomb külső keretszíne
- kiválasztott gomb előtérszíne
- kiválasztott gomb árnyékszíne
- kiválasztott gomb külső keretszíne
- gomb világos belső keretszín
- gomb sötét belső keretszín
- gomb világos háttérszín
- gomb sötét háttérszín
- folyamatjelző világos színe
- folyamatjelző háttérszíne
- folyamatjelző sötét színe
int ui_theme(ui_t *ctx, uint32_t *theme);
Beállít egy tetszőleges színtémát. A theme[]
tömbnek annyi eleműnek kell lennie, ahány UI szín van, lásd a fenti listát.
Paraméter |
Leírás |
ctx |
Mutató az UI kontextusra |
theme |
Mutató a palettára |
Siker esetén 0-val tér vissza, egyébként hibakóddal.
Bőr
Az SMGUI bőröket is támogat, amik lényegében képek, mindegyik az UI egy-egy elemének felel meg. Ezek sorrendben a következők:
- egérkurzor (kattintópont középen)
- felugró és menü bal felső sarok
- felugró és menü felső középső sáv
- felugró és menü jobb felső sarok
- felugró és menü bal oldal
- felugró és menü háttér
- felugró és menü jobb oldal
- felugró és menü bal alsó sarok
- felugró és menü alsó középső sáv
- felugró és menü jobb alsó sarok
- felugró és menü cím háttere
- felugró és menü bezár gomb
- felugró és menü alternatív bal felső sarok
- felugró és menü alternatív felső középső sáv
- felugró és menü alternatív jobb felső sarok
- felugró és menü alternatív bal oldal
- felugró és menü alternatív háttér
- felugró és menü alternatív jobb oldal
- felugró és menü alternatív bal alsó sarok
- felugró és menü alternatív alsó középső sáv
- felugró és menü alternatív jobb alsó sarok
- felugró és menü alternatív cím háttere
- felugró és menü alternatív bezár gomb
- menü alternatív bal oldal
- menü alternatív háttér
- menü alternatív jobb oldal
- menü kiemelés háttér
- beviteli mező háttér
- folyamatjelző gomb háttere
- csúszka bal oldal
- csúszka háttér
- csúszka jobb oldal
- csúszka gomb
- függőleges szkrollozó teteje
- függőleges szkrollozó háttere
- függőleges szkrollozó alja
- függőleges szkrollozó gomb teteje
- függőleges szkrollozó gomb közepe
- függőleges szkrollozó gomb alja
- vízszintes szkrollozó eleje
- vízszintes szkrollozó háttere
- vízszintes szkrollozó vége
- vízszintes szkrollozó gomb bal oldal
- vízszintes szkrollozó gomb közepe
- vízszintes szkrollozó gomb jobb oldal
- pipamező üresen
- pipamező bepipálva
- választó üresen
- választó kiválasztva
- normál gomb bal oldal
- normál gomb háttere
- normál gomb jobb oldal
- lenyomott gomb bal oldal
- lenyomott gomb háttere
- lenyomott gomb jobb oldal
- kiválasztott gomb bal oldal
- kiválasztott gomb háttere
- kiválasztott gomb jobb oldal
- balra nyíl gomb
- lefelé nyíl gomb
- jobbra nyíl gomb
- lenyomott balra nyíl gomb
- lenyomott lefelé nyíl gomb
- lenyomott jobbra nyíl gomb
- kiválasztott balra nyíl gomb
- kiválasztott lefelé nyíl gomb
- kiválasztott jobbra nyíl gomb
int ui_skin(ui_t *ctx, ui_image_t *skin);
Betölt egy tetszőleges bőrt. A skin[]
tömbnek annyi eleműnek kell lennie, ahány UI elem van, lásd a fenti listát.
Paraméter |
Leírás |
ctx |
Mutató az UI kontextusra |
skin |
Mutató a bőr [kép]ek tömbre |
Siker esetén 0-val tér vissza, egyébként hibakóddal.
Ha az stb_image.h
be lett húzva az ui.h előtt, akkor a következő függvény is használható, hogy egyetlen PNG képről
töltse be az összes bőrképet:
int ui_pngskin(ui_t *ctx, uint8_t *png, int size);
Betölt egy tetszőleges bőrt egy csomagolt PNG fájlból.
Paraméter |
Leírás |
ctx |
Mutató az UI kontextusra |
png |
Mutató a PNG képre |
size |
A PNG kép mérete bájtokban |
Siker esetén 0-val tér vissza, egyébként hibakóddal.
A csomagolt PNG-ben kell lennie egy kommentnek, x
, y
, w
, h
ASCII decimális számokkal minden sorban, amik területeket
jelölnek a képen. Ilyen csomagolt PNG előállítható például az sprpack program -cdt
kapcsolóival:
sprpack -cdt bőr.png egér.png felugró_balfelső.png felugró_felsőközép.png ...
Minden UI elem PNG-jét fel kell sorolni, és pontosan abban a sorrendben, ahogy fentebb látszik, máskülönben a bőr PNG nem
fog működni.