void LLFlatListView::reshape(S32 width, S32 height, BOOL called_from_parent /* = TRUE */) { S32 delta = height - getRect().getHeight(); LLScrollContainer::reshape(width, height, called_from_parent); setItemsNoScrollWidth(width); rearrangeItems(); if(delta!= 0 && mKeepSelectionVisibleOnReshape) { ensureSelectedVisible(); } }
void LLFlatListView::selectLastItem () { // No items - no actions! if (0 == size()) return; // Select last visible item for (pairs_list_t::reverse_iterator r_iter = mItemPairs.rbegin(), r_iter_end = mItemPairs.rend(); r_iter != r_iter_end; ++r_iter) { // skip invisible items if ( (*r_iter)->first->getVisible() ) { selectItemPair(*r_iter, true); ensureSelectedVisible(); break; } } }
void LLFlatListView::selectFirstItem () { // No items - no actions! if (0 == size()) return; // Select first visible item for (pairs_iterator_t iter = mItemPairs.begin(), iter_end = mItemPairs.end(); iter != iter_end; ++iter) { // skip invisible items if ( (*iter)->first->getVisible() ) { selectItemPair(*iter, true); ensureSelectedVisible(); break; } } }
void LLFlatListView::selectLastItem () { selectItemPair(mItemPairs.back(), true); ensureSelectedVisible(); }
void LLFlatListView::selectFirstItem () { selectItemPair(mItemPairs.front(), true); ensureSelectedVisible(); }
BOOL LLFlatListView::handleKeyHere(KEY key, MASK mask) { BOOL reset_selection = (mask != MASK_SHIFT); BOOL handled = FALSE; switch (key) { case KEY_RETURN: { if (mSelectedItemPairs.size() && mask == MASK_NONE) { mOnReturnSignal(this, getValue()); handled = TRUE; } break; } case KEY_UP: { if ( !selectNextItemPair(true, reset_selection) && reset_selection) { // If case we are in accordion tab notify parent to go to the previous accordion if(notifyParent(LLSD().with("action","select_prev")) > 0 )//message was processed resetSelection(); } break; } case KEY_DOWN: { if ( !selectNextItemPair(false, reset_selection) && reset_selection) { // If case we are in accordion tab notify parent to go to the next accordion if( notifyParent(LLSD().with("action","select_next")) > 0 ) //message was processed resetSelection(); } break; } case 'A': { if(MASK_CONTROL & mask) { selectAll(); handled = TRUE; } break; } default: break; } if ( ( key == KEY_UP || key == KEY_DOWN ) && mSelectedItemPairs.size() ) { ensureSelectedVisible(); /* LLRect visible_rc = getVisibleContentRect(); LLRect selected_rc = getLastSelectedItemRect(); if ( !visible_rc.contains (selected_rc) ) { // But scroll in Items panel coordinates scrollToShowRect(selected_rc); } // In case we are in accordion tab notify parent to show selected rectangle LLRect screen_rc; localRectToScreen(selected_rc, &screen_rc); notifyParent(LLSD().with("scrollToShowRect",screen_rc.getValue()));*/ handled = TRUE; } return handled ? handled : LLScrollContainer::handleKeyHere(key, mask); }