Page 1 of 3

TestaSkin, a new tool on the road

Posted: Sat Oct 22, 2005 22:24
by martignasse
well, i'll begin by the beginning :

on this thread, i discuted with centipede about a way to rapidly test or overview a skin on the visual aspect.

Centipede experienced the "xml" layout road,
and me, the "all in code" one.

So the idea naturally grow up to make an appli doing just that :)

Providing an easy way to have a reference layout(or numerous) to test or look at different skin.
A kind of Skin tester, or viewer.

For now, it's just a basic appli with near to zero fonctionnalities...Here we go.

And it's time to have people feedback and ideas on this before going deeper.

Tested only with VS7.1 and cegui 4.0.

Re: TestaSkin, a new tool on the road

Posted: Sat Oct 22, 2005 22:41
by martignasse
and an overview screenshot :
Image

Re: TestaSkin, a new tool on the road

Posted: Sun Oct 23, 2005 00:20
by centipede
Never scorn a simple tool if it does the job. If you give the intro window a text entry for the name of the scheme, then I'm quite satisfied. Never mind the luxurious functions, much better to spend the time getting the widgets up and running.

I'll see soon if I can get it to compile in linux.

Surely the end user will get a fast way to decide which skin to go for without tons of code. Keep up the good work! There aren't that many of us working on this so a little company makes things roll faster :P

Re: TestaSkin, a new tool on the road

Posted: Sun Oct 23, 2005 09:50
by martignasse
If you give the intro window a text entry for the name of the scheme, then I'm quite satisfied

yes, that's the goal, or a choice of skins managed by a config file ;)

More generally, if we want people to show up there skins, we need a tool to manage/show/test them...

I have mainly two directions for this :

1°) LABO
rapidly test the skin of you'r choice with the renderer of you'r choice against a complete FalagarBase scheme. It's the purpose of the build in layout.

2°) VIEWER
be able to test a certain skin with a certain layout, by the ability to load xml layout.


PS :
And if you can give me a description of you'r "Horro1" skin, cause i want to make some description/info panel with
something like :

ARTISTIC OVERVIEW
"this skin was made with cyber post-apocalyptic ambiance in mind, trying to put the user in front of a nearly dead mechanical beast" :lol:

FONCTIONNALITY OVERVIEW
"the skin materialise the focus by highlighting the widget, the mouse cursor change aspect every time an action is possible on a widget..."

the dream could be to end up with a skin certificator for the CEGUI system :P

Re: TestaSkin, a new tool on the road

Posted: Sun Oct 23, 2005 15:00
by centipede
Hmm. Thinking out loud here.

My reason for making free stuff is that I hope to aid the garage/indie scene. Problem with graphics is that even with say 50 skins you would easily recognize each one if it was used in the same game twice. What is needed is ways to make variations. Already there is Color variations. But once the artist gets into the flow of painting one concept, it wouldn't take make minutes extra to make three or four different decorations of various kinds.

A method of recombining these variations, specifically choosing alternatives or layering them would be an idea.

Following this vein it would be a clever idea to have extended descriptions in your program.

Just a thought.

Re: TestaSkin, a new tool on the road

Posted: Sun Oct 23, 2005 16:44
by martignasse
well, the idea is good. but far from where we are now.

and that assume a kind of normalisation between Skins, like the selected/highlighted/hover/disabled colors/layers...

For now, i'm nearly on the run-time skin switching, and go back on !

Re: TestaSkin, a new tool on the road

Posted: Sun Oct 23, 2005 19:21
by martignasse
update time...

follow the link http://mfleurent.free.fr/CEGUI/TestaSkin.zip to download this new version.

It add the run-time Skin switching ;)

and it's look like this with the "Horror1" skin from centipede :
Image

have fun.

Re: TestaSkin, a new tool on the road

Posted: Tue Oct 25, 2005 10:03
by centipede
I AM having fun... :hammer: I'm also a bit lazy... Waiting for the next version that I can make xml skins up against 8)

Re: TestaSkin, a new tool on the road

Posted: Tue Oct 25, 2005 18:08
by martignasse
fun is good, cool

ok, ok , next update will be for the xml loading :D

Re: TestaSkin, a new tool on the road

Posted: Tue Nov 01, 2005 13:38
by martignasse
hi,

update time...

The link is always the same :
http://mfleurent.free.fr/CEGUI/TestaSkin.zip

Changes are essentialy a big code cleaning and design changes.

And the "loading layout from file" feature ;)

I used the CommonFileDialog from SpookyBoo(big thanks) for this, and it's only working for windows, according to this page :(
I have also a nasty bug who make randomly exception when you try to open the load dialog box :evil:

that said, it's pretty usuable and ready for you'r feedback.

screenshot :
Image

Re: TestaSkin, a new tool on the road

Posted: Thu Nov 03, 2005 07:01
by centipede
Great job so far! Testaskin is becoming quite a solid tool! Good idea with the layout-loading facility. But you must still remember that there are widgets that currently can't be instantiated via layouts (as far as I'm aware. E.g. combolist items)

Re: TestaSkin, a new tool on the road

Posted: Thu Nov 03, 2005 08:25
by scriptkid
Looks nice and it's a good idea too!

I've been playing around with it for a bit. I don't quite understand though why i can only change the skin for the built-in layout, and not for the load-from-file ones..

Right now i'm looking at the sources, to see how it works :-)

Good luck!

Re: TestaSkin, a new tool on the road

Posted: Thu Nov 03, 2005 19:43
by martignasse
from centipede :
But you must still remember that there are widgets that currently can't be instantiated via layouts (as far as I'm aware. E.g. combolist items)
yes...but
i can make some helpers class for populate them, and make the stuff after layout loading by detecting what widgets type have been loaded 8)
hum hum, of course, it's an "after basic fonctionnality level feature" ;)

I don't quite understand though why i can only change the skin for the built-in layout, and not for the load-from-file ones..

Right now i'm looking at the sources, to see how it works :-)
The fact is, right now, for build in layout, i just decide the skin type at widgets creation.
It's made with the SkinHelper class (little hacky...)
And i don't now how to change fooknfeel without rebuilding all the layout. :roll:

For xml layout, looknfeel it's specified in the tag :

Code: Select all

<Window Type="Horror1/Button" Name="Demo7/Window1/Quit">
and is decided at load time, and that all. :(

could be good if i can just use the basic "falagard/Futton" for creating by code and describing in xml .
And just choice a looknfeel (skin) by code.

...no feedback about an "unknown exception" when trying to open the file dialog ?

Re: TestaSkin, a new tool on the road

Posted: Fri Nov 04, 2005 23:02
by lindquist
You could use the window-type-alias system to allow "generic" layouts.

It would allow you to make Button an alias for Horror/Button etc. This alias can be removed, and a new one created to point to a different type before reloading the layout.

edit:
http://www.cegui.org.uk/api_reference/c ... nager.html

Re: TestaSkin, a new tool on the road

Posted: Sat Nov 05, 2005 13:56
by martignasse
You could use the window-type-alias system to allow "generic" layouts.

It would allow you to make Button an alias for Horror/Button etc. This alias can be removed, and a new one created to point to a different type before reloading the layout.
Sound good, and i tried.

but can't make it working.

I made some .scheme with alias in it for each skin like this (Marti Skin example):

Code: Select all

<?xml version="1.0" ?>
<GUIScheme Name="MartiWidgetAliases">
   <WindowAlias Alias="Button" Target="Marti/Button" />
   <WindowAlias Alias="Checkbox" Target="Marti/Checkbox" />
   <WindowAlias Alias="CloseButton" Target="Marti/CloseButton" />
   <WindowAlias Alias="Combobox" Target="Marti/Combobox" />
   <WindowAlias Alias="ComboDropList" Target="Marti/ComboDropList" />
   <WindowAlias Alias="ComboEditbox" Target="Marti/ComboEditbox" />
   <WindowAlias Alias="Editbox" Target="Marti/Editbox" />
   <WindowAlias Alias="FrameWindow" Target="Marti/FrameWindow" />
   <WindowAlias Alias="Listbox" Target="Marti/Listbox" />
   <WindowAlias Alias="ListHeader" Target="Marti/ListHeader" />
   <WindowAlias Alias="ListHeaderSegment" Target="Marti/ListHeaderSegment" />
   <WindowAlias Alias="MiniHorzScrollbar" Target="Marti/HorizontalScrollbar" />
   <WindowAlias Alias="MiniHorzScrollbarThumb" Target="Marti/HorizontalScrollbarThumb" />
   <WindowAlias Alias="MiniVertScrollbar" Target="Marti/VerticalScrollbar" />
   <WindowAlias Alias="MiniVertScrollbarThumb" Target="Marti/VerticalScrollbarThumb" />
   <WindowAlias Alias="MultiColumnList" Target="Marti/MultiColumnList" />
   <WindowAlias Alias="MultiLineEditbox" Target="Marti/MultiLineEditbox" />
   <WindowAlias Alias="ProgressBar" Target="Marti/ProgressBar" />
   <WindowAlias Alias="RadioButton" Target="Marti/RadioButton" />
   <WindowAlias Alias="Slider" Target="Marti/Slider" />
   <WindowAlias Alias="Slider Thumb" Target="Marti/SliderThumb" />
   <WindowAlias Alias="StaticImage" Target="Marti/StaticImage" />
   <WindowAlias Alias="StaticText" Target="Marti/StaticText" />
   <WindowAlias Alias="TabButton" Target="Marti/TabButton" />
   <WindowAlias Alias="TabPane" Target="Marti/TabPane" />
   <WindowAlias Alias="TabControl" Target="Marti/TabControl" />
   <WindowAlias Alias="Titlebar" Target="Marti/Titlebar" />
   <WindowAlias Alias="VertScrollbar" Target="Marti/LargeVerticalScrollbar" />
   <WindowAlias Alias="VertScrollbarThumb" Target="Marti/LargeVerticalScrollbarThumb" />
</GUIScheme>
i wanted to load/unload them depending on the chosen skin.

i'm sure my Marti skin is loaded before.

But when loading, i have an exception , saying the "Marti/Button" type not existing in the system !



however, if i replace the target with "Falagard/..." instead of "Marti/...", it load. but it's not good use anyway.

so i have a question :

is the alias system in sync with the falagard system ?

i mean, it's like the alias system was looking for primary type (Falagard, WindowLook, TaharezLook) and not at the mapped one (who are introduced with the falagard system, if i understand correctly).