예제 #1
0
/*************************************************************************
    Query item selection state
*************************************************************************/
bool ItemListbox::isItemSelected(size_t index) const
{
    if (index >= d_listItems.size())
    {
        CEGUI_THROW(InvalidRequestException(
            "The index given is out of range for this ItemListbox"));
    }
    ItemEntry *li = d_listItems[index];
    return li->isSelected();
}
예제 #2
0
/************************************************************************
    Get a pointer to the first selected item starting from the given index
************************************************************************/
ItemEntry* ItemListbox::findSelectedItem(size_t start_index) const
{
    const size_t max = d_listItems.size();

    for (size_t i = start_index; i < max; ++i)
    {
        ItemEntry* li = d_listItems[i];
        if (li->isSelected())
        {
            d_nextSelectionIndex = i + 1;
            return li;
        }
    }

    return 0;
}
예제 #3
0
void FalagardItemEntry::render()
{
    ItemEntry* item = static_cast<ItemEntry*>(d_window);

    // get WidgetLookFeel for the assigned look.
    const WidgetLookFeel& wlf = getLookNFeel();

    const StateImagery* imagery;
    // render basic imagery
    String state = item->isDisabled() ? "Disabled" : "Enabled";
    if (item->isSelectable() && item->isSelected())
    {
        imagery = &wlf.getStateImagery(item->isDisabled()?"SelectedDisabled":"SelectedEnabled");
    }
    else
    {
        imagery = &wlf.getStateImagery(item->isDisabled()?"Disabled":"Enabled");
    }
    imagery->render(*d_window);
}
예제 #4
0
/************************************************************************
    Get a pointer to the next selected item after the given item
************************************************************************/
ItemEntry* ItemListbox::getNextSelectedItemAfter(const ItemEntry* start_item) const
{
    if (start_item==0||!d_multiSelect)
    {
        return 0;
    }

    size_t max = d_listItems.size();
    size_t i = getItemIndex(start_item);

    while (i<max)
    {
        ItemEntry* li = d_listItems[i];
        if (li->isSelected())
        {
            return li;
        }
        ++i;
    }

    return 0;
}