// Start =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// General information section.
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// $Author:yongkiang$ User who last changed the file
// $Date:1/2/2013 12:16:35 PM$ Date and time of last check in
// $Revision:1.0$ Visual SourceSafe version number
// $Workfile::   MaintenanceModulePage.h                               $ Filename
// End =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// {{AFX_INCLUDES()
#include "structure.h"
#include "MyPropertyPage.h"
#include "ShadeCheckButtonST.h"
// }}AFX_INCLUDES
#if !defined(AFX_MAINTENANCEMODULEPAGE_H__7DE871B6_7366_11D6_A7FD_005004C029CA__INCLUDED_)
#define AFX_MAINTENANCEMODULEPAGE_H__7DE871B6_7366_11D6_A7FD_005004C029CA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#ifdef  BUILD_GUIDLL
#define     DLLCLASS    __declspec(dllexport)
#else
#define     DLLCLASS    __declspec(dllimport)
#endif

// MaintenanceModulePage.h : header file
//

////////////////////////////////////////////////////////////////////////////
// CMaintenanceModulePage dialog

class DLLCLASS CMaintenanceModulePage : public CMyPropertyPage // public CPropertyPage
{
DECLARE_DYNCREATE(CMaintenanceModulePage)

// Construction
public:
    int          GetCurrentModuleButtonID();
    void         AddDisableModules(CString csModuleName);
    virtual void CustomMaintenanceModulePageSettings();
    BOOL         IsSetup(void);
    void         SetModule(stModule *Module, int nNoOfModule);
    UINT m_nCurrentModule;
    CMaintenanceModulePage();
    ~CMaintenanceModulePage();

// Dialog Data
// {{AFX_DATA(CMaintenanceModulePage)
    enum {
        IDD = IDD_MAINTENANCE_MODULE_PAGE
    };
    CButton             m_btnCheckLayout;
    CShadeCheckButtonST m_module9Btn;
    CShadeCheckButtonST m_module8Btn;
    CShadeCheckButtonST m_module7Btn;
    CShadeCheckButtonST m_module6Btn;
    CShadeCheckButtonST m_module5Btn;
    CShadeCheckButtonST m_module4Btn;
    CShadeCheckButtonST m_module3Btn;
    CShadeCheckButtonST m_module20Btn;
    CShadeCheckButtonST m_module2Btn;
    CShadeCheckButtonST m_module19Btn;
    CShadeCheckButtonST m_module18Btn;
    CShadeCheckButtonST m_module17Btn;
    CShadeCheckButtonST m_module16Btn;
    CShadeCheckButtonST m_module15Btn;
    CShadeCheckButtonST m_module14Btn;
    CShadeCheckButtonST m_module13Btn;
    CShadeCheckButtonST m_module12Btn;
    CShadeCheckButtonST m_module11Btn;
    CShadeCheckButtonST m_module10Btn;
    CShadeCheckButtonST m_module1Btn;

    CShadeCheckButtonST m_module21Btn;
    CShadeCheckButtonST m_module22Btn;
    CShadeCheckButtonST m_module23Btn;
    CShadeCheckButtonST m_module24Btn;
    CShadeCheckButtonST m_module25Btn;
    CShadeCheckButtonST m_module26Btn;
    CShadeCheckButtonST m_module27Btn;
    CShadeCheckButtonST m_module28Btn;
    CShadeCheckButtonST m_module29Btn;
    CShadeCheckButtonST m_module30Btn;
    CShadeCheckButtonST m_module31Btn;
    CShadeCheckButtonST m_module32Btn;
// }}AFX_DATA

// Overrides
// ClassWizard generate virtual function overrides
// {{AFX_VIRTUAL(CMaintenanceModulePage)
public:
    virtual BOOL OnSetActive();
    virtual BOOL PreTranslateMessage(MSG* pMsg);
    virtual BOOL OnKillActive();
protected:
    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// }}AFX_VIRTUAL

// Implementation
protected:
// Generated message map functions
// {{AFX_MSG(CMaintenanceModulePage)
    virtual BOOL OnInitDialog();
    afx_msg void OnMouseMove(UINT nFlags, CPoint point);
    afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
    afx_msg void OnModuleButtonLayout();
    afx_msg void OnTimer(UINT nIDEvent);
// }}AFX_MSG
    afx_msg void OnModuleButtonClick(UINT nID);
    DECLARE_MESSAGE_MAP()

private:
// Gary 10Jul12, user defineable module button layout
// method to load user define position of each individual module button.
    void LoadUserDefineableLayout();

// method to save user define position of each individual module button.
    void SaveUserDefineableLayout();

// method to store the original module button layout
    void LoadOriginalLayout();

// method to position each individual module button.
    void DoButtonLayout(int nType);

    void DisplayIn2ndLang();
    void ResetAllButtons();
    void InitIconButtons();
    void RefreshRunViewTitleText();
    void SetModuleText();
//  CFont m_fontLogo;

    int  m_nNoOfModule;
    BOOL m_bSetupBefore;

// Gary 8Feb10, UI buttons mapping to modules.
    int          m_nModuleButtons[MAX_MODULE];
    CStringArray m_csaDisableModuleNames;

    int m_nCurrentDisplayLanguage;

// Gary 10Jul12, user defineable module button layout
    CShadeCheckButtonST * m_buttonArray[MAX_MODULE];

    bool m_bDoingLayout[MAX_MODULE];

    int m_nCurrentLayoutButton;

    int m_nPosXY[MAX_MODULE][4];

    enum
    {
        X_COORDINATE,
        Y_COORDINATE,
        X_COORDINATE_ORG,
        Y_COORDINATE_ORG,
    };
};

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

#endif // !defined(AFX_MAINTENANCEMODULEPAGE_H__7DE871B6_7366_11D6_A7FD_005004C029CA__INCLUDED_)
