Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/proxy/src/util/network_stats_widget.h @ 9435

Last change on this file since 9435 was 9435, checked in by bensch, 18 years ago

more about the widget

File size: 2.7 KB
Line 
1/*!
2 * @file network_stats_widget.h
3 * @brief Definition of an EnergyWidget, that displays a bar and a Text
4*/
5
6#ifndef _NETWORK_STATS_WIDGET_H
7#define _NETWORK_STATS_WIDGET_H
8
9#include "glgui_box.h"
10#include "glgui_bar.h"
11#include "glgui_text.h"
12
13#include "network/ip.h"
14
15
16namespace OrxGui
17{
18
19  class HostWidget : public GLGuiBox
20  {
21    public:
22      HostWidget(const std::string& name, const IP& ip);
23      ~HostWidget() {};
24
25      void setName(const std::string& name) { this->_name.setText(name); };
26      void setIP(const IP& ip) { this->_ip.setText(ip.ipString()); this->_storedIP = ip; };
27
28      void setNameWidth(float width) { this->_name.setLineWidth(width); };
29
30      bool operator==(const IP& ip) const { return (this->_storedIP == ip); };
31      bool operator==(const std::string& name) const { return (this->_name == name); };
32
33    protected:
34      virtual void showing();
35      virtual void hiding();
36
37    private:
38      GLGuiText        _name;           //!< The Name of the Proxy server to be displayed.
39      GLGuiText        _ip;             //!< The IP of the proxy server.
40      IP               _storedIP;       //!< The ip to compare.
41  };
42
43
44  class ProxyWidget : public GLGuiBox
45  {
46    public:
47      ProxyWidget(const std::string& proxyName, const IP& ip);
48
49      void addClient(const std::string& name, const IP& ip);
50
51      bool removeClient(const IP& ip);
52      bool removeClient(const std::string& name);
53      bool removeClient(const std::string& name, const IP& ip);
54
55      void setClientNameWidths(float width);
56
57
58    protected:
59      virtual void hiding();
60      virtual void showing();
61
62
63    private:
64      HostWidget                _proxyWidget;
65
66      std::vector<HostWidget*>  _clients;
67      float                     _clientNameWidth;
68  };
69
70
71
72
73  //! A class to display network Statistics.
74  class NetworkStatsWidget : public GLGuiBox
75  {
76    public:
77      static void gui();
78
79    public:
80      NetworkStatsWidget();
81      virtual ~NetworkStatsWidget();
82
83      void setUpstream(unsigned int upstream);
84      void setDownstream(unsigned int upstream);
85      void setIP(const IP& ip);
86
87
88
89      void addProxy(const std::string& name, const IP& proxy);
90
91
92      //void rebuildConnectedHosts(std::vector<hosts> hosts);
93
94      void setMaximum(float max);
95      void setValue(float value);
96
97    protected:
98      virtual void resize();
99      virtual void showing();
100      virtual void hiding();
101
102    private:
103      HostWidget             _thisHost;
104
105      GLGuiText              _upstreamText;
106      GLGuiText              _downstreamText;
107
108      std::vector<HostWidget*>_connectedProxies;
109
110      GLGuiText              _serverIP;
111
112
113      GLGuiText              _valueText;
114      GLGuiBar               _bar;
115  };
116}
117#endif /* _NETWORK_STATS_WIDGET_H */
Note: See TracBrowser for help on using the repository browser.