OpenMW
|
00001 #ifndef MWGUI_QUICKKEYS_H 00002 #define MWGUI_QUICKKEYS_H 00003 00004 #include "../mwworld/ptr.hpp" 00005 00006 #include "windowbase.hpp" 00007 00008 namespace MWGui 00009 { 00010 00011 class QuickKeysMenuAssign; 00012 class ItemSelectionDialog; 00013 class MagicSelectionDialog; 00014 00015 class QuickKeysMenu : public WindowBase 00016 { 00017 public: 00018 QuickKeysMenu(); 00019 ~QuickKeysMenu(); 00020 00021 00022 void onItemButtonClicked(MyGUI::Widget* sender); 00023 void onMagicButtonClicked(MyGUI::Widget* sender); 00024 void onUnassignButtonClicked(MyGUI::Widget* sender); 00025 void onCancelButtonClicked(MyGUI::Widget* sender); 00026 00027 void onAssignItem (MWWorld::Ptr item); 00028 void onAssignItemCancel (); 00029 void onAssignMagicItem (MWWorld::Ptr item); 00030 void onAssignMagic (const std::string& spellId); 00031 void onAssignMagicCancel (); 00032 00033 void activateQuickKey(int index); 00034 00035 enum QuickKeyType 00036 { 00037 Type_Item, 00038 Type_Magic, 00039 Type_MagicItem, 00040 Type_Unassigned 00041 }; 00042 00043 00044 private: 00045 MyGUI::EditBox* mInstructionLabel; 00046 MyGUI::Button* mOkButton; 00047 00048 std::vector<MyGUI::Button*> mQuickKeyButtons; 00049 00050 QuickKeysMenuAssign* mAssignDialog; 00051 ItemSelectionDialog* mItemSelectionDialog; 00052 MagicSelectionDialog* mMagicSelectionDialog; 00053 00054 int mSelectedIndex; 00055 00056 00057 void onQuickKeyButtonClicked(MyGUI::Widget* sender); 00058 void onOkButtonClicked(MyGUI::Widget* sender); 00059 00060 void unassign(MyGUI::Widget* key, int index); 00061 }; 00062 00063 class QuickKeysMenuAssign : public WindowModal 00064 { 00065 public: 00066 QuickKeysMenuAssign(QuickKeysMenu* parent); 00067 00068 private: 00069 MyGUI::TextBox* mLabel; 00070 MyGUI::Button* mItemButton; 00071 MyGUI::Button* mMagicButton; 00072 MyGUI::Button* mUnassignButton; 00073 MyGUI::Button* mCancelButton; 00074 00075 QuickKeysMenu* mParent; 00076 }; 00077 00078 class MagicSelectionDialog : public WindowModal 00079 { 00080 public: 00081 MagicSelectionDialog(QuickKeysMenu* parent); 00082 00083 virtual void open(); 00084 00085 private: 00086 MyGUI::Button* mCancelButton; 00087 MyGUI::ScrollView* mMagicList; 00088 00089 int mWidth; 00090 int mHeight; 00091 00092 QuickKeysMenu* mParent; 00093 00094 void onCancelButtonClicked (MyGUI::Widget* sender); 00095 void onMouseWheel(MyGUI::Widget* _sender, int _rel); 00096 void onEnchantedItemSelected(MyGUI::Widget* _sender); 00097 void onSpellSelected(MyGUI::Widget* _sender); 00098 int estimateHeight(int numSpells) const; 00099 00100 00101 void addGroup(const std::string& label, const std::string& label2); 00102 }; 00103 } 00104 00105 00106 #endif