static void TextAppend(Widget w, char *s, int len) { long last, current; XawTextBlock block; current = XawTextGetInsertionPoint (w); last = TextLength (w); block.ptr = s; block.firstPos = 0; block.length = len; block.format = FMT8BIT; /* * If saveLines is 1, just replace the entire contents of the widget * each time, so the test in ExceededMaxLines() isn't fooled. */ if (app_resources.saveLines == 1) TextReplace (w, 0, last, &block); else TextReplace (w, last, last, &block); if (current == last) XawTextSetInsertionPoint (w, last + block.length); if (ExceededMaxLines(w)) ScrollLine(w); }
static void TextInsert(Widget w, char *s, int len) { XawTextBlock block; long current; current = XawTextGetInsertionPoint (w); block.ptr = s; block.firstPos = 0; block.length = len; block.format = FMT8BIT; TextReplace (w, 0, 0, &block); if (current == 0) XawTextSetInsertionPoint (w, len); if (ExceededMaxLines(w)) ScrollLine(w); }
//************************************************************************ // CLCDInput::ScrollToMarker //************************************************************************ void CLCDInput::ScrollToMarker() { if(m_Marker[0].iLine < m_iLinePosition) m_iLinePosition = m_Marker[0].iLine; if(m_Marker[0].iLine > m_iLinePosition + (m_iLineCount-1)) { ScrollLine(); if(m_Marker[0].iLine > m_iLinePosition + (m_iLineCount-1)) m_iLinePosition = (m_Marker[0].iLine / m_iLineCount )*m_iLineCount; } if(m_iLinePosition > m_vLineOffsets.size()-1) m_iLinePosition = (int)m_vLineOffsets.size() -1; if(m_iLinePosition < 0) m_iLinePosition = 0; if(m_pScrollbar) m_pScrollbar->ScrollTo(m_iLinePosition); }
uint32_t Current() const { return ScrollLine(); }
uint32_t LastLine() const { return (BufferSize() < ScrollLine()) ? BufferSize() : ScrollLine(); }