#if !defined(AFX_CUSTOMIZE_H__022F76EB_081D_4F10_A9E2_6C84DBAFD8FA__INCLUDED_)
#define AFX_CUSTOMIZE_H__022F76EB_081D_4F10_A9E2_6C84DBAFD8FA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Customize.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CCustomize dialog

class CCustomize : public CDialog
{
// Construction
public:
        CCustomize(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
        //{{AFX_DATA(CCustomize)
        enum { IDD = IDD_CUSTOMIZE };
        CStatic m_cDescription;
        CStatic m_cCurrentlyAssigned;
        CButton m_cResetAll;
        CButton m_cRemove;
        CButton m_cAssign;
        CEdit   m_cNewKey;
        CListBox        m_cCurrentKeys;
        CListBox        m_cCommands;
        CComboBox       m_cCategory;
        CComboBox       m_cApplication;
        int             m_nSettingStyle;
        //}}AFX_DATA


// Overrides
        // ClassWizard generated virtual function overrides
        //{{AFX_VIRTUAL(CCustomize)
        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
        //}}AFX_VIRTUAL

// Implementation
protected:
        void ClearNewKey();
        void InitCommandIDs();
        static int m_nCommandIDs[MAX_COMMAND_TYPE][MAX_KEY];
        static CStatic * m_pCurrentlyAssigned;
        int m_nRemoveKey;
        int m_nRemoveCommandType;
        static int m_nCommandID;
        static int m_nAssignKey;
        static int m_nAssignCommandType;
        static CButton * m_pAssign;
        static int m_nApplicationID;
        static CEdit * m_pNewKey;
        static LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam);
        static HHOOK m_hKeyboardHook;
        void SetCurrentKeys();
        void SetCommands();
        void InitCategoryList();
        void EnableUseDefaultButton(BOOL bEnable);
        int GetCurrentApplicationID();
        void InitApplicationList();
        CString m_szCurrentApplication;
        void GetDialogData();
        void SetDialogData(CString szApplicationName);
        void UpdateDialogData(CString szApplicationName, BOOL bSaveAndValidate);
        void EnableControl();

        // Generated message map functions
        //{{AFX_MSG(CCustomize)
        afx_msg void OnSettingDefault();
        afx_msg void OnSettingDisable();
        afx_msg void OnSettingSpecific();
        afx_msg void OnApply();
        virtual void OnOK();
        afx_msg void OnSelchangeApplication();
        afx_msg void OnDropdownApplication();
        virtual BOOL OnInitDialog();
        afx_msg void OnSelchangeCategory();
        afx_msg void OnSelchangeCommands();
        afx_msg void OnSetfocusNewKey();
        afx_msg void OnKillfocusNewKey();
        afx_msg void OnAssign();
        afx_msg void OnRemove();
        afx_msg void OnResetAll();
        afx_msg void OnSelchangeCurrentKeys();
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CUSTOMIZE_H__022F76EB_081D_4F10_A9E2_6C84DBAFD8FA__INCLUDED_)

(C) 2001-2005 oishi@cam.hi-ho.ne.jp