mirror of
https://github.com/TTimo/doom3.gpl.git
synced 2026-03-20 08:59:42 +01:00
hello world
This commit is contained in:
203
neo/tools/common/PropTree/PropTreeItem.h
Normal file
203
neo/tools/common/PropTree/PropTreeItem.h
Normal file
@@ -0,0 +1,203 @@
|
||||
// PropTreeItem.h
|
||||
//
|
||||
// Copyright (C) 1998-2001 Scott Ramsay
|
||||
// sramsay@gonavi.com
|
||||
// http://www.gonavi.com
|
||||
//
|
||||
// This material is provided "as is", with absolutely no warranty expressed
|
||||
// or implied. Any use is at your own risk.
|
||||
//
|
||||
// Permission to use or copy this software for any purpose is hereby granted
|
||||
// without fee, provided the above notices are retained on all copies.
|
||||
// Permission to modify the code and to distribute modified code is granted,
|
||||
// provided the above notices are retained, and a notice that the code was
|
||||
// modified is included with the above copyright notice.
|
||||
//
|
||||
// If you use this code, drop me an email. I'd like to know if you find the code
|
||||
// useful.
|
||||
|
||||
#ifndef _PROPTREEITEM_H
|
||||
#define _PROPTREEITEM_H
|
||||
|
||||
class CPropTree;
|
||||
|
||||
class PROPTREE_API CPropTreeItem
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CPropTreeItem();
|
||||
virtual ~CPropTreeItem();
|
||||
|
||||
// Attributes/Operations
|
||||
public:
|
||||
// TreeItem states
|
||||
BOOL IsExpanded();
|
||||
BOOL IsSelected();
|
||||
BOOL IsChecked();
|
||||
BOOL IsReadOnly();
|
||||
BOOL IsActivated();
|
||||
|
||||
void Select(BOOL bSelect = TRUE);
|
||||
void Expand(BOOL bExpand = TRUE);
|
||||
void Check(BOOL bCheck = TRUE);
|
||||
void ReadOnly(BOOL bReadOnly = TRUE);
|
||||
|
||||
// Returns true if the item has a checkbox
|
||||
BOOL IsCheckBox();
|
||||
|
||||
// Pass in true, for the item to have a checkbox
|
||||
void HasCheckBox(BOOL bCheckbox = TRUE);
|
||||
|
||||
// Returns TRUE if the point is on the expand button
|
||||
BOOL HitExpand(const POINT& pt);
|
||||
|
||||
// Returns TRUE if the point is on the check box
|
||||
BOOL HitCheckBox(const POINT& pt);
|
||||
|
||||
// Overrideable - Returns TRUE if the point is on the button
|
||||
virtual BOOL HitButton(const POINT& pt) { return false;}
|
||||
|
||||
// Returns TRUE if the item is on the root level. Root level items don't have attribute areas
|
||||
BOOL IsRootLevel();
|
||||
|
||||
// Returns the total height of the item and all its children
|
||||
LONG GetTotalHeight();
|
||||
|
||||
// Set the items label text
|
||||
void SetLabelText(LPCTSTR sLabel);
|
||||
|
||||
// Return the items label text
|
||||
LPCTSTR GetLabelText();
|
||||
|
||||
// Set the items info (description) text
|
||||
void SetInfoText(LPCTSTR sInfo);
|
||||
|
||||
// Get the items info (description) text
|
||||
LPCTSTR GetInfoText();
|
||||
|
||||
// Set the item's ID
|
||||
void SetCtrlID(UINT nCtrlID);
|
||||
|
||||
// Return the item's ID
|
||||
UINT GetCtrlID();
|
||||
|
||||
// Overrideable - draw the item's non attribute area
|
||||
virtual LONG DrawItem(CDC* pDC, const RECT& rc, LONG x, LONG y);
|
||||
|
||||
// call to mark attribute changes
|
||||
void CommitChanges();
|
||||
|
||||
// call to activate item attribute
|
||||
enum {
|
||||
ACTIVATE_TYPE_KEYBOARD,
|
||||
ACTIVATE_TYPE_MOUSE
|
||||
};
|
||||
void Activate(int activateType, CPoint point);
|
||||
|
||||
//
|
||||
// Overrideables
|
||||
//
|
||||
|
||||
// The attribute area needs drawing
|
||||
virtual void DrawAttribute(CDC* pDC, const RECT& rc);
|
||||
|
||||
// Return the height of the item
|
||||
virtual LONG GetHeight();
|
||||
|
||||
// Retrieve the item's attribute value
|
||||
virtual LPARAM GetItemValue();
|
||||
|
||||
// Set the item's attribute value
|
||||
virtual void SetItemValue(LPARAM lParam);
|
||||
|
||||
// Called when attribute area has changed size
|
||||
virtual void OnMove();
|
||||
|
||||
// Called when the item needs to refresh its data
|
||||
virtual void OnRefresh();
|
||||
|
||||
// Called when the item needs to commit its changes
|
||||
virtual void OnCommit();
|
||||
|
||||
// Called to activate the item
|
||||
virtual void OnActivate(int activateType, CPoint point);
|
||||
|
||||
//
|
||||
// Usually only CPropTree should calls these
|
||||
//
|
||||
|
||||
void SetPropOwner(CPropTree* pProp);
|
||||
|
||||
// Return the location of the PropItem
|
||||
const POINT& GetLocation();
|
||||
|
||||
// TreeItem link pointer access
|
||||
CPropTreeItem* GetParent();
|
||||
CPropTreeItem* GetSibling();
|
||||
CPropTreeItem* GetChild();
|
||||
CPropTreeItem* GetNextVisible();
|
||||
|
||||
void SetParent(CPropTreeItem* pParent);
|
||||
void SetSibling(CPropTreeItem* pSibling);
|
||||
void SetChild(CPropTreeItem* pChild);
|
||||
void SetNextVisible(CPropTreeItem* pVis);
|
||||
|
||||
protected:
|
||||
// CPropTree class that this class belongs
|
||||
CPropTree* m_pProp;
|
||||
|
||||
// TreeItem label name
|
||||
CString m_sLabel;
|
||||
|
||||
// Descriptive info text
|
||||
CString m_sInfo;
|
||||
|
||||
// TreeItem location
|
||||
CPoint m_loc;
|
||||
|
||||
// TreeItem attribute size
|
||||
CRect m_rc;
|
||||
|
||||
// user defined LPARAM value
|
||||
LPARAM m_lParam;
|
||||
|
||||
// ID of control item (should be unique)
|
||||
UINT m_nCtrlID;
|
||||
|
||||
protected:
|
||||
enum TreeItemStates
|
||||
{
|
||||
TreeItemSelected = 0x00000001,
|
||||
TreeItemExpanded = 0x00000002,
|
||||
TreeItemCheckbox = 0x00000004,
|
||||
TreeItemChecked = 0x00000008,
|
||||
TreeItemActivated = 0x00000010,
|
||||
TreeItemReadOnly = 0x00000020,
|
||||
};
|
||||
|
||||
// TreeItem state
|
||||
DWORD m_dwState;
|
||||
|
||||
// TRUE if item is activated
|
||||
BOOL m_bActivated;
|
||||
|
||||
// TRUE if item has been commited once (activation)
|
||||
BOOL m_bCommitOnce;
|
||||
|
||||
// Rectangle position of the expand button (if contains one)
|
||||
CRect m_rcExpand;
|
||||
|
||||
// Rectangle position of the check box (if contains one)
|
||||
CRect m_rcCheckbox;
|
||||
|
||||
// Rectangle position of the button (if contains one)
|
||||
CRect m_rcButton;
|
||||
|
||||
// link pointers
|
||||
CPropTreeItem* m_pParent;
|
||||
CPropTreeItem* m_pSibling;
|
||||
CPropTreeItem* m_pChild;
|
||||
CPropTreeItem* m_pVis;
|
||||
};
|
||||
|
||||
#endif // _PROPTREEITEM_H
|
||||
Reference in New Issue
Block a user