public void SelectItem(int index)
{
// Check if index is valid
if (index >=0 && index <=Items.Count-1)
{
// Check if item is selected
if (Items[index].state != MozItemState.Selected)
{
// Is it a divider ?
if (Items[index].ItemStyle!=MozItemStyle.Divider)
{
// Check if toggle is enabled
if (!Toggle)
{
// for each control in our list...
for (int i=0; i<this.Items.Count; i++)
{
// set all items to not selected
if ((Items[i]!=m_mouseOverItem) || (Items[i].state == MozItemState.Selected))
Items[i].state = MozItemState.Normal;
}
// No item is selected
m_selectedItems=0;
}
// Check that the allowed number of selected items isnt exceeded
if (m_maxSelectedItems >= m_selectedItems + 1)
{
// set our item to selected
Items[index].state = MozItemState.Selected;
m_selectedItems++;
// Scroll selected item into view
ScrollControlIntoView(Items[index]);
if (ItemSelected != null) ItemSelected(this,new MozItemEventArgs(Items[index]));
}
}
}
else
{
if (Toggle)
{
//unselect selected item by setting its state to Focus
Items[index].state = MozItemState.Focus;
m_selectedItems--;
if (ItemDeselected != null) ItemDeselected(this,new MozItemEventArgs(Items[index]));
}
}
}
}