locatefile.cpp

Go to the documentation of this file.
00001 /*
00002      This file is part of Advanced Strategic Command; http://www.asc-hq.de
00003      Copyright (C) 1994-1999  Martin Bickel  and  Marc Schellenberger
00004  
00005      This program is free software; you can redistribute it and/or modify
00006      it under the terms of the GNU General Public License as published by
00007      the Free Software Foundation; either version 2 of the License, or
00008      (at your option) any later version.
00009  
00010      This program is distributed in the hope that it will be useful,
00011      but WITHOUT ANY WARRANTY; without even the implied warranty of
00012      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013      GNU General Public License for more details.
00014  
00015      You should have received a copy of the GNU General Public License
00016      along with this program; see the file COPYING. If not, write to the 
00017      Free Software Foundation, Inc., 59 Temple Place, Suite 330, 
00018      Boston, MA  02111-1307  USA
00019 */
00020 
00021 #include "../paradialog.h"
00022 #include "../widgets/textrenderer.h"
00023 
00024 class FileFindDialog: public ASC_PG_Dialog {
00025    private:
00026       TextRenderer* location;
00027       PG_LineEdit* le;
00028       bool find( PG_LineEdit* le )
00029       {
00030          location->SetText("searching ...");
00031          ASCString filename = le->GetText();
00032          tfindfile ff( filename );
00033          tfindfile::FileInfo fi;
00034          if ( ff.getnextname( fi )) {
00035             location->SetText( fi.location );
00036          } else {
00037             location->SetText( "-not found-" );
00038          }
00039          return true;
00040       }
00041    public:
00042       FileFindDialog () : ASC_PG_Dialog( NULL, PG_Rect( -1, -1, 500, 200 ), "Locate File") 
00043       {
00044          le = new PG_LineEdit( this, PG_Rect( 20, 40, 460, 25 ));
00045          le->sigEditEnd.connect( SigC::slot( *this, &FileFindDialog::find )); 
00046          
00047          location = new TextRenderer ( this, PG_Rect( 20, 90, 460, 90 ));
00048       }
00049       
00050       int RunModal() {
00051          le->EditBegin();
00052          return ASC_PG_Dialog::RunModal();  
00053       }
00054 };
00055 
00056 
00057 void locateFile()
00058 {
00059    FileFindDialog fd;
00060    fd.Show();
00061    fd.RunModal();
00062 }

Generated on Mon Jan 5 01:28:22 2009 for Advanced Strategic Command by  doxygen 1.5.1