mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-21 11:53:51 +00:00
Bugfix #732 part 1
This commit is contained in:
parent
28ef4d97da
commit
57f22c77c0
7 changed files with 36 additions and 4 deletions
|
@ -201,6 +201,8 @@ namespace MWBase
|
||||||
///< Hides dialog and schedules dialog to be deleted.
|
///< Hides dialog and schedules dialog to be deleted.
|
||||||
|
|
||||||
virtual void messageBox (const std::string& message, const std::vector<std::string>& buttons = std::vector<std::string>()) = 0;
|
virtual void messageBox (const std::string& message, const std::vector<std::string>& buttons = std::vector<std::string>()) = 0;
|
||||||
|
virtual void staticMessageBox(const std::string& message) = 0;
|
||||||
|
virtual void removeStaticMessageBox() = 0;
|
||||||
|
|
||||||
virtual void enterPressed () = 0;
|
virtual void enterPressed () = 0;
|
||||||
virtual int readPressedButton() = 0;
|
virtual int readPressedButton() = 0;
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace MWGui
|
||||||
// defines
|
// defines
|
||||||
mMessageBoxSpeed = 0.1;
|
mMessageBoxSpeed = 0.1;
|
||||||
mInterMessageBoxe = NULL;
|
mInterMessageBoxe = NULL;
|
||||||
|
mStaticMessageBox = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageBoxManager::onFrame (float frameDuration)
|
void MessageBoxManager::onFrame (float frameDuration)
|
||||||
|
@ -68,10 +69,13 @@ namespace MWGui
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageBoxManager::createMessageBox (const std::string& message)
|
void MessageBoxManager::createMessageBox (const std::string& message, bool stat)
|
||||||
{
|
{
|
||||||
MessageBox *box = new MessageBox(*this, message);
|
MessageBox *box = new MessageBox(*this, message);
|
||||||
|
|
||||||
|
if(stat)
|
||||||
|
mStaticMessageBox = box;
|
||||||
|
else
|
||||||
removeMessageBox(message.length()*mMessageBoxSpeed, box);
|
removeMessageBox(message.length()*mMessageBoxSpeed, box);
|
||||||
|
|
||||||
mMessageBoxes.push_back(box);
|
mMessageBoxes.push_back(box);
|
||||||
|
@ -90,6 +94,12 @@ namespace MWGui
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MessageBoxManager::removeStaticMessageBox ()
|
||||||
|
{
|
||||||
|
removeMessageBox(mStaticMessageBox);
|
||||||
|
mStaticMessageBox = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
bool MessageBoxManager::createInteractiveMessageBox (const std::string& message, const std::vector<std::string>& buttons)
|
bool MessageBoxManager::createInteractiveMessageBox (const std::string& message, const std::vector<std::string>& buttons)
|
||||||
{
|
{
|
||||||
if(mInterMessageBoxe != NULL) {
|
if(mInterMessageBoxe != NULL) {
|
||||||
|
|
|
@ -31,7 +31,8 @@ namespace MWGui
|
||||||
public:
|
public:
|
||||||
MessageBoxManager ();
|
MessageBoxManager ();
|
||||||
void onFrame (float frameDuration);
|
void onFrame (float frameDuration);
|
||||||
void createMessageBox (const std::string& message);
|
void createMessageBox (const std::string& message, bool stat = false);
|
||||||
|
void removeStaticMessageBox ();
|
||||||
bool createInteractiveMessageBox (const std::string& message, const std::vector<std::string>& buttons);
|
bool createInteractiveMessageBox (const std::string& message, const std::vector<std::string>& buttons);
|
||||||
bool isInteractiveMessageBox ();
|
bool isInteractiveMessageBox ();
|
||||||
|
|
||||||
|
@ -52,6 +53,7 @@ namespace MWGui
|
||||||
private:
|
private:
|
||||||
std::vector<MessageBox*> mMessageBoxes;
|
std::vector<MessageBox*> mMessageBoxes;
|
||||||
InteractiveMessageBox* mInterMessageBoxe;
|
InteractiveMessageBox* mInterMessageBoxe;
|
||||||
|
MessageBox* mStaticMessageBox;
|
||||||
std::vector<MessageBoxManagerTimer> mTimers;
|
std::vector<MessageBoxManagerTimer> mTimers;
|
||||||
float mMessageBoxSpeed;
|
float mMessageBoxSpeed;
|
||||||
};
|
};
|
||||||
|
|
|
@ -551,6 +551,8 @@ namespace MWGui
|
||||||
while (mControlsBox->getChildCount())
|
while (mControlsBox->getChildCount())
|
||||||
MyGUI::Gui::getInstance().destroyWidget(mControlsBox->getChildAt(0));
|
MyGUI::Gui::getInstance().destroyWidget(mControlsBox->getChildAt(0));
|
||||||
|
|
||||||
|
MWBase::Environment::get().getWindowManager ()->removeStaticMessageBox();
|
||||||
|
|
||||||
std::vector<int> actions = MWBase::Environment::get().getInputManager()->getActionSorting ();
|
std::vector<int> actions = MWBase::Environment::get().getInputManager()->getActionSorting ();
|
||||||
|
|
||||||
const int h = 18;
|
const int h = 18;
|
||||||
|
@ -585,7 +587,7 @@ namespace MWGui
|
||||||
|
|
||||||
static_cast<MyGUI::Button*>(_sender)->setCaptionWithReplacing("#{sNone}");
|
static_cast<MyGUI::Button*>(_sender)->setCaptionWithReplacing("#{sNone}");
|
||||||
|
|
||||||
MWBase::Environment::get().getWindowManager ()->messageBox ("#{sControlsMenu3}");
|
MWBase::Environment::get().getWindowManager ()->staticMessageBox ("#{sControlsMenu3}");
|
||||||
MWBase::Environment::get().getWindowManager ()->disallowMouse();
|
MWBase::Environment::get().getWindowManager ()->disallowMouse();
|
||||||
|
|
||||||
MWBase::Environment::get().getInputManager ()->enableDetectingBindingMode (actionId);
|
MWBase::Environment::get().getInputManager ()->enableDetectingBindingMode (actionId);
|
||||||
|
|
|
@ -600,6 +600,16 @@ namespace MWGui
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WindowManager::staticMessageBox(const std::string& message)
|
||||||
|
{
|
||||||
|
mMessageBoxManager->createMessageBox(message, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WindowManager::removeStaticMessageBox()
|
||||||
|
{
|
||||||
|
mMessageBoxManager->removeStaticMessageBox();
|
||||||
|
}
|
||||||
|
|
||||||
void WindowManager::enterPressed ()
|
void WindowManager::enterPressed ()
|
||||||
{
|
{
|
||||||
mMessageBoxManager->enterPressed();
|
mMessageBoxManager->enterPressed();
|
||||||
|
|
|
@ -192,6 +192,8 @@ namespace MWGui
|
||||||
virtual void removeDialog(OEngine::GUI::Layout* dialog); ///< Hides dialog and schedules dialog to be deleted.
|
virtual void removeDialog(OEngine::GUI::Layout* dialog); ///< Hides dialog and schedules dialog to be deleted.
|
||||||
|
|
||||||
virtual void messageBox (const std::string& message, const std::vector<std::string>& buttons = std::vector<std::string>());
|
virtual void messageBox (const std::string& message, const std::vector<std::string>& buttons = std::vector<std::string>());
|
||||||
|
virtual void staticMessageBox(const std::string& message);
|
||||||
|
virtual void removeStaticMessageBox();
|
||||||
virtual void enterPressed ();
|
virtual void enterPressed ();
|
||||||
virtual int readPressedButton (); ///< returns the index of the pressed button or -1 if no button was pressed (->MessageBoxmanager->InteractiveMessageBox)
|
virtual int readPressedButton (); ///< returns the index of the pressed button or -1 if no button was pressed (->MessageBoxmanager->InteractiveMessageBox)
|
||||||
|
|
||||||
|
|
|
@ -917,6 +917,10 @@ namespace MWInput
|
||||||
void InputManager::keyBindingDetected(ICS::InputControlSystem* ICS, ICS::Control* control
|
void InputManager::keyBindingDetected(ICS::InputControlSystem* ICS, ICS::Control* control
|
||||||
, OIS::KeyCode key, ICS::Control::ControlChangingDirection direction)
|
, OIS::KeyCode key, ICS::Control::ControlChangingDirection direction)
|
||||||
{
|
{
|
||||||
|
//Disallow binding escape key
|
||||||
|
if(key==OIS::KC_ESCAPE)
|
||||||
|
return
|
||||||
|
|
||||||
clearAllBindings(control);
|
clearAllBindings(control);
|
||||||
ICS::DetectingBindingListener::keyBindingDetected (ICS, control, key, direction);
|
ICS::DetectingBindingListener::keyBindingDetected (ICS, control, key, direction);
|
||||||
MWBase::Environment::get().getWindowManager ()->notifyInputActionBound ();
|
MWBase::Environment::get().getWindowManager ()->notifyInputActionBound ();
|
||||||
|
|
Loading…
Reference in a new issue