#include "stdafx.h"
#include "chkaccr.h"

static char key[26];

void __inline init_chkaccr(void)
{
	ZeroMemory(key, 26);
}

BOOL add_chkaccr( const char *str )
{
	char k;
	char akey[5] = "(&?)";

	if ( str ) {
		for( k=0 ; k<26 ; k++ ) {
			akey[2] = 'A' + k;
			if ( strstri(str, akey) ) {
				if ( key[k] < 2 ) {
					key[k]++;
				}
			}
		}
		return TRUE;
	}

	return FALSE;
}

BOOL chk_chkaccr( HWND hWnd )
{
	char k;

	for( k=0 ; k<26 ; k++ ) {
		if ( key[k] == 2 ) {
            show_chkaccr( hWnd );
			return FALSE;
		}
	}

	return TRUE;
}

void show_chkaccr( HWND hWnd )
{
	char mes[20*26+200], mes1[20];
	char k;
	int  flag_warning = MB_ICONINFORMATION;

	lstrcpy( mes, "この編集ダイアログで用いられているアクセラレータキーの一覧です。\r\n(○:未使用(空き)  ×:使用済  ●重複(エラー)\r\n「●重複！」となっているコントロールが存在する場合、そのアクセラレータキーは正しく動作しない恐れがあります。\r\n\r\n" );
	for(k=0 ; k<26 ; k++) {
		wsprintf(mes1, "(%c)：%s", 'A' + k
                                 , key[k] == 0 ? "○未使用" :
	                               key[k] == 1 ? "×使用済" : "●重複！");
        lstrcat( mes, mes1 );
		lstrcat( mes, k%5 == 4 ? "\r\n" : "\t" );

		if ( key[k] == 2 ) {
			flag_warning = MB_ICONEXCLAMATION;
		}
	}
	MessageBox( hWnd, mes, "R-Script アクセラレータキーの確認", MB_OK | flag_warning );
}
