
// BKMEM_testDlg.h : файл заголовка
// !!!доработать

#pragma once
#include <afxcmn.h>
#include "resource.h"
#include "16KPageContainer.h"
#include "Defines.h"
#include "LockVarType.h"

// диалоговое окно CBKMEM_Dlg

class CBKMEM_Dlg : public CDialogEx
{
		DECLARE_DYNAMIC(CBKMEM_Dlg)
		// Создание
	public:
		CBKMEM_Dlg(BYTE *MainMem, BYTE *AddMem, BK_MODEL BKModel, BK_FDD_MODEL BKFDDModel, CWnd *pParent = NULL);
		virtual ~CBKMEM_Dlg();
		// Данные диалогового окна

		enum
		{
			IDD = IDD_BKMEM_MAP_DIALOG
		};

		void CreateTabs_10();
		void CreateTabs_11M();
		void AddTabsA16M();
		void AddTabsSMK512();
		void DrawTab();

	protected:
		virtual void DoDataExchange(CDataExchange *pDX);   // поддержка DDX/DDV
		void AdjustTab();

		// Реализация
	protected:
		//HICON m_hIcon;
		BK_MODEL m_BKModel;
		BK_FDD_MODEL m_BKFDDmodel;
		BYTE *m_Memory;
		BYTE *m_MemoryADD;

		CTabCtrl m_tab;
		C16KPageContainer *m_pContainers[20]; //массив окон во вкладках.
		/*
		для конфигурации БК10 - 1 вкладка: 0 и 1 страницы (1 - экран)
		для конфигурации БК11 - 4 вкладки: 8 страниц, по 2 шт. во вкладке
		для A16M - вкладка, с одной страницей. (добавить реализовать такую возможность)
		для смк512 - 16 вкладок
		*/
		int m_nTabsCount;
		int m_nSelectedTab;

		// Созданные функции схемы сообщений
		virtual BOOL OnInitDialog();
		afx_msg void OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult);
		DECLARE_MESSAGE_MAP()
};


// представление формы CBKMEMView

class CBKMEMView : public CFrameWnd
{
		DECLARE_DYNAMIC(CBKMEMView)

		BK_MODEL m_BKModel;
		BK_FDD_MODEL m_BKFDDmodel;

		BYTE *m_Memory;
		BYTE *m_MemoryADD;
		CBKMEM_Dlg *m_pdlgBKMem;
		LockVarType m_lockStop, m_lockDraw;

	public:
		CBKMEMView(BK_MODEL BKModel, BK_FDD_MODEL BKFDDmodel);
		virtual ~CBKMEMView();
		void DrawCurrentTab();

		void SetBuffer(BYTE *MainMem, BYTE *AddMem)
		{
			m_Memory = MainMem;
			m_MemoryADD = AddMem;
		}
	protected:
		afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
		afx_msg void OnDestroy();
		DECLARE_MESSAGE_MAP()
};

