📄 sample_demo6.cpp
字号:
st->setProperty("VertFormatting", "TopAligned");
label = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/Label5");
st->addChildWindow(label);
label->setProperty("FrameEnabled", "false");
label->setProperty("BackgroundEnabled", "false");
label->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.2f)));
label->setSize(UVector2(cegui_reldim(0.2f), cegui_reldim( 0.12f)));
label->setText("Col ID:");
label = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/Label6");
st->addChildWindow(label);
label->setProperty("FrameEnabled", "false");
label->setProperty("BackgroundEnabled", "false");
label->setPosition(UVector2(cegui_reldim(0.23f), cegui_reldim( 0.2f)));
label->setSize(UVector2(cegui_reldim(0.55f), cegui_reldim( 0.12f)));
label->setText("Item Text:");
ebox = static_cast<Editbox*>(winMgr.createWindow("TaharezLook/Editbox", "Demo6/ControlPanel/ColumnPanel/RowColIDBox"));
st->addChildWindow(ebox);
ebox->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.32f)));
ebox->setSize(UVector2(cegui_reldim(0.2f), cegui_reldim( 0.2f)));
ebox->setValidationString("\\d*");
ebox = static_cast<Editbox*>(winMgr.createWindow("TaharezLook/Editbox", "Demo6/ControlPanel/ColumnPanel/RowTextBox"));
st->addChildWindow(ebox);
ebox->setPosition(UVector2(cegui_reldim(0.23f), cegui_reldim( 0.32f)));
ebox->setSize(UVector2(cegui_reldim(0.55f), cegui_reldim( 0.2f)));
ebox->setValidationString(".*");
btn = static_cast<PushButton*>(winMgr.createWindow("TaharezLook/Button", "Demo6/ControlPanel/ColumnPanel/AddRowButton"));
st->addChildWindow(btn);
btn->setPosition(UVector2(cegui_reldim(0.81f), cegui_reldim( 0.32f)));
btn->setSize(UVector2(cegui_reldim(0.15f), cegui_reldim( 0.2f)));
btn->setText("Add");
label = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/Label7");
st->addChildWindow(label);
label->setProperty("FrameEnabled", "false");
label->setProperty("BackgroundEnabled", "false");
label->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.55f)));
label->setSize(UVector2(cegui_reldim(0.2f), cegui_reldim( 0.12f)));
label->setText("Row Idx:");
ebox = static_cast<Editbox*>(winMgr.createWindow("TaharezLook/Editbox", "Demo6/ControlPanel/ColumnPanel/DelRowIdxBox"));
st->addChildWindow(ebox);
ebox->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.67f)));
ebox->setSize(UVector2(cegui_reldim(0.2f), cegui_reldim( 0.2f)));
ebox->setValidationString("\\d*");
btn = static_cast<PushButton*>(winMgr.createWindow("TaharezLook/Button", "Demo6/ControlPanel/ColumnPanel/DelRowButton"));
st->addChildWindow(btn);
btn->setPosition(UVector2(cegui_reldim(0.25f), cegui_reldim( 0.67f)));
btn->setSize(UVector2(cegui_reldim(0.4f), cegui_reldim( 0.2f)));
btn->setText("Delete Row");
// set item box
st = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/SetItemPanel");
fwnd->addChildWindow(st);
st->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.65f)));
st->setSize(UVector2(cegui_reldim(0.96f), cegui_reldim( 0.25f)));
st->setText("Item Modification");
st->setProperty("VertFormatting", "TopAligned");
label = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/Label8");
st->addChildWindow(label);
label->setProperty("FrameEnabled", "false");
label->setProperty("BackgroundEnabled", "false");
label->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.2f)));
label->setSize(UVector2(cegui_reldim(0.2f), cegui_reldim( 0.12f)));
label->setText("Row Idx:");
label = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/Label9");
st->addChildWindow(label);
label->setProperty("FrameEnabled", "false");
label->setProperty("BackgroundEnabled", "false");
label->setPosition(UVector2(cegui_reldim(0.23f), cegui_reldim( 0.2f)));
label->setSize(UVector2(cegui_reldim(0.2f), cegui_reldim( 0.12f)));
label->setText("Col ID:");
label = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/Label10");
st->addChildWindow(label);
label->setProperty("FrameEnabled", "false");
label->setProperty("BackgroundEnabled", "false");
label->setPosition(UVector2(cegui_reldim(0.44f), cegui_reldim( 0.2f)));
label->setSize(UVector2(cegui_reldim(0.2f), cegui_reldim( 0.12f)));
label->setText("Item Text:");
ebox = static_cast<Editbox*>(winMgr.createWindow("TaharezLook/Editbox", "Demo6/ControlPanel/ColumnPanel/SetItemRowBox"));
st->addChildWindow(ebox);
ebox->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.32f)));
ebox->setSize(UVector2(cegui_reldim(0.2f), cegui_reldim( 0.2f)));
ebox->setValidationString("\\d*");
ebox = static_cast<Editbox*>(winMgr.createWindow("TaharezLook/Editbox", "Demo6/ControlPanel/ColumnPanel/SetItemIDBox"));
st->addChildWindow(ebox);
ebox->setPosition(UVector2(cegui_reldim(0.23f), cegui_reldim( 0.32f)));
ebox->setSize(UVector2(cegui_reldim(0.2f), cegui_reldim( 0.2f)));
ebox->setValidationString("\\d*");
ebox = static_cast<Editbox*>(winMgr.createWindow("TaharezLook/Editbox", "Demo6/ControlPanel/ColumnPanel/SetItemTextBox"));
st->addChildWindow(ebox);
ebox->setPosition(UVector2(cegui_reldim(0.44f), cegui_reldim( 0.32f)));
ebox->setSize(UVector2(cegui_reldim(0.36f), cegui_reldim( 0.2f)));
ebox->setValidationString(".*");
btn = static_cast<PushButton*>(winMgr.createWindow("TaharezLook/Button", "Demo6/ControlPanel/ColumnPanel/SetItemButton"));
st->addChildWindow(btn);
btn->setPosition(UVector2(cegui_reldim(0.81f), cegui_reldim( 0.32f)));
btn->setSize(UVector2(cegui_reldim(0.15f), cegui_reldim( 0.2f)));
btn->setText("Set");
label = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/RowCount");
st->addChildWindow(label);
label->setProperty("FrameEnabled", "false");
label->setProperty("BackgroundEnabled", "false");
label->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.55f)));
label->setSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 0.12f)));
label->setText("Current Row Count:");
label = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/ColCount");
st->addChildWindow(label);
label->setProperty("FrameEnabled", "false");
label->setProperty("BackgroundEnabled", "false");
label->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.67f)));
label->setSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 0.12f)));
label->setText("Current Column Count:");
label = winMgr.createWindow("TaharezLook/StaticText", "Demo6/ControlPanel/SelCount");
st->addChildWindow(label);
label->setProperty("FrameEnabled", "false");
label->setProperty("BackgroundEnabled", "false");
label->setPosition(UVector2(cegui_reldim(0.02f), cegui_reldim( 0.79f)));
label->setSize(UVector2(cegui_reldim(1.0f), cegui_reldim( 0.12f)));
label->setText("Current Selected Count:");
btn = static_cast<PushButton*>(winMgr.createWindow("TaharezLook/Button", "Demo6/QuitButton"));
fwnd->addChildWindow(btn);
btn->setPosition(UVector2(cegui_reldim(0.25f), cegui_reldim( 0.93f)));
btn->setSize(UVector2(cegui_reldim(0.50f), cegui_reldim( 0.05f)));
btn->setText("Quit This Demo!");
}
void Demo6Sample::initDemoEventWiring(void)
{
using namespace CEGUI;
WindowManager& winMgr = WindowManager::getSingleton();
// subscribe handler that adds a new column
winMgr.getWindow("Demo6/ControlPanel/ColumnPanel/AddColButton")->
subscribeEvent(PushButton::EventClicked, Event::Subscriber(&Demo6Sample::handleAddColumn, this));
// subscribe handler that deletes a column
winMgr.getWindow("Demo6/ControlPanel/ColumnPanel/DelColButton")->
subscribeEvent(PushButton::EventClicked, Event::Subscriber(&Demo6Sample::handleDeleteColumn, this));
// subscribe handler that adds a new row
winMgr.getWindow("Demo6/ControlPanel/ColumnPanel/AddRowButton")->
subscribeEvent(PushButton::EventClicked, Event::Subscriber(&Demo6Sample::handleAddRow, this));
// subscribe handler that deletes a row
winMgr.getWindow("Demo6/ControlPanel/ColumnPanel/DelRowButton")->
subscribeEvent(PushButton::EventClicked, Event::Subscriber(&Demo6Sample::handleDeleteRow, this));
// subscribe handler that sets the text for an existing item
winMgr.getWindow("Demo6/ControlPanel/ColumnPanel/SetItemButton")->
subscribeEvent(PushButton::EventClicked, Event::Subscriber(&Demo6Sample::handleSetItem, this));
// subscribe handler that quits the application
winMgr.getWindow("Demo6/QuitButton")->
subscribeEvent(PushButton::EventClicked, Event::Subscriber(&Demo6Sample::handleQuit, this));
// subscribe handler that processes a change in the 'selection mode' combobox
winMgr.getWindow("Demo6/ControlPanel/SelModeBox")->
subscribeEvent(Combobox::EventListSelectionAccepted, Event::Subscriber(&Demo6Sample::handleSelectModeChanged, this));
// subscribe handler that processes a change in the item(s) selected in the list
winMgr.getWindow("Demo6/MainList")->
subscribeEvent(MultiColumnList::EventSelectionChanged, Event::Subscriber(&Demo6Sample::handleSelectChanged, this));
// subscribe handler that processes a change in the list content.
winMgr.getWindow("Demo6/MainList")->
subscribeEvent(MultiColumnList::EventListContentsChanged, Event::Subscriber(&Demo6Sample::handleContentsChanged, this));
}
bool Demo6Sample::handleQuit(const CEGUI::EventArgs& e)
{
// signal quit
d_sampleApp->setQuitting();
// event was handled
return true;
}
bool Demo6Sample::handleAddColumn(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// get access to the widgets that contain details about the column to add
MultiColumnList* mcl = static_cast<MultiColumnList*>(WindowManager::getSingleton().getWindow("Demo6/MainList"));
Editbox* idbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/NewColIDBox"));
Editbox* widthbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/NewColWidthBox"));
Editbox* textbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/NewColTextBox"));
// get ID for new column
CEGUI::uint id = atoi(idbox->getText().c_str());
// get width to use for new column (in pixels)
float width = atof(widthbox->getText().c_str());
// get column label text
String text = textbox->getText();
// re-set the widget contents
idbox->setText("");
widthbox->setText("");
textbox->setText("");
// ensure a minimum width of 10 pixels
if (width < 10.0f)
width = 10.0f;
// finally, add the new column to the list.
mcl->addColumn(text, id, cegui_absdim(width));
// event was handled.
return true;
}
bool Demo6Sample::handleDeleteColumn(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// get access to the widgets that contain details about the column to delete
MultiColumnList* mcl = static_cast<MultiColumnList*>(WindowManager::getSingleton().getWindow("Demo6/MainList"));
Editbox* idbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/DelColIDBox"));
// obtain the id of the column to be deleted
CEGUI::uint id = atoi(idbox->getText().c_str());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -