1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-04-01 21:06:41 +00:00

Get rid of redundant ControllerRepeatClick class

This commit is contained in:
Andrei Kortunov 2019-05-17 10:49:00 +04:00
parent ac8fa54e6e
commit 675be20a0f
6 changed files with 10 additions and 97 deletions

View file

@ -4,6 +4,7 @@
#include <MyGUI_Button.h>
#include <MyGUI_EditBox.h>
#include <MyGUI_ControllerManager.h>
#include <MyGUI_ControllerRepeatClick.h>
#include "../mwbase/environment.hpp"
#include "../mwbase/world.hpp"
@ -26,9 +27,6 @@
namespace MWGui
{
const float AlchemyWindow::sCountChangeInitialPause = 0.5f;
const float AlchemyWindow::sCountChangeInterval = 0.1f;
AlchemyWindow::AlchemyWindow()
: WindowBase("openmw_alchemy_window.layout")
, mSortModel(nullptr)
@ -282,10 +280,9 @@ namespace MWGui
void AlchemyWindow::addRepeatController(MyGUI::Widget *widget)
{
MyGUI::ControllerItem* item = MyGUI::ControllerManager::getInstance().createItem(Controllers::ControllerRepeatEvent::getClassTypeName());
Controllers::ControllerRepeatEvent* controller = item->castType<Controllers::ControllerRepeatEvent>();
controller->eventRepeatClick += MyGUI::newDelegate(this, &AlchemyWindow::onRepeatClick);
controller->setRepeat(sCountChangeInitialPause, sCountChangeInterval);
MyGUI::ControllerItem* item = MyGUI::ControllerManager::getInstance().createItem(MyGUI::ControllerRepeatClick::getClassTypeName());
MyGUI::ControllerRepeatClick* controller = static_cast<MyGUI::ControllerRepeatClick*>(item);
controller->eventRepeatClick += newDelegate(this, &AlchemyWindow::onRepeatClick);
MyGUI::ControllerManager::getInstance().addItem(widget, controller);
}

View file

@ -4,9 +4,10 @@
#include <memory>
#include <vector>
#include <MyGUI_ControllerItem.h>
#include <components/widgets/numericeditbox.hpp>
#include "controllers.hpp"
#include "windowbase.hpp"
namespace MWMechanics

View file

@ -7,54 +7,6 @@ namespace MWGui
{
namespace Controllers
{
ControllerRepeatEvent::ControllerRepeatEvent() :
mInit(0.5f),
mStep(0.1f),
mEnabled(true),
mTimeLeft(0)
{
}
ControllerRepeatEvent::~ControllerRepeatEvent()
{
}
bool ControllerRepeatEvent::addTime(MyGUI::Widget* _widget, float _time)
{
if(mTimeLeft == 0)
mTimeLeft = mInit;
mTimeLeft -= _time;
while (mTimeLeft <= 0)
{
mTimeLeft += mStep;
eventRepeatClick(_widget, this);
}
return true;
}
void ControllerRepeatEvent::setRepeat(float init, float step)
{
mInit = init;
mStep = step;
}
void ControllerRepeatEvent::setEnabled(bool enable)
{
mEnabled = enable;
}
void ControllerRepeatEvent::setProperty(const std::string& _key, const std::string& _value)
{
}
void ControllerRepeatEvent::prepareItem(MyGUI::Widget* _widget)
{
}
// -------------------------------------------------------------
void ControllerFollowMouse::prepareItem(MyGUI::Widget *_widget)
{
}

View file

@ -13,39 +13,6 @@ namespace MWGui
{
namespace Controllers
{
// Should be removed when upgrading to MyGUI 3.2.2 (current git), it has ControllerRepeatClick
class ControllerRepeatEvent :
public MyGUI::ControllerItem
{
MYGUI_RTTI_DERIVED( ControllerRepeatEvent )
public:
ControllerRepeatEvent();
virtual ~ControllerRepeatEvent();
void setRepeat(float init, float step);
void setEnabled(bool enable);
virtual void setProperty(const std::string& _key, const std::string& _value);
// Events
typedef MyGUI::delegates::CMultiDelegate2<MyGUI::Widget*, MyGUI::ControllerItem*> EventHandle_RepeatClickVoid;
/** Event : Repeat Click.\n
signature : void method(MyGUI::Widget* _sender, MyGUI::ControllerItem *_controller)\n
*/
EventHandle_RepeatClickVoid eventRepeatClick;
private:
bool addTime(MyGUI::Widget* _widget, float _time);
void prepareItem(MyGUI::Widget* _widget);
private:
float mInit;
float mStep;
bool mEnabled;
float mTimeLeft;
};
/// Automatically positions a widget below the mouse cursor.
class ControllerFollowMouse :
public MyGUI::ControllerItem

View file

@ -3,6 +3,7 @@
#include <MyGUI_Button.h>
#include <MyGUI_InputManager.h>
#include <MyGUI_ControllerManager.h>
#include <MyGUI_ControllerRepeatClick.h>
#include <components/widgets/numericeditbox.hpp>
@ -44,9 +45,6 @@ namespace
namespace MWGui
{
const float TradeWindow::sBalanceChangeInitialPause = 0.5f;
const float TradeWindow::sBalanceChangeInterval = 0.1f;
TradeWindow::TradeWindow()
: WindowBase("openmw_trade_window.layout")
, mSortModel(nullptr)
@ -382,10 +380,9 @@ namespace MWGui
void TradeWindow::addRepeatController(MyGUI::Widget *widget)
{
MyGUI::ControllerItem* item = MyGUI::ControllerManager::getInstance().createItem(Controllers::ControllerRepeatEvent::getClassTypeName());
Controllers::ControllerRepeatEvent* controller = item->castType<Controllers::ControllerRepeatEvent>();
controller->eventRepeatClick += MyGUI::newDelegate(this, &TradeWindow::onRepeatClick);
controller->setRepeat(sBalanceChangeInitialPause, sBalanceChangeInterval);
MyGUI::ControllerItem* item = MyGUI::ControllerManager::getInstance().createItem(MyGUI::ControllerRepeatClick::getClassTypeName());
MyGUI::ControllerRepeatClick* controller = static_cast<MyGUI::ControllerRepeatClick*>(item);
controller->eventRepeatClick += newDelegate(this, &TradeWindow::onRepeatClick);
MyGUI::ControllerManager::getInstance().addItem(widget, controller);
}

View file

@ -235,7 +235,6 @@ namespace MWGui
MyGUI::ResourceManager::getInstance().unregisterLoadXmlDelegate("Resource");
MyGUI::ResourceManager::getInstance().registerLoadXmlDelegate("Resource") = newDelegate(this, &WindowManager::loadFontDelegate);
MyGUI::FactoryManager::getInstance().registerFactory<MWGui::Controllers::ControllerRepeatEvent>("Controller");
MyGUI::FactoryManager::getInstance().registerFactory<MWGui::Controllers::ControllerFollowMouse>("Controller");
MyGUI::FactoryManager::getInstance().registerFactory<ResourceImageSetPointerFix>("Resource", "ResourceImageSetPointer");