
// HDDImgMakerDlg.h : файл заголовка
//

#pragma once
#include "afxwin.h"
#include "Ini.h"
#include "HDIStuff.h"

typedef struct
{
	int nID;
	UINT nStrResID;
} TOOLTIP_STRUCT;

// диалоговое окно CHDDImgMakerDlg
class CHDDImgMakerDlg : public CDialogEx
{
		CString         m_strImgName;
		CString         m_strExistingImgName;
		CString         m_strModelName;
		CString         m_strSerialNumber;
		CString         m_strAppPath;
		CString         m_strExistingImgPath;
		int             m_nCylinders;
		int             m_nHeads;
		int             m_nSectors;
		bool            m_bCancel;
		bool            m_bConvert;
		CSpinButtonCtrl m_spinCylinders;
		CSpinButtonCtrl m_spinHeads;
		CSpinButtonCtrl m_spinSectors;
		CProgressCtrl   m_progress;
		CComboBox       m_TypeCombo;
		CToolTipCtrl    m_tt;
		HICON           m_hIcon;
		HMENU           m_ButtonMenu;

		FILE           *m_file;
		FILE           *m_fileExisting;

		CIni            m_Ini;

		SYS_SECTOR      m_sector0;

		static const CString strVHDDext[3];
// Создание
	public:
		CHDDImgMakerDlg(CWnd *pParent = nullptr);  // стандартный конструктор

// Данные диалогового окна
		enum { IDD = IDD_HDDIMGMAKER_DIALOG };

	protected:
		virtual void DoDataExchange(CDataExchange *pDX) override;    // поддержка DDX/DDV
		virtual BOOL PreTranslateMessage(MSG *pMsg) override;


// Реализация
	protected:
		CString GetPath(CString &filename);
		CString GetTitle(CString &filename);
		CString GetExt(CString &filename);
		CString GetName(CString &filename);

		int ShowMessageBox(UINT msgID, UINT nType = 0, UINT nIDhelp = 0);
		int ShowMessageBox(UINT msgID, CString str, UINT nType = 0, UINT nIDhelp = 0);

		void OutByteSize();
		void _UpdateData();
		void AnalyseImage(FILE *pFile);
		void EnableGeometryChange(bool bEnable);
		void ChangeMakeButtonText();
		void ChangeFormatExistingImage();
		void MakeSysSector();
		void WorkHDI(int nTotalSectors);
		void WorkHDIX(int nTotalSectors);

		void ConvertHdi2Img();
		void ConvertHdi2Hdix();
		void ConvertHdix2Hdi();

		// Созданные функции схемы сообщений
		virtual BOOL OnInitDialog() override;
		afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
		afx_msg void OnPaint();
		afx_msg HCURSOR OnQueryDragIcon();
		afx_msg void OnEnChangeEditCylinders();
		afx_msg void OnEnChangeEditHeads();
		afx_msg void OnEnChangeEditSectors();
		afx_msg void OnBnClickedButtonSernumber();
		afx_msg void OnBnClickedButtonBrowse();
		afx_msg void OnBnClickedButtonBrowseExisting();
		afx_msg void OnBnClickedButtonMake();
		afx_msg void OnEnKillfocusEditImgname();
		afx_msg void OnEnKillfocusEditExistingImgname();
		afx_msg void OnEnKillfocusEditSectors();
		afx_msg void OnEnSetfocusEditSectors();
		afx_msg void OnEnKillfocusEditHeads();
		afx_msg void OnEnSetfocusEditHeads();
		afx_msg void OnEnKillfocusEditCylinders();
		afx_msg void OnEnSetfocusEditCylinders();
		afx_msg void OnCbnSelchangeComboHditype();
		afx_msg void OnBnClickedMfcmenubutton1();
		afx_msg void OnDestroy();
		DECLARE_MESSAGE_MAP()
};
