📄 sample_demo6.cpp
字号:
// attempt to delete the column, ignoring any errors.
try
{
mcl->removeColumnWithID(id);
}
catch (InvalidRequestException)
{}
// reset the delete column ID box.
idbox->setText("");
// event was handled.
return true;
}
bool Demo6Sample::handleAddRow(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// get access to the widgets that contain details about the row to add
MultiColumnList* mcl = static_cast<MultiColumnList*>(WindowManager::getSingleton().getWindow("Demo6/MainList"));
Editbox* idbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/RowColIDBox"));
Editbox* textbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/RowTextBox"));
// get the ID of the initial column item to set
CEGUI::uint id = atoi(idbox->getText().c_str());
// get the text that is to be set initially into the specified column of the new row
String text = textbox->getText();
// reset input boxes
idbox->setText("");
textbox->setText("");
// construct a new ListboxTextItem with the required string
ListboxTextItem* item = new ListboxTextItem(text);
// set the selection brush to use for this item.
item->setSelectionBrushImage(&ImagesetManager::getSingleton().getImageset("TaharezLook")->getImage("MultiListSelectionBrush"));
// attempt to add a new row, using the new ListboxTextItem as the initial content for one of the columns
try
{
mcl->addRow(item, id);
}
// something went wrong, so cleanup the ListboxTextItem
catch (InvalidRequestException)
{
delete item;
}
// event was handled.
return true;
}
bool Demo6Sample::handleDeleteRow(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// get access to the widgets that contain details about the row to delete.
MultiColumnList* mcl = static_cast<MultiColumnList*>(WindowManager::getSingleton().getWindow("Demo6/MainList"));
Editbox* idxbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/DelRowIdxBox"));
// get index of row to delete.
CEGUI::uint idx = atoi(idxbox->getText().c_str());
// attempt to delete the row, ignoring any errors.
try
{
mcl->removeRow(idx);
}
catch (InvalidRequestException)
{}
// clear the row index box
idxbox->setText("");
// event was handled.
return true;
}
bool Demo6Sample::handleSetItem(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// get access to the widgets that contain details about the item to be modified
MultiColumnList* mcl = static_cast<MultiColumnList*>(WindowManager::getSingleton().getWindow("Demo6/MainList"));
Editbox* idbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/SetItemIDBox"));
Editbox* rowbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/SetItemRowBox"));
Editbox* textbox = static_cast<Editbox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColumnPanel/SetItemTextBox"));
// get ID of column to be affected
CEGUI::uint id = atoi(idbox->getText().c_str());
// get index of row to be affected
CEGUI::uint row = atoi(rowbox->getText().c_str());
// get new text for item
String text = textbox->getText();
// reset input boxes
idbox->setText("");
rowbox->setText("");
textbox->setText("");
// create a new ListboxTextItem using the new text string
ListboxTextItem* item = new ListboxTextItem(text);
// set the selection brush to be used for this item.
item->setSelectionBrushImage(&ImagesetManager::getSingleton().getImageset("TaharezLook")->getImage("MultiListSelectionBrush"));
// attempt to set the new item in place
try
{
mcl->setItem(item, id, row);
}
// something went wrong, so cleanup the ListboxTextItem.
catch (InvalidRequestException)
{
delete item;
}
// event was handled.
return true;
}
bool Demo6Sample::handleSelectChanged(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// Get access to the list
MultiColumnList* mcl = static_cast<MultiColumnList*>(WindowManager::getSingleton().getWindow("Demo6/MainList"));
// update the selected count
std::string tmp("Current Selected Count: ");
char buff[16];
sprintf(buff, "%d", mcl->getSelectedCount());
tmp += buff;
WindowManager::getSingleton().getWindow("Demo6/ControlPanel/SelCount")->setText(tmp);
// event was handled.
return true;
}
bool Demo6Sample::handleSelectModeChanged(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// get access to list
MultiColumnList* mcl = static_cast<MultiColumnList*>(WindowManager::getSingleton().getWindow("Demo6/MainList"));
// get access to the combobox
Combobox* combo = static_cast<Combobox*>(WindowManager::getSingleton().getWindow("Demo6/ControlPanel/SelModeBox"));
// find the selected item in the combobox
ListboxItem* item = combo->findItemWithText(combo->getText(), 0);
// set new selection mode according to ID of selected ListboxItem
if (item)
{
switch (item->getID())
{
case 0:
mcl->setSelectionMode(MultiColumnList::RowSingle);
break;
case 1:
mcl->setSelectionMode(MultiColumnList::RowMultiple);
break;
case 2:
mcl->setSelectionMode(MultiColumnList::ColumnSingle);
break;
case 3:
mcl->setSelectionMode(MultiColumnList::ColumnMultiple);
break;
case 4:
mcl->setSelectionMode(MultiColumnList::CellSingle);
break;
case 5:
mcl->setSelectionMode(MultiColumnList::CellMultiple);
break;
case 6:
mcl->setSelectionMode(MultiColumnList::NominatedColumnSingle);
break;
case 7:
mcl->setSelectionMode(MultiColumnList::NominatedColumnMultiple);
break;
case 8:
mcl->setSelectionMode(MultiColumnList::NominatedRowSingle);
break;
case 9:
mcl->setSelectionMode(MultiColumnList::NominatedRowMultiple);
break;
default:
mcl->setSelectionMode(MultiColumnList::RowSingle);
break;
}
}
// event was handled.
return true;
}
bool Demo6Sample::handleContentsChanged(const CEGUI::EventArgs& e)
{
using namespace CEGUI;
// get access to required widgets
MultiColumnList* mcl = static_cast<MultiColumnList*>(WindowManager::getSingleton().getWindow("Demo6/MainList"));
Window* colText = WindowManager::getSingleton().getWindow("Demo6/ControlPanel/ColCount");
Window* rowText = WindowManager::getSingleton().getWindow("Demo6/ControlPanel/RowCount");
std::string tmp;
char buff[16];
// update the column count
tmp = "Current Column Count: ";
sprintf(buff, "%d", mcl->getColumnCount());
tmp += buff;
colText->setText(tmp);
// update the row count
tmp = "Current Row Count: ";
sprintf(buff, "%d", mcl->getRowCount());
tmp += buff;
rowText->setText(tmp);
// event was handled.
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -