|
/**
* Copyright (C) 2005
* Doga Arinir
*
* Author: Doga Arinir
* E-Mail: arinir@gmx.de
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the author or the company be held liable
* for any damages arising from the use of this software. EXPECT BUGS!
*
* You may use this software in compiled form in any way you desire PROVIDING it is
* not sold for profit without the authors written permission, and providing that this
* notice and the authors name is included. If the source code in this file is used in
* any commercial application then acknowledgement must be made to the author of this file.
*/
#if !defined(AFX_VERTICALTREE1_H__D9ACD532_0DEB_422B_9037_2EC4CCD72144__INCLUDED_)
#define AFX_VERTICALTREE1_H__D9ACD532_0DEB_422B_9037_2EC4CCD72144__INCLUDED_
#pragma warning(disable:4786)
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// VerticalTree1.h : Header-Datei
//
#include <map>
/////////////////////////////////////////////////////////////////////////////
// Fenster CVerticalTree
#define BUTTON_SIZE 9
class CVerticalTree : public CTreeCtrl
{
struct ItemViewport
{
ItemViewport(HTREEITEM i) {this->item = i;}
HTREEITEM item;
int cx;
int cy;
int x;
int y;
};
typedef std::map<HTREEITEM, ItemViewport*> HTREE2VPMAP;
// Konstruktion
public:
CVerticalTree();
// Attribute
public:
protected:
BOOL m_bHasLines;
BOOL m_bHasButtons;
BOOL m_bCustomDrawn;
int m_ItemSpaceX;
int m_ItemSpaceY;
CRect m_Rect;
int m_OffsetX;
int m_OffsetY;
int m_XMax;
int m_YMax;
COLORREF m_LeafTextColor;
COLORREF m_LeafBkColor;
COLORREF m_ItemTextColor;
COLORREF m_ItemBkColor;
HTREE2VPMAP m_HTree2VP;
CPen m_TreeLinePen;
// Operationen
public:
void SetCustomDrawn(BOOL);
BOOL GetCustomDrawn();
//These operations are overwritten. The Problem is that those are non-virtual
//functions...
HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct);
HTREEITEM InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage, int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam, HTREEITEM hParent, HTREEITEM hInsertAfter);
HTREEITEM InsertItem(LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
HTREEITEM InsertItem(LPCTSTR lpszItem, int nImage, int nSelectedImage, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
BOOL DeleteItem(HTREEITEM hItem);
BOOL DeleteAllItems();
// �berschreibungen
// Vom Klassen-Assistenten generierte virtuelle Funktions�berschreibungen
//{{AFX_VIRTUAL(CVerticalTree)
//}}AFX_VIRTUAL
// Implementierung
public:
int GetItemSpaceX();
void SetItemSpaceX(int);
int GetItemSpaceY();
void SetItemSpaceY(int);
virtual ~CVerticalTree();
// Generierte Nachrichtenzuordnungsfunktionen
protected:
void ResetScrollbars();
__forceinline ItemViewport* GetViewport(HTREEITEM hItem);
void DeleteAllViewportItems();
void DrawItemText(CDC *pDC, HTREEITEM item, const char *text, int x, int y, int cx, int cy, COLORREF bkcolor,COLORREF txtcolor);
int DrawItem(CDC *pDC, HTREEITEM, int x, int level = 0);
void UpdateDimensions();
//{{AFX_MSG(CVerticalTree)
afx_msg void OnPaint();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
afx_msg void OnSize(UINT nType, int cx, int cy);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ f�gt unmittelbar vor der vorhergehenden Zeile zus�tzliche Deklarationen ein.
#endif // AFX_VERTICALTREE1_H__D9ACD532_0DEB_422B_9037_2EC4CCD72144__INCLUDED_
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.