bitplane aab1dfa7cb Added StarSonata GUI patch from the tracker, const corrected. Fixed some bugs and changed the style and behaviour of the tabs. Tables aren't fully tested and don't serialize properly yet.
Changed gui editor to show off and test the new tab features.
Updated project files and makefile, have only tested vc8 and dev-cpp. Didn't know how to do the OSX project so I'll leave it for Dean.
Moved EGUI_ALIGNMENT into separate header.
Added getArea and getVolume for bounding boxes, no real reason for them.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1124 dfc29bdd-3216-0410-991c-e03cc46cb475
2007-12-22 07:49:29 +00:00

96 lines
2.3 KiB
C++

#include <irrlicht.h>
#include <iostream>
// include the gui creator element factory
#include "CGUIEditFactory.h"
using namespace irr;
using namespace gui;
#pragma comment(lib, "Irrlicht.lib")
int main()
{
// ask user for driver
video::E_DRIVER_TYPE driverType;
printf("Please select the driver you want for this example:\n"\
" (a) Direct3D 9.0c\n (b) Direct3D 8.1\n (c) OpenGL 1.5\n"\
" (d) Software Renderer\n (e) Burning's Software Renderer\n"\
" (f) NullDevice\n (otherKey) exit\n\n");
char i='a';
std::cin >> i;
switch(i)
{
case 'a': driverType = video::EDT_DIRECT3D9;break;
case 'b': driverType = video::EDT_DIRECT3D8;break;
case 'c': driverType = video::EDT_OPENGL; break;
case 'd': driverType = video::EDT_SOFTWARE; break;
case 'e': driverType = video::EDT_BURNINGSVIDEO;break;
case 'f': driverType = video::EDT_NULL; break;
default: return 1;
}
IrrlichtDevice *device =createDevice(driverType, core::dimension2d<s32>(800, 600));
video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();
gui::IGUIEnvironment *env = device->getGUIEnvironment();
/*
first we create the factory which can make new GUI elements
and register it with the gui environment.
*/
IGUIElementFactory* factory = new CGUIEditFactory(env);
env->registerGUIElementFactory(factory);
// remember to drop since we created with a create call
factory->drop();
IGUISkin *skin = env->createSkin(EGST_WINDOWS_METALLIC);
env->setSkin(skin);
IGUIFont *font = env->getFont("../../media/lucida.xml");
if (font)
skin->setFont(font);
skin->drop();
// change transparency of skin
for (s32 i=0; i<gui::EGDC_COUNT ; ++i)
{
video::SColor col = env->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);
col.setAlpha(250);
env->getSkin()->setColor((gui::EGUI_DEFAULT_COLOR)i, col);
}
/*
now we add the GUI Editor Workspace
*/
env->loadGUI("guiTest.xml");
env->addGUIElement("GUIEditor");
while(device->run())
{
device->sleep(10);
if (device->isWindowActive())
{
driver->beginScene(true, true, video::SColor(0,200,200,200));
smgr->drawAll();
env->drawAll();
driver->endScene();
}
}
device->drop();
return 0;
}