/*************************************************************************** * GraphStatsTab.h * * Tue Aug 7 20:04:43 2007 * Copyright 2007 Fernando TarĂ­n Morales * icemanf@gmail.com ****************************************************************************/ /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA */ #ifndef _GRAPHSTATSTAB_H #define _GRAPHSTATSTAB_H #include #include class GraphicArea : public Gtk::DrawingArea { public: GraphicArea(); virtual ~GraphicArea(); void setResolutionX(float resX) { resolutionX = resX; }; void setResolutionY(float resY) { resolutionY = resY; }; void setMaxSpeed(float speed); void addValue(float value); bool redraw(); protected: // Override default signal handler virtual bool on_draw(const Cairo::RefPtr& cr); private: int numValues; float maxSpeed, resolutionX, resolutionY, half, total, number; typedef std::list< float > values_t; values_t values; }; class GraphStatsTab{ private: Glib::ustring nameTab; Gtk::VBox graphicsWindow; Gtk::Frame uploadsFrame, downloadsFrame; GraphicArea uG; GraphicArea dG; public: GraphStatsTab(); ~GraphStatsTab(); const Glib::ustring & getNameTab() { return nameTab; }; void setMaxUploadSpeed(float speed) { uG.setMaxSpeed(speed); }; void setMaxDownloadSpeed(float speed) { dG.setMaxSpeed(speed); }; void addCurrentUploadSpeed(float value) { uG.addValue(value); }; void addCurrentDownloadSpeed(float value) { dG.addValue(value); }; void updateGraphics(void) { uG.redraw(); dG.redraw(); }; virtual Gtk::Widget * getTabChild(void) { return & graphicsWindow; }; }; #endif /* _STATISTICSTAB_H */