mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-25 11:26:37 +00:00 
			
		
		
		
	Improved responsiveness of the inventory window when resizing.
This commit is contained in:
		
							parent
							
								
									df0ee82a3c
								
							
						
					
					
						commit
						05a5cb3ae4
					
				
					 6 changed files with 29 additions and 5 deletions
				
			
		|  | @ -66,6 +66,7 @@ bool OMW::Engine::frameStarted (const Ogre::FrameEvent& evt) | |||
| { | ||||
|     if (!MWBase::Environment::get().getWindowManager()->isGuiMode()) | ||||
|         MWBase::Environment::get().getWorld()->frameStarted(evt.timeSinceLastFrame); | ||||
|     MWBase::Environment::get().getWindowManager ()->frameStarted(evt.timeSinceLastFrame); | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -246,6 +246,8 @@ namespace MWBase | |||
| 
 | ||||
|             virtual void showSoulgemDialog (MWWorld::Ptr item) = 0; | ||||
| 
 | ||||
|             virtual void frameStarted(float dt) = 0; | ||||
| 
 | ||||
|             virtual void changePointer (const std::string& name) = 0; | ||||
| 
 | ||||
|             virtual const Translation::Storage& getTranslationDataStorage() const = 0; | ||||
|  |  | |||
|  | @ -37,6 +37,7 @@ namespace MWGui | |||
|         , mLastXSize(0) | ||||
|         , mLastYSize(0) | ||||
|         , mPreview(MWBase::Environment::get().getWorld ()->getPlayer ().getPlayer ()) | ||||
|         , mPreviewDirty(true) | ||||
|     { | ||||
|         static_cast<MyGUI::Window*>(mMainWidget)->eventWindowChangeCoord += MyGUI::newDelegate(this, &InventoryWindow::onWindowResize); | ||||
| 
 | ||||
|  | @ -268,6 +269,19 @@ namespace MWGui | |||
|         mTrading = true; | ||||
|     } | ||||
| 
 | ||||
|     void InventoryWindow::doRenderUpdate () | ||||
|     { | ||||
|         if (mPreviewDirty) | ||||
|         { | ||||
|             mPreviewDirty = false; | ||||
|             MyGUI::IntSize size = mAvatar->getSize(); | ||||
| 
 | ||||
|             mPreview.update (size.width, size.height); | ||||
|             mAvatarImage->setSize(MyGUI::IntSize(std::max(mAvatar->getSize().width, 512), std::max(mAvatar->getSize().height, 1024))); | ||||
|             mAvatarImage->setImageTexture("CharacterPreview"); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     void InventoryWindow::notifyContentChanged() | ||||
|     { | ||||
|         // update the spell window just in case new enchanted items were added to inventory
 | ||||
|  | @ -282,11 +296,7 @@ namespace MWGui | |||
|         else | ||||
|             mWindowManager.setSelectedWeapon(*weaponSlot, 100); /// \todo track weapon durability
 | ||||
| 
 | ||||
|         MyGUI::IntSize size = mAvatar->getSize(); | ||||
| 
 | ||||
|         mPreview.update (size.width, size.height); | ||||
|         mAvatarImage->setSize(MyGUI::IntSize(std::max(mAvatar->getSize().width, 512), std::max(mAvatar->getSize().height, 1024))); | ||||
|         mAvatarImage->setImageTexture("CharacterPreview"); | ||||
|         mPreviewDirty = true; | ||||
| 
 | ||||
|         mArmorRating->setCaptionWithReplacing ("#{sArmor}: " | ||||
|             + boost::lexical_cast<std::string>(static_cast<int>(MWWorld::Class::get(mPtr).getArmorRating(mPtr)))); | ||||
|  |  | |||
|  | @ -16,6 +16,8 @@ namespace MWGui | |||
| 
 | ||||
|             virtual void open(); | ||||
| 
 | ||||
|             void doRenderUpdate(); | ||||
| 
 | ||||
|             /// start trading, disables item drag&drop
 | ||||
|             void startTrade(); | ||||
| 
 | ||||
|  | @ -34,6 +36,8 @@ namespace MWGui | |||
|             } | ||||
| 
 | ||||
|         protected: | ||||
|             bool mPreviewDirty; | ||||
| 
 | ||||
|             MyGUI::Widget* mAvatar; | ||||
|             MyGUI::ImageBox* mAvatarImage; | ||||
|             MyGUI::TextBox* mArmorRating; | ||||
|  |  | |||
|  | @ -1190,3 +1190,8 @@ void WindowManager::showSoulgemDialog(MWWorld::Ptr item) | |||
| { | ||||
|     mSoulgemDialog->show(item); | ||||
| } | ||||
| 
 | ||||
| void WindowManager::frameStarted (float dt) | ||||
| { | ||||
|     mInventoryWindow->doRenderUpdate (); | ||||
| } | ||||
|  |  | |||
|  | @ -238,6 +238,8 @@ namespace MWGui | |||
|     virtual void startRepair(MWWorld::Ptr actor); | ||||
|     virtual void startRepairItem(MWWorld::Ptr item); | ||||
| 
 | ||||
|     virtual void frameStarted(float dt); | ||||
| 
 | ||||
|     virtual void showSoulgemDialog (MWWorld::Ptr item); | ||||
| 
 | ||||
|     virtual void changePointer (const std::string& name); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue