/* client/infowidget.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_CLIENT_INFOWIDGET_H__ #define __INCLUDED_CLIENT_INFOWIDGET_H__ #include "ui/widget.h" #include "ui/bitmap.h" namespace client { const size_t fps_counter_size = 32; // fps is the average of 32 frames const size_t net_counter_size = 128; // net is the average of 128 frames /// a widget to show developer info class DevInfoWidget : public ui::Widget { public: /// default constructor DevInfoWidget(ui::Widget *parent = 0); protected: /// draw developer info virtual void draw(); }; /// a widget that shows engine statistics class StatsInfoWidget : public ui::Widget { public: /// default constructor StatsInfoWidget(ui::Widget *parent=0); protected: /// draw engine statistics virtual void draw(); private: float fps_counter_time[fps_counter_size]; size_t fps_counter_index; float net_counter_time[net_counter_size]; size_t net_counter_traffic[net_counter_size]; size_t net_counter_index; }; /// a widget to show keypress events class KeyInfoWidget : public ui::Widget { public: // default constructor KeyInfoWidget(ui::Widget *parent=0); protected: // draw keypress events virtual void draw(); }; } #endif // __INCLUDED_CLIENT_INFOWIDGET_H__