// SKTextGridCtrl.cpp : インプリメンテーション ファイル
//

#include "stdafx.h"
#include "dm2gded.h"
#include "SKTextGridCtrl.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSKTextGridCtrl

BEGIN_MESSAGE_MAP(CSKTextGridCtrl, CGridCtrl)
	//{{AFX_MSG_MAP(CSKTextGridCtrl)
	ON_WM_CREATE()
	ON_WM_SYSCOLORCHANGE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSKTextGridCtrl メッセージ ハンドラ

void CSKTextGridCtrl::PreSubclassWindow() 
{
	// TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
	
	CGridCtrl::PreSubclassWindow();
}

void CSKTextGridCtrl::CreateList(const CDM2SkCmdList &r, const CDM2SkCmdDesc *pSkDesc)
{
	DeleteAllItems();

	EnableSelection(FALSE);
	EnableTitleTips(FALSE);

	SetColumnCount(3);
	SetRowCount(1);

	SetFixedRowCount(1);

	SetItemText(0, 0, "Command");
	SetItemText(0, 1, "Description");
	SetItemText(0, 2, "Value");

	for (int i = 0; i < DM2SKCMD_MAX_CMD; i++) {
		int iRow = InsertRow(CDM2SkCmdList::GetName(i));

		SetItemState(iRow, 0, GVIS_READONLY);
		SetItemState(iRow, 1, GVIS_READONLY);
		SetItemTextFmt(iRow, 2, "%d", r.nVal[i]);

		if (pSkDesc) SetItemText(iRow, 1, pSkDesc->GetDesc(i));
	}

	AutoSizeColumn(0);

	SetFocusCell(1, 0);
}

void CSKTextGridCtrl::SaveList(CDM2SkCmdList &r)
{
	for (int i = 0; i < DM2SKCMD_MAX_CMD; i++) {
		int iRow = 1 + i;
		r.nVal[i] = _ttoi(GetItemText(iRow, 2));
	}
}

int CSKTextGridCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CGridCtrl::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	SetGridBkColor(GetSysColor(COLOR_WINDOW));
	
	return 0;
}

void CSKTextGridCtrl::OnSysColorChange() 
{
	CGridCtrl::OnSysColorChange();
	
	SetGridBkColor(GetSysColor(COLOR_WINDOW));
	
}
