1 // 2 // This file is part of the aMule Project. 3 // 4 // Copyright (c) 2003-2011 aMule Team ( admin@amule.org / http://www.amule.org ) 5 // Copyright (c) 2002-2011 Merkur ( devs@emule-project.net / http://www.emule-project.net ) 6 // 7 // Any parts of this program derived from the xMule, lMule or eMule project, 8 // or contributed by third-party developers are copyrighted by their 9 // respective authors. 10 // 11 // This program is free software; you can redistribute it and/or modify 12 // it under the terms of the GNU General Public License as published by 13 // the Free Software Foundation; either version 2 of the License, or 14 // (at your option) any later version. 15 // 16 // This program is distributed in the hope that it will be useful, 17 // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 // GNU General Public License for more details. 20 // 21 // You should have received a copy of the GNU General Public License 22 // along with this program; if not, write to the Free Software 23 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 24 // 25 26 #ifndef STATISTICSDLG_H 27 #define STATISTICSDLG_H 28 29 #include <wx/panel.h> // Needed for wxPanel 30 #include <wx/colour.h> 31 32 #include <set> // Needed for std::set 33 34 typedef std::set<uint32_t> NodeIdSet; 35 36 class COScopeCtrl; 37 class CStatistics; 38 class CStatTreeItemBase; 39 class CECTag; 40 class wxTreeCtrl; 41 class wxTreeItemId; 42 //struct UpdateInfo; 43 typedef struct UpdateInfo GraphUpdateInfo; 44 45 // CStatisticsDlg panel 46 47 class CStatisticsDlg : public wxPanel 48 { 49 friend class PrefsUnifiedDlg; 50 friend class CPreferences; 51 52 public: 53 CStatisticsDlg(wxWindow* pParent, CStatistics* stats); 54 ~CStatisticsDlg(); 55 56 void UpdateStatGraphs(const uint32 peakconnections, const GraphUpdateInfo& update); 57 void SetUpdatePeriod(int step); 58 void ResetAveragingTime(); 59 void ShowStatistics(bool init = false); 60 void SetARange(bool SetDownload, int maxValue); 61 void FillTree(CStatTreeItemBase* statssubtree, wxTreeItemId& StatsGUITree, const NodeIdSet& expandednodes); 62 void GetExpandedNodes(NodeIdSet& nodeset, const wxTreeItemId& root); 63 void Init(); 64 void InitTree(); 65 void InitGraphs(); 66 void ApplyStatsColor(int index); 67 void RebuildStatTreeRemote(const CECTag *); 68 static const wxColour& getColors(unsigned num); GetDLScope()69 COScopeCtrl* GetDLScope() { return pscopeDL; }; GetConnScope()70 COScopeCtrl* GetConnScope() { return pscopeConn; }; 71 72 protected: 73 static wxColour acrStat[15]; 74 COScopeCtrl* pscopeDL,*pscopeUL,*pscopeConn; 75 wxTreeCtrl* stattree; 76 CStatistics* m_stats; 77 }; 78 79 #endif // STATISTICSDLG_H 80 // File_checked_for_headers 81