/************************************************************************* Set whether the list should allow multiple selections or just a single selection *************************************************************************/ void Listbox::setMultiselectEnabled(bool setting) { // only react if the setting is changed if (d_multiselect != setting) { d_multiselect = setting; // if we change to single-select, deselect all except the first selected item. WindowEventArgs args(this); if ((!d_multiselect) && (getSelectedCount() > 1)) { ListboxItem* itm = getFirstSelectedItem(); while ((itm = getNextSelected(itm))) { itm->setSelected(false); } onSelectionChanged(args); } onMultiselectModeChanged(args); } }
/************************************************************************* Handler for mouse button release events *************************************************************************/ void ComboDropList::onMouseButtonUp(MouseEventArgs& e) { Listbox::onMouseButtonUp(e); if (e.button == LeftButton) { if (d_armed && (getChildAtPosition(e.position) == 0)) { // if something was selected, confirm that selection. if (getSelectedCount() > 0) { WindowEventArgs args(this); onListSelectionAccepted(args); } releaseInput(); } // if we are not already armed, in response to a left button up event, we auto-arm. else { d_armed = true; } ++e.handled; } }
void LLSidepanelInventory::updateVerbs() { mInfoBtn->setEnabled(FALSE); mShareBtn->setEnabled(FALSE); mWearBtn->setVisible(FALSE); mWearBtn->setEnabled(FALSE); mPlayBtn->setVisible(FALSE); mPlayBtn->setEnabled(FALSE); mTeleportBtn->setVisible(FALSE); mTeleportBtn->setEnabled(FALSE); mShopBtn->setVisible(TRUE); mShareBtn->setEnabled(canShare()); const LLInventoryItem *item = getSelectedItem(); if (!item) return; bool is_single_selection = getSelectedCount() == 1; mInfoBtn->setEnabled(is_single_selection); switch(item->getInventoryType()) { case LLInventoryType::IT_WEARABLE: case LLInventoryType::IT_OBJECT: case LLInventoryType::IT_ATTACHMENT: mWearBtn->setVisible(TRUE); mWearBtn->setEnabled(canWearSelected()); mShopBtn->setVisible(FALSE); break; case LLInventoryType::IT_SOUND: case LLInventoryType::IT_GESTURE: case LLInventoryType::IT_ANIMATION: mPlayBtn->setVisible(TRUE); mPlayBtn->setEnabled(TRUE); mShopBtn->setVisible(FALSE); break; case LLInventoryType::IT_LANDMARK: mTeleportBtn->setVisible(TRUE); mTeleportBtn->setEnabled(TRUE); mShopBtn->setVisible(FALSE); break; default: break; } }