// Class CTMSingleSelect -- A Single Selection Text List // Created 4 October 1992 by Ronald C. Murray #ifndef __TMSINGLE_H__ #define __TMSINGLE_H__ #include "Select.h" class CTMSingleSelect : public CSelector { public: CTMSingleSelect(CTextMatrix *ptm, long rowStart= 0, UINT hlType= CHighlight::DOT_BOX_TEXT, BOOL fHighlightOn= FALSE ) { m_rowHL = rowStart; m_hlType = hlType; m_fHLOn = fHighlightOn; ASSERT(ptm); m_ptm= ptm; // Note: Don't use AttachRef here! // It'll create a reference loop! } ~CTMSingleSelect() { } // DetachRef(m_ptm); } long GetHighlights (long rowTop, long colLeft, long cRows, long cCols, long cHighlights, CHighlight *phl ); long GetSelectedRow() { return m_fHLOn? m_rowHL : -1; } void SetSelectedRow(long row, BOOL fNotify= TRUE, UINT hlType= CHighlight::HIGHLIGHT_TEXT, BOOL fHighlightOn= TRUE ); BOOL GetFocusRect(int *prow , int *pcol, int *pcRows, int *pcCols ); // Filter Event: void FilterChanged() { SetSelectedRow(0, TRUE, CHighlight::HIGHLIGHT_TEXT, FALSE); } // Mouse Events: void OnLButtonDblClk(UINT nFlags, long row, long col) { m_ptm->NotifyInterface(CTextMatrix::DoubleClick); } void OnLButtonDown(UINT nFlags, long row, long col); void OnLButtonUp (UINT nFlags, long row, long col,BOOL bInBox = FALSE); void OnMouseMove (UINT nFlags, long row, long col); // Keystroke Events: void OnKeyDown(CTextDisplay *ptd, UINT nChar, UINT nRepCnt, UINT nFlags ); void OnKeyUp (CTextDisplay *ptd, UINT nChar, UINT nRepCnt, UINT nFlags ); void OnChar (CTextDisplay *ptd, UINT nChar, UINT nRepCnt, UINT nFlags ); private: BOOL m_fHLOn; long m_rowHL; UINT m_hlType; }; #endif // __TMSINGLE_H__