I wrote:
> Jim Wilson wrote: > > How hard would it be to have a property that toggles hotspot > > visibility? It'd be nice to be able to turn it on and have yellow > > rectangles show up on the hotspots... > > That's not a bad idea. It's actually an astoundingly good idea, and implementable over lunch to boot. :) Try the attached patch, which predicates the boxes on the /sim/panel-hotspots property. I mapped a toggle event on this to a spare joystick button, and had fun. :) [dpm: bound to Ctrl-C]
This commit is contained in:
parent
a53ccae248
commit
8eb735d149
2 changed files with 35 additions and 0 deletions
|
@ -436,6 +436,21 @@ FGPanel::draw()
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Draw yellow "hotspots" if directed to. This is a panel authoring
|
||||||
|
// feature; not intended to be high performance or to look good.
|
||||||
|
if(fgGetBool("/sim/panel-hotspots")) {
|
||||||
|
glPushAttrib(GL_ALL_ATTRIB_BITS);
|
||||||
|
glDisable(GL_DEPTH_TEST);
|
||||||
|
glDisable(GL_TEXTURE_2D);
|
||||||
|
glColor3f(1, 1, 0);
|
||||||
|
|
||||||
|
for(int i=0; i<_instruments.size(); i++)
|
||||||
|
_instruments[i]->drawHotspots();
|
||||||
|
|
||||||
|
glPopAttrib();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// restore some original state
|
// restore some original state
|
||||||
glPopAttrib();
|
glPopAttrib();
|
||||||
glPolygonOffset(0, 0);
|
glPolygonOffset(0, 0);
|
||||||
|
@ -650,6 +665,25 @@ FGPanelInstrument::~FGPanelInstrument ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
FGPanelInstrument::drawHotspots()
|
||||||
|
{
|
||||||
|
for(int i=0; i<_actions.size(); i++) {
|
||||||
|
FGPanelAction* a = _actions[i];
|
||||||
|
float x1 = getXPos() + a->getX();
|
||||||
|
float x2 = x1 + a->getWidth();
|
||||||
|
float y1 = getYPos() + a->getY();
|
||||||
|
float y2 = y1 + a->getHeight();
|
||||||
|
|
||||||
|
glBegin(GL_LINE_LOOP);
|
||||||
|
glVertex2f(x1, y1);
|
||||||
|
glVertex2f(x1, y2);
|
||||||
|
glVertex2f(x2, y2);
|
||||||
|
glVertex2f(x2, y1);
|
||||||
|
glEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
FGPanelInstrument::setPosition (int x, int y)
|
FGPanelInstrument::setPosition (int x, int y)
|
||||||
{
|
{
|
||||||
|
|
|
@ -370,6 +370,7 @@ public:
|
||||||
virtual ~FGPanelInstrument ();
|
virtual ~FGPanelInstrument ();
|
||||||
|
|
||||||
virtual void draw () = 0;
|
virtual void draw () = 0;
|
||||||
|
virtual void drawHotspots();
|
||||||
|
|
||||||
virtual void setPosition(int x, int y);
|
virtual void setPosition(int x, int y);
|
||||||
virtual void setSize(int w, int h);
|
virtual void setSize(int w, int h);
|
||||||
|
|
Loading…
Add table
Reference in a new issue