From 4196b0d341ec9132490eca6f9a116b80042ee2b1 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Thu, 1 Dec 2011 11:25:55 +0200 Subject: [PATCH] Inventory move-to-slot hilighting --- src/guiInventoryMenu.cpp | 20 +++++++++++++++----- src/guiInventoryMenu.h | 1 + 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/guiInventoryMenu.cpp b/src/guiInventoryMenu.cpp index 9b73af3..47393e8 100644 --- a/src/guiInventoryMenu.cpp +++ b/src/guiInventoryMenu.cpp @@ -265,9 +265,17 @@ void GUIInventoryMenu::drawList(const ListDrawSpec &s, ITextureSource *tsrc) rect.LowerRightCorner + v2s32(1,1)*border), &AbsoluteClippingRect); } - - video::SColor bgcolor(255,128,128,128); - driver->draw2DRectangle(bgcolor, rect, &AbsoluteClippingRect); + + if(rect.isPointInside(m_pointer) && m_selected_item) + { + video::SColor bgcolor(255,192,192,192); + driver->draw2DRectangle(bgcolor, rect, &AbsoluteClippingRect); + } + else + { + video::SColor bgcolor(255,128,128,128); + driver->draw2DRectangle(bgcolor, rect, &AbsoluteClippingRect); + } if(item) { @@ -319,8 +327,10 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event) if(event.EventType==EET_MOUSE_INPUT_EVENT) { char amount = -1; - - if(event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) + + if(event.MouseInput.Event==EMIE_MOUSE_MOVED) + m_pointer = v2s32(event.MouseInput.X, event.MouseInput.Y); + else if(event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) amount = 0; else if(event.MouseInput.Event == EMIE_RMOUSE_PRESSED_DOWN) amount = 1; diff --git a/src/guiInventoryMenu.h b/src/guiInventoryMenu.h index 55d18a8..c8fe0d0 100644 --- a/src/guiInventoryMenu.h +++ b/src/guiInventoryMenu.h @@ -159,6 +159,7 @@ protected: core::array m_draw_spec; ItemSpec *m_selected_item; + v2s32 m_pointer; }; #endif