ios stuff

This commit is contained in:
Vladislav Khorev 2013-08-08 21:09:35 +00:00
parent 554d35f27b
commit 144acdd633
5 changed files with 48 additions and 0 deletions

View File

@ -24,6 +24,7 @@ public:
virtual void OnTapDown(vec2 pos) { } virtual void OnTapDown(vec2 pos) { }
virtual void OnTapUp(vec2 pos) { } virtual void OnTapUp(vec2 pos) { }
virtual void OnTapUpAfterMove(vec2 pos) { }
virtual void OnMove(vec2 shift) { } virtual void OnMove(vec2 shift) { }
virtual void OnMoveOut() { } virtual void OnMoveOut() { }
virtual void OnKeyPress(int key) { } virtual void OnKeyPress(int key) { }
@ -164,6 +165,7 @@ public:
virtual void OnTapDown(vec2 pos); virtual void OnTapDown(vec2 pos);
virtual void OnTapUp(vec2 pos); virtual void OnTapUp(vec2 pos);
virtual void OnTapUpAfterMove(vec2 pos);
virtual void OnMoveOut(); virtual void OnMoveOut();
static TUniversalButton* CreateButton(vec2 posFrom, vec2 posTo); static TUniversalButton* CreateButton(vec2 posFrom, vec2 posTo);

View File

@ -169,6 +169,8 @@ public:
void OnMouseUp(vec2 pos); void OnMouseUp(vec2 pos);
void OnMouseUpAfterMove(vec2 pos);
void OnMove(vec2 shift); void OnMove(vec2 shift);
void ShowKeyboard(const std::string text = ""); void ShowKeyboard(const std::string text = "");

View File

@ -331,6 +331,11 @@ void TUniversalButton::OnTapUp(vec2 pos)
} }
void TUniversalButton::OnTapUpAfterMove(vec2 pos)
{
OnTapUp(pos);
}
void TUniversalButton::OnMoveOut() void TUniversalButton::OnMoveOut()
{ {
if (ButtonState == BS_PRESSED || ButtonState == BS_GO_PRESSED) if (ButtonState == BS_PRESSED || ButtonState == BS_GO_PRESSED)

View File

@ -326,6 +326,44 @@ void TGUIManager::OnMouseUp(vec2 pos)
} }
void TGUIManager::OnMouseUpAfterMove(vec2 pos)
{
//Xperimental - need to call widget methods and signals NOT IN "FOR" LOOP
boost::lock_guard<boost::mutex> guard(WidgetListMutex);
TWidgetArr::reverse_iterator i;
std::vector<std::shared_ptr<boost::signal<void (TSignalParam)>>> signalMap;
for (i = WidgetArr.rbegin(); i != WidgetArr.rend(); ++i)
{
if (i->Widget->CheckClick(pos))
{
bool isTransparentForInput = i->Widget->IsTransparentForInput();
i->Widget->OnTapUpAfterMove(pos);
i->IsMouseDown = false;
//signalMap.push_back((i->SignalMap[CONST_CLICK_SIGNAL_NAME]));
//Do not call signals here
if (! isTransparentForInput)
{
break;
}
}
}
//Keep this outside since signal may affect WidgetArr
BOOST_FOREACH(auto signalPtr, signalMap)
{
(*signalPtr)(TSignalParam(pos));
}
}
void TGUIManager::OnMove(vec2 shift) void TGUIManager::OnMove(vec2 shift)
{ {
//Xperimental - need to call widget methods and signals NOT IN "FOR" LOOP //Xperimental - need to call widget methods and signals NOT IN "FOR" LOOP

View File

@ -133,6 +133,7 @@ void TApplicationAncestor::OuterOnTapUp(vec2 p)
void TApplicationAncestor::OuterOnTapUpAfterMove(vec2 p) void TApplicationAncestor::OuterOnTapUpAfterMove(vec2 p)
{ {
ResourceManager->GUIManager.OnMouseUpAfterMove(p);
InnerOnTapUpAfterMove(p); InnerOnTapUpAfterMove(p);
} }