Exemple #1
0
void EnvelopeHandleComponent::mouseDown(const MouseEvent& e)
{
#ifdef MYDEBUG
	printf("MyEnvelopeHandleComponent::mouseDown (%d, %d)\n", e.x, e.y);
#endif
	
	setMouseCursor(MouseCursor::NoCursor);
	
	if(e.mods.isShiftDown()) {
		
        if(!shouldLockTime && !shouldLockValue)
        {
            getParentComponent()->setLegendTextToDefault();
            removeThisHandle();
		}
        
        return; // dont send drag msg
		
	} 
	else if(e.mods.isCtrlDown())
	{
		if(getParentComponent()->getAllowNodeEditing())
		{
			ignoreDrag = true;
			
			if(PopupComponent::getActivePopups() < 1)
			{
				EnvelopeNodePopup::create(this, getScreenX()+e.x, getScreenY()+e.y);
			}
		}
	}
	else 
	{
		
		offsetX = e.x;
		offsetY = e.y;
		
		resizeLimits.setMinimumOnscreenAmounts(HANDLESIZE,HANDLESIZE,HANDLESIZE,HANDLESIZE);
		
		EnvelopeHandleComponent* previousHandle = getPreviousHandle();
		EnvelopeHandleComponent* nextHandle = getNextHandle();
		
		int leftLimit = previousHandle == 0 ? 0 : previousHandle->getX()+2;
		int rightLimit = nextHandle == 0 ? getParentWidth()-HANDLESIZE : nextHandle->getX()-2;
//		int leftLimit = previousHandle == 0 ? 0 : previousHandle->getX();
//		int rightLimit = nextHandle == 0 ? getParentWidth()-HANDLESIZE : nextHandle->getX();

		
		resizeLimits.setAdjacentHandleLimits(leftLimit, rightLimit);

		dragger.startDraggingComponent(this, e);//&resizeLimits);
	
	}
    
    getParentComponent()->sendStartDrag();
}
Exemple #2
0
// sample configured channels and plot them
// this function is called from the sampling timer - there should be no y-axis showing
void Plotter::sample() {
	float xValue;									// x coordinate, value
	uint16_t xVal;									// x coordinate, screen pixels
	uint8_t eraseWidth;
	uint16_t xAxisPosition, yAxisPosition;

	switch (style) {
		case scan:
			xValue = millis() - startTime + xMin;		// ms elapsed since capture began
			if (xValue >= xMax) {					// if the time-axis has filled up
				startTime = millis();				// and reset the x-axis timer
				xValue = xMin;						// should wrap
			}
			xVal = getScreenX(xValue);
			eraseWidth = min(5,xo+width-xVal-1);						// clearing out previous data just ahead
			xAxisPosition = getScreenY(axesY);							// height of x-axis
			yAxisPosition = getScreenX(axesX);							// position of y-axis
			tft.fillRect(xVal+1, yo, eraseWidth, height, PLOTTER_BACKGROUND);
			if (axes) {
				tft.drawFastHLine(xVal+1, xAxisPosition, eraseWidth, PLOTTER_BORDER);			// replace possibly-erased x-axis segment
				if (yAxisPosition >= xVal && yAxisPosition < xVal + eraseWidth ) {tft.drawFastVLine(yAxisPosition, yo, height, PLOTTER_BORDER);}		// replace erased y-axis
			}
			break;
		case track:
			trackCounter++;
			if (trackCounter >= xo + width) {
				trackCounter = xo;
				clear();							// OK to take the time to clear the screen
				if (axes) { showAxes(); }			// tracking is not meant to be fast anyway
			}
			xVal = trackCounter;
			break;
		default:
			xVal = xo;
	}

	for (int i=0; i<nChannels; i++) {
		float yValue = channels[i].sample();
		tft.drawPixel(xVal, getScreenY(yValue), channels[i].getColor());
	}

	sampleTimer.reset();					// reset the timer for the next sample
}
void EnvelopeComponent::mouseDown(const MouseEvent& e)
{
#ifdef MYDEBUG
	printf("MyEnvelopeComponent::mouseDown(%d, %d)\n", e.x, e.y);
#endif
	
	if(e.mods.isShiftDown()) 
	{
		
		// not needed ?
				
	}
	else if(e.mods.isCtrlDown())
	{
		if(getAllowCurveEditing())
		{
			float timeAtClick = convertPixelsToDomain(e.x);
			
			int i;
			EnvelopeHandleComponent* handle = 0;
			
			for(i = 0; i < handles.size(); i++) {
				handle = handles.getUnchecked(i);
				if(handle->getTime() > timeAtClick)
					break;
			}
			
			if(PopupComponent::getActivePopups() < 1)
			{
				EnvelopeHandleComponent* prev = handle->getPreviousHandle();
				
				if(!prev)
				{
					EnvelopeCurvePopup::create(handle, getScreenX()+e.x, getScreenY()+e.y);
				}
				else
				{
					EnvelopeCurvePopup::create(handle, 
											   (handle->getScreenX() + prev->getScreenX())/2, 
											   jmax(handle->getScreenY(), prev->getScreenY())+10);
				}
			}
		}
	}
	else 
	{
		draggingHandle = addHandle(e.x,e.y, EnvCurve::Linear);
		
		if(draggingHandle != 0) {
			setMouseCursor(MouseCursor::NoCursor);
			draggingHandle->mouseDown(e.getEventRelativeTo(draggingHandle));
			draggingHandle->updateLegend();
		}
	}
}
void phdGuiVerFader::draw(float _x, float _y) {

	if(!isVisible() || getManager() == NULL) return;

	if(fader != NULL) { value = fader->getValue(); }

	ofPushStyle();
	ofPushMatrix();
	ofTranslate(getScreenX(), getScreenY(), 0);

	if(fader != NULL) {
		fader->setCoords(getScreenX(), getScreenY(), getWidth(), getHeight());
		fader->draw(getManager()->getFillColor(this), getManager()->getBorderColor(this), getManager()->getTextColor(this));
	}

	ofSetColor(getManager()->getTextColor(this));
	string _str = "";
	for(int i = 0; i < caption.size(); i++) _str += caption.substr(i,1) + "\n";
	ofDrawBitmapString(_str, (getWidth()-(8.0))/2.0, 28.0);

	ofPopMatrix();
	ofPopStyle();
}
//==============================================================================
void Joystick::restoreMouseIfHidden()
{
    if (mouseWasHidden)
    {
        mouseWasHidden = false;

        Component* c = Component::getComponentUnderMouse();
        if (c == 0)
            c = this;
        c->enableUnboundedMouseMovement (false);

        Desktop::setMousePosition (getScreenX() + draw_x,
                                   getScreenY() + draw_y);
    }
}
void HadronLabel::mouseDoubleClick(const MouseEvent& e) 
{
    if (use_modal_editor_) {
        
        if (isEditableOnDoubleClick() && ! e.mods.isPopupMenu()) {
            
            ModalComponentManager::Callback* userCallback = 0;
            ScopedPointer<ModalComponentManager::Callback> userCallbackDeleter (userCallback);
            Component::SafePointer<Component> prevFocused (Component::getCurrentlyFocusedComponent());
            Component::SafePointer<Component> prevTopLevel ((prevFocused != 0) ? prevFocused->getTopLevelComponent() : 0);
            
            ScopedPointer <TextEditor> texteditor (createEditorComponent());
            texteditor->setColour(TextEditor::backgroundColourId, Colours::white);
            texteditor->setWantsKeyboardFocus (true);
            texteditor->setAlwaysOnTop (true);
            
            // Find screen position
            Rectangle<int> sr (getBounds ());
            sr.setPosition (getScreenX(), getScreenY());
            int fontheight = static_cast<int>(texteditor->getFont().getHeight()) + 4;
            if (sr.getHeight() > fontheight) {
                sr.translate (0, (sr.getHeight() - fontheight)/2);
                sr.setHeight (fontheight);
            }
            texteditor->setBounds(sr);
            
            texteditor->setText(getText(),false);
            texteditor->setHighlightedRegion (Range <int> (0, getText().length ()));
            texteditor->setVisible (true);
            texteditor->grabKeyboardFocus();
            texteditor->addToDesktop (ComponentPeer::windowIsTemporary, 0);
            
            texteditor->addListener (this);
            texteditor->enterModalState (false);
            texteditor->grabKeyboardFocus();
            
            texteditor->runModalLoop();
            
            if (prevTopLevel != 0)
                prevTopLevel->toFront (true);
            if (prevFocused != 0)
                prevFocused->grabKeyboardFocus();
        }
    }
    else {
        Label::mouseDoubleClick(e);
    }
}
void phdGuiLabel::draw(float _x, float _y) {

	if(!isVisible() || getManager() == NULL) return;

	ofPushStyle();
	ofPushMatrix();
	ofTranslate(getScreenX(), getScreenY(), 0);

	ofSetColor(getManager()->getTextColor(this));
	ofDrawBitmapString(caption, 1.0, 11.0);

	ofPopMatrix();
	ofPopStyle();

	drawChildren(_x, _y);
}
void EnvelopeHandleComponent::mouseDrag(const MouseEvent& e)
{
	if(ignoreDrag == true) return;
	
	if(e.mods.isAltDown()) {

		int moveX = e.x-offsetX;
		int moveY = offsetY-e.y;
		
		offsetTimeAndValue(moveX * FINETUNE, moveY * FINETUNE, FINETUNE);
		ignoreDrag = true;
		setMousePositionToThisHandle();
		ignoreDrag = false;
		
	} else {
				
		dragger.dragComponent(this, e, &resizeLimits);
	}
	
	updateLegend();
	getParentComponent()->repaint();
	getParentComponent()->sendChangeMessage();
	
	if(lastX == getX() && lastY == getY()) {	
		setMousePositionToThisHandle();
#ifdef MYDEBUG
		int x, y;
		Desktop::getMousePosition(x, y);	
		printf("screen pos (and mouse pos): %d (%d) %d (%d)\n", getScreenX(), x, getScreenY(), y);
#endif	
	}

	lastX = getX();
	lastY = getY();
	
#ifdef MYDEBUG
	double domain = getParentComponent()->convertPixelsToDomain(getX());
	double value = getParentComponent()->convertPixelsToValue(getY());
	printf("MyEnvelopeHandleComponent::mouseDrag(%d, %d) [%f, %f] (%d, %d)\n", e.x, e.y, 
		   domain,
		   value,
		   getParentComponent()->convertDomainToPixels(domain),
		   getParentComponent()->convertValueToPixels(value));
#endif
	
}
bool ApplicationWin32Imp::createWindow()
{
    if( isWindowCreated() ) return false;

    hInstance_ = ( HINSTANCE )GetModuleHandle( NULL );

    if( false == MyRegisterClass( hInstance_ ) )
        return false;

    const int x = getScreenX();
    const int y = getScreenY();
    const int width = getScreenWidth();
    const int height = getScreenHeight();
    hWnd_ = InitInstance( hInstance_, SW_SHOW, x, y, width, height );

    return NULL != hWnd_;
}
Exemple #10
0
void phdGuiStringField::draw(float _x, float _y) {

    if(!isVisible() || getManager() == NULL) return;

    ofPushStyle();
    ofPushMatrix();
    ofTranslate(getScreenX(), getScreenY(), 0);

    drawFilledBorderRectangle(0,0,getWidth(),getHeight(),  getManager()->getFillColor(this),  getManager()->getBorderColor(this));

    ofSetColor( getManager()->getTextColor(this));
    ofDrawBitmapString(value, 4, 12);

    ofPopMatrix();
    ofPopStyle();

    drawChildren(_x, _y);
}
void phdGuiTitleBar::draw(float _x, float _y) {

	if(!isVisible() || getManager() == NULL) return;

	ofPushStyle();
	ofPushMatrix();
	ofTranslate(getScreenX(), getScreenY(), 0);

	drawFilledBorderRectangle(0, 0, getWidth(), getHeight(),  getManager()->getFillColor(this),  getManager()->getBorderColor(this));

	ofSetColor( getManager()->getTextColor(this));
	ofDrawBitmapString(caption, (getWidth()-(caption.size()*8.0))/2.0, getHeight() / 2.0 + 4.0);

	ofPopMatrix();
	ofPopStyle();

	drawChildren(_x, _y);
}
void EnvelopeHandleComponent::setMousePositionToThisHandle()
{
	Desktop::setMousePosition(Point<int>(getScreenX()+offsetX, getScreenY()+offsetY));
}
/** Return screen x */
int fbapp_get_screen_x(int hardwareId) {
    (void)hardwareId;
    return getScreenX(reverse_orientation);
}
Exemple #14
0
void phdGuiStringField::onMouseReleased(ofMouseEventArgs & args) {
    if(!compareMouseEventArgs(argsPress, argsDrag)) { // drag != press => has a click
        getManager()->getInputField().editString(getScreenX(), getScreenY(), getWidth(), getHeight(), this, 0, 30);
        //masterInputField().editString(getScreenX(), getScreenY(), getWidth(), getHeight(), value, 30);
    }
}
//--------------------------------------------------------------
void testApp::mouseReleased(int x, int y, int button){
    mouseD.set((float)x - mouseP.x, (float)y - mouseP.y);
    target = targetTemp - 0.01f*mouseD.x*getScreenX(targetTemp) + 0.01f*mouseD.y*getScreenY(targetTemp);
}
Exemple #16
0
// plot a point to the screen, color uses default value if not specified
void Plotter::plot(float x, float y, uint16_t aColor) {
	tft.drawPixel(getScreenX(x), getScreenY(y), aColor);
}
    void paint (Graphics& g)
    {
        const TwindyTabbedComponent* const t = (const TwindyTabbedComponent*) getParentComponent();

        if (t != 0)
        {
#if JUCE_NEW
            const Rectangle<int> thisBounds (0, 0, getWidth(), getHeight());
#else
            const Rectangle thisBounds (0, 0, getWidth(), getHeight());
#endif

            int i;
            for (i = 0; i < getNumChildComponents(); ++i)
            {
                TwindyTabbedComponentBasicTab* const c = (TwindyTabbedComponentBasicTab*) getChildComponent (i);

                if (c != (TwindyTabbedComponentBasicTab*)t->tabList [t->currentTab])
                {
                    const float indent = 2.0f;

                    float x1 = (float)c->getX();
                    float y1 = (float)c->getY();
                    float x2 = x1 + c->getWidth();
                    float y2 = y1 + c->getHeight();

                    if (c->getBounds().intersects (thisBounds))
                    {
                        if (t->orientation == TwindyTabbedComponent::TabsAtTop)
                        {
                            y1 += indent;
                            y2 += 100.0f;
                        }
                        else if (t->orientation == TwindyTabbedComponent::TabsAtBottom)
                        {
                            y2 -= indent;
                            y1 -= 100.0f;
                        }
                        else if (t->orientation == TwindyTabbedComponent::TabsAtLeft)
                        {
                            x1 += indent;
                            x2 += 100.0f;
                        }
                        else if (t->orientation == TwindyTabbedComponent::TabsAtRight)
                        {
                            x2 -= indent;
                            x1 -= 100.0f;
                        }

                        Path p;
                        p.addRoundedRectangle (x1 + t->normalOutlineThickness,
                                               y1 + t->normalOutlineThickness,
                                               x2 - x1 - t->normalOutlineThickness* 2.0f,
                                               y2 - y1 - t->normalOutlineThickness * 2.0f,
                                               t->cornerSize);

                        g.setColour (t->deselectedTabCol);
                        g.fillPath (p);

                        g.setColour (t->normalOutlineCol);
                        g.strokePath (p, PathStrokeType (t->normalOutlineThickness));
                    }
                }
            }

            AffineTransform trans;
            trans = trans.translated ((float)t->getScreenX() - getScreenX(),
                                      (float)t->getScreenY() - getScreenY());

            g.setColour (t->fillCol);
            g.fillPath (t->outlineShape, trans);

            g.setColour (t->selectedOutlineCol);
            g.fillPath (t->strokedOutline, trans);
        }
    }
//--------------------------------------------------------------
void testApp::draw(){

    myCam.begin();

    ofSetColor(0, 0, 250);
    scrX = getScreenX(target);
    scrY = getScreenY(target);
    float l = 100.0f;
    for(int i = 0; i < 100; i++){
        ofLine(camPos.x + l*(sin(i*PI*2.0f/100.0f)*scrY.x + cos(i*PI*2.0f/100.0f)*scrX.x+target.x),
               camPos.y + l*(sin(i*PI*2.0f/100.0f)*scrY.y + cos(i*PI*2.0f/100.0f)*scrX.y+target.y),
               camPos.z + l*(sin(i*PI*2.0f/100.0f)*scrY.z + cos(i*PI*2.0f/100.0f)*scrX.z+target.z),
               camPos.x + l*(target.x),
               camPos.y + l*(target.y),
               camPos.z + l*(target.z)
               );
    }
    ofSetColor(255, 255, 200);
    float r = 5000.0f;
    for(int i = 0; i < 100; i++){
            ofLine(0.0f, -500.0f, 0.0f, r*sin(i*2.0f*PI/100.0f), -200.0f, r*cos(i*2.0f*PI/100.0f));
    }
    ofPushMatrix();
    ofTranslate(point);

    //繧ェ繝悶ず繧ァ繧ッ繝郁・菴薙・蝗櫁サ「
    //ofRotateY(ofGetElapsedTimef() * 10);

    //Aachan
    if (isAachan) {
        //ofTranslate(ofGetWidth()/3, 0);

        ofSetColor(200+ofRandom(55), 200, 200);
        aachan.drawWireframe();
        ofSetColor(200+ofRandom(55), 200, 200);
        aachan.drawFaces();
        //aachan.drawWireframe();
        //aachan.drawVertices();
    }

    //NOCCHi
    if (isNOCCHi) {
        //ofTranslate(ofGetWidth()/2, -ofGetHeight()/2);


        //ofSetColor(30, 30, 30);
        ofSetColor(200, 200, 200+ofRandom(55));
        nocchi.drawWireframe();
        ofSetColor(200, 200, 200+ofRandom(55));
        nocchi.drawFaces();
        //nocchi.drawVertices();
        ofSetColor(0, 0, 0);
        nocchi.drawWireframe();

    }

    //Kashiyuka
    if (isKashiyuka) {

        //ofSetColor(70, 70, 70);
        ofSetColor(200, 200+ofRandom(55), 200);
        kashiyuka.drawWireframe();
        ofSetColor(200, 200+ofRandom(55), 200);
        kashiyuka.drawFaces();
        //kashiyuka.drawWireframe();
        //kashiyuka.drawVertices();
    }


    ofPopMatrix();

    myCam.end();
}