ugrás a tartalomhoz

XUL textbox border-style átállítása

Endyl · 2010. Júl. 11. (V), 13.27
A kérdésem az, hogy hogyan lehetséges egy XUL textbox (multiline) elem border stílusát átállítani.

Eddig próbálkoztam már a "-moz-appearance: none" beállítással, vagy a textbox-ot megtoldani egy "plain" class-szal, de ezek után is csak a keret szélességének állítására reagál. Se a színt se stílust nem sikerült átllítanom az alap szürke "inset" stílusról.

Olvastam pl ezt a postot, de egyrészt 2008-as, másrészt a keretstílust nem írja, hogy állítaná, csak a sarokkerekítést. A példaképen viszont kék, folyamatos vonal van keretként.

Lehet, hogy már nem látom a fától az erdőt. Szóval, ha valakinek van valami ötlete, iránymutatása, az ne tartsa magában.

Előre is köszönöm!
 
1

Sima CSS?

janoszen · 2010. Júl. 11. (V), 17.19
A XUL textbox egy sima XUL elem és legjobb tudomásom szerint ugyanúgy kell formázni CSS-ből mint bármi mást, tehát ennek működnie kellene:

textbox{
 border:5px solid green;
}
Lehet, hogy én nézek be valamit mert én sem XULozom olyan régen de ha más nem, dobj föl egy példakódot hogy meg lehessen nézni nálad mit (nem) csinál.
2

Példák

Endyl · 2010. Júl. 11. (V), 19.11
Hogy a lehető legegyszerűbb legyen, a style attribútumra raktam a css-t.

A következő kódra semmit nem reagál a textbox:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="egyablak" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<textbox style="border: 5px solid green;" />

</window>
Erre már vastagabbra veszi a keretet, de még mindig "inset" és szürke:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="egyablak" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<textbox style="-moz-appearance:none; border: 5px solid green;" />

</window>
[szerk]
Egyébként úgy tűnik ugyanez a helyzet más elemeknél is (button, menulist), de pl toolbarbutton kerete meg állítható...

Ezek az elemek ugyebár XBL-bindingból jönnek, de elvileg nem kéne, hogy gondot okozzon. DOM-inspectorral megnézve sem lettem sokkal okosabb.

Első változat Data-URI-ként

Második változat Data-URI-ként

A data URI-kban a textbox multiline, és van egy button is, style="5px solid green" attribútummal.

Most veszem észre, hogy Firefox 4 béta 1-gyel a második data-uriban a textbox már helyesen jelenik meg.
Firefox 3.6.6 a problémás (tehát Gecko 1.9.2)
[/szerk]
3

Megoldás

Endyl · 2010. Júl. 11. (V), 19.59
Beletúrtam az alap skinbe, így meglettek a "bűnösök".

Tehát a textbox alap keretének kilövése, és tetszőlegesre állítása:
<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="egyablak" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">


<textbox style="
-moz-appearance: none;
-moz-border-top-colors: none;
-moz-border-right-colors: none;
-moz-border-bottom-colors: none;
-moz-border-left-colors: none;

border: 5px solid green;
" />


</window>
Teszt Data-URI

A "-moz-appearance: none" fontos, anélkül pl hátteret sem lehet állítani a textboxnak.

A Firefox 4 Béta 1 alap skinjében nincs benne a fájl a -moz-border-<side>-colors formázásokkal, ezért volt ott jó.

Gondolom a button és hasonló elemeknél is ez lehet a helyzet.
4

Miben?

janoszen · 2010. Júl. 11. (V), 20.00
Miben szerkeszted? Én be szoktam húzni Firefoxba a XUL fájlokat és FireBuggal megtámadni, abban elég gyorsan kiderülnek a turpisságok. Persze ez nem mindenhol játszható el.
5

Tényleg fától az erdőt

Endyl · 2010. Júl. 11. (V), 20.58
Szerkeszteni Komodo Editben, de most eszembe se jutott, hogy egy lecsupaszított példát behúzzak FF-be... az eredeti fájl meg dinamikusan tölt be XBL-es elemeket (önmagában nem is működik), azt azért nem tudtam volna csak úgy megnézni Firebuggal.

Mondjuk jó lenne a Firebugnak egy olyan változata, ami könnyedén behúzható tetszőleges XULRunner alkalmazásba. (Mondjuk telepíteni még csak-csak lehet, de valamennyire használható csak chromebug-on keresztül lesz. Vagy legalábbis nincs dokumentálva.)