mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-25 11:26:37 +00:00 
			
		
		
		
	delete all non-interactive MessageBox'es when creating an interactive MessageBox
This commit is contained in:
		
							parent
							
								
									6dc35247da
								
							
						
					
					
						commit
						94e010b790
					
				
					 2 changed files with 14 additions and 12 deletions
				
			
		|  | @ -12,6 +12,8 @@ void MessageBoxManager::createMessageBox (const std::string& message) | ||||||
|     std::cout << "create non-interactive message box" << std::endl; |     std::cout << "create non-interactive message box" << std::endl; | ||||||
|     MessageBox *box = new MessageBox(*this, message); |     MessageBox *box = new MessageBox(*this, message); | ||||||
|      |      | ||||||
|  |     // create a timer and delete when ready.
 | ||||||
|  |      | ||||||
|     mMessageBoxes.insert(mMessageBoxes.begin(), box); |     mMessageBoxes.insert(mMessageBoxes.begin(), box); | ||||||
|     int height = box->getHeight(); |     int height = box->getHeight(); | ||||||
|     std::vector<MessageBox*>::const_iterator it; |     std::vector<MessageBox*>::const_iterator it; | ||||||
|  | @ -19,7 +21,7 @@ void MessageBoxManager::createMessageBox (const std::string& message) | ||||||
|     int i = 0; |     int i = 0; | ||||||
|     for(it = mMessageBoxes.begin()+1; it != mMessageBoxes.end(); ++it) { |     for(it = mMessageBoxes.begin()+1; it != mMessageBoxes.end(); ++it) { | ||||||
|         if(i == 2) { |         if(i == 2) { | ||||||
|             (*it)->del(); |             delete (*it); | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         else { |         else { | ||||||
|  | @ -34,6 +36,13 @@ void MessageBoxManager::createInteractiveMessageBox (const std::string& message, | ||||||
| { | { | ||||||
|     std::cout << "create interactive message box" << std::endl; |     std::cout << "create interactive message box" << std::endl; | ||||||
|     std::copy (buttons.begin(), buttons.end(), std::ostream_iterator<std::string> (std::cout, ", ")); |     std::copy (buttons.begin(), buttons.end(), std::ostream_iterator<std::string> (std::cout, ", ")); | ||||||
|  |      | ||||||
|  |     // delete all MessageBox'es
 | ||||||
|  |     std::vector<MessageBox*>::const_iterator it; | ||||||
|  |     for(it = mMessageBoxes.begin(); it != mMessageBoxes.end(); it++) { | ||||||
|  |         delete (*it); | ||||||
|  |     } | ||||||
|  |     mMessageBoxes.clear(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| MessageBox::MessageBox(MessageBoxManager& parMessageBoxManager, const std::string& message) | MessageBox::MessageBox(MessageBoxManager& parMessageBoxManager, const std::string& message) | ||||||
|  | @ -43,6 +52,7 @@ MessageBox::MessageBox(MessageBoxManager& parMessageBoxManager, const std::strin | ||||||
| { | { | ||||||
|     mFixedWidth = 300; |     mFixedWidth = 300; | ||||||
|     mBottomPadding = 20; |     mBottomPadding = 20; | ||||||
|  |     mNextBoxPadding = 20; | ||||||
|      |      | ||||||
|     getWidget(mMessageWidget, "message"); |     getWidget(mMessageWidget, "message"); | ||||||
|      |      | ||||||
|  | @ -50,7 +60,7 @@ MessageBox::MessageBox(MessageBoxManager& parMessageBoxManager, const std::strin | ||||||
|     mMessageWidget->addText(cMessage); |     mMessageWidget->addText(cMessage); | ||||||
|      |      | ||||||
|     MyGUI::IntSize size; |     MyGUI::IntSize size; | ||||||
|     size.width = mFixedWidth; // fiexd width
 |     size.width = mFixedWidth; | ||||||
|     size.height = 100; // dummy
 |     size.height = 100; // dummy
 | ||||||
|      |      | ||||||
|     MyGUI::IntCoord coord; |     MyGUI::IntCoord coord; | ||||||
|  | @ -85,15 +95,7 @@ void MessageBox::update (int height) | ||||||
|     mMainWidget->setVisible(true); |     mMainWidget->setVisible(true); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MessageBox::del () |  | ||||||
| { |  | ||||||
|     // i dont know how to destroy, but therefor i will just set height and width to zero
 |  | ||||||
|     MyGUI::IntSize size; |  | ||||||
|     size.width = size.height = 0; |  | ||||||
|     mMainWidget->setSize(size); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int MessageBox::getHeight () | int MessageBox::getHeight () | ||||||
| { | { | ||||||
|     return mHeight+20; // 20 is the padding between this and the next MessageBox
 |     return mHeight+mNextBoxPadding; // 20 is the padding between this and the next MessageBox
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -33,7 +33,6 @@ namespace MWGui | ||||||
|             void setMessage (const std::string& message); |             void setMessage (const std::string& message); | ||||||
|             int getHeight (); |             int getHeight (); | ||||||
|             void update (int height); |             void update (int height); | ||||||
|             void del (); |  | ||||||
|              |              | ||||||
|         protected: |         protected: | ||||||
|             MessageBoxManager& mMessageBoxManager; |             MessageBoxManager& mMessageBoxManager; | ||||||
|  | @ -42,6 +41,7 @@ namespace MWGui | ||||||
|             MyGUI::EditPtr mMessageWidget; |             MyGUI::EditPtr mMessageWidget; | ||||||
|             int mFixedWidth; |             int mFixedWidth; | ||||||
|             int mBottomPadding; |             int mBottomPadding; | ||||||
|  |             int mNextBoxPadding; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue