mirror of
https://github.com/n5ac/mmtty.git
synced 2025-12-06 04:12:03 +01:00
409 lines
12 KiB
C++
409 lines
12 KiB
C++
//Copyright+LGPL
|
||
|
||
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
||
// Copyright 2000-2013 Makoto Mori, Nobuyuki Oba
|
||
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
||
// This file is part of MMTTY.
|
||
|
||
// MMTTY is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
|
||
// as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||
|
||
// MMTTY is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||
|
||
// You should have received a copy of the GNU Lesser General Public License along with MMTTY. If not, see
|
||
// <http://www.gnu.org/licenses/>.
|
||
//-----------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
|
||
|
||
//---------------------------------------------------------------------
|
||
#include <vcl.h>
|
||
#pragma hdrstop
|
||
|
||
#include "ShortCut.h"
|
||
#include "LogFile.h"
|
||
//---------------------------------------------------------------------
|
||
#pragma resource "*.dfm"
|
||
//TShortCutDlg *ShortCutDlg;
|
||
static int CurRow = 0;
|
||
static int TopRow = 0;
|
||
//---------------------------------------------------------------------
|
||
__fastcall TShortCutDlg::TShortCutDlg(TComponent* AOwner)
|
||
: TForm(AOwner)
|
||
{
|
||
FormStyle = ((TForm *)AOwner)->FormStyle;
|
||
m_DisEvent = 1;
|
||
Font->Name = ((TForm *)AOwner)->Font->Name;
|
||
Font->Charset = ((TForm *)AOwner)->Font->Charset;
|
||
if( Font->Charset != SHIFTJIS_CHARSET ){
|
||
Caption = "Assign ShortCut";
|
||
DelBtn->Caption = "Del";
|
||
CheckBtn->Caption = "Check Dupe";
|
||
OKBtn->Caption = "Close";
|
||
}
|
||
ShortCutName->Clear();
|
||
int i;
|
||
for( i = 0; KEYTBL[i].Key; i++ ){
|
||
ShortCutName->Items->Add(ToDXKey(KEYTBL[i].pName));
|
||
}
|
||
m_DisEvent = 0;
|
||
SBHelp->Visible = !JanHelp.IsEmpty();
|
||
}
|
||
|
||
typedef struct {
|
||
LPCSTR pSys;
|
||
LPCSTR pUser;
|
||
WORD *pKey;
|
||
}DEFTBL;
|
||
|
||
DEFTBL def[]={
|
||
{"RcvLog","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD>L<EFBFBD>^<5E>i<EFBFBD><69><EFBFBD>t<EFBFBD><74><EFBFBD>j<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43>", &sys.m_SysKey[kkRcvLog]},
|
||
{"FileOut","<EFBFBD>e<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>M", &sys.m_SysKey[kkFileOut]},
|
||
{"SaveRx","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD>ʂ̓<EFBFBD><EFBFBD>e<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>ɃZ<C983>[<5B>u", &sys.m_SysKey[kkSaveRx]},
|
||
|
||
{"OpenLog","<EFBFBD>V<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>̃I<CC83>[<5B>v<EFBFBD><76>", &sys.m_SysKey[kkOpenLog]},
|
||
{"Flush","<EFBFBD>f<EFBFBD>B<EFBFBD>X<EFBFBD>N<EFBFBD>Ƀt<EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>V<EFBFBD><EFBFBD>", &sys.m_SysKey[kkFlush]},
|
||
|
||
{"RecTime","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD>T<EFBFBD>E<EFBFBD><EFBFBD><EFBFBD>h<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̃t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>ɋL<C98B>^", &sys.m_SysKey[kkRecTime]},
|
||
{"Rec","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD>T<EFBFBD>E<EFBFBD><EFBFBD><EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>ɋL<C98B>^", &sys.m_SysKey[kkRec]},
|
||
{"Play","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD>T<EFBFBD>E<EFBFBD><EFBFBD><EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Đ<EFBFBD>", &sys.m_SysKey[kkPlay]},
|
||
{"PlayPos","<EFBFBD>Đ<EFBFBD><EFBFBD>ʒu<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", &sys.m_SysKey[kkPlayPos]},
|
||
{"PlayStop","<EFBFBD>L<EFBFBD>^<5E>^<5E>Đ<EFBFBD><C490>̏I<CC8F><49>", &sys.m_SysKey[kkPlayStop]},
|
||
|
||
{"Paste","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD>ʂւ̓\<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><EFBFBD>", &sys.m_SysKey[kkPaste]},
|
||
{"Panel","Control Panel", &sys.m_SysKey[kkPanel]},
|
||
{"MacBtn","Macro <20>{<7B>^<5E><>", &sys.m_SysKey[kkMac]},
|
||
{"Scope","<EFBFBD>I<EFBFBD>V<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>R<EFBFBD>[<5B>v", &sys.m_SysKey[kkScope]},
|
||
{"ClrRxWindow","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD>ʂ̃N<EFBFBD><EFBFBD><EFBFBD>A", &sys.m_SysKey[kkClrRxWindow]},
|
||
{"LogList","LogList", &sys.m_SysKey[kkLogList]},
|
||
{"QSOData","QSOData", &sys.m_SysKey[kkQSOData]},
|
||
{"EntTX","TX<EFBFBD>{<7B>^<5E><><EFBFBD>Ŏ<EFBFBD><C58E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>M", &sys.m_SysKey[kkEntTX]},
|
||
{"WordWrap","<EFBFBD>L<EFBFBD>[<5B>{<7B>[<5B>h<EFBFBD>̃<EFBFBD><CC83>[<5B>h<EFBFBD><68><EFBFBD>b<EFBFBD>v", &sys.m_SysKey[kkWordWrap]},
|
||
{"RUN","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>j<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD>[<5B>h", &sys.m_SysKey[kkRun]},
|
||
{"TNC","TNC<EFBFBD>͋[<5B><><EFBFBD>[<5B>h<EFBFBD>ݒ<EFBFBD>", &sys.m_SysKey[kkTNC]},
|
||
{"Option","<EFBFBD>ݒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", &sys.m_SysKey[kkOption]},
|
||
{"LogOpt","<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD>ݒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", &sys.m_SysKey[kkLogOption]},
|
||
|
||
{"Profile1","Profile 1", &sys.m_SysKey[kkPro1]},
|
||
{"Profile2","Profile 2", &sys.m_SysKey[kkPro2]},
|
||
{"Profile3","Profile 3", &sys.m_SysKey[kkPro3]},
|
||
{"Profile4","Profile 4", &sys.m_SysKey[kkPro4]},
|
||
{"Profile5","Profile 5", &sys.m_SysKey[kkPro5]},
|
||
{"Profile6","Profile 6", &sys.m_SysKey[kkPro6]},
|
||
{"Profile7","Profile 7", &sys.m_SysKey[kkPro7]},
|
||
{"Profile8","Profile 8", &sys.m_SysKey[kkPro8]},
|
||
{"ProfileDef","MMTTY default", &sys.m_SysKey[kkProDef]},
|
||
{"ProfileRet","Return to the startup", &sys.m_SysKey[kkProRet]},
|
||
|
||
{"ExtCmd1","External 1", &sys.m_SysKey[kkExtCmd1]},
|
||
{"ExtCmd2","External 2", &sys.m_SysKey[kkExtCmd2]},
|
||
{"ExtCmd3","External 3", &sys.m_SysKey[kkExtCmd3]},
|
||
{"ExtCmd4","External 4", &sys.m_SysKey[kkExtCmd4]},
|
||
{"ExtReset","<EFBFBD>T<EFBFBD>X<EFBFBD>y<EFBFBD><EFBFBD><EFBFBD>h<EFBFBD>̉<EFBFBD><EFBFBD><EFBFBD>", &sys.m_SysKey[kkExtReset]},
|
||
{"ExtSusp","<EFBFBD>T<EFBFBD>X<EFBFBD>y<EFBFBD><EFBFBD><EFBFBD>h", &sys.m_SysKey[kkExtSusp]},
|
||
|
||
{"FIG","FIG Button", &sys.m_SysKey[kkFIG]},
|
||
{"UOS","UOS Button", &sys.m_SysKey[kkUOS]},
|
||
{"TX","TX Button", &sys.m_SysKey[kkTX]},
|
||
{"TXOFF","TXOFF Button", &sys.m_SysKey[kkTXOFF]},
|
||
{"QSO","QSO Button", &sys.m_SysKey[kkQSO]},
|
||
{"OnQSO","QSO Button ON", &sys.m_SysKey[kkOnQSO]},
|
||
{"OffQSO","QSO Button OFF", &sys.m_SysKey[kkOffQSO]},
|
||
{"Capture","Capture Callsign", &sys.m_SysKey[kkCAPTURE]},
|
||
{"InitBox","Init Button", &sys.m_SysKey[kkInitBox]},
|
||
{"CALL","Call Box", &sys.m_SysKey[kkCall]},
|
||
{"NAME","Name Box", &sys.m_SysKey[kkName]},
|
||
{"QTH","QTH Box", &sys.m_SysKey[kkQTH]},
|
||
{"RST","HisRST Box", &sys.m_SysKey[kkRST]},
|
||
{"MyRST","MyRST Box", &sys.m_SysKey[kkMyRST]},
|
||
{"Freq","Frequency Box", &sys.m_SysKey[kkFreq]},
|
||
{"Find","Find Button", &sys.m_SysKey[kkFind]},
|
||
{"Clear","Clear Button", &sys.m_SysKey[kkClear]},
|
||
|
||
{"TxUp","<EFBFBD><EFBFBD><EFBFBD>͉<EFBFBD><EFBFBD><EFBFBD> <20><>", &sys.m_SysKey[kkInUp]},
|
||
{"TxDown","<EFBFBD><EFBFBD><EFBFBD>͉<EFBFBD><EFBFBD><EFBFBD> <20><>", &sys.m_SysKey[kkInDown]},
|
||
{"TxPUp","<EFBFBD><EFBFBD><EFBFBD>͉<EFBFBD><EFBFBD><EFBFBD> <20>y<EFBFBD>[<5B>W<EFBFBD><57>", &sys.m_SysKey[kkInPUp]},
|
||
{"TxPDown","<EFBFBD><EFBFBD><EFBFBD>͉<EFBFBD><EFBFBD><EFBFBD> <20>y<EFBFBD>[<5B>W<EFBFBD><57>", &sys.m_SysKey[kkInPDown]},
|
||
{"TxHome","<EFBFBD><EFBFBD><EFBFBD>͉<EFBFBD><EFBFBD><EFBFBD> <20>擪", &sys.m_SysKey[kkInHome]},
|
||
{"TxEnd","<EFBFBD><EFBFBD><EFBFBD>͉<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", &sys.m_SysKey[kkInEnd]},
|
||
|
||
{"RxUp","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>", &sys.m_SysKey[kkRxUp]},
|
||
{"RxDown","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>", &sys.m_SysKey[kkRxDown]},
|
||
{"RxPUp","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>y<EFBFBD>[<5B>W<EFBFBD><57>", &sys.m_SysKey[kkRxPUp]},
|
||
{"RxPDown","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>y<EFBFBD>[<5B>W<EFBFBD><57>", &sys.m_SysKey[kkRxPDown]},
|
||
{"RxHome","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>擪", &sys.m_SysKey[kkRxHome]},
|
||
{"RxEnd","<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", &sys.m_SysKey[kkRxEnd]},
|
||
|
||
{"CharWaitL","<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Wait<EFBFBD><EFBFBD>", &sys.m_SysKey[kkCharWaitLeft]},
|
||
{"CharWaitR","<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Wait<EFBFBD><EFBFBD>", &sys.m_SysKey[kkCharWaitRight]},
|
||
{"DiddleWaitL","DiddleWait<EFBFBD><EFBFBD>", &sys.m_SysKey[kkDiddleWaitLeft]},
|
||
{"DiddleWaitR","DiddleWait<EFBFBD><EFBFBD>", &sys.m_SysKey[kkDiddleWaitRight]},
|
||
|
||
{"TxHeightUp","<EFBFBD><EFBFBD><EFBFBD>͉<EFBFBD><EFBFBD>ʊg<EFBFBD><EFBFBD>", &sys.m_SysKey[kkInHeightUp]},
|
||
{"TxHeightDown","<EFBFBD><EFBFBD><EFBFBD>͉<EFBFBD><EFBFBD>ʏk<EFBFBD><EFBFBD>", &sys.m_SysKey[kkInHeightDown]},
|
||
|
||
{"TxLTR","LTR<EFBFBD><EFBFBD><EFBFBD>M", &sys.m_SysKey[kkTxLTR]},
|
||
{"TxFIG","FIG<EFBFBD><EFBFBD><EFBFBD>M", &sys.m_SysKey[kkTxFIG]},
|
||
|
||
{"DecShift","SHIFT<EFBFBD><EFBFBD> <20><><EFBFBD>߂<EFBFBD>", &sys.m_SysKey[kkDecShift]},
|
||
{"IncShift","SHIFT<EFBFBD><EFBFBD> <20>L<EFBFBD><4C><EFBFBD><EFBFBD>", &sys.m_SysKey[kkIncShift]},
|
||
{"ChangeShift","SHIFT<EFBFBD><EFBFBD><EFBFBD>ύX (170/200/220/350/450)", &sys.m_SysKey[kkToggleShift]},
|
||
|
||
{"CallList","Callsign list", &sys.m_SysKey[kkCList]},
|
||
};
|
||
|
||
void SetMenuName(LPCSTR pkey, LPCSTR p)
|
||
{
|
||
int i;
|
||
for( i = 0; i < AN(def); i++ ){
|
||
if( !strcmp(def[i].pSys, pkey) ){
|
||
def[i].pUser = p;
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
void SetExtMenuName(int n, LPCSTR p)
|
||
{
|
||
int i;
|
||
for( i = 0; i < AN(def); i++ ){
|
||
if( !strcmp(def[i].pSys, "ExtCmd1") ){
|
||
def[i+n].pUser = p;
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
void SetProMenuName(int n, LPCSTR p)
|
||
{
|
||
int i;
|
||
for( i = 0; i < AN(def); i++ ){
|
||
if( !strcmp(def[i].pSys, "Profile1") ){
|
||
def[i+n].pUser = p;
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
const DEFTBL *GetDP(int n)
|
||
{
|
||
static DEFTBL udef;
|
||
static char bf[32];
|
||
static WORD dummy = 0;
|
||
|
||
if( n < AN(def) ){
|
||
return &def[n];
|
||
}
|
||
n -= AN(def);
|
||
if( n < 4 ){
|
||
sprintf(bf, "IN%u", n + 1);
|
||
udef.pSys = bf;
|
||
udef.pUser = sys.m_InBtnName[n].c_str();
|
||
udef.pKey = &sys.m_InBtnKey[n];
|
||
return &udef;
|
||
}
|
||
n -= 4;
|
||
if( n < 16 ){
|
||
sprintf(bf, "M%u", n + 1);
|
||
udef.pSys = bf;
|
||
udef.pUser = sys.m_UserName[n].c_str();
|
||
udef.pKey = &sys.m_UserKey[n];
|
||
return &udef;
|
||
}
|
||
n -= 16;
|
||
if( n < MSGLISTMAX ){
|
||
sprintf(bf, "ML%u", n + 1);
|
||
udef.pSys = bf;
|
||
udef.pUser = sys.m_MsgName[n].c_str();
|
||
udef.pKey = &sys.m_MsgKey[n];
|
||
return &udef;
|
||
}
|
||
n -= MSGLISTMAX;
|
||
if( n < 5 ){
|
||
sprintf(bf, "QM%u", n + 1);
|
||
udef.pSys = bf;
|
||
udef.pUser = (sys.m_WinFontCharset != SHIFTJIS_CHARSET)?"QSO Button Macro":"QSO Button<6F>A<EFBFBD><41><EFBFBD>}<7D>N<EFBFBD><4E>";
|
||
udef.pKey = &Log.m_LogSet.m_QSOMacroKey[n];
|
||
return &udef;
|
||
}
|
||
n -= 5;
|
||
if( n < 16 ){
|
||
sprintf(bf, "MEdit%u", n + 1);
|
||
udef.pSys = bf;
|
||
udef.pUser = sys.m_UserName[n].c_str();
|
||
udef.pKey = &sys.m_UserEditKey[n];
|
||
return &udef;
|
||
}
|
||
udef.pSys = "";
|
||
udef.pUser = "";
|
||
udef.pKey = &dummy;
|
||
return &udef;
|
||
}
|
||
//---------------------------------------------------------------------
|
||
void __fastcall TShortCutDlg::UpdateUI(int n)
|
||
{
|
||
if( n >= 0 ){
|
||
const DEFTBL *dp = GetDP(n);
|
||
m_DisEvent++;
|
||
ShortCutName->Text = GetKeyName(*dp->pKey);
|
||
m_DisEvent--;
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------
|
||
void __fastcall TShortCutDlg::Execute(void)
|
||
{
|
||
Grid->RowCount = AN(def) + 4 + 16 + 64 + 5 + 16 + 1;
|
||
if( CurRow ){
|
||
Grid->Row = CurRow;
|
||
Grid->TopRow = TopRow;
|
||
}
|
||
UpdateUI(Grid->Row - 1);
|
||
ShowModal();
|
||
CurRow = Grid->Row;
|
||
TopRow = Grid->TopRow;
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
// <20>d<EFBFBD><64><EFBFBD>̃`<60>F<EFBFBD>b<EFBFBD>N
|
||
int __fastcall TShortCutDlg::IsDupe(int n)
|
||
{
|
||
#if 0
|
||
FILE *fp = fopen("F:\\LIST.TXT", "wt");
|
||
const DEFTBL *dp;
|
||
for( int j = 0; j < Grid->RowCount-1; j++ ){
|
||
dp = GetDP(j);
|
||
fprintf(fp, "%s : %s\n", dp->pSys, dp->pUser);
|
||
}
|
||
fclose(fp);
|
||
#endif
|
||
|
||
WORD ks;
|
||
const DEFTBL *s;
|
||
const DEFTBL *t;
|
||
int j;
|
||
s = GetDP(n);
|
||
ks = *s->pKey;
|
||
if( ks ){
|
||
for( j = 0; j < Grid->RowCount - 1; j++ ){
|
||
if( n != j ){
|
||
t = GetDP(j);
|
||
if( t->pKey ){
|
||
if( ks == *t->pKey ){
|
||
return 1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
//---------------------------------------------------------------------
|
||
void __fastcall TShortCutDlg::GridDrawCell(TObject *Sender, int Col,
|
||
int Row, TRect &Rect, TGridDrawState State)
|
||
{
|
||
char bf[256];
|
||
|
||
Grid->Canvas->FillRect(Rect);
|
||
int X = Rect.Left + 4;
|
||
int Y = Rect.Top + 2;
|
||
|
||
if( Row ){
|
||
Row--;
|
||
const DEFTBL *dp = GetDP(Row);
|
||
bf[0] = 0;
|
||
switch(Col){
|
||
case 0: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
strcpy(bf, dp->pSys);
|
||
break;
|
||
case 1: // <20><><EFBFBD>[<5B>U<EFBFBD><55>
|
||
strcpy(bf, dp->pUser);
|
||
break;
|
||
case 2: // <20>V<EFBFBD><56><EFBFBD>[<5B>g<EFBFBD>J<EFBFBD>b<EFBFBD>g
|
||
strcpy(bf, GetKeyName(*dp->pKey));
|
||
if( IsDupe(Row) ){
|
||
Grid->Canvas->Font->Color = clRed;
|
||
}
|
||
break;
|
||
}
|
||
Grid->Canvas->TextOut(X, Y, bf);
|
||
}
|
||
else if( Font->Charset != SHIFTJIS_CHARSET ){
|
||
LPCSTR _tte[]={
|
||
"Internal","Define Name","Key"
|
||
};
|
||
Grid->Canvas->TextOut(X, Y, _tte[Col]);
|
||
}
|
||
else { // <20>^<5E>C<EFBFBD>g<EFBFBD><67>
|
||
LPCSTR _tt[]={
|
||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD>[<5B>U<EFBFBD>[<5B><><EFBFBD>`<60><>","<EFBFBD><EFBFBD><EFBFBD>蓖<EFBFBD>ăL<EFBFBD>["
|
||
};
|
||
Grid->Canvas->TextOut(X, Y, _tt[Col]);
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TShortCutDlg::GridSelectCell(TObject *Sender, int Col,
|
||
int Row, bool &CanSelect)
|
||
{
|
||
if( Row ){
|
||
UpdateUI(Row - 1);
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TShortCutDlg::ShortCutNameChange(TObject *Sender)
|
||
{
|
||
if( m_DisEvent ) return;
|
||
|
||
m_DisEvent++;
|
||
int n = Grid->Row - 1;
|
||
if( n >= 0 ){
|
||
const DEFTBL *dp = GetDP(n);
|
||
*dp->pKey = GetKeyCode(AnsiString(ShortCutName->Text).c_str()); //JA7UDE 0428
|
||
Grid->Invalidate();
|
||
}
|
||
m_DisEvent--;
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TShortCutDlg::CheckBtnClick(TObject *Sender)
|
||
{
|
||
WORD ks;
|
||
AnsiString as;
|
||
const DEFTBL *s;
|
||
const DEFTBL *t;
|
||
int i, j;
|
||
for( i = 0; i < Grid->RowCount - 1; i++ ){
|
||
s = GetDP(i);
|
||
ks = *s->pKey;
|
||
if( ks ){
|
||
as = s->pSys;
|
||
for( j = i + 1; j < Grid->RowCount - 1; j++ ){
|
||
t = GetDP(j);
|
||
if( t->pKey ){
|
||
if( ks == *t->pKey ){
|
||
Grid->Row = j + 1;
|
||
WarningMB((Font->Charset != SHIFTJIS_CHARSET)?"Duplicated key '%s' and '%s'":"'%s' <20><> '%s' <20><><EFBFBD>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD>.", as.c_str(), t->pSys);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
InfoMB( (Font->Charset != SHIFTJIS_CHARSET)?"No duplicated":"<EFBFBD>d<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V<EFBFBD><EFBFBD><EFBFBD>[<5B>g<EFBFBD>J<EFBFBD>b<EFBFBD>g<EFBFBD>L<EFBFBD>[<5B>͂<EFBFBD><CD82><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>." );
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TShortCutDlg::DelBtnClick(TObject *Sender)
|
||
{
|
||
int n = Grid->Row - 1;
|
||
if( n >= 0 ){
|
||
const DEFTBL *dp = GetDP(n);
|
||
*dp->pKey = 0;
|
||
UpdateUI(n);
|
||
Grid->Invalidate();
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TShortCutDlg::SBHelpClick(TObject *Sender)
|
||
{
|
||
ShowHtmlHelp("keyboardshortcuts.htm");
|
||
}
|
||
//---------------------------------------------------------------------------
|