📄 mainmodule.cpp
字号:
StaticText* msg = (StaticText*)winMgr.createWindow((utf8*)"Taharez StaticText", (utf8*)"ErrorBox/Message");
fwnd->addChildWindow(msg);
msg->setPosition(Point(0.1f, 0.1f));
msg->setSize(Size(0.8f, 0.5f));
msg->setVerticalFormatting(StaticText::VertCentred);
msg->setHorizontalFormatting(StaticText::HorzCentred);
msg->setBackgroundEnabled(false);
msg->setFrameEnabled(false);
// create ok button
PushButton* btn = (PushButton*)winMgr.createWindow((utf8*)"Taharez Button", (utf8*)"ErrorBox/OkButton");
fwnd->addChildWindow(btn);
btn->setPosition(Point(0.3f, 0.80f));
btn->setSize(Size(0.4f, 0.1f));
btn->setText((utf8*)"Okay!");
// subscribe event
btn->subscribeEvent(PushButton::Clicked, boost::bind(&CEGUIOgre_TestDriver1::handleErrorBox, this, _1));
errbox = fwnd;
}
errbox->getChild((utf8*)"ErrorBox/Message")->setText((utf8*)text);
errbox->show();
errbox->activate();
}
/*************************************************************************
Quit then demo.
*************************************************************************/
void CEGUIOgre_TestDriver1::handleQuit(const CEGUI::EventArgs& e)
{
mRoot->queueEndRendering();
}
void CEGUIOgre_TestDriver1::handleSlider(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// ProgressBar* pbar = (ProgressBar*)winMgr.createWindow((utf8*)"Taharez ProgressBar", (utf8*)"Demo7/Window2/Progbar1");
// fwnd1->addChildWindow(pbar);
// pbar->setMaximumSize(Size(1.0f, 1.0f));
// pbar->setPosition(Point(0.04f, 0.8f));
// pbar->setSize(Size(0.94f, 0.05f));
// pbar->setProgress(0.33f);
// pbar = (ProgressBar*)winMgr.createWindow((utf8*)"Taharez AltProgressBar", (utf8*)"Demo7/Window2/Progbar2");
// fwnd1->addChildWindow(pbar);
// pbar->setMaximumSize(Size(1.0f, 1.0f));
// pbar->setPosition(Point(0.04f, 0.86f));
// pbar->setSize(Size(0.94f, 0.05f));
// pbar->setProgress(0.7f);
// WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window1/Slider1")->
// subscribeEvent(Slider::ValueChanged, boost::bind(&CEGUIOgre_TestDriver1::handleSlider, this, _1));
/*
float val = ((Slider*)((const WindowEventArgs&)e).window)->getCurrentValue();
((ProgressBar*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window2/Progbar1"))->setProgress(val);
((ProgressBar*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window2/Progbar2"))->setProgress(1.0f - val);
//Demo7/Window2
WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window1")->setAlpha(val);
WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window2")->setAlpha(val);
*/
}
void CEGUIOgre_TestDriver1::handleRadio(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
CEGUI::uint id = ((RadioButton*)((const WindowEventArgs&)e).window)->getSelectedButtonInGroup()->getID();
if (id == 0) //play movie after a pause
mMovieControl->pauseMovie( false );
else if (id == 1) //Pause movie
mMovieControl->pauseMovie( true );
else //Stop movie
{
FrameWindow* fwnd3 = (FrameWindow*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window3");
Listbox* lbox = (Listbox*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window2/Listbox");
StaticImage* simg = 0;
try
{
CEGUI::String te = mMovieControl->getTextureName();
fwnd3->removeChildWindow( (utf8*)"Demo7/Window3/Image1" );
simg = (StaticImage*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window3/Image1");
WindowManager::getSingleton().destroyWindow( simg );
Imageset *tempimg = ImagesetManager::getSingleton().getImageset(
(utf8*)"MyImagesNumber" );
tempimg->undefineImage( te );
ImagesetManager::getSingleton().destroyImageset( (utf8*)"MyImagesNumber" );
}
catch(...)
{
//Tis ok, first time through, set does not exist yet
}
mMovieControl->stopMovie();
}
}
void CEGUIOgre_TestDriver1::handleCheck(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
if (((Checkbox*)((const WindowEventArgs&)e).window)->isSelected())
{
WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window3")->show();
}
else
{
WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window3")->hide();
}
}
/*************************************************************************
Handler for the error box 'okay' button
*************************************************************************/
void CEGUIOgre_TestDriver1::handleErrorBox(const CEGUI::EventArgs& e)
{
CEGUI::WindowManager::getSingleton().getWindow((CEGUI::utf8*)"ErrorBox")->hide();
}
/*************************************************************************
cleanup - free some stuff and close-down CEGUI system
*************************************************************************/
void CEGUIOgre_TestDriver1::cleanup(void)
{
delete CEGUI::System::getSingletonPtr();
delete mGUIRenderer;
delete mMovieControl;
}
/*************************************************************************
Create the example replacement debug overlay
*************************************************************************/
void CEGUIOgre_TestDriver1::createCrazyPanel(void)
{
using namespace CEGUI;
Window* sheet = System::getSingleton().getGUISheet();
if (sheet != NULL)
{
//
// load ogre gui imageset & font
//
Imageset* giset = ImagesetManager::getSingleton().createImageset((utf8*)"ogregui.xml");
CEGUI::Font* gfont = CEGUI::FontManager::getSingleton().createFont((utf8*)"Tahoma-8", (utf8*)"Tahoma.ttf", 8, 0);
gfont->setAutoScalingEnabled(true);
gfont->setNativeResolution(Size(800, 600));
//
// static for info panel
//
StaticText* panel = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"Panel 1");
sheet->addChildWindow(panel);
panel->setPosition(Point(0.0f, 0.83f));
panel->setSize(Size(0.23f, 0.17f));
panel->setAlwaysOnTop(true);
// replace frame and backdrop images
panel->setFrameImages(
&giset->getImage((utf8*)"BoxTopLeft"),
&giset->getImage((utf8*)"BoxTopRight"),
&giset->getImage((utf8*)"BoxBottomLeft"),
&giset->getImage((utf8*)"BoxBottomRight"),
&giset->getImage((utf8*)"BoxLeft"),
&giset->getImage((utf8*)"BoxTop"),
&giset->getImage((utf8*)"BoxRight"),
&giset->getImage((utf8*)"BoxBottom")
);
panel->setBackgroundImage(&giset->getImage((utf8*)"BoxBack"));
panel->setAlpha(0.9f);
panel->setEnabled(false);
panel->setInheritsAlpha(false);
//
// Components on panel
//
StaticText* st;
st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPCurrentFPS");
panel->addChildWindow(st);
st->setFrameEnabled(false);
st->setBackgroundEnabled(false);
st->setFont(gfont);
st->setPosition(Point(0.075f, 0.12f));
st->setSize(Size(0.85f, 0.15f));
st->setTextColours(0xFF4F406F);
st->setHorizontalFormatting(StaticText::HorzCentred);
st->setText((utf8*)"Current FPS: ");
StaticImage* si = (StaticImage*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticImage", (utf8*)"OPBar1");
panel->addChildWindow(si);
si->setFrameEnabled(false);
si->setBackgroundEnabled(false);
si->setPosition(Point(0.2f, 0.27f));
si->setSize(Size(0.6f, 0.025f));
si->setImage(&giset->getImage((utf8*)"Bar"));
st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPAverageFPS");
panel->addChildWindow(st);
st->setFrameEnabled(false);
st->setBackgroundEnabled(false);
st->setFont(gfont);
st->setPosition(Point(0.075f, 0.32f));
st->setSize(Size(1.0f, 0.15f));
st->setTextColours(0xFF005710);
st->setText((utf8*)"Average FPS: ");
st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPWorstFPS");
panel->addChildWindow(st);
st->setFrameEnabled(false);
st->setBackgroundEnabled(false);
st->setFont(gfont);
st->setPosition(Point(0.075f, 0.45f));
st->setSize(Size(1.0f, 0.15f));
st->setTextColours(0xFF005710);
st->setText((utf8*)"Worst FPS: ");
st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPBestFPS");
panel->addChildWindow(st);
st->setFrameEnabled(false);
st->setBackgroundEnabled(false);
st->setFont(gfont);
st->setPosition(Point(0.075f, 0.58f));
st->setSize(Size(1.0f, 0.15f));
st->setTextColours(0xFF005710);
st->setText((utf8*)"Best FPS: ");
st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPTriCount");
panel->addChildWindow(st);
st->setFrameEnabled(false);
st->setBackgroundEnabled(false);
st->setFont(gfont);
st->setPosition(Point(0.075f, 0.71f));
st->setSize(Size(1.0f, 0.15f));
st->setTextColours(0xFF005710);
st->setText((utf8*)"Triangle Count: ");
st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPDebugMsg");
sheet->addChildWindow(st);
st->setAlwaysOnTop(true);
st->setFrameEnabled(false);
st->setBackgroundEnabled(false);
st->setFont(gfont);
st->setPosition(Point(0.25f, 0.93f));
st->setSize(Size(0.65f, 0.07f));
st->setTextColours(0xA0FFFFFF);
st->setFormatting(StaticText::WordWrapCentred, StaticText::VertCentred);
st->setEnabled(false);
st->setInheritsAlpha(false);
//
// Ogre logo
//
StaticImage* ologo = (StaticImage*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticImage", (utf8*)"Ogre Logo");
sheet->addChildWindow(ologo);
ologo->setFrameEnabled(false);
ologo->setBackgroundEnabled(false);
ologo->setImage(&giset->getImage((utf8*)"OgreLogo"));
ologo->setPosition(Point(0.9f, 0.95f));
ologo->setSize(Size(0.1, 0.05f));
ologo->setAlwaysOnTop(true);
ologo->setAlpha(0.9f);
ologo->setEnabled(false);
ologo->setInheritsAlpha(false);
//
// CEGUI logo
//
StaticImage* clogo = (StaticImage*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticImage", (utf8*)"Cegui Logo");
sheet->addChildWindow(clogo);
clogo->setFrameEnabled(false);
clogo->setBackgroundEnabled(false);
clogo->setImage(&giset->getImage((utf8*)"CeguiLogo"));
clogo->setPosition(Point(0.9125f, 0.9115f));
clogo->setSize(Size(0.075, 0.0385f));
clogo->setAlwaysOnTop(true);
clogo->setAlpha(0.9f);
clogo->setEnabled(false);
clogo->setInheritsAlpha(false);
}
}
/*************************************************************************
createFrameListener - add out frame lister which handles input
*************************************************************************/
void CEGUIOgre_TestDriver1::createFrameListener(void)
{
mFrameListener= new CEGUIOgre_FrameListener(mWindow, mCamera);
mRoot->addFrameListener(mFrameListener);
}
/*************************************************************************
frameStarted - method that handles all input for this demo.
*************************************************************************/
bool CEGUIOgre_FrameListener::frameStarted(const FrameEvent& evt)
{
if (mQuit)
return false;
else
{
updateStats();
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -