Page 1 of 1

Custom GUI Development

Posted: Mon Jun 11, 2007 4:35 am
by necroMonger
Hello,

I plan to use Irrlicht engine for my Bachelor thesis assignment :roll: I will have to make an application that will use some customized GUI features for user input. The basic GUI idea, will be as a set of inter-connected nodes. Giving basis to these connections, the output will be affected in real-time.

Quick questions:

1. How can I implement this Node-style behaviour?
Is there already something similar into irrlicht's GUI features?

2. This extension to GUI, how 'deep' will make some one mess with the source? Node GUI behaviour is not the the purpose of my assignment, however if it can be completed in two weeks then I'll try to implement it.

Posted: Mon Jun 11, 2007 11:07 am
by CuteAlien
Hm, sorry, I don't get it yet. Maybe you could draw a small example for the sort of GUI-Elements which you need?

Posted: Mon Jun 11, 2007 2:04 pm
by necroMonger
Here it is, one version of the prototypes I've created.

Image

Re: Custom GUI Development

Posted: Mon Jun 11, 2007 2:34 pm
by bitplane
Everything GUI-based in the engine is completely pluggable - you can add your own external elements just by inheriting IGUIElement and adding them to the environment. You don't need to mess with the engine's source, you can build complex GUI elements by inheriting from (file dialog is CGUIWindow) and/or nesting simpler ones (a combo box contains a button and a listbox, listbox contains a scrollbar, a scrollbar contains 2 buttons, etc).
for an example, see the source to the gui elements, and the GUI editor project inside /tools.

If you want to be able to create and edit your new element types in the gui editor, you should
1) override serialize/deserializeAttributes and getType methods of IGUIElement so they can be edited, loaded and saved
2) make sure children (for example text boxes) have setSubElement(true) called so that the GUI knows they are part of their parent and not separate entities.
3) add all your custom elements into a new IGUIElementFactory, so they can be created by name

Posted: Mon Jun 11, 2007 2:59 pm
by BlindSide
Hey just curious what year are you into your study?