void CHexViewView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar) { m_shift = shiftKeyPressed(); switch(nSBCode) { case SB_TOP : setLineOffset(0, false).setCaretX(0); break; case SB_BOTTOM : setLineOffset(m_maxLineOffset, false).setCaretX(m_maxCaret.x); break; case SB_ENDSCROLL : break; case SB_LINELEFT : scrollHorz(-1); break; case SB_LINERIGHT : scrollHorz( 1); break; case SB_PAGELEFT : pageLeft(m_shift); break; case SB_PAGERIGHT : pageRight(m_shift); break; case SB_THUMBPOSITION : break; case SB_THUMBTRACK : { // Dont use parameter nPos as it is only 16-bits int SCROLLINFO scrollInfo; GetScrollInfo(SB_HORZ,&scrollInfo); if(scrollInfo.nTrackPos >= 0 && scrollInfo.nTrackPos <= m_maxLineOffset) { setLineOffset(scrollInfo.nTrackPos); } } break; } }
void CHexViewView::end(bool shift) { m_shift = shift; if(m_lineOffset < m_maxLineOffset) { setLineOffset(m_maxLineOffset, false).setCaretX(m_maxCaret.x); } else { setCaretX(m_maxCaret.x, false); } }
void CHexViewView::home(bool shift) { m_shift = shift; if(m_lineOffset > 0 || m_caret.x > 0) { setLineOffset(0, false).setCaretX(0); } else { setCaretX(0, false); } }
void CHexViewView::charRight(bool shift) { m_shift = shift; if(m_caret.x < m_maxCaret.x) { setCaretX(m_caret.x+1, false); } else if(m_lineOffset < m_maxLineOffset) { scrollHorz(1); } else if(getSettings().getWrapEndOfLine() && getCurrentAddr() < m_docSize - 1) { if(m_caret.y < m_maxCaret.y) { if(m_lineOffset > 0) { setLineOffset(0, false).setCaret(0, m_caret.y+1); } else { setCaret(0, m_caret.y+1, false); } } else { setTopLine(m_topLine+1, false).setLineOffset(0, false).setCaretX(0); } } }
void CHexViewView::charLeft(bool shift) { m_shift = shift; if(m_caret.x > 0) { setCaretX(m_caret.x-1, false); } else if(m_lineOffset > 0) { scrollHorz(-1); } else if(getSettings().getWrapEndOfLine() && getCurrentAddr() > 0) { if(m_caret.y > 0) { if(m_lineOffset < m_maxLineOffset) { setLineOffset(m_maxLineOffset, false).setCaret(m_maxCaret.x, m_caret.y-1); } else { setCaret(m_maxCaret.x, m_caret.y-1, false); } } else { setTopLine(m_topLine-1, false).setLineOffset(m_maxLineOffset, false).setCaretX(m_maxCaret.x); } } }
void ossimNitfRpcBase::setLineOffset(ossim_uint32 lineOffset) { ossimString os = ossimNitfCommon::convertToUIntString(lineOffset, LINE_OFFSET_SIZE); setLineOffset(os); }