rt300@0: // rt300@0: // sliderPanel.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__sliderPanel__ rt300@0: #define __tweakathlon__sliderPanel__ rt300@0: rt300@0: #include rt300@0: #include "UIElementContainer.h" rt300@0: #include rt300@0: #include "globalVariables.h" rt300@0: #include "ofMain.h" rt300@0: #include "UIElement.h" rt300@0: #include "boost/bind.hpp" rt300@0: #include "boost/function.hpp" rt300@0: #include "timeController.h" rt300@0: #include "ButtronSlider.h" rt300@0: #include "ButtronXY.h" rt300@0: #include "3Dbox.h" rt300@0: #include "3DboxGL.h" rt300@0: // panel with sliders and xy pads rt300@0: class SliderPanel : public UIElementContainer{ rt300@0: rt300@0: public: rt300@0: SliderPanel(float ax, rt300@0: float ay, rt300@0: float awidth, rt300@0: float aheight, rt300@0: const UIProps& aprops, rt300@0: vector elemList); rt300@0: //------------------------ rt300@0: void showHint(bool value){ rt300@0: vector::iterator UIitr; rt300@0: for(UIitr = subElements.begin(); UIitr < subElements.end(); UIitr++){ rt300@0: (*UIitr)->showHint(value); rt300@0: } rt300@0: } rt300@0: // rt300@0: void setHintColor(ofColor c){ rt300@0: vector::iterator UIitr; rt300@0: for(UIitr = subElements.begin(); UIitr < subElements.end(); UIitr++){ rt300@0: (*UIitr)->setHintColor(c); rt300@0: } rt300@0: } rt300@0: //------------------------ rt300@0: void flash(){ rt300@0: // turn hilight on and off rt300@0: if (!flashing){ rt300@0: vector::iterator UIitr; rt300@0: for(UIitr = subElements.begin(); UIitr < subElements.end(); UIitr++){ rt300@0: (*UIitr)->setHighlight(true); rt300@0: } rt300@0: // set up timer rt300@0: TimerCallbackFunction tcb; rt300@0: tcb = boost::bind(&SliderPanel::flash, this); rt300@0: timeController.scheduleEvent(tcb, 250); rt300@0: flashing = true; rt300@0: }else{ rt300@0: vector::iterator UIitr; rt300@0: for(UIitr = subElements.begin(); UIitr < subElements.end(); UIitr++){ rt300@0: (*UIitr)->setHighlight(false); rt300@0: } rt300@0: flashing = false; rt300@0: } rt300@0: rt300@0: } rt300@0: //------------------------ rt300@0: vector generateControls(vector elemList, controlPanelType panelType); rt300@0: //------------------------ rt300@0: rt300@0: // TODO override touch thing to make revisitable rt300@0: private: rt300@0: bool flashing; rt300@0: controlPanelType panelType; rt300@0: }; rt300@0: rt300@0: #endif /* defined(__tweakathlon__sliderPanel__) */