ToolUI - A new pixel perfect 3D GUI

Community Forums/Showcase/ToolUI - A new pixel perfect 3D GUI

Jeppe Nielsen(Posted 2004) [#1]
ToolUI is a new Graphical User Interface (GUI) for the Blitz3d programming language. With it you can easily create a fully working and nice looking interface for you blitz programs in minutes. Either create your gui in code or use the available easy to use editor. Once a gui layout has been created in the editor, it can be exported as blitz source code. The editor can be set to either export a fully working source file, or only the core gui code. The last option allows you to directly "include" the exported code, for easy interface integration. The library is fully 3d, no 2d commands used. This means you don't have to worry about slow and unrelierable 2d drivers, and that some graphics cards dosn't work well if 2d is mixed with 3d. Futhermore it allows for realtime transparency, color and shadow effects.

Screenshots, click to enlarge:




The full library features:

- Fully 3D, no 2D commands used.
- An Editor to graphically create your interface.
- Change the look of the interface with one command, through custom designs, or via 5 built-in
- Design editor to create your own designs; your gui can have it's own unique look!
- Display either truetype or bitmap fonts.
- Create full desktop size applications with a resizable window
- Many gadgets available, including:
Labels
Windows
Buttons ( Normal/Image or Switch )
Tabs
TabPages
CheckBoxes
TextBoxes
Integers
Floats
Sliders ( horizonatal / vertical or bi-directional
Listboxes, with complex item trees.
ComboBoxes
Radio Groups
Frames
Images
Progresses
Menus
- Change/get all values of gadgets with only two commands:
TGadgetSet
TGadgetGet$()
- Lists with unlimited sub-items.
- Sort lists alphabetically
- Built-in filerequester with sort file feature
- Change the color and transparency of all gadgets.
- Simple and logical commands

Visit the ToolUI website, for more information:

www.gameart.dk/toolui

Download demo:

Download ToolUI Demo (2.46 mb)


slenkar(Posted 2004) [#2]
Ill buy that for a dollar


Dreamora(Posted 2004) [#3]
it would perhaps be a nice thing ... but the compiled demo shows only a blank white screen ... the same for both editors although they become blank grey

You didn't forget to include a DLL or not using Win98 only commands, did you?


Rob(Posted 2004) [#4]
I have the same as Dreamora. White screen...


Caff(Posted 2004) [#5]
White screen here too.


Perturbatio(Posted 2004) [#6]
it works fine for me, nice btw :)


Jeppe Nielsen(Posted 2004) [#7]
Thanks for your feedback. Try downloading again, it should be fixed now.


Perturbatio(Posted 2004) [#8]
still works for me :)


Caff(Posted 2004) [#9]
New version works fine.

Very nice too! Good price also, very tempting :)

You should add it to the toolbox :
http://www.blitzbasic.com/toolbox/toolbox.php?cat=14


GW(Posted 2004) [#10]
Nice!
Will TextArea be added?
and maybe an fps counter for the demo?


Beaker(Posted 2004) [#11]
Looks good. Really solid work.


wizzlefish(Posted 2004) [#12]
I'm looking forward to this User Interfac :)

I'm currently using Night GUI, which is all in French, which is kind of confusing.... :)


:) :)


RepeatUntil(Posted 2004) [#13]
Very nice GUI! I am impressed by the work you did!!
On my (old) computer (433 MHz), it's a bit slow though...


Jeppe Nielsen(Posted 2004) [#14]
GW, textarea will probably be added later. Anyway the demo is updated; the library now support the standard windows file requester.


JoshK(Posted 2004) [#15]
How can you even sell this? It isn't event-based. It uses 100% of the CPU when idle.


Warren(Posted 2004) [#16]
Hey, you're looking to sell a WW2 FPS game. It's a free country.


Koriolis(Posted 2004) [#17]
How can you even sell this? It isn't event-based.
You can't do real event based systems in pure blitz (it lacks function pointers and virtual methods, which precludes real callbacks), you have to emulate by "polling", which isn't quite the same. With that in mind, what could this GUI do better in terms of events?
It uses 100% of the CPU when idle.
The *demo* uses 100% of the CPU when idle. Here's the code of the main loop:
Repeat	
	Cls
	RenderWorld
	Flip
Until KeyDown(1)
*Of course* it takes 100% of the CPU...which proves nothing about the lib itself.[EDIT]That said, the editor would really benefit from a little "Delay" or "WaitTimer"...[/EDIT]


Warren(Posted 2004) [#18]
Well you COULD create objects in memory of an event Type that you define. Then the app using the GUI could loop through any available event objects in memory each frame.

You can't send them to specific windows, true, but if the Type definition contained enough information, it would work.

That's one way, anyway...


Koriolis(Posted 2004) [#19]
That's true, but that's still polling, and you still have to do big selects and discriminate each very specific event on a specific gadget. And I can see cases where your solution is actually less convenient. But let's not digress, I just wanted to counterbalance the post of halo which seemed abit harsh, to say the least. Though that's sadly pretty usual. Criticzing is good, it's all in the way you do it.


Warren(Posted 2004) [#20]
I understand, and I wasn't trying to de-rail the thread. Just wanted to propose one possible solution, but apparently you've already considered that one so ... onward and upward.


jfk EO-11110(Posted 2004) [#21]
polling or not, I know jeppe is a true GUI veteran and I remember when I used his first blitz gui, it was very fast.


sswift(Posted 2004) [#22]
Don't listen to Halo. As usual, he doesn't know what he's talking about. Event based or not event based has nothing to do with how much CPU it uses, and it obviously is using 100% of the CPU because Blitz will do that by defualt unless you throw a delay in the main loop.


Caff(Posted 2004) [#23]
I like this GUI a lot, but I will only buy it if you can build in proper font support into the GUI editor. I'd like to be able to choose a different font (either TTF or Bitmap font) for each item, and have the text centred neatly.


Difference(Posted 2004) [#24]
Looks good, but there are a few glitches.

Combo, Radio and Check -Box + others don't react until mouseup event. The whole GUI should behave consistantly = react on mousedown events.

The scroll bar in the listbox has an error where if you just click it, it stays down.

Clicking and then sliding the mouse off a button, results in a non-detected click, even though it was "on target". (This is related to the mouseup/mousedown issue)

There are some small visual "errors" too, like the scroll bar beeing too wide , text in listbox overwriting the left highlight etc.

This is just from 5 minuttes testing so there might be more.


jfk EO-11110(Posted 2004) [#25]
>>Clicking and then sliding the mouse off a button, results in a non-detected click<<

but isn't this the way the windows gui works too?


Difference(Posted 2004) [#26]
@jfk: Yes, it seems so. I guess it's just me that would do that differently. I stand by the rest... I think :)


Damien Sturdy(Posted 2004) [#27]
this is perfect for what i want, and im well an truly willing to pay the tenner :D cept

Bank Ballance: £-196.62



D'OH


Richard Betson(Posted 2004) [#28]
It wont download for me:( I'll try again latter:)

L8r,


Craig H. Nisbet(Posted 2004) [#29]
I would buy this for the costomizability, but I'm using BCF right now and one great thing it can do is create a button(or gadget) straight on the screen without having to be placed on an ugly window. This system seems to require a window for gadgets. Unless I'm wrong.


Jeppe Nielsen(Posted 2004) [#30]
Thanks for you feedback, positive or not. The editors + demo has been updated so they will use less cpu time when idle. This is now intergrated into the library itself. Furthermore some of the bugs Peter Scheutz mentioned are corrected, although I didn't quite understand all of them :)
For it being Event based or not, take a look at the TEvent() command. It does almost everything you need, this way:
Select TEvent( eventtype )

	Case button1
		;Button1 clicked

	Case textbox
		;textbox text changed
	
	Case...

End Select

Caff, you can now change the font in the editor, via the setup.ini file, the second last line is the font name, and the last is the font size. I am afraid that different fonts will not be supported, as they will use alot of memory.