112 lines
2.7 KiB
C
112 lines
2.7 KiB
C
|
// BindsDlg.h : header file
|
||
|
//
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
class CBingingRemoval : public CObject
|
||
|
{
|
||
|
public:
|
||
|
// constructor
|
||
|
CBingingRemoval( CMDKey* pTargetKey, CString szTargetBinding ) :
|
||
|
m_pTargetKey( pTargetKey )
|
||
|
{
|
||
|
m_szTargetBinding = szTargetBinding;
|
||
|
}
|
||
|
|
||
|
// remove the binding
|
||
|
inline void RemoveBinding();
|
||
|
CMDKey* m_pTargetKey;
|
||
|
CString m_szTargetBinding;
|
||
|
};
|
||
|
|
||
|
//--------------------------------------------------------
|
||
|
inline void CBingingRemoval::RemoveBinding()
|
||
|
{
|
||
|
// tell the key to remove the binding - easy!
|
||
|
m_pTargetKey->RemoveBinding( m_szTargetBinding );
|
||
|
// update the key's name
|
||
|
m_pTargetKey->m_fUpdateBindings = TRUE;
|
||
|
}
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CBindingsDlg dialog
|
||
|
|
||
|
class CBindingsDlg : public CDialog
|
||
|
{
|
||
|
// Construction
|
||
|
public:
|
||
|
CBindingsDlg(WCHAR* pszw, CWnd* pParent = NULL); // standard constructor
|
||
|
|
||
|
virtual BOOL OnInitDialog();
|
||
|
|
||
|
|
||
|
// the base key that is being worked on
|
||
|
CMDKey* m_pKey;
|
||
|
|
||
|
// target machine
|
||
|
WCHAR* m_pszwMachineName;
|
||
|
|
||
|
// is a binding string already a part of the list in this dialog?
|
||
|
BOOL FContainsBinding( CString sz );
|
||
|
|
||
|
// add a binding to the list
|
||
|
void AddBinding( CString sz );
|
||
|
|
||
|
// a queue of bindings to be removed if the user says OK
|
||
|
CTypedPtrArray<CObArray, CBingingRemoval*> rgbRemovals;
|
||
|
|
||
|
// Dialog Data
|
||
|
//{{AFX_DATA(CBindingsDlg)
|
||
|
enum { IDD = IDD_BINDINGS };
|
||
|
CButton m_cbutton_delete;
|
||
|
CButton m_cbutton_edit;
|
||
|
CListSelRowCtrl m_clistctrl_list;
|
||
|
//}}AFX_DATA
|
||
|
// CListCtrl m_clistctrl_list;
|
||
|
|
||
|
// Overrides
|
||
|
// ClassWizard generated virtual function overrides
|
||
|
//{{AFX_VIRTUAL(CBindingsDlg)
|
||
|
protected:
|
||
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||
|
//}}AFX_VIRTUAL
|
||
|
|
||
|
// Implementation
|
||
|
protected:
|
||
|
|
||
|
// Generated message map functions
|
||
|
//{{AFX_MSG(CBindingsDlg)
|
||
|
afx_msg void OnAdd();
|
||
|
afx_msg void OnDelete();
|
||
|
afx_msg void OnEdit();
|
||
|
afx_msg void OnItemchangedList(NMHDR* pNMHDR, LRESULT* pResult);
|
||
|
virtual void OnOK();
|
||
|
afx_msg void OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult);
|
||
|
//}}AFX_MSG
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
|
||
|
// initialize the list
|
||
|
void FillInBindings();
|
||
|
BOOL FInitList();
|
||
|
void UpdateBindingDisplay( DWORD iItem, CString szBinding );
|
||
|
|
||
|
// enable the buttons as appropriate
|
||
|
void EnableButtons();
|
||
|
|
||
|
// edit the selected binding, return a flag for OK
|
||
|
BOOL FEdit( CString &sz );
|
||
|
|
||
|
// return the index of the selected item - only one selection allowed
|
||
|
inline int GetSelectedIndex();
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------
|
||
|
// return the index of the selected item - only one selection allowed
|
||
|
inline int CBindingsDlg::GetSelectedIndex()
|
||
|
{
|
||
|
return m_clistctrl_list.GetNextItem( -1, LVNI_SELECTED );
|
||
|
}
|