rt300@0: // rt300@0: // targetSymbol.h rt300@0: // tweakathlon rt300@0: // rt300@0: // Created by Robert Tubb on 11/02/2014. rt300@0: // rt300@0: // rt300@0: rt300@0: #ifndef __tweakathlon__targetSymbol__ rt300@0: #define __tweakathlon__targetSymbol__ rt300@0: rt300@0: #include rt300@0: #include "UIElement.h" rt300@0: #include "timeController.h" rt300@0: extern TimeController timeController; rt300@0: class TargetSymbol : public UIElement { rt300@0: public: rt300@0: rt300@0: TargetSymbol(int ax, int ay,int aw, const UIProps& props): rt300@0: UIElement(ax,ay,aw,aw, props) rt300@0: { rt300@0: foregroundHi = props.buttonHi; rt300@0: backgroundHi = props.generalBackground; rt300@0: foregroundLo = props.inactiveGreyedOut; // can't be touched rt300@0: backgroundLo = props.generalBackground; rt300@0: flashing = false; rt300@0: on = false; rt300@0: }; rt300@0: rt300@0: void draw(){ rt300@0: if(hidden)return; rt300@0: //UIElement::draw(); // don't do background rt300@0: ofColor fg,bg; rt300@0: rt300@0: if(on){ rt300@0: fg = foregroundHi; rt300@0: bg = backgroundHi; rt300@0: }else{ rt300@0: fg = foregroundLo; rt300@0: bg = backgroundLo; rt300@0: } rt300@0: ofSetColor(fg); rt300@0: rt300@0: ofEllipse(x,y,width,height); rt300@0: rt300@0: ofSetColor(bg); rt300@0: ofEllipse(x,y,width*0.66,height*0.66); rt300@0: rt300@0: ofSetColor(fg); rt300@0: ofEllipse(x,y,width*0.33,height*0.33); rt300@0: rt300@0: }; rt300@0: rt300@0: void flash(){ rt300@0: // turn hilight on and off rt300@0: if (!flashing){ rt300@0: setHighlight(true); rt300@0: rt300@0: // set up timer rt300@0: TimerCallbackFunction tcb; rt300@0: tcb = boost::bind(&TargetSymbol::flash, this); rt300@0: timeController.scheduleEvent(tcb, int(ALTERNATION_SPEED/4)); rt300@0: flashing = true; rt300@0: }else{ rt300@0: setHighlight(false); rt300@0: rt300@0: flashing = false; rt300@0: } rt300@0: rt300@0: } rt300@0: rt300@0: bool handleMyTouch(int x, int y, touchType ttype, int touchID){ rt300@0: return false; // or? rt300@0: } rt300@0: rt300@0: private: rt300@0: ofColor foregroundHi; rt300@0: ofColor backgroundHi; rt300@0: ofColor foregroundLo; rt300@0: ofColor backgroundLo; rt300@0: ofColor fgInactive; rt300@0: bool flashing; rt300@0: }; rt300@0: #endif /* defined(__tweakathlon__targetSymbol__) */