From 8138d0e61f633546263df94473e91d500ada9c0e Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 20 Sep 2011 22:19:45 +0300 Subject: Auto hide filter in invetory if window size too small. --- src/gui/inventorywindow.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/gui/inventorywindow.h') diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h index c32fd8905..5592b9449 100644 --- a/src/gui/inventorywindow.h +++ b/src/gui/inventorywindow.h @@ -45,6 +45,7 @@ class DropDown; class Item; class ItemContainer; class InventoryFilter; +class LayoutCell; class ProgressBar; class SortListModel; //class TextBox; @@ -133,6 +134,8 @@ class InventoryWindow : public Window, bool isInputFocused() const; + void widgetResized(const gcn::Event &event); + static bool isAnyInputFocused(); private: @@ -154,15 +157,20 @@ class InventoryWindow : public Window, *mSplitButton, *mOutfitButton, *mShopButton, *mStoreButton, *mRetrieveButton, *mCloseButton; - gcn::Label *mWeightLabel, *mSlotsLabel, *mFilterLabel, *mSorterLabel; + gcn::Label *mWeightLabel, *mSlotsLabel, *mFilterLabel; ProgressBar *mWeightBar, *mSlotsBar; InventoryFilter *mFilter; DropDown *mSortDropDown; SortListModel *mSortModel; TextField *mNameFilter; + LayoutCell *mSortDropDownCell; + LayoutCell *mNameFilterCell; + LayoutCell *mFilterCell; + LayoutCell *mSlotsBarCell; bool mSplit; + bool mCompactMode; }; extern InventoryWindow *inventoryWindow; -- cgit v1.2.3-60-g2f50 From d9eab6bbcd939f1238283ac9bbe003e06de4169c Mon Sep 17 00:00:00 2001 From: Erik Schilling Date: Sun, 18 Sep 2011 02:39:48 +0800 Subject: Fixed item popup still visible after closing inventory window. Reviewed-by: Bertram. Conflicts: src/gui/widgets/itemcontainer.cpp --- src/gui/inventorywindow.cpp | 6 ++++++ src/gui/inventorywindow.h | 5 +++++ src/gui/widgets/itemcontainer.cpp | 5 +++++ src/gui/widgets/itemcontainer.h | 2 ++ src/gui/widgets/window.h | 2 +- 5 files changed, 19 insertions(+), 1 deletion(-) (limited to 'src/gui/inventorywindow.h') diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index 35165a16a..d6377e4dd 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -375,6 +375,12 @@ Item *InventoryWindow::getSelectedItem() const return mItems->getSelectedItem(); } +void InventoryWindow::widgetHidden(const gcn::Event &event) +{ + Window::widgetHidden(event); + mItems->hidePopup(); +} + void InventoryWindow::mouseClicked(gcn::MouseEvent &event) { Window::mouseClicked(event); diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h index 5592b9449..959f65d7c 100644 --- a/src/gui/inventorywindow.h +++ b/src/gui/inventorywindow.h @@ -84,6 +84,11 @@ class InventoryWindow : public Window, */ Item* getSelectedItem() const; + /** + * Handles closing of the window + */ + virtual void widgetHidden(const gcn::Event &event); + /** * Handles the mouse clicks. */ diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index 2cc80ee8b..de8b3c277 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -327,6 +327,11 @@ void ItemContainer::distributeValueChangedEvent() } } +void ItemContainer::hidePopup() +{ + mItemPopup->setVisible(false); +} + void ItemContainer::keyPressed(gcn::KeyEvent &event A_UNUSED) { /*switch (event.getKey().getValue()) diff --git a/src/gui/widgets/itemcontainer.h b/src/gui/widgets/itemcontainer.h index 845bfb3a9..e4188f54b 100644 --- a/src/gui/widgets/itemcontainer.h +++ b/src/gui/widgets/itemcontainer.h @@ -73,6 +73,8 @@ class ItemContainer : public gcn::Widget, */ virtual ~ItemContainer(); + void hidePopup(); + /** * Necessary for checking how full the inventory is. */ diff --git a/src/gui/widgets/window.h b/src/gui/widgets/window.h index cc7c6e6a1..ffc27ab10 100644 --- a/src/gui/widgets/window.h +++ b/src/gui/widgets/window.h @@ -120,7 +120,7 @@ class Window : public gcn::Window, gcn::WidgetListener /** * Called whenever the widget is hidden. */ - virtual void widgetHidden(const gcn::Event& event); + virtual void widgetHidden(const gcn::Event &event); /** * Sets whether or not the window has a close button. -- cgit v1.2.3-60-g2f50 From 739fd277e28120cd643ac443a013b482698427ba Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 28 Sep 2011 23:00:20 +0300 Subject: Hide popups in different hidden windows. --- src/gui/inventorywindow.h | 2 +- src/gui/shortcutwindow.cpp | 19 +++++++++++++++++++ src/gui/shortcutwindow.h | 2 ++ src/gui/widgets/dropshortcutcontainer.cpp | 9 ++++++++- src/gui/widgets/dropshortcutcontainer.h | 2 ++ src/gui/widgets/emoteshortcutcontainer.cpp | 8 +++++++- src/gui/widgets/emoteshortcutcontainer.h | 8 ++++++++ src/gui/widgets/itemshortcutcontainer.cpp | 14 ++++++++++++-- src/gui/widgets/itemshortcutcontainer.h | 2 ++ src/gui/widgets/spellshortcutcontainer.cpp | 9 ++++++++- src/gui/widgets/spellshortcutcontainer.h | 2 ++ 11 files changed, 71 insertions(+), 6 deletions(-) (limited to 'src/gui/inventorywindow.h') diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h index 959f65d7c..9dadeb5a8 100644 --- a/src/gui/inventorywindow.h +++ b/src/gui/inventorywindow.h @@ -87,7 +87,7 @@ class InventoryWindow : public Window, /** * Handles closing of the window */ - virtual void widgetHidden(const gcn::Event &event); + void widgetHidden(const gcn::Event &event); /** * Handles the mouse clicks. diff --git a/src/gui/shortcutwindow.cpp b/src/gui/shortcutwindow.cpp index df21488a5..6d48da197 100644 --- a/src/gui/shortcutwindow.cpp +++ b/src/gui/shortcutwindow.cpp @@ -159,3 +159,22 @@ int ShortcutWindow::getTabIndex() return 0; return mTabs->getSelectedTabIndex(); } + +void ShortcutWindow::widgetHidden(const gcn::Event &event) +{ + if (mItems) + mItems->widgetHidden(event); + if (mTabs) + { + ScrollArea *scroll = static_cast( + mTabs->getCurrentWidget()); + if (scroll) + { + ShortcutContainer *content = static_cast( + scroll->getContent()); + + if (content) + content->widgetHidden(event); + } + } +} diff --git a/src/gui/shortcutwindow.h b/src/gui/shortcutwindow.h index 1c91835e8..8627a5dce 100644 --- a/src/gui/shortcutwindow.h +++ b/src/gui/shortcutwindow.h @@ -56,6 +56,8 @@ class ShortcutWindow : public Window int getTabIndex(); + void widgetHidden(const gcn::Event &event); + private: ShortcutWindow(); ShortcutContainer *mItems; diff --git a/src/gui/widgets/dropshortcutcontainer.cpp b/src/gui/widgets/dropshortcutcontainer.cpp index b628cf2d4..1fa272448 100644 --- a/src/gui/widgets/dropshortcutcontainer.cpp +++ b/src/gui/widgets/dropshortcutcontainer.cpp @@ -306,5 +306,12 @@ void DropShortcutContainer::mouseMoved(gcn::MouseEvent &event) // Hide ItemTooltip void DropShortcutContainer::mouseExited(gcn::MouseEvent &event A_UNUSED) { - mItemPopup->setVisible(false); + if (mItemPopup) + mItemPopup->setVisible(false); +} + +void DropShortcutContainer::widgetHidden(const gcn::Event &event A_UNUSED) +{ + if (mItemPopup) + mItemPopup->setVisible(false); } diff --git a/src/gui/widgets/dropshortcutcontainer.h b/src/gui/widgets/dropshortcutcontainer.h index b2d63a7dd..348f48567 100644 --- a/src/gui/widgets/dropshortcutcontainer.h +++ b/src/gui/widgets/dropshortcutcontainer.h @@ -76,6 +76,8 @@ class DropShortcutContainer : public ShortcutContainer */ void mouseReleased(gcn::MouseEvent &event); + void widgetHidden(const gcn::Event &event); + private: void mouseExited(gcn::MouseEvent &event); void mouseMoved(gcn::MouseEvent &event); diff --git a/src/gui/widgets/emoteshortcutcontainer.cpp b/src/gui/widgets/emoteshortcutcontainer.cpp index 5aced193f..cc9e8badf 100644 --- a/src/gui/widgets/emoteshortcutcontainer.cpp +++ b/src/gui/widgets/emoteshortcutcontainer.cpp @@ -252,4 +252,10 @@ void EmoteShortcutContainer::mouseExited(gcn::MouseEvent &event A_UNUSED) { if (mEmotePopup) mEmotePopup->setVisible(false); -} \ No newline at end of file +} + +void EmoteShortcutContainer::widgetHidden(const gcn::Event &event A_UNUSED) +{ + if (mEmotePopup) + mEmotePopup->setVisible(false); +} diff --git a/src/gui/widgets/emoteshortcutcontainer.h b/src/gui/widgets/emoteshortcutcontainer.h index b1cc866d2..06c009f0b 100644 --- a/src/gui/widgets/emoteshortcutcontainer.h +++ b/src/gui/widgets/emoteshortcutcontainer.h @@ -27,6 +27,12 @@ #include +#ifdef __GNUC__ +#define A_UNUSED __attribute__ ((unused)) +#else +#define A_UNUSED +#endif + class AnimatedSprite; class Image; class TextPopup; @@ -73,6 +79,8 @@ class EmoteShortcutContainer : public ShortcutContainer void mouseExited(gcn::MouseEvent &event); + void widgetHidden(const gcn::Event &event); + private: std::vector mEmoteImg; diff --git a/src/gui/widgets/itemshortcutcontainer.cpp b/src/gui/widgets/itemshortcutcontainer.cpp index 79685fe45..560045a29 100644 --- a/src/gui/widgets/itemshortcutcontainer.cpp +++ b/src/gui/widgets/itemshortcutcontainer.cpp @@ -378,6 +378,16 @@ void ItemShortcutContainer::mouseMoved(gcn::MouseEvent &event) // Hide ItemTooltip void ItemShortcutContainer::mouseExited(gcn::MouseEvent &event A_UNUSED) { - mItemPopup->setVisible(false); - mSpellPopup->setVisible(false); + if (mItemPopup) + mItemPopup->setVisible(false); + if (mSpellPopup) + mSpellPopup->setVisible(false); +} + +void ItemShortcutContainer::widgetHidden(const gcn::Event &event A_UNUSED) +{ + if (mItemPopup) + mItemPopup->setVisible(false); + if (mSpellPopup) + mSpellPopup->setVisible(false); } diff --git a/src/gui/widgets/itemshortcutcontainer.h b/src/gui/widgets/itemshortcutcontainer.h index e6b32c6f8..473cef350 100644 --- a/src/gui/widgets/itemshortcutcontainer.h +++ b/src/gui/widgets/itemshortcutcontainer.h @@ -78,6 +78,8 @@ class ItemShortcutContainer : public ShortcutContainer */ void mouseReleased(gcn::MouseEvent &event); + void widgetHidden(const gcn::Event &event); + private: void mouseExited(gcn::MouseEvent &event); void mouseMoved(gcn::MouseEvent &event); diff --git a/src/gui/widgets/spellshortcutcontainer.cpp b/src/gui/widgets/spellshortcutcontainer.cpp index 8abe727b5..6317dd56f 100644 --- a/src/gui/widgets/spellshortcutcontainer.cpp +++ b/src/gui/widgets/spellshortcutcontainer.cpp @@ -290,5 +290,12 @@ void SpellShortcutContainer::mouseMoved(gcn::MouseEvent &event) // Hide SpellTooltip void SpellShortcutContainer::mouseExited(gcn::MouseEvent &event A_UNUSED) { - mSpellPopup->setVisible(false); + if (mSpellPopup) + mSpellPopup->setVisible(false); +} + +void SpellShortcutContainer::widgetHidden(const gcn::Event &event A_UNUSED) +{ + if (mSpellPopup) + mSpellPopup->setVisible(false); } diff --git a/src/gui/widgets/spellshortcutcontainer.h b/src/gui/widgets/spellshortcutcontainer.h index 2155e2a8b..88b00338a 100644 --- a/src/gui/widgets/spellshortcutcontainer.h +++ b/src/gui/widgets/spellshortcutcontainer.h @@ -77,6 +77,8 @@ class SpellShortcutContainer : public ShortcutContainer */ void mouseReleased(gcn::MouseEvent &event); + void widgetHidden(const gcn::Event &event); + private: void mouseExited(gcn::MouseEvent &event); void mouseMoved(gcn::MouseEvent &event); -- cgit v1.2.3-60-g2f50