/* client/reputationwindow.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_CLIENT_REPUTATIONWINDOW_H__ #define __INCLUDED_CLIENT_REPUTATIONWINDOW_H__ #include "ui/button.h" #include "ui/iconbutton.h" #include "ui/listview.h" #include "ui/scrollpane.h" #include "ui/slider.h" #include "ui/plaintext.h" #include "ui/window.h" namespace client { /** * @brief a player reputation window */ class ReputationWindow : public ui::Window { public: /** * @brief constructor * */ ReputationWindow(ui::Widget *parent = 0); /** * @brief destructor * */ ~ReputationWindow(); /** * @brief show the window * Showing the reputation window will refrish its content * */ virtual void show(); protected: /** * @brief draw event handler * */ virtual void draw(); /** * @brief resize event handler * */ virtual void resize(); /** * @brief emit event handler * */ virtual bool on_emit(ui::Widget *sender, const Event event, void *data); /** * @brief keypress event handler * */ virtual bool on_keypress(const int key, const unsigned int modifier); private: /** * @brief refresh window content * */ void refresh(); void set_info(const core::Info *info = 0); ui::Text reputationwindow_infotext; ui::Label *reputationwindow_titlelabel; ui::Label *reputationwindow_targetlabel; ui::IconButton *reputationwindow_closebutton; ui::ListView *reputationwindow_listview; ui::ScrollPane *reputationwindow_scrollpane; ui::Widget *reputationwindow_pane_right; const core::Info *reputationwindow_info; unsigned long reputationwindow_info_timestamp; unsigned long reputationwindow_reputation_timestamp; }; // class ReputationWindow } // namespace client #endif // __INCLUDED_CLIENT_REPUTATIONWINDOW_H__