mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 07:56:40 +00:00 
			
		
		
		
	Permit to force hiding GUI windows
This commit is contained in:
		
							parent
							
								
									df9d681a63
								
							
						
					
					
						commit
						d054366460
					
				
					 3 changed files with 22 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -105,6 +105,9 @@ namespace MWBase
 | 
			
		|||
 | 
			
		||||
            virtual void toggleVisible (MWGui::GuiWindow wnd) = 0;
 | 
			
		||||
 | 
			
		||||
            virtual void forceHide(MWGui::GuiWindow wnd) = 0;
 | 
			
		||||
            virtual void unsetForceHide(MWGui::GuiWindow wnd) = 0;
 | 
			
		||||
 | 
			
		||||
            /// Disallow all inventory mode windows
 | 
			
		||||
            virtual void disallowAll() = 0;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,6 +105,7 @@ namespace MWGui
 | 
			
		|||
      , mGui(NULL)
 | 
			
		||||
      , mGarbageDialogs()
 | 
			
		||||
      , mShown(GW_ALL)
 | 
			
		||||
      , mForceHidden(GW_None)
 | 
			
		||||
      , mAllowed(GW_ALL)
 | 
			
		||||
      , mRestAllowed(true)
 | 
			
		||||
      , mShowFPSLevel(fpsLevel)
 | 
			
		||||
| 
						 | 
				
			
			@ -435,7 +436,7 @@ namespace MWGui
 | 
			
		|||
                // This is controlled both by what windows the
 | 
			
		||||
                // user has opened/closed (the 'shown' variable) and by what
 | 
			
		||||
                // windows we are allowed to show (the 'allowed' var.)
 | 
			
		||||
                int eff = mShown & mAllowed;
 | 
			
		||||
                int eff = mShown & mAllowed & ~mForceHidden;
 | 
			
		||||
 | 
			
		||||
                // Show the windows we want
 | 
			
		||||
                mMap            ->setVisible(eff & GW_Map);
 | 
			
		||||
| 
						 | 
				
			
			@ -1117,7 +1118,19 @@ namespace MWGui
 | 
			
		|||
 | 
			
		||||
    void WindowManager::toggleVisible (GuiWindow wnd)
 | 
			
		||||
    {
 | 
			
		||||
        mShown = (mShown & wnd) ? (GuiWindow) (mShown & ~wnd) : (GuiWindow) (mShown | wnd);
 | 
			
		||||
        mShown = (GuiWindow)(mShown ^ wnd);
 | 
			
		||||
        updateVisible();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void WindowManager::forceHide(GuiWindow wnd)
 | 
			
		||||
    {
 | 
			
		||||
        mForceHidden = (GuiWindow)(mForceHidden | wnd);
 | 
			
		||||
        updateVisible();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void WindowManager::unsetForceHide(GuiWindow wnd)
 | 
			
		||||
    {
 | 
			
		||||
        mForceHidden = (GuiWindow)(mForceHidden & ~wnd);
 | 
			
		||||
        updateVisible();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -115,6 +115,9 @@ namespace MWGui
 | 
			
		|||
 | 
			
		||||
    virtual void toggleVisible(GuiWindow wnd);
 | 
			
		||||
 | 
			
		||||
    virtual void forceHide(MWGui::GuiWindow wnd);
 | 
			
		||||
    virtual void unsetForceHide(MWGui::GuiWindow wnd);
 | 
			
		||||
 | 
			
		||||
    // Disallow all inventory mode windows
 | 
			
		||||
    virtual void disallowAll();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -334,6 +337,7 @@ namespace MWGui
 | 
			
		|||
    void cleanupGarbage();
 | 
			
		||||
 | 
			
		||||
    GuiWindow mShown; // Currently shown windows in inventory mode
 | 
			
		||||
    GuiWindow mForceHidden; // Hidden windows (overrides mShown)
 | 
			
		||||
 | 
			
		||||
    /* Currently ALLOWED windows in inventory mode. This is used at
 | 
			
		||||
       the start of the game, when windows are enabled one by one
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue