Hi tmbinc
Da Du ja im Games Forum schonwas verraten hast,
<quote> wenn der skinsupport in ezap läuft (ist bald der fall ...</quote>
Dann frag ich einfach schon mal:
Gibts dazu schon irgendwelche spezifikationen? Was kann man alles ändern, kann man Bitmaps/Grafiken einbauen? ...
Oder ist das alles noch geheim?
Skin-Support
-
- Einsteiger
- Beiträge: 121
- Registriert: Sonntag 9. September 2001, 00:00
-
- Developer
- Beiträge: 821
- Registriert: Freitag 20. Juli 2001, 00:00
geheim ist nix, ausser es funktioniert nicht *duck*
also nen skineditor wäre was feines, allerdings hab ich fast keine skills unter windows zu programmieren.
naja mal nen kleines beispiel von einer aktuellen skindatei:
<eskin>
<!-- the TMB-default skin, very ugly -->
<author>
<name>Felix Domke</name>
<email>tmbinc@gmx.net</email>
</author>
<colors>
<color name="background" color="#ff000000" />
<color name="blauweiss" color="#16b0ff" end="#ffffff" size="16" />
<color name="blaugrau" color="#16b0ff" end="#808080" size="16" />
<color name="blaugelb" color="#16b0ff" end="#ffff00" size="16" />
<color name="blau2weiss" color="#26c0ff" end="#ffffff" size="16" />
</colors>
<colorscheme>
<map name="focusedColor" color="blaugelb" />
<map name="fgColor" color="blauweiss" />
<map name="fgColorDisabled" color="blaugrau" />
<map name="backgroundColor" color="blauweiss" />
<map name="eWindow.titlebarColor" color="blau2weiss" />
</colorscheme>
<object name="test">
<eWindow position="75:75" size="500:300" text="Skinned testwindow">
<eLabel position="0:0" size="480:50" text="Hello world."/>
<eLabel position="50:50" size="430:100" text="ein testnblabla"/>
<eButton position="380:200" size="100:50" text="OK" name="okButton" />
<eButton position="280:200" size="100:50" text="Cancel" name="cancelButto
</eWindow>
</object>
</eskin>
also "skin" ist eigentlich nen falsches wort. es ist mehr ein dialogeditor. ich war es leid, die dialoge hardcoded dadrin zu haben. und nebenbei kann man so ändern was man will.
also bilder irgendwohin laden etc. wird auch gehen natürlich.... allerdings sollte man dabei vorsichtig sein dass es nicht zu lahm wird. in so einem skin soll man auch die fontsizes etc. einstellen können dann.
das ganze kam eigentlich nur deshalb zu stande, weil ich quasi die komplette GUI neugeschrieben habe.. (damit's endlich mal spass macht sich widgets zu schreiben)
ich hab aber noch keinen plan wann das ganze mal wieder so laufen wird dass man es benutzen kann..
(für die programmierer:
ein Dialog baut man aus einem eWindow normalerweise, und macht dann:
eSkin::getActive()->build(this, "test");
daraufhin wird das object "test" in der xml datei gesucht und verarbeitet.
beispielsweise wird die position gesetzt und die sub-widgets erstellt.
mit
eWidget *okButton=search("okButton");
if (!okButton)
qFatal("sorry no okButton");
connect(okButton, SIGNAL(selected()), &test, SLOT(accept()));
findet man dann die definierten widgets, um sie mit zusätzlichen details auszustatten.
auf die gleiche weise kann man das aussehen auf dem LCD etc. festlegen (und natürlich auch das main-widget, also das OSD .... arg ihr wisst was ich meine, mit sendername, now&next usw.)
so ganz fertig ist das konzept noch nicht, aber wenn alles glattgeht gibts demnächst mal wieder ne beta die einigermaßen läuft.)
also nen skineditor wäre was feines, allerdings hab ich fast keine skills unter windows zu programmieren.
naja mal nen kleines beispiel von einer aktuellen skindatei:
<eskin>
<!-- the TMB-default skin, very ugly -->
<author>
<name>Felix Domke</name>
<email>tmbinc@gmx.net</email>
</author>
<colors>
<color name="background" color="#ff000000" />
<color name="blauweiss" color="#16b0ff" end="#ffffff" size="16" />
<color name="blaugrau" color="#16b0ff" end="#808080" size="16" />
<color name="blaugelb" color="#16b0ff" end="#ffff00" size="16" />
<color name="blau2weiss" color="#26c0ff" end="#ffffff" size="16" />
</colors>
<colorscheme>
<map name="focusedColor" color="blaugelb" />
<map name="fgColor" color="blauweiss" />
<map name="fgColorDisabled" color="blaugrau" />
<map name="backgroundColor" color="blauweiss" />
<map name="eWindow.titlebarColor" color="blau2weiss" />
</colorscheme>
<object name="test">
<eWindow position="75:75" size="500:300" text="Skinned testwindow">
<eLabel position="0:0" size="480:50" text="Hello world."/>
<eLabel position="50:50" size="430:100" text="ein testnblabla"/>
<eButton position="380:200" size="100:50" text="OK" name="okButton" />
<eButton position="280:200" size="100:50" text="Cancel" name="cancelButto
</eWindow>
</object>
</eskin>
also "skin" ist eigentlich nen falsches wort. es ist mehr ein dialogeditor. ich war es leid, die dialoge hardcoded dadrin zu haben. und nebenbei kann man so ändern was man will.
also bilder irgendwohin laden etc. wird auch gehen natürlich.... allerdings sollte man dabei vorsichtig sein dass es nicht zu lahm wird. in so einem skin soll man auch die fontsizes etc. einstellen können dann.
das ganze kam eigentlich nur deshalb zu stande, weil ich quasi die komplette GUI neugeschrieben habe.. (damit's endlich mal spass macht sich widgets zu schreiben)
ich hab aber noch keinen plan wann das ganze mal wieder so laufen wird dass man es benutzen kann..
(für die programmierer:
ein Dialog baut man aus einem eWindow normalerweise, und macht dann:
eSkin::getActive()->build(this, "test");
daraufhin wird das object "test" in der xml datei gesucht und verarbeitet.
beispielsweise wird die position gesetzt und die sub-widgets erstellt.
mit
eWidget *okButton=search("okButton");
if (!okButton)
qFatal("sorry no okButton");
connect(okButton, SIGNAL(selected()), &test, SLOT(accept()));
findet man dann die definierten widgets, um sie mit zusätzlichen details auszustatten.
auf die gleiche weise kann man das aussehen auf dem LCD etc. festlegen (und natürlich auch das main-widget, also das OSD .... arg ihr wisst was ich meine, mit sendername, now&next usw.)
so ganz fertig ist das konzept noch nicht, aber wenn alles glattgeht gibts demnächst mal wieder ne beta die einigermaßen läuft.)
-
- Einsteiger
- Beiträge: 121
- Registriert: Sonntag 9. September 2001, 00:00
-
- Einsteiger
- Beiträge: 121
- Registriert: Sonntag 9. September 2001, 00:00
tmbinc: nachdem ich dich im irc ein paar mal verpasst habe ...
erklär mir mal die farben definitionen.
color=xxxxxx end=xxxxxx ist für den farbverlauf, oder? was ist size=xxx
---
dis1, active, wt1, gy2 sind das fetgelegte farben? wenn ja welche?
---
dann steht da ein bereich für die box drin bsp 100:500. wie gross ist denn der sichtbare bereich gesamt?
danke
erklär mir mal die farben definitionen.
color=xxxxxx end=xxxxxx ist für den farbverlauf, oder? was ist size=xxx
---
dis1, active, wt1, gy2 sind das fetgelegte farben? wenn ja welche?
---
dann steht da ein bereich für die box drin bsp 100:500. wie gross ist denn der sichtbare bereich gesamt?
danke
Gruss
Sammy98
Sammy98
-
- Developer
- Beiträge: 821
- Registriert: Freitag 20. Juli 2001, 00:00
also color, end, size sind für verläufe. size gibts dabei an, wieviele farben verbraten werden, start ist halt "color", ende ist halt "end".
also von "color" nach "end" in "size" schritten.
das ist für die antialias-fonts wichtig.
dis1... gibts nicht, deswegen ist der teil auch auskommentiert gewesen <IMG SRC="/forum/images/smiles/icon_smile.gif">)
ein widget hat immer eine äussere size und eine clientarea. diese ist bei fast allen widgets gleich groß mit der size, nur beim ewindow gibts noch nen ramen und die titelzeile.
die anzugebenden größen beziehen sich auf die äussere größe.
die verbleibende größe ist kleiner. alle positionsangaben von unterwidgets beziehen sich aber auf die linke obere ecke der clientarea.
0, 0 ist in wirklichkeit also bei parentpos+(5,40) (wenn der rand 5 pixel und die titlezeile 40 pixel sind)
also von "color" nach "end" in "size" schritten.
das ist für die antialias-fonts wichtig.
dis1... gibts nicht, deswegen ist der teil auch auskommentiert gewesen <IMG SRC="/forum/images/smiles/icon_smile.gif">)
ein widget hat immer eine äussere size und eine clientarea. diese ist bei fast allen widgets gleich groß mit der size, nur beim ewindow gibts noch nen ramen und die titelzeile.
die anzugebenden größen beziehen sich auf die äussere größe.
die verbleibende größe ist kleiner. alle positionsangaben von unterwidgets beziehen sich aber auf die linke obere ecke der clientarea.
0, 0 ist in wirklichkeit also bei parentpos+(5,40) (wenn der rand 5 pixel und die titlezeile 40 pixel sind)
-
- Developer
- Beiträge: 821
- Registriert: Freitag 20. Juli 2001, 00:00