From 0b904a9af36908b2e6852efcf0a9ace0a069a732 Mon Sep 17 00:00:00 2001 From: Xawotihs Date: Sun, 4 Sep 2011 23:13:22 +0000 Subject: [PATCH] Simple pad is now touchable/clickable. --- projects/mtg/include/SimplePad.h | 1 + projects/mtg/src/SimplePad.cpp | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/projects/mtg/include/SimplePad.h b/projects/mtg/include/SimplePad.h index 13e807046..3a356831a 100644 --- a/projects/mtg/include/SimplePad.h +++ b/projects/mtg/include/SimplePad.h @@ -25,6 +25,7 @@ struct SimpleKey string displayValue; unsigned char id; unsigned char adjacency[4]; + float mX, mY; }; class SimplePad diff --git a/projects/mtg/src/SimplePad.cpp b/projects/mtg/src/SimplePad.cpp index e57179926..b37cbe772 100644 --- a/projects/mtg/src/SimplePad.cpp +++ b/projects/mtg/src/SimplePad.cpp @@ -249,6 +249,24 @@ void SimplePad::Update(float dt) } } + int x, y, n = selected; + unsigned int minDistance = -1; + if(JGE::GetInstance()->GetLeftClickCoordinates(x, y)) + { + for(int i = 0; i < nbitems; i++) + { + unsigned int distance = static_cast((keys[i]->mY - (float)y) * (keys[i]->mY - (float)y) + (keys[i]->mX - (float)x) * (keys[i]->mX - (float)x)); + if (distance < minDistance) + { + minDistance = distance; + n = i; + } + } + + MoveSelection(n); + JGE::GetInstance()->LeftClickedProcessed(); + } + mX = 50; mY = 50; @@ -410,6 +428,8 @@ void SimplePad::Render() renderer->FillRoundRect(mX + offX - 4, mY + offY - 4, kW + 8, kH + 4, 2, ARGB(255,100,100,100)); mFont->SetColor(ARGB(255,255,255,255)); } + keys[x]->mX = mX + offX - 4; + keys[x]->mY = mY + offY - 4; char vkey[2]; vkey[1] = '\0';