1 /* 2 * This file is part of lib_finder plugin for Code::Blocks Studio 3 * Copyright (C) 2006-2007 Bartlomiej Swiecki 4 * 5 * wxSmith is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * wxSmith is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with wxSmith; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 18 * 19 * $Revision: 10299 $ 20 * $Id: processingdlg.h 10299 2015-05-15 12:41:59Z jenslody $ 21 * $HeadURL: svn://svn.code.sf.net/p/codeblocks/code/branches/release-20.xx/src/plugins/contrib/lib_finder/processingdlg.h $ 22 */ 23 24 #ifndef PROCESSINGDLG_H 25 #define PROCESSINGDLG_H 26 27 #include <wx/string.h> 28 #include <wx/hashmap.h> 29 #include <wx/arrstr.h> 30 #ifdef __WXMSW__ 31 #include <wx/gauge.h> 32 #endif 33 34 35 36 //(*Headers(ProcessingDlg) 37 #include "scrollingdialog.h" 38 class wxStaticBoxSizer; 39 class wxFlexGridSizer; 40 class wxGauge; 41 class wxButton; 42 class wxStaticText; 43 //*) 44 45 #include "librarydetectionconfig.h" 46 #include "librarydetectionmanager.h" 47 #include "resultmap.h" 48 #include "pkgconfigmanager.h" 49 50 WX_DECLARE_STRING_HASH_MAP(wxArrayString,FileNamesMap); 51 WX_DECLARE_STRING_HASH_MAP(wxString,wxStringStringMap); 52 53 class ProcessingDlg: public wxScrollingDialog 54 { 55 public: 56 57 ProcessingDlg(wxWindow* parent, LibraryDetectionManager& Manager, TypedResults& KnownResults, wxWindowID id = -1); 58 virtual ~ProcessingDlg(); 59 60 //(*Identifiers(ProcessingDlg) 61 static const long ID_STATICTEXT1; 62 static const long ID_GAUGE1; 63 static const long ID_BUTTON1; 64 //*) 65 66 bool ReadDirs(const wxArrayString& Dirs); 67 68 bool ProcessLibs(); 69 70 bool ProcessLibs(const wxArrayString& Shortcuts); 71 72 void ApplyResults(bool addOnly); 73 74 protected: 75 76 //(*Handlers(ProcessingDlg) 77 void OnButton1Click(wxCommandEvent& event); 78 //*) 79 80 //(*Declarations(ProcessingDlg) 81 wxFlexGridSizer* FlexGridSizer1; 82 wxStaticText* Status; 83 wxButton* StopBtn; 84 wxGauge* Gauge1; 85 wxStaticBoxSizer* StaticBoxSizer1; 86 //*) 87 88 private: 89 90 void ReadDir(const wxString& DirName); 91 void ProcessLibrary(const LibraryDetectionConfig* Config, const LibraryDetectionConfigSet* Set); 92 void SplitPath(const wxString& FileName,wxArrayString& Split); 93 bool IsVariable(const wxString& NamePart) const; 94 void CheckFilter(const wxString& BasePath,const wxStringStringMap& Vars,const wxArrayString& CompilerList,const LibraryDetectionConfig *Config,const LibraryDetectionConfigSet* Set,int WhichFilter); 95 void FoundLibrary(const wxString& BasePath,const wxStringStringMap& Vars,const wxArrayString& CompilerList,const LibraryDetectionConfig *Config,const LibraryDetectionConfigSet* Set); 96 wxString FixVars(wxString Original,const wxStringStringMap& Vars); 97 wxString FixPath(wxString Original); 98 99 bool StopFlag; 100 FileNamesMap Map; 101 LibraryDetectionManager& m_Manager; 102 TypedResults& m_KnownResults; 103 ResultMap m_FoundResults; 104 105 DECLARE_EVENT_TABLE() 106 }; 107 108 #endif 109