/* client/trademenu.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_TRADEMENU_H__ #define __INCLUDED_CLIENT_TRADEMENU_H__ #include "core/info.h" #include "ui/label.h" #include "ui/iconbutton.h" #include "ui/listitem.h" #include "ui/modelview.h" #include "ui/plaintext.h" #include "ui/slider.h" #include "ui/scrollpane.h" #include "ui/window.h" #include "client/inventorylistview.h" namespace client { /** * @brief a trade menu window */ class TradeMenu : public ui::Window { public: /** * @brief constructor */ TradeMenu(ui::Widget *parent, const char * label = 0); /** * @brief destructor */ ~TradeMenu(); /** * @brief set the item type to trade * */ void set_itemtype(core::InfoType *item_type); protected: /** * @brief resize event handler * */ virtual void resize(); /** * @brief draw event handler * */ virtual void draw(); /** * @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: void set_item(ui::ListItem *item); ui::Text menu_infotext; ui::Window *menu_tradewindow; ui::Label *menu_titlelabel; ui::IconButton *menu_closebutton; ui::Widget *menu_pane_center; ui::ModelView *menu_modelview; ui::Label *menu_modellabel; ui::ScrollPane *menu_scrollpane; ui::Slider *menu_slider; ui::Label *menu_msgtext; ui::Button *menu_buybutton; ui::Label *menu_inventorytext; InventoryListView *menu_inventorylistview; InventoryListView *menu_traderlistview; ui::Label *menu_tradertext; core::InfoType *menu_itemtype; ui::ListItem *menu_listitem; }; } #endif // __INCLUDED_CLIENT_TRADEMENU_H__