You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
2.6 KiB
123 lines
2.6 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
// |
|
//=============================================================================// |
|
// ListBoxEx.h : header file |
|
// |
|
|
|
#ifndef _LISTBOXEX_H |
|
#define _LISTBOXEX_H |
|
|
|
#include <afxtempl.h> |
|
|
|
enum |
|
{ |
|
lbdBool, |
|
lbdString, |
|
lbdInteger |
|
}; |
|
|
|
enum |
|
{ |
|
lbeYesNo, |
|
lbeOnOff, |
|
lbeString, |
|
lbeInteger, |
|
lbeTexture, |
|
lbeChoices |
|
}; |
|
|
|
typedef struct |
|
{ |
|
char szCaption[128]; // field named |
|
char *pszSaveCaption; // save caption to this, if supported |
|
int iDataType; // how to display (lbdxxx) |
|
int iEditType; // how to edit (lbexxx) |
|
|
|
int iDataValue; // int value for integer/bool fields |
|
char szDataString[128]; // str value for string fields |
|
|
|
PVOID pSaveTo; |
|
const char * pszHelp; // help text (ptr or NULL) |
|
int iRangeMin; // ranged value min (-1 if no range) |
|
int iRangeMax; // ranged value max (-1 if no range) |
|
CStringArray* pChoices; // choices, if lbdChoices |
|
|
|
} LBEXTITEMSTRUCT; |
|
|
|
// listboxex styles |
|
enum |
|
{ |
|
LBES_EDITCAPTIONS = 0x01 |
|
}; |
|
|
|
///////////////////////////////////////////////////////////////////////////// |
|
// CListBoxEx window |
|
|
|
class CListBoxEx : public CListBox |
|
{ |
|
// Construction |
|
public: |
|
CListBoxEx(); |
|
|
|
// Attributes |
|
public: |
|
int iCaptionWidthUnits; |
|
int iCaptionWidthPixels; |
|
int iItemHeight; |
|
CEdit EditCtrl; |
|
CComboBox ComboCtrl; |
|
DWORD dwStyle; |
|
BOOL bControlActive; |
|
BOOL bIgnoreChange; |
|
int iControlItem; |
|
|
|
void SetStyle(DWORD dwStyle); |
|
|
|
void AddItem(char * pszCaption, int iEditType, PVOID pData, |
|
int iRangeMin = -1, int iRangeMax = -1, const char * pszHelp = NULL); |
|
void SetItemChoices(int iItem, CStringArray * pChoices, |
|
int iDefaultChoice = 0); |
|
void GetItemText(int iItem, char *pszText); |
|
void CreateEditControl(); |
|
void CreateComboControl(); |
|
void DestroyControls(); |
|
|
|
CArray<LBEXTITEMSTRUCT, LBEXTITEMSTRUCT&> Items; |
|
unsigned nItems; |
|
|
|
// Operations |
|
public: |
|
BOOL bActivateOnRelease; |
|
|
|
// Overrides |
|
// ClassWizard generated virtual function overrides |
|
//{{AFX_VIRTUAL(CListBoxEx) |
|
public: |
|
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); |
|
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); |
|
virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct); |
|
//}}AFX_VIRTUAL |
|
|
|
// Implementation |
|
public: |
|
virtual ~CListBoxEx(); |
|
|
|
// Generated message map functions |
|
protected: |
|
//{{AFX_MSG(CListBoxEx) |
|
afx_msg void OnLButtonDown(UINT nFlags, CPoint point); |
|
afx_msg void OnSelchange(); |
|
afx_msg void OnLButtonUp(UINT nFlags, CPoint point); |
|
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); |
|
//}}AFX_MSG |
|
|
|
DECLARE_MESSAGE_MAP() |
|
}; |
|
|
|
///////////////////////////////////////////////////////////////////////////// |
|
|
|
#endif // _LISTBOXEX_H
|
|
|