|
@@ -42,7 +42,7 @@ VectorJuiceUI::VectorJuiceUI() |
|
|
fCanvasArea.setSize(368-24, 368-24); |
|
|
fCanvasArea.setSize(368-24, 368-24); |
|
|
|
|
|
|
|
|
// background |
|
|
// background |
|
|
fImgBackground = Image(VectorJuiceArtwork::backgroundData, VectorJuiceArtwork::backgroundWidth, VectorJuiceArtwork::backgroundHeight, GL_BGR); |
|
|
|
|
|
|
|
|
fImgBackground = Image(VectorJuiceArtwork::backgroundData, VectorJuiceArtwork::backgroundWidth, VectorJuiceArtwork::backgroundHeight, kImageFormatBGR); |
|
|
|
|
|
|
|
|
//roundlet |
|
|
//roundlet |
|
|
fImgRoundlet = Image(VectorJuiceArtwork::roundletData, VectorJuiceArtwork::roundletWidth, VectorJuiceArtwork::roundletHeight); |
|
|
fImgRoundlet = Image(VectorJuiceArtwork::roundletData, VectorJuiceArtwork::roundletWidth, VectorJuiceArtwork::roundletHeight); |
|
@@ -54,7 +54,7 @@ VectorJuiceUI::VectorJuiceUI() |
|
|
fImgSubOrbit = Image(VectorJuiceArtwork::subOrbitData, VectorJuiceArtwork::subOrbitWidth, VectorJuiceArtwork::subOrbitHeight); |
|
|
fImgSubOrbit = Image(VectorJuiceArtwork::subOrbitData, VectorJuiceArtwork::subOrbitWidth, VectorJuiceArtwork::subOrbitHeight); |
|
|
|
|
|
|
|
|
// about |
|
|
// about |
|
|
Image aboutImage(VectorJuiceArtwork::aboutData, VectorJuiceArtwork::aboutWidth, VectorJuiceArtwork::aboutHeight, GL_BGR); |
|
|
|
|
|
|
|
|
Image aboutImage(VectorJuiceArtwork::aboutData, VectorJuiceArtwork::aboutWidth, VectorJuiceArtwork::aboutHeight, kImageFormatBGR); |
|
|
fAboutWindow.setImage(aboutImage); |
|
|
fAboutWindow.setImage(aboutImage); |
|
|
|
|
|
|
|
|
// about button |
|
|
// about button |
|
@@ -344,12 +344,12 @@ void VectorJuiceUI::onDisplay() |
|
|
fImgBackground.draw(context); |
|
|
fImgBackground.draw(context); |
|
|
|
|
|
|
|
|
// get x, y mapped to XY area |
|
|
// get x, y mapped to XY area |
|
|
int x = fCanvasArea.getX() + paramX*fCanvasArea.getWidth() - fImgRoundlet.getWidth()/2; |
|
|
|
|
|
int y = fCanvasArea.getY() + paramY*fCanvasArea.getHeight() - fImgRoundlet.getHeight()/2; |
|
|
|
|
|
int nOrbitX = fCanvasArea.getX()+((orbitX)*fCanvasArea.getWidth())-15; |
|
|
|
|
|
int nOrbitY = fCanvasArea.getY()+((orbitY)*fCanvasArea.getWidth())-15; |
|
|
|
|
|
int nSubOrbitX = fCanvasArea.getX()+(subOrbitX*fCanvasArea.getWidth())-15; |
|
|
|
|
|
int nSubOrbitY = fCanvasArea.getY()+(subOrbitY*fCanvasArea.getWidth())-14; |
|
|
|
|
|
|
|
|
const int x = fCanvasArea.getX() + paramX*fCanvasArea.getWidth() - fImgRoundlet.getWidth()/2; |
|
|
|
|
|
const int y = fCanvasArea.getY() + paramY*fCanvasArea.getHeight() - fImgRoundlet.getHeight()/2; |
|
|
|
|
|
const int nOrbitX = fCanvasArea.getX()+((orbitX)*fCanvasArea.getWidth())-15; |
|
|
|
|
|
const int nOrbitY = fCanvasArea.getY()+((orbitY)*fCanvasArea.getWidth())-15; |
|
|
|
|
|
const int nSubOrbitX = fCanvasArea.getX()+(subOrbitX*fCanvasArea.getWidth())-15; |
|
|
|
|
|
const int nSubOrbitY = fCanvasArea.getY()+(subOrbitY*fCanvasArea.getWidth())-14; |
|
|
|
|
|
|
|
|
//draw lines, just for fun |
|
|
//draw lines, just for fun |
|
|
glEnable(GL_BLEND); |
|
|
glEnable(GL_BLEND); |
|
@@ -365,13 +365,10 @@ void VectorJuiceUI::onDisplay() |
|
|
glVertex2i(nSubOrbitX+15, nSubOrbitY+14); |
|
|
glVertex2i(nSubOrbitX+15, nSubOrbitY+14); |
|
|
glEnd(); |
|
|
glEnd(); |
|
|
|
|
|
|
|
|
// reset color |
|
|
|
|
|
glColor4f(1.0f, 1.0f, 1.0f, 1.0f); |
|
|
|
|
|
|
|
|
|
|
|
// draw roundlet and orbits |
|
|
// draw roundlet and orbits |
|
|
fImgRoundlet.drawAt(x, y); |
|
|
|
|
|
fImgOrbit.drawAt(nOrbitX, nOrbitY); |
|
|
|
|
|
fImgSubOrbit.drawAt(nSubOrbitX, nSubOrbitY); |
|
|
|
|
|
|
|
|
fImgRoundlet.drawAt(context, x, y); |
|
|
|
|
|
fImgOrbit.drawAt(context, nOrbitX, nOrbitY); |
|
|
|
|
|
fImgSubOrbit.drawAt(context, nSubOrbitX, nSubOrbitY); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
bool VectorJuiceUI::onMouse(const MouseEvent& ev) |
|
|
bool VectorJuiceUI::onMouse(const MouseEvent& ev) |
|
@@ -381,7 +378,9 @@ bool VectorJuiceUI::onMouse(const MouseEvent& ev) |
|
|
|
|
|
|
|
|
if (ev.press) |
|
|
if (ev.press) |
|
|
{ |
|
|
{ |
|
|
if (! fCanvasArea.contains(ev.pos)) |
|
|
|
|
|
|
|
|
const double scaling = getWidth() / static_cast<double>(VectorJuiceArtwork::backgroundWidth); |
|
|
|
|
|
|
|
|
|
|
|
if (! fCanvasArea.containsAfterScaling(ev.pos, scaling)) |
|
|
return false; |
|
|
return false; |
|
|
|
|
|
|
|
|
fDragging = true; |
|
|
fDragging = true; |
|
@@ -404,6 +403,7 @@ bool VectorJuiceUI::onMotion(const MotionEvent& ev) |
|
|
if (! fDragging) |
|
|
if (! fDragging) |
|
|
return false; |
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
const double scaling = getWidth() / static_cast<double>(VectorJuiceArtwork::backgroundWidth); |
|
|
const int x = ev.pos.getX(); |
|
|
const int x = ev.pos.getX(); |
|
|
const int y = ev.pos.getY(); |
|
|
const int y = ev.pos.getY(); |
|
|
|
|
|
|
|
@@ -422,8 +422,8 @@ bool VectorJuiceUI::onMotion(const MotionEvent& ev) |
|
|
float newX = paramX; |
|
|
float newX = paramX; |
|
|
float newY = paramY; |
|
|
float newY = paramY; |
|
|
|
|
|
|
|
|
newX -= float(movedX)/fCanvasArea.getWidth(); |
|
|
|
|
|
newY -= float(movedY)/fCanvasArea.getHeight(); |
|
|
|
|
|
|
|
|
newX -= float(movedX)/fCanvasArea.getWidth()/scaling; |
|
|
|
|
|
newY -= float(movedY)/fCanvasArea.getHeight()/scaling; |
|
|
|
|
|
|
|
|
if (newX < 0.0f) |
|
|
if (newX < 0.0f) |
|
|
newX = 0.0f; |
|
|
newX = 0.0f; |
|
|