From 237fb17be16b72eb043911f0f498327741839657 Mon Sep 17 00:00:00 2001 From: mjjo Date: Sat, 20 Jul 2013 23:23:10 +0000 Subject: [PATCH] --- HookMsg/XListBox.h | 95 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 HookMsg/XListBox.h diff --git a/HookMsg/XListBox.h b/HookMsg/XListBox.h new file mode 100644 index 0000000..5fbbded --- /dev/null +++ b/HookMsg/XListBox.h @@ -0,0 +1,95 @@ +// XListBox.h +// +// Author: Hans Dietrich +// hdietrich2@hotmail.com +// +// This software is released into the public domain. +// You are free to use it in any way you like. +// +// This software is provided "as is" with no expressed +// or implied warranty. I accept no liability for any +// damage or loss of business that this software may cause. +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef XLISTBOX_H +#define XLISTBOX_H + +/////////////////////////////////////////////////////////////////////////////// +// CXListBox class + +class CXListBox : public CListBox +{ +// Constructors +public: + CXListBox(); + ~CXListBox(); + +// Attributes +public: + int m_cxExtent; + int m_nTabPosition; + BOOL m_bColor; + COLORREF m_ColorWindow; + COLORREF m_ColorHighlight; + COLORREF m_ColorWindowText; + COLORREF m_ColorHighlightText; + + // NOTE - following list must be kept in sync with ColorPickerCB.cpp + + enum Color { Black, White, Maroon, Green, + Olive, Navy, Purple, Teal, + Silver, Gray, Red, Lime, + Yellow, Blue, Fuschia, BrightGray, + Aqua }; + + void EnableColor(BOOL bEnable); + +// Operations +public: + void AddLine(Color tc, Color bc, LPCTSTR lpszLine); + void AddString(LPCTSTR lpszItem); + int FindString(int nStartAfter, LPCTSTR lpszItem) const; + int FindStringExact(int nStartAfter, LPCTSTR lpszItem) const; + int GetText(int nIndex, LPTSTR lpszBuffer) const; + void GetText(int nIndex, CString& rString) const; + int GetTextLen(int nIndex) const; + int GetTextWithColor(int nIndex, LPTSTR lpszBuffer) const; + void GetTextWithColor(int nIndex, CString& rString) const; + int GetVisibleLines(); + int InsertString(int nIndex, LPCTSTR lpszItem, Color tc=CXListBox::Black, Color bc=CXListBox::White); + void _cdecl Printf(Color tc, Color bc, UINT nID, LPCTSTR lpszFmt, ...); + virtual void ResetContent(); + int SelectString(int nStartAfter, LPCTSTR lpszItem); + void SetContextMenuId(UINT nId) { m_nContextMenuId = nId; } + virtual void SetFont(CFont *pFont, BOOL bRedraw = TRUE); + void SetTabPosition(int nSpacesPerTab); + +// Implementation +protected: + int SearchString(int nStartAfter, LPCTSTR lpszItem, BOOL bExact) const; + void SelRemove(); + + #define MAXTABSTOPS 100 + int m_nTabStopPositions[MAXTABSTOPS]; + int m_nSpaceWidth; + int m_nAveCharWidth; + UINT m_nContextMenuId; + + virtual int CompareItem (LPCOMPAREITEMSTRUCT lpCIS); + virtual void DrawItem (LPDRAWITEMSTRUCT lpDIS); + virtual void MeasureItem (LPMEASUREITEMSTRUCT lpMIS); + + // Generated message map functions + //{{AFX_MSG(CXListBox) + afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); + afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); + afx_msg void OnEditCopy(); + afx_msg void OnEditClear(); + afx_msg void OnEditSelectAll(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +#endif +///////////////////////////////////////////////////////////////////////////////