mirror of
https://github.com/n5ac/mmtty.git
synced 2025-12-06 04:12:03 +01:00
173 lines
5.2 KiB
C++
173 lines
5.2 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 "ComLib.h"
|
||
#include "TextEdit.h"
|
||
//---------------------------------------------------------------------------
|
||
enum TFontPitch { fpDefault, fpVariable, fpFixed };
|
||
//---------------------------------------------------------------------
|
||
#pragma resource "*.dfm"
|
||
//TTextEditDlg *TextEditDlg;
|
||
//---------------------------------------------------------------------
|
||
__fastcall TTextEditDlg::TTextEditDlg(TComponent* AOwner)
|
||
: TForm(AOwner)
|
||
{
|
||
FormStyle = ((TForm *)AOwner)->FormStyle;
|
||
ap = NULL;
|
||
Memo->Font->Pitch = fpFixed;
|
||
EntryAlignControl();
|
||
Font->Name = ((TForm *)AOwner)->Font->Name;
|
||
Font->Charset = ((TForm *)AOwner)->Font->Charset;
|
||
// Memo->Font->Name = sys.m_BtnFontName;
|
||
// Memo->Font->Charset = sys.m_BtnFontCharset;
|
||
if( Font->Charset != SHIFTJIS_CHARSET ){
|
||
CancelBtn->Caption = "Cancel";
|
||
FontBtn->Caption = "Font";
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------
|
||
int __fastcall TTextEditDlg::Execute(AnsiString &as, int flag, LPCSTR pTitle /* = NULL*/)
|
||
{
|
||
CWaitCursor tw;
|
||
ap = as.c_str();
|
||
if( flag != TRUE ){
|
||
OKBtn->Visible = FALSE;
|
||
CancelBtn->Caption = ( Font->Charset != SHIFTJIS_CHARSET ) ? "Close":"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||
Memo->ReadOnly = TRUE;
|
||
}
|
||
if( pTitle != NULL ){
|
||
Caption = pTitle;
|
||
}
|
||
tw.Delete();
|
||
int r = ShowModal();
|
||
if( r == IDOK ){
|
||
if( Memo->Modified == FALSE ) return FALSE;
|
||
if( flag == TRUE ){
|
||
as = Memo->Text;
|
||
}
|
||
return TRUE;
|
||
}
|
||
return FALSE;
|
||
}
|
||
|
||
void __fastcall TTextEditDlg::FontBtnClick(TObject *Sender)
|
||
{
|
||
FontDialog->Font->Assign(Memo->Font);
|
||
NormalWindow(this);
|
||
if( FontDialog->Execute() == TRUE ){
|
||
CWaitCursor tw;
|
||
Memo->Font->Assign(FontDialog->Font);
|
||
Memo->Update();
|
||
}
|
||
TopWindow(this);
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
// <20>T<EFBFBD>C<EFBFBD>Y<EFBFBD>ύX<CF8D>R<EFBFBD><52><EFBFBD>g<EFBFBD><67><EFBFBD>[<5B><><EFBFBD>̓o<CC93>^
|
||
void __fastcall TTextEditDlg::EntryAlignControl(void)
|
||
{
|
||
RECT rc;
|
||
rc.left = 0;
|
||
rc.top = 0;
|
||
rc.right = 792-1;
|
||
rc.bottom = 572-1;
|
||
|
||
AlignList.EntryControl(OKBtn, &rc, OKBtn->Font);
|
||
AlignList.EntryControl(CancelBtn, &rc, CancelBtn->Font);
|
||
AlignList.EntryControl(FontBtn, &rc, FontBtn->Font);
|
||
AlignList.EntryControl(Memo, &rc, Memo->Font);
|
||
|
||
int CX = ::GetSystemMetrics(SM_CXFULLSCREEN);
|
||
int CY = ::GetSystemMetrics(SM_CYFULLSCREEN);
|
||
// int CX = ::GetSystemMetrics(SM_CXSCREEN);
|
||
// int CY = ::GetSystemMetrics(SM_CYSCREEN);
|
||
if( (CX < Width)||(CY < Height) ){
|
||
Top = 0;
|
||
Left = 0;
|
||
Width = CX;
|
||
Height = CY;
|
||
}
|
||
FormCenter(this, CX, CY);
|
||
if( Owner != NULL ){
|
||
WindowState = ((TForm *)Owner)->WindowState;
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TTextEditDlg::FormResize(TObject *Sender)
|
||
{
|
||
CWaitCursor tw;
|
||
AlignList.NewAlign(this);
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
void __fastcall TTextEditDlg::FormPaint(TObject *Sender)
|
||
{
|
||
if( ap == NULL ) return;
|
||
CWaitCursor tw;
|
||
Memo->Text = ap;
|
||
ap = NULL;
|
||
Memo->Update();
|
||
}
|
||
//---------------------------------------------------------------------------
|
||
// <20>e<EFBFBD>L<EFBFBD>X<EFBFBD>g<EFBFBD>w<EFBFBD><77><EFBFBD>v<EFBFBD>̕\<5C><>
|
||
void __fastcall ShowHelp(TForm *pForm, LPCSTR pName)
|
||
{
|
||
char bf[2048];
|
||
char Name[256];
|
||
AnsiString in;
|
||
FILE *fp;
|
||
|
||
sprintf(Name, "%s%s", BgnDir, pName);
|
||
CWaitCursor w;
|
||
if( (fp = fopen(Name, "rt"))!=NULL ){
|
||
while(!feof(fp)){
|
||
if( fgets(bf, 2048, fp) != NULL ){
|
||
ClipLF(bf);
|
||
in += bf;
|
||
in += "\r\n";
|
||
}
|
||
}
|
||
fclose(fp);
|
||
}
|
||
else {
|
||
if((sys.m_WinFontCharset != SHIFTJIS_CHARSET )){
|
||
ErrorMB( "'%s' was not found.\r\n\r\nPlease search in the MMTTY English Web Site.", Name);
|
||
}
|
||
else {
|
||
ErrorMB( "'%s'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C282><EFBFBD><EFBFBD>܂<EFBFBD><DC82><EFBFBD>.\r\n\r\nMMTTY English Web Site <20><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>E<EFBFBD><45><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD><68><EFBFBD>ĉ<EFBFBD><C489><EFBFBD><EFBFBD><EFBFBD>.", Name);
|
||
}
|
||
return;
|
||
}
|
||
if( sys.m_HelpNotePad ){
|
||
sprintf( bf, "NOTEPAD.EXE %s", Name);
|
||
WinExec(bf, SW_SHOWDEFAULT);
|
||
}
|
||
else {
|
||
TTextEditDlg *Box = new TTextEditDlg(pForm);
|
||
Box->Memo->Font->Name = sys.m_HelpFontName;
|
||
Box->Memo->Font->Charset = sys.m_HelpFontCharset;
|
||
Box->Memo->Font->Size = sys.m_HelpFontSize;
|
||
Box->Execute(in, FALSE, pName);
|
||
delete Box;
|
||
}
|
||
}
|
||
//---------------------------------------------------------------------------
|