📄 sample_demo7.cpp
字号:
// First progress bar
ProgressBar* pbar = static_cast<ProgressBar*>(winMgr.createWindow("TaharezLook/ProgressBar", "Demo7/Window2/Progbar1"));
fwnd2->addChildWindow(pbar);
pbar->setMaxSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 1.0f)));
pbar->setPosition(UVector2(cegui_reldim(0.04f), cegui_reldim( 0.1f)));
pbar->setSize(UVector2(cegui_reldim(0.94f), cegui_reldim( 0.05f)));
pbar->setProgress(0.33f);
// second progress bar in the alternative style
pbar = static_cast<ProgressBar*>(winMgr.createWindow("TaharezLook/AlternateProgressBar", "Demo7/Window2/Progbar2"));
fwnd2->addChildWindow(pbar);
pbar->setMaxSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 1.0f)));
pbar->setPosition(UVector2(cegui_reldim(0.04f), cegui_reldim( 0.16f)));
pbar->setSize(UVector2(cegui_reldim(0.94f), cegui_reldim( 0.05f)));
pbar->setProgress(0.7f);
// standard listbox
Listbox* lbox = static_cast<Listbox*>(winMgr.createWindow("TaharezLook/Listbox", "Demo7/Window2/Listbox"));
fwnd2->addChildWindow(lbox);
lbox->setMaxSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 1.0f)));
lbox->setPosition(UVector2(cegui_reldim(0.04f), cegui_reldim( 0.25f)));
lbox->setSize(UVector2(cegui_reldim(0.42f), cegui_reldim( 0.3f)));
// combobox widget
Combobox* cbobox = static_cast<Combobox*>(winMgr.createWindow("TaharezLook/Combobox", "Demo7/Window2/Combobox"));
fwnd2->addChildWindow(cbobox);
cbobox->setMaxSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 1.0f)));
cbobox->setPosition(UVector2(cegui_reldim(0.5f), cegui_reldim( 0.25f)));
cbobox->setSize(UVector2(cegui_reldim(0.42f), cegui_reldim( 0.45f)));
// multi-column list (MCL / Grid) widget
MultiColumnList* mclbox = static_cast<MultiColumnList*>(winMgr.createWindow("TaharezLook/MultiColumnList", "Demo7/Window2/MultiColumnList"));
fwnd2->addChildWindow(mclbox);
mclbox->setMaxSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 1.0f)));
mclbox->setPosition(UVector2(cegui_reldim(0.05f), cegui_reldim( 0.6f)));
mclbox->setSize(UVector2(cegui_reldim(0.9f), cegui_reldim( 0.38f)));
mclbox->setSelectionMode(MultiColumnList::RowSingle);
// StaticImage
Window* simg = winMgr.createWindow("TaharezLook/StaticImage", "Demo7/Window2/Image1");
fwnd2->addChildWindow(simg);
simg->setMaxSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 1.0f)));
simg->setPosition(UVector2(cegui_reldim(0.56f), cegui_reldim( 0.35f)));
simg->setSize(UVector2(cegui_reldim(0.3f), cegui_reldim( 0.2f)));
simg->setProperty("FrameEnabled", "false");
simg->setProperty("BackgroundEnabled", "false");
simg->setProperty("Image", "set:BackgroundImage image:full_image");
// Multi-line editbox widget
MultiLineEditbox* mleb = static_cast<MultiLineEditbox*>(winMgr.createWindow("TaharezLook/MultiLineEditbox", "Demo7/Window3/MLEditbox"));
fwnd3->addChildWindow(mleb);
mleb->setMaxSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 1.0f)));
mleb->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.1f)));
mleb->setSize(UVector2(cegui_reldim(0.96f), cegui_reldim( 0.85f)));
mleb->setText("Multi-line edit box. Edit me!\n");
//
// List box setup
//
// Add items to normal listbox
lbox->addItem(new MyListItem("Listbox Item 1"));
lbox->addItem(new MyListItem("Listbox Item 2"));
lbox->addItem(new MyListItem("Listbox Item 3"));
lbox->addItem(new MyListItem("Listbox Item 4"));
lbox->addItem(new MyListItem("Listbox Item 5"));
lbox->addItem(new MyListItem("Listbox Item 6"));
lbox->addItem(new MyListItem("Listbox Item 7"));
// add items to the combobox list
cbobox->addItem(new MyListItem("Combobox Item 1"));
cbobox->addItem(new MyListItem("Combobox Item 2"));
cbobox->addItem(new MyListItem("Combobox Item 3"));
cbobox->addItem(new MyListItem("Combobox Item 4"));
cbobox->addItem(new MyListItem("Combobox Item 5"));
cbobox->addItem(new MyListItem("Combobox Item 6"));
cbobox->addItem(new MyListItem("Combobox Item 7"));
cbobox->addItem(new MyListItem("Combobox Item 8"));
cbobox->addItem(new MyListItem("Combobox Item 9"));
cbobox->addItem(new MyListItem("Combobox Item 10"));
// Add columns to MCL
mclbox->addColumn("Server Name", 0, cegui_reldim(0.33f));
mclbox->addColumn("Address", 1, cegui_reldim(0.5f));
mclbox->addColumn("Ping", 2, cegui_reldim(0.2f));
// Add some empty rows to the MCL
mclbox->addRow();
mclbox->addRow();
mclbox->addRow();
mclbox->addRow();
mclbox->addRow();
// Set first row item texts for the MCL
mclbox->setItem(new MyListItem("Laggers World"), 0, 0);
mclbox->setItem(new MyListItem("yourgame.some-server.com"), 1, 0);
mclbox->setItem(new MyListItem("1000ms"), 2, 0);
// Set second row item texts for the MCL
mclbox->setItem(new MyListItem("Super-Server"), 0, 1);
mclbox->setItem(new MyListItem("whizzy.fakenames.net"), 1, 1);
mclbox->setItem(new MyListItem("8ms"), 2, 1);
// Set third row item texts for the MCL
mclbox->setItem(new MyListItem("Cray-Z-Eds"), 0, 2);
mclbox->setItem(new MyListItem("crayzeds.notarealserver.co.uk"), 1, 2);
mclbox->setItem(new MyListItem("43ms"), 2, 2);
// Set fourth row item texts for the MCL
mclbox->setItem(new MyListItem("Fake IPs"), 0, 3);
mclbox->setItem(new MyListItem("123.320.42.242"), 1, 3);
mclbox->setItem(new MyListItem("63ms"), 2, 3);
// Set fifth row item texts for the MCL
mclbox->setItem(new MyListItem("Yet Another Game Server"), 0, 4);
mclbox->setItem(new MyListItem("abc.abcdefghijklmn.org"), 1, 4);
mclbox->setItem(new MyListItem("284ms"), 2, 4);
}
/*************************************************************************
Perform required event hook-ups for this demo.
*************************************************************************/
void Demo7Sample::initDemoEventWiring(void)
{
using namespace CEGUI;
// Subscribe handler that quits the application
WindowManager::getSingleton().getWindow("Demo7/Window1/Quit")->
subscribeEvent(PushButton::EventClicked, Event::Subscriber(&Demo7Sample::handleQuit, this));
// Subscribe handler that processes changes to the slider position.
WindowManager::getSingleton().getWindow("Demo7/Window1/Slider1")->
subscribeEvent(Slider::EventValueChanged, Event::Subscriber(&Demo7Sample::handleSlider, this));
// Subscribe handler that processes changes to the checkbox selection state.
WindowManager::getSingleton().getWindow("Demo7/Window1/Checkbox")->
subscribeEvent(Checkbox::EventCheckStateChanged, Event::Subscriber(&Demo7Sample::handleCheck, this));
// Subscribe handler that processes changes to the radio button selection state.
WindowManager::getSingleton().getWindow("Demo7/Window1/Radio1")->
subscribeEvent(RadioButton::EventSelectStateChanged, Event::Subscriber(&Demo7Sample::handleRadio, this));
// Subscribe handler that processes changes to the radio button selection state.
WindowManager::getSingleton().getWindow("Demo7/Window1/Radio2")->
subscribeEvent(RadioButton::EventSelectStateChanged, Event::Subscriber(&Demo7Sample::handleRadio, this));
// Subscribe handler that processes changes to the radio button selection state.
WindowManager::getSingleton().getWindow("Demo7/Window1/Radio3")->
subscribeEvent(RadioButton::EventSelectStateChanged, Event::Subscriber(&Demo7Sample::handleRadio, this));
}
bool Demo7Sample::handleQuit(const CEGUI::EventArgs& e)
{
// signal quit
d_sampleApp->setQuitting();
// event was handled
return true;
}
bool Demo7Sample::handleSlider(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// get the current slider value
float val = static_cast<Slider*>(static_cast<const WindowEventArgs&>(e).window)->getCurrentValue();
// set the progress for the first bar according to the slider value
static_cast<ProgressBar*>(WindowManager::getSingleton().getWindow("Demo7/Window2/Progbar1"))->setProgress(val);
// set second bar's progress - this time the reverse of the first one
static_cast<ProgressBar*>(WindowManager::getSingleton().getWindow("Demo7/Window2/Progbar2"))->setProgress(1.0f - val);
// set the alpha on the window containing all the controls.
WindowManager::getSingleton().getWindow("root_wnd")->setAlpha(val);
// event was handled.
return true;
}
bool Demo7Sample::handleRadio(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// get the ID of the selected radio button
CEGUI::uint id = static_cast<RadioButton*>(static_cast<const WindowEventArgs&>(e).window)->getSelectedButtonInGroup()->getID();
// get the StaticImage window
Window* img = WindowManager::getSingleton().getWindow("Demo7/Window2/Image1");
// set an image into the StaticImage according to the ID of the selected radio button.
switch (id)
{
case 0:
img->setProperty("Image", "set:BackgroundImage image:full_image");
break;
case 1:
img->setProperty("Image", "set:TaharezLook image:MouseArrow");
break;
default:
img->setProperty("Image", "");
break;
}
// event was handled
return true;
}
bool Demo7Sample::handleCheck(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// show or hide the FrameWindow containing the multi-line editbox according to the state of the
// checkbox widget
WindowManager::getSingleton().getWindow("Demo7/Window3")->
setVisible(static_cast<Checkbox*>(static_cast<const WindowEventArgs&>(e).window)->isSelected());
// event was handled.
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -