|
|
Line 1: |
Line 1: |
− | == Creating the ''MultiColumnList'' in code ==
| |
| | | |
− | Take a look at this code on how we create the ''MultiColumnList'' window:
| |
− |
| |
− | <pre>
| |
− | // Get the CEGUI Window Manager
| |
− | CEGUI::WindowManager *mWinMgr = CEGUI::WindowManager::getSingletonPtr();
| |
− |
| |
− | // Create the CEGUI MultiColumnList window
| |
− | CEGUI::MultiColumnList *mListBox = (CEGUI::MultiColumnList *)mWinMgr->createWindow(
| |
− | (CEGUI::utf8*)CEGUILOOK"/MultiColumnList", (CEGUI::utf8*)"MyListBox");
| |
− | // Don't forget to add this window to another window and set its other properties
| |
− | // like position, size, etc. Use the methods you prefer.
| |
− | mListBox->setPosition( CEGUI::Point(0.05f, 0.1f) );
| |
− | mListBox->setSize( CEGUI::Size(0.90f, 0.80f) );
| |
− | // mSomeWindow->addChild(mListBox);
| |
− |
| |
− | // Set the users selection ability
| |
− | mListBox->setSelectionMode(CEGUI::MultiColumnList::SelectionMode::RowMultiple);
| |
− |
| |
− | // Add some column headers
| |
− | mListBox->addColumn("Column1", 0, 0.10f);
| |
− | mListBox->addColumn("Column2", 1, 0.25f);
| |
− | mListBox->addColumn("Column3", 2, 0.25f);
| |
− | mListBox->addColumn("Column4", 3, 0.45f);
| |
− |
| |
− | // I don't know why, but you have set the column header widths via this function.
| |
− | // The Column Header widths are not assumed from the "addColumn" function. Bug?
| |
− | mListBox->setColumnHeaderWidth(0, 0.10f);
| |
− | mListBox->setColumnHeaderWidth(1, 0.25f);
| |
− | mListBox->setColumnHeaderWidth(2, 0.25f);
| |
− | mListBox->setColumnHeaderWidth(3, 0.45f);
| |
− | </pre>
| |
− |
| |
− |
| |
− | Note these lines in the code:
| |
− |
| |
− | <pre>
| |
− | // I don't know why, but you have set the column header widths via this function.
| |
− | // The Column Header widths are not assumed from the "addColumn" function. Bug?
| |
− | mListBox->setColumnHeaderWidth(0, 0.10f);
| |
− | mListBox->setColumnHeaderWidth(1, 0.25f);
| |
− | mListBox->setColumnHeaderWidth(2, 0.25f);
| |
− | mListBox->setColumnHeaderWidth(3, 0.45f);
| |
− | </pre>
| |
− |
| |
− | If you don't set the column header widths with the ''setColumnHeaderWidth()'' method then the columns will appear to be ''stacked'' on top of one another. This may be a bug in the library. The numbers I used for the widths are arbitrary. You can make them anything you like.
| |
− |
| |
− | '''!! WARNING !!''' Take note that you should '''not''' follow each ''addColumn()'' with a ''setColumnHeaderWidth()''. Create all the columns first and then set the column widths. Not following this will yield unreliable column size results.
| |
− |
| |
− | In other words '''DO NOT DO THIS'''
| |
− | <pre>
| |
− | // Add some column headers
| |
− | mListBox->addColumn("Column1", 0, 0.10f);
| |
− | mListBox->setColumnHeaderWidth(0, 0.10f);
| |
− | mListBox->addColumn("Column2", 1, 0.25f);
| |
− | mListBox->setColumnHeaderWidth(1, 0.25f);
| |
− | mListBox->addColumn("Column3", 2, 0.25f);
| |
− | mListBox->setColumnHeaderWidth(2, 0.25f);
| |
− | mListBox->addColumn("Column4", 3, 0.45f);
| |
− | mListBox->setColumnHeaderWidth(3, 0.45f);
| |
− | </pre>
| |