Annotation of sbbs/sbbs3/ctrl/textfileeditunit.cpp, revision 1.1.1.1

1.1       root        1: /* Synchronet Control Panel (GUI Borland C++ Builder Project for Win32) */
                      2: 
                      3: /* $Id: TextFileEditUnit.cpp,v 1.2 2000/11/15 04:15:44 rswindell Exp $ */
                      4: 
                      5: /****************************************************************************
                      6:  * @format.tab-size 4          (Plain Text/Source Code File Header)                    *
                      7:  * @format.use-tabs true       (see http://www.synchro.net/ptsc_hdr.html)              *
                      8:  *                                                                                                                                                     *
                      9:  * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html         *
                     10:  *                                                                                                                                                     *
                     11:  * This program is free software; you can redistribute it and/or                       *
                     12:  * modify it under the terms of the GNU General Public License                         *
                     13:  * as published by the Free Software Foundation; either version 2                      *
                     14:  * of the License, or (at your option) any later version.                                      *
                     15:  * See the GNU General Public License for more details: gpl.txt or                     *
                     16:  * http://www.fsf.org/copyleft/gpl.html                                                                                *
                     17:  *                                                                                                                                                     *
                     18:  * Anonymous FTP access to the most recent released source is available at     *
                     19:  * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net     *
                     20:  *                                                                                                                                                     *
                     21:  * Anonymous CVS access to the development source and modification history     *
                     22:  * is available at cvs.synchro.net:/cvsroot/sbbs, example:                                     *
                     23:  * cvs -d :pserver:[email protected]:/cvsroot/sbbs login                       *
                     24:  *     (just hit return, no password is necessary)                                                     *
                     25:  * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src                *
                     26:  *                                                                                                                                                     *
                     27:  * For Synchronet coding style and modification guidelines, see                                *
                     28:  * http://www.synchro.net/source.html                                                                          *
                     29:  *                                                                                                                                                     *
                     30:  * You are encouraged to submit any modifications (preferably in Unix diff     *
                     31:  * format) via e-mail to [email protected]                                                                      *
                     32:  *                                                                                                                                                     *
                     33:  * Note: If this box doesn't appear square, then you need to fix your tabs.    *
                     34:  ****************************************************************************/
                     35: 
                     36: //---------------------------------------------------------------------------
                     37: #include <vcl.h>
                     38: #pragma hdrstop
                     39: 
                     40: #include <stdio.h>
                     41: #include "TextFileEditUnit.h"
                     42: //---------------------------------------------------------------------------
                     43: #pragma package(smart_init)
                     44: #pragma resource "*.dfm"
                     45: TTextFileEditForm *TextFileEditForm;
                     46: //---------------------------------------------------------------------------
                     47: __fastcall TTextFileEditForm::TTextFileEditForm(TComponent* Owner)
                     48:        : TForm(Owner)
                     49: {
                     50: }
                     51: //---------------------------------------------------------------------------
                     52: void __fastcall TTextFileEditForm::FormShow(TObject *Sender)
                     53: {
                     54:        char str[256];
                     55: 
                     56:     if(Memo->ReadOnly) {
                     57:         Save->Enabled=false;
                     58:         Cut->Enabled=false;
                     59:         Undo->Enabled=false;
                     60:         Paste->Enabled=false;
                     61:         InsertCtrlA->Enabled=false;
                     62:         CancelButton->Enabled=false;
                     63:         Panel->Visible=false;
                     64:         EditReplaceMenuItem->Enabled=false;
                     65:         ReplacePopupMenuItem->Enabled=false;
                     66:     }
                     67:     Caption=Caption+AnsiString(" - ")+Filename.UpperCase();
                     68:     try {
                     69:         Memo->Lines->LoadFromFile(Filename);
                     70:     } catch(...) { }
                     71:     ActiveControl=Memo;
                     72:     Memo->SelStart=0;
                     73: }
                     74: //---------------------------------------------------------------------------
                     75: void __fastcall TTextFileEditForm::FontButtonClick(TObject *Sender)
                     76: {
                     77:        TFontDialog *FontDialog=new TFontDialog(this);
                     78: 
                     79:     FontDialog->Font->Assign(Memo->Font);
                     80:     FontDialog->Execute();
                     81:     Memo->Font->Assign(FontDialog->Font);
                     82:     delete FontDialog;
                     83: }
                     84: //---------------------------------------------------------------------------
                     85: 
                     86: 
                     87: 
                     88: 
                     89: 
                     90: 
                     91: void __fastcall TTextFileEditForm::FindDialogFind(TObject *Sender)
                     92: {
                     93:     TFindDialog* Dlg=(TFindDialog*)Sender;
                     94:     TSearchTypes stype;
                     95:     int result;
                     96:     int start;
                     97: 
                     98:     if(Dlg->Options.Contains(frMatchCase))
                     99:         stype << stMatchCase;
                    100:     if(Dlg->Options.Contains(frWholeWord))
                    101:         stype << stWholeWord;
                    102: 
                    103:     start=Memo->SelStart;
                    104: 
                    105:     if(Dlg->Tag)
                    106:         start++;
                    107:     result=Memo->FindText(Dlg->FindText
                    108:         ,start,Memo->Text.Length(),stype);
                    109:     if(result==-1)
                    110:         Beep();
                    111:     else {
                    112:         Memo->SelStart=result;
                    113:         Memo->SelLength=Dlg->FindText.Length();
                    114:     }
                    115:     Dlg->Tag=1;
                    116: }
                    117: //---------------------------------------------------------------------------
                    118: 
                    119: 
                    120: 
                    121: void __fastcall TTextFileEditForm::ReplaceDialogReplace(TObject *Sender)
                    122: {
                    123:     TSearchTypes stype;
                    124:     int result;
                    125:     int start;
                    126: 
                    127:     if(ReplaceDialog->Options.Contains(frMatchCase))
                    128:         stype << stMatchCase;
                    129:     if(ReplaceDialog->Options.Contains(frWholeWord))
                    130:         stype << stWholeWord;
                    131: 
                    132:     if(ReplaceDialog->Options.Contains(frReplaceAll)) {
                    133:         while((result=Memo->FindText(ReplaceDialog->FindText
                    134:             ,Memo->SelStart,Memo->Text.Length(),stype))!=-1) {
                    135:             Memo->SelStart=result;
                    136:             Memo->SelLength=ReplaceDialog->FindText.Length();
                    137:             Memo->SelText=ReplaceDialog->ReplaceText;
                    138:             Memo->SelStart++;
                    139:         }
                    140:         return;
                    141:     }
                    142: 
                    143:     start=Memo->SelStart;
                    144: 
                    145:     if(Memo->SelText==ReplaceDialog->FindText) {
                    146:         Memo->SelText=ReplaceDialog->ReplaceText;
                    147:         ReplaceDialog->Tag=1;
                    148:         return;
                    149:     }
                    150:     result=Memo->FindText(ReplaceDialog->FindText
                    151:         ,start,Memo->Text.Length(),stype);
                    152:     if(result==-1)
                    153:         Beep();
                    154:     else {
                    155:         Memo->SelStart=result;
                    156:         Memo->SelLength=ReplaceDialog->FindText.Length();
                    157:         Memo->SelText=ReplaceDialog->ReplaceText;
                    158:     }
                    159: }
                    160: //---------------------------------------------------------------------------
                    161: 
                    162: 
                    163: void __fastcall TTextFileEditForm::InsertCtrlAExecute(TObject *Sender)
                    164: {
                    165:     Memo->SelText="\1";
                    166: }
                    167: //---------------------------------------------------------------------------
                    168: 
                    169: void __fastcall TTextFileEditForm::FindExecute(TObject *Sender)
                    170: {
                    171:     FindDialog->Options.Clear();
                    172:     FindDialog->Options << frHideUpDown;
                    173:     FindDialog->Tag=0;
                    174:     FindDialog->Execute();
                    175: }
                    176: //---------------------------------------------------------------------------
                    177: 
                    178: void __fastcall TTextFileEditForm::ReplaceExecute(TObject *Sender)
                    179: {
                    180:     ReplaceDialog->Execute();
                    181: }
                    182: //---------------------------------------------------------------------------
                    183: 
                    184: void __fastcall TTextFileEditForm::SelectAllExecute(TObject *Sender)
                    185: {
                    186:     Memo->SelectAll();
                    187: }
                    188: //---------------------------------------------------------------------------
                    189: 
                    190: void __fastcall TTextFileEditForm::FileExitMenuItemClick(TObject *Sender)
                    191: {
                    192:     Close();
                    193: }
                    194: //---------------------------------------------------------------------------
                    195: 
                    196: void __fastcall TTextFileEditForm::SaveExecute(TObject *Sender)
                    197: {
                    198:        int i;
                    199: 
                    200:     if(Memo->ReadOnly==true)
                    201:         return;
                    202: 
                    203: #if 0
                    204:        FILE* fp;
                    205:     if((fp=fopen(Filename.c_str(),"w"))!=NULL) {
                    206:                for(i=0;i<Memo->Lines->Count;i++)
                    207:                fprintf(fp,"%s\n",Memo->Lines->Strings[i].c_str());
                    208:         fclose(fp);
                    209:     }
                    210: #else
                    211:     Memo->Lines->SaveToFile(Filename);
                    212: #endif
                    213: }
                    214: //---------------------------------------------------------------------------
                    215: 
                    216: void __fastcall TTextFileEditForm::CutExecute(TObject *Sender)
                    217: {
                    218:     Memo->CutToClipboard();    
                    219: }
                    220: //---------------------------------------------------------------------------
                    221: 
                    222: void __fastcall TTextFileEditForm::CopyExecute(TObject *Sender)
                    223: {
                    224:     Memo->CopyToClipboard();    
                    225: }
                    226: //---------------------------------------------------------------------------
                    227: 
                    228: void __fastcall TTextFileEditForm::PasteExecute(TObject *Sender)
                    229: {
                    230:     Memo->PasteFromClipboard();
                    231: }
                    232: //---------------------------------------------------------------------------
                    233: 
                    234: void __fastcall TTextFileEditForm::UndoExecute(TObject *Sender)
                    235: {
                    236:     Memo->Undo();
                    237: }
                    238: //---------------------------------------------------------------------------
                    239: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.