looknfeel.md 6.2 KB

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.