//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 // . //----------------------------------------------------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------- #include #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":"閉じる"; 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); } //--------------------------------------------------------------------------- // サイズ変更コントロールの登録 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(); } //--------------------------------------------------------------------------- // テキストヘルプの表示 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'が見つかりません.\r\n\r\nMMTTY English Web Site からダウンロードして下さい.", 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; } } //---------------------------------------------------------------------------