<!-- Wanted to avoid copying .css to each folder, so copied default .css from doxyen in here, kicked out most stuff we don't need for examples and modified some a little bit.
Target was having a single html in each example folder which is created from the main.cpp files and needs no files besides some images below media folder.
<p>This tutorial shows how to use the built in User Interface of the Irrlicht Engine. It will give a brief overview and show how to create and use windows, buttons, scroll bars, static texts, and list boxes.</p>
<p>As always, we include the header files, and use the irrlicht namespaces. We also store a pointer to the Irrlicht device, a counter variable for changing the creation position of a window, and a pointer to a listbox. </p><divclass="fragment"><divclass="line"><spanclass="preprocessor">#include <irrlicht.h></span></div><divclass="line"><spanclass="preprocessor">#include "driverChoice.h"</span></div><divclass="line"></div><divclass="line"><spanclass="keyword">using namespace </span>irr;</div><divclass="line"></div><divclass="line"><spanclass="keyword">using namespace </span>core;</div><divclass="line"><spanclass="keyword">using namespace </span>scene;</div><divclass="line"><spanclass="keyword">using namespace </span>video;</div><divclass="line"><spanclass="keyword">using namespace </span>io;</div><divclass="line"><spanclass="keyword">using namespace </span>gui;</div><divclass="line"></div><divclass="line"><spanclass="preprocessor">#ifdef _IRR_WINDOWS_</span></div><divclass="line"><spanclass="preprocessor">#pragma comment(lib, "Irrlicht.lib")</span></div><divclass="line"><spanclass="preprocessor">#endif</span></div><divclass="line"></div><divclass="line"><spanclass="comment">// Declare a structure to hold some context for the event receiver so that it</span></div><divclass="line"><spanclass="comment">// has it available inside its OnEvent() method.</span></div><divclass="line"><spanclass="keyword">struct </span>SAppContext</div><divclass="line">{</div><divclass="line"> IrrlichtDevice *device;</div><divclass="line"> s32 counter;</div><divclass="line"> IGUIListBox* listbox;</div><divclass="line">};</div><divclass="line"></div><divclass="line"><spanclass="comment">// Define some values that we'll use to identify individual GUI controls.</span></div><divclass="line"><spanclass="keyword">enum</span></div><divclass="line">{</div><divclass="line"> GUI_ID_QUIT_BUTTON = 101,</div><divclass="line"> GUI_ID_NEW_WINDOW_BUTTON,</div><divclass="line"> GUI_ID_FILE_OPEN_BUTTON,</div><divclass="line"> GUI_ID_TRANSPARENCY_SCROLL_BAR</div><divclass="line">};</div></div><!-- fragment --><p> Set the skin transparency by changing the alpha values of all skin-colors </p><divclass="fragment"><divclass="line"><spanclass="keywordtype">void</span> setSkinTransparency(s32 alpha, irr::gui::IGUISkin * skin)</div><divclass="line">{</div><divclass="line"><spanclass="keywordflow">for</span> (s32 i=0; i<irr::gui::EGDC_COUNT ; ++i)</div><divclass="line"> {</div><divclass="line"> video::SColor col = skin->getColor((EGUI_DEFAULT_COLOR)i);</div><divclass="line"> col.setAlpha(alpha);</div><divclass="line"> skin->setColor((EGUI_DEFAULT_COLOR)i, col);</div><divclass="line"> }</div><divclass="line">}</div></div><!-- fragment --><p> The Event Receiver is not only capable of getting keyboard and mouse input events, but also events of the graphical user interface (gui). There are events for almost everything: Button click, Listbox selection change, events that say that a element was hovered and so on. To be able to react to some of these events, we create an event receiver. We only react to gui events, and if it's such an event, we get the id of the caller (the gui element which caused the event) and get the pointer to the gui environment. </p><divclass="fragment"><divclass="line"><spanclass="keyword">class </span>MyEventReceiver : <spanclass="keyword">public</span> IEventReceiver</div><divclass="line">{</div><divclass="line"><spanclass="keyword">public</span>:</div><divclass="line"> MyEventReceiver(SAppContext & context) : Context(context) { }</div><divclass="line"></div><divclass="line"><spanclass="keyword">virtual</span><spanclass="keywordtype">bool</span> OnEvent(<spanclass="keyword">const</span> SEvent& event)</div><divclass="line"> {</div><divclass="line"><spanclass="keywordflow">if</span> (event.EventType == EET_GUI_EVENT)</div><divclass="line">