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 34typedef std::set<uint32_t> NodeIdSet; 35 36class COScopeCtrl; 37class CStatistics; 38class CStatTreeItemBase; 39class CECTag; 40class wxTreeCtrl; 41class wxTreeItemId; 42//struct UpdateInfo; 43typedef struct UpdateInfo GraphUpdateInfo; 44 45// CStatisticsDlg panel 46 47class CStatisticsDlg : public wxPanel 48{ 49 friend class PrefsUnifiedDlg; 50 friend class CPreferences; 51 52public: 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); 69 COScopeCtrl* GetDLScope() { return pscopeDL; }; 70 COScopeCtrl* GetConnScope() { return pscopeConn; }; 71 72protected: 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