FX_BOOL CPWL_IconList_Content::OnMouseMove(const CPDF_Point& point, FX_DWORD nFlag) { if (m_bMouseDown) { int32_t nItemIndex = FindItemIndex(point); SetSelect(nItemIndex); ScrollToItem(nItemIndex); } return TRUE; }
FX_BOOL CPWL_IconList_Content::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) { switch (nChar) { case FWL_VKEY_Up: if (m_nSelectIndex > 0) { int32_t nItemIndex = m_nSelectIndex - 1; SetSelect(nItemIndex); ScrollToItem(nItemIndex); } return TRUE; case FWL_VKEY_Down: if (m_nSelectIndex < m_nListCount - 1) { int32_t nItemIndex = m_nSelectIndex + 1; SetSelect(nItemIndex); ScrollToItem(nItemIndex); } return TRUE; } return FALSE; }
FX_BOOL CPWL_IconList_Content::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) { SetFocus(); SetCapture(); m_bMouseDown = TRUE; int32_t nItemIndex = FindItemIndex(point); SetSelect(nItemIndex); ScrollToItem(nItemIndex); return TRUE; }
/* ================ rvRollupPanel::ExpandItem expand or collapse the item at the given index ================ */ void rvRollupPanel::ExpandItem(int index, bool expand) { // safety check if (index >= mItems.Num() || index < 0) { return; } _ExpandItem(mItems[index], expand); RecallLayout(); // scroll to this page (automatic page visibility) if (expand) { ScrollToItem(index, false); } }