📄 sample_demo4.cpp
字号:
rb->setPosition(UVector2(cegui_reldim(0.65f), cegui_reldim( 0.3f)));
rb->setSize(UVector2(cegui_reldim(0.35f), cegui_reldim( 0.05f)));
rb->setGroupID(1);
rb->setText("Left Aligned");
// subscribe a handler to listen for when the radio button select state changes
rb->subscribeEvent(RadioButton::EventSelectStateChanged, &formatChangedHandler);
rb = static_cast<RadioButton*>(winMgr.createWindow("TaharezLook/RadioButton", "TextWindow/RB2"));
textwnd->addChildWindow(rb);
rb->setPosition(UVector2(cegui_reldim(0.65f), cegui_reldim( 0.35f)));
rb->setSize(UVector2(cegui_reldim(0.35f), cegui_reldim( 0.05f)));
rb->setGroupID(1);
rb->setText("Right Aligned");
// subscribe a handler to listen for when the radio button select state changes
rb->subscribeEvent(RadioButton::EventSelectStateChanged, &formatChangedHandler);
rb = static_cast<RadioButton*>(winMgr.createWindow("TaharezLook/RadioButton", "TextWindow/RB3"));
textwnd->addChildWindow(rb);
rb->setPosition(UVector2(cegui_reldim(0.65f), cegui_reldim( 0.4f)));
rb->setSize(UVector2(cegui_reldim(0.35f), cegui_reldim( 0.05f)));
rb->setGroupID(1);
rb->setText("Centred");
// subscribe a handler to listen for when the radio button select state changes
rb->subscribeEvent(RadioButton::EventSelectStateChanged, &formatChangedHandler);
// vertical formatting radio group
rb = static_cast<RadioButton*>(winMgr.createWindow("TaharezLook/RadioButton", "TextWindow/RB4"));
textwnd->addChildWindow(rb);
rb->setPosition(UVector2(cegui_reldim(0.65f), cegui_reldim( 0.6f)));
rb->setSize(UVector2(cegui_reldim(0.35f), cegui_reldim( 0.05f)));
rb->setGroupID(2);
rb->setText("Top Aligned");
// subscribe a handler to listen for when the radio button select state changes
rb->subscribeEvent(RadioButton::EventSelectStateChanged, &formatChangedHandler);
rb = static_cast<RadioButton*>(winMgr.createWindow("TaharezLook/RadioButton", "TextWindow/RB5"));
textwnd->addChildWindow(rb);
rb->setPosition(UVector2(cegui_reldim(0.65f), cegui_reldim( 0.65f)));
rb->setSize(UVector2(cegui_reldim(0.35f), cegui_reldim( 0.05f)));
rb->setGroupID(2);
rb->setText("Bottom Aligned");
// subscribe a handler to listen for when the radio button select state changes
rb->subscribeEvent(RadioButton::EventSelectStateChanged, &formatChangedHandler);
rb = static_cast<RadioButton*>(winMgr.createWindow("TaharezLook/RadioButton", "TextWindow/RB6"));
textwnd->addChildWindow(rb);
rb->setPosition(UVector2(cegui_reldim(0.65f), cegui_reldim( 0.7f)));
rb->setSize(UVector2(cegui_reldim(0.35f), cegui_reldim( 0.05f)));
rb->setGroupID(2);
rb->setText("Centred");
// subscribe a handler to listen for when the radio button select state changes
rb->subscribeEvent(RadioButton::EventSelectStateChanged, &formatChangedHandler);
// Edit box for text entry
Editbox* eb = static_cast<Editbox*>(winMgr.createWindow("TaharezLook/Editbox", "TextWindow/Editbox1"));
textwnd->addChildWindow(eb);
eb->setPosition(UVector2(cegui_reldim(0.05f), cegui_reldim( 0.85f)));
eb->setMaxSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 0.04f)));
eb->setSize(UVector2(cegui_reldim(0.90f), cegui_reldim( 0.08f)));
// subscribe a handler to listen for when the text changes
eb->subscribeEvent(Window::EventTextChanged, &textChangedHandler);
//
// Controls are set up. Install initial settings
//
static_cast<Checkbox*>(winMgr.getWindow("TextWindow/CB1"))->setSelected(true);
static_cast<RadioButton*>(winMgr.getWindow("TextWindow/RB1"))->setSelected(true);
static_cast<RadioButton*>(winMgr.getWindow("TextWindow/RB4"))->setSelected(true);
winMgr.getWindow("TextWindow/Editbox1")->setText("Come on then, edit me!");
// success!
return true;
}
/*************************************************************************
Cleans up resources allocated in the initialiseSample call.
*************************************************************************/
void Demo4Sample::cleanupSample()
{
// nothing to do here!
}
/*************************************************************************
Free function to handle slider position changes
*************************************************************************/
bool sliderHandler(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// we know it's a slider.
Slider* s = static_cast<Slider*>(static_cast<const WindowEventArgs&>(e).window);
// get value from slider and set it as the current alpha
float val = s->getCurrentValue();
WindowManager::getSingleton().getWindow("root_wnd")->setAlpha(val);
// indicate the event was handled here.
return true;
}
/*************************************************************************
Free function to handle change of format options
*************************************************************************/
bool formatChangedHandler(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// we will use the WindowManager to get access to the widgets
WindowManager& winMgr = WindowManager::getSingleton();
// get pointers to all the widgets we need to access
const RadioButton* rb1 = static_cast<const RadioButton*>(winMgr.getWindow("TextWindow/RB1"));
const RadioButton* rb2 = static_cast<const RadioButton*>(winMgr.getWindow("TextWindow/RB2"));
const RadioButton* rb3 = static_cast<const RadioButton*>(winMgr.getWindow("TextWindow/RB3"));
const RadioButton* rb4 = static_cast<const RadioButton*>(winMgr.getWindow("TextWindow/RB4"));
const RadioButton* rb5 = static_cast<const RadioButton*>(winMgr.getWindow("TextWindow/RB5"));
const RadioButton* rb6 = static_cast<const RadioButton*>(winMgr.getWindow("TextWindow/RB6"));
const Checkbox* cb1 = static_cast<const Checkbox*>(winMgr.getWindow("TextWindow/CB1"));
// and also the static text for which we will set the formatting options
Window* st = winMgr.getWindow("TextWindow/Static");
// handle vertical formatting settings
if (rb4->isSelected())
st->setProperty("VertFormatting", "TopAligned");
else if (rb5->isSelected())
st->setProperty("VertFormatting", "BottomAligned");
else if (rb6->isSelected())
st->setProperty("VertFormatting", "VertCentred");
// handle horizontal formatting settings
bool wrap = cb1->isSelected();
if (rb1->isSelected())
st->setProperty("HorzFormatting", wrap ? "WordWrapLeftAligned" : "LeftAligned");
else if (rb2->isSelected())
st->setProperty("HorzFormatting", wrap ? "WordWrapRightAligned" : "RightAligned");
else if (rb3->isSelected())
st->setProperty("HorzFormatting", wrap ? "WordWrapCentred" : "HorzCentred");
// event was handled
return true;
}
/*************************************************************************
Free function handler called when editbox text changes
*************************************************************************/
bool textChangedHandler(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
//find the static box
Window* st = WindowManager::getSingleton().getWindow("TextWindow/Static");
// set text from the edit box...
st->setText(static_cast<const WindowEventArgs&>(e).window->getText());
return true;
}
/*************************************************************************
Handler method that signals the application to quit
*************************************************************************/
bool Demo4Sample::handleQuit(const CEGUI::EventArgs& e)
{
// signal quit
d_sampleApp->setQuitting();
// event was handled
return true;
}
/*************************************************************************
Handler method that ??
*************************************************************************/
bool Demo4Sample::horzMoveHandler(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
return true;
}
/*************************************************************************
Handler method that ??
*************************************************************************/
bool Demo4Sample::vertMoveHandler(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
return true;
}
/*************************************************************************
Handler method that ??
*************************************************************************/
bool Demo4Sample::vscrollHandler(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -