| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 | 
							-  #if !defined(AFX_QLISTCTRL_H__30BEB04A_4B97_4943_BB73_C5128E66B4ED__INCLUDED_)
 
- #define AFX_QLISTCTRL_H__30BEB04A_4B97_4943_BB73_C5128E66B4ED__INCLUDED_
 
- #if _MSC_VER > 1000
 
- #pragma once
 
- #endif // _MSC_VER > 1000
 
- // QListCtrl.h : header file
 
- //
 
- #include "Shared/ArrayEx.h"
 
- #include "ToolTipEx.h"
 
- #include "FormattedTextDraw.h"
 
- #include "sqlite/CppSQLite3.h"
 
- #include "ClipFormatQListCtrl.h"
 
- #include "Accels.h"
 
- #include "GdiImageDrawer.h"
 
- #define NM_SEARCH_ENTER_PRESSED		WM_USER+0x100
 
- #define NM_RIGHT					WM_USER+0x101
 
- #define NM_LEFT						WM_USER+0x102
 
- #define NM_END						WM_USER+0x103
 
- #define NM_DELETE					WM_USER+0x104
 
- #define NM_PROPERTIES				WM_USER+0x105
 
- #define NM_LBUTTONDOWN				WM_USER+0x106
 
- #define NM_GETTOOLTIPTEXT	        WM_USER+0x107
 
- #define NM_SELECT_DB_ID		        WM_USER+0x108
 
- #define NM_GROUP_TREE_MESSAGE       WM_USER+0x110
 
- #define CB_SEARCH					WM_USER+0x112
 
- #define CB_UPDOWN					WM_USER+0x113
 
- #define NM_INACTIVE_TOOLTIPWND		WM_USER+0x114
 
- #define NM_FILL_REST_OF_LIST		WM_USER+0x115
 
- #define NM_SET_LIST_COUNT			WM_USER+0x116
 
- #define NM_ITEM_DELETED				WM_USER+0x118
 
- #define NM_ALL_SELECTED				WM_USER+0x119
 
- #define NM_REFRESH_ROW				WM_USER+0x120
 
- #define NM_REFRESH_ROW_EXTRA_DATA	WM_USER+0x121
 
- #define NM_SHOW_HIDE_SCROLLBARS		WM_USER+0x122
 
- #define NM_CANCEL_SEARCH			WM_USER+0x123
 
- #define NM_POST_OPTIONS_WINDOW		WM_USER+0x124
 
- #define NM_SHOW_PROPERTIES			WM_USER+0x125
 
- #define NM_NEW_GROUP				WM_USER+0x126
 
- #define NM_DELETE_ID				WM_USER+0x127
 
- #define NM_MOVE_TO_GROUP			WM_USER+0x128
 
- #define COPY_BUFFER_HOT_KEY_1_ID	-100
 
- #define COPY_BUFFER_HOT_KEY_2_ID	-101
 
- #define COPY_BUFFER_HOT_KEY_3_ID	-102
 
- #define LVIF_CF_DIB 0x10000000
 
- #define LVIF_CF_RICHTEXT 0x10000000
 
- //#define NM_LIST_CUT			        WM_USER+0x111
 
- //#define NM_LIST_COPY		        WM_USER+0x112
 
- //#define NM_LIST_PASTE		        WM_USER+0x113
 
- class CQListToolTipText
 
- {
 
- public:
 
- 	NMHDR hdr;
 
- 	long lItem;
 
- 	LPTSTR pszText; 
 
- 	int cchTextMax; 
 
- };
 
- typedef CMap<long, long, CClipFormat, CClipFormat&> CMapIDtoCF;
 
- class CQListCtrl : public CListCtrl
 
- {
 
- // Construction
 
- public:
 
- 	CQListCtrl();
 
- // Attributes
 
- public:
 
- // Operations
 
- public:
 
- // Overrides
 
- 	// ClassWizard generated virtual function overrides
 
- 	//{{AFX_VIRTUAL(CQListCtrl)
 
- 	public:
 
- 	virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO * pTI) const;
 
- 	virtual BOOL PreTranslateMessage(MSG* pMsg);
 
- 	virtual BOOL OnChildNotify(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pLResult);
 
- 	//}}AFX_VIRTUAL
 
- // Implementation
 
- public:
 
- 	virtual ~CQListCtrl();
 
- 	// The "FirstTen" block is either at the top or the bottom
 
- 	//  of the list based upon m_bStartTop.
 
- 	BOOL	m_bShowTextForFirstTenHotKeys;
 
- 	BOOL	m_bStartTop;
 
- 	// returns the position 1-10 if the index is in the FirstTen block else -1
 
- 	int GetFirstTenNum( int index );
 
- 	// returns the list index corresponding to the given FirstTen position number.
 
- 	int GetFirstTenIndex( int num );
 
- 	void SetNumberOfLinesPerRow(int nLines);
 
- 	void GetSelectionIndexes(ARRAY &arr);
 
- 	void GetSelectionItemData(ARRAY &arr);
 
- 	void RefreshVisibleRows();
 
- 	void RefreshRow(int row);
 
- 	void RemoveAllSelection();
 
- 	BOOL SetSelection(int nRow, BOOL bSelect = TRUE);
 
- 	BOOL SetText(int nRow, int nCol, CString cs);
 
- 	BOOL SetFormattedText(int nRow, int nCol, LPCTSTR lpszFormat,...);
 
- 	BOOL SetCaret(int nRow, BOOL bFocus = TRUE);
 
- 	long GetCaret();
 
- 	// moves the caret to the given index, selects it, and ensures it is visible.
 
- 	BOOL SetListPos(int index);
 
- 	bool PutSelectedItemOnDittoCopyBuffer(long lBuffer);
 
- 	virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
 
- 	DWORD GetItemData(int nItem);
 
- 	CClipFormatQListCtrl* GetItem_CF_DIB_ClipFormat(int nItem);
 
- 	CClipFormatQListCtrl* GetItem_CF_RTF_ClipFormat(int nItem);
 
- 	void GetToolTipText(int nItem, CString &csText);
 
- 	void SetShowTextForFirstTenHotKeys(BOOL bVal)	{ m_bShowTextForFirstTenHotKeys = bVal;	}
 
- 	void SetShowIfClipWasPasted(BOOL val) { m_showIfClipWasPasted = val; }
 
- 	void DestroyAndCreateAccelerator(BOOL bCreate, CppSQLite3DB &db);
 
- 	bool ShowFullDescription(bool bFromAuto = false, bool fromNextPrev = false);
 
- 	BOOL SetItemCountEx(int iCount, DWORD dwFlags = 0);
 
- 	void HidePopup();
 
- 	void SetLogFont(LOGFONT &font);
 
- 	HWND GetToolTipHWnd();
 
- 	BOOL HandleKeyDown(WPARAM wParam, LPARAM lParam);
 
- 	BOOL OnItemDeleted(long lID);
 
- 	BOOL IsToolTipWindowVisible() { return ::IsWindowVisible(m_toolTipHwnd); }
 
- 	int GetRowHeight() { return m_rowHeight; }
 
- 	void SetSearchText(CString text);
 
- protected:
 
- 	void LoadCopyOrCutToClipboard();
 
- 	BOOL GetClipData(int nItem, CClipFormat &Clip);
 
- 	BOOL DrawBitMap(int nItem, CRect &crRect, CDC *pDC, const CString &csDescription);
 
- 	void LoadDittoCopyBufferHotkeys();
 
- 	bool MouseInScrollBarArea(CRect crWindow, CPoint point);
 
- 	BOOL DrawRtfText(int nItem, CRect &crRect, CDC *pDC);
 
- 	void StopHideScrollBarTimer();
 
- 		
 
- 	WCHAR *m_pwchTip;
 
- 	TCHAR *m_pchTip;
 
- 	HFONT m_SmallFont;
 
- 	CAccels	m_Accels;
 
- 	CMapIDtoCF m_RTFData;
 
- 	CToolTipEx *m_pToolTip;
 
- 	HWND m_toolTipHwnd;
 
- 	CFont m_Font;
 
- 	CFont m_boldFont;
 
- 	IFormattedTextDraw *m_pFormatter;
 
- 	bool m_allSelected;
 
- 	int m_linesPerRow;
 
- 	DWORD m_mouseOverScrollAreaStart;
 
- 	bool m_timerToHideScrollAreaSet;
 
- 	CGdiImageDrawer m_groupFolder;
 
- 	CGdiImageDrawer m_dontDeleteImage;
 
- 	CGdiImageDrawer m_inFolderImage;
 
- 	CGdiImageDrawer m_shortCutImage;
 
- 	CGdiImageDrawer m_stickyImage;
 
- 	int m_rowHeight;
 
- 	CString m_searchText;
 
- 	BOOL m_showIfClipWasPasted;
 
- 	// Generated message map functions
 
- protected:
 
- 	//{{AFX_MSG(CQListCtrl)
 
- 	afx_msg void OnKeydown(NMHDR* pNMHDR, LRESULT* pResult);
 
- 	afx_msg void OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult);
 
- 	afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
 
- 	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
 
- 	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
 
- 	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
 
- 	afx_msg void OnTimer(UINT_PTR nIDEvent);
 
- 	afx_msg void OnSelectionChange(NMHDR* pNMHDR, LRESULT* pResult);
 
- 	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
 
- 	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
 
- 	//}}AFX_MSG
 
- 	afx_msg BOOL OnToolTipText(UINT id, NMHDR * pNMHDR, LRESULT * pResult);
 
- 	afx_msg void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
 
- 	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
 
- 	DECLARE_MESSAGE_MAP()
 
- public:
 
- 	afx_msg void OnKillFocus(CWnd* pNewWnd);
 
- };
 
- /////////////////////////////////////////////////////////////////////////////
 
- //{{AFX_INSERT_LOCATION}}
 
- // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
 
- #endif // !defined(AFX_QLISTCTRL_H__30BEB04A_4B97_4943_BB73_C5128E66B4ED__INCLUDED_)
 
 
  |