1 #ifndef MWGUI_BOOKWINDOW_H 2 #define MWGUI_BOOKWINDOW_H 3 4 #include "windowbase.hpp" 5 6 #include "../mwworld/ptr.hpp" 7 8 #include <components/widgets/imagebutton.hpp> 9 10 namespace MWGui 11 { 12 class BookWindow : public BookWindowBase 13 { 14 public: 15 BookWindow(); 16 17 void setPtr(const MWWorld::Ptr& book) override; 18 void setInventoryAllowed(bool allowed); 19 onResChange(int,int)20 void onResChange(int, int) override { center(); } 21 22 protected: 23 void onNextPageButtonClicked (MyGUI::Widget* sender); 24 void onPrevPageButtonClicked (MyGUI::Widget* sender); 25 void onCloseButtonClicked (MyGUI::Widget* sender); 26 void onTakeButtonClicked (MyGUI::Widget* sender); 27 void onMouseWheel(MyGUI::Widget* _sender, int _rel); 28 void setTakeButtonShow(bool show); 29 30 void onKeyButtonPressed(MyGUI::Widget* sender, MyGUI::KeyCode key, MyGUI::Char character); 31 32 void nextPage(); 33 void prevPage(); 34 35 void updatePages(); 36 void clearPages(); 37 38 private: 39 typedef std::pair<int, int> Page; 40 typedef std::vector<Page> Pages; 41 42 Gui::ImageButton* mCloseButton; 43 Gui::ImageButton* mTakeButton; 44 Gui::ImageButton* mNextPageButton; 45 Gui::ImageButton* mPrevPageButton; 46 47 MyGUI::TextBox* mLeftPageNumber; 48 MyGUI::TextBox* mRightPageNumber; 49 MyGUI::Widget* mLeftPage; 50 MyGUI::Widget* mRightPage; 51 52 unsigned int mCurrentPage; // 0 is first page 53 Pages mPages; 54 55 MWWorld::Ptr mBook; 56 57 bool mTakeButtonShow; 58 bool mTakeButtonAllowed; 59 }; 60 61 } 62 63 #endif 64