//Draws a button void drawARDTButton (ARDTButton& pButton){ if (pButton.imageIndex < 255){ drawARDTButtonImage (pButton); return; } byte r, g, b; r = (byte)((pButton.bgcolor & 0xFF0000) >> 16); g = (byte)((pButton.bgcolor & 0x00FF00) >> 8); b = (byte)((pButton.bgcolor & 0x0000FF)); fill(r,g,b); //fill //button DRAWN is smaller than its zone RECT vDrawRect; byte vPadding = ((pButton.attributes & BUTTON_ATTRIBUTE_NOPADDING)> 0 ? 0 : 6); vDrawRect.top = pButton.rect.top + vPadding; vDrawRect.bottom = pButton.rect.bottom - vPadding; vDrawRect.left = pButton.rect.left + vPadding; vDrawRect.right = pButton.rect.right - vPadding; if ((pButton.attributes & BUTTON_ATTRIBUTE_BGGRADIENT)> 0){ //GRADIENT FILL noStroke(); for (int i=vDrawRect.top; i < vDrawRect.bottom; i += BTN_FILL_STEP){ byte vHeight = BTN_FILL_STEP; if (i + vHeight > vDrawRect.bottom) vHeight = vDrawRect.bottom - i; rect(vDrawRect.left,i,vDrawRect.right - vDrawRect.left,vHeight); if (r > BTN_FILL_STEP) r -= BTN_FILL_STEP; if (g > BTN_FILL_STEP) g -= BTN_FILL_STEP; if (b > BTN_FILL_STEP) b -= BTN_FILL_STEP; fill(r,g,b); //fill } } else { //UNIFORM PAINT rect(vDrawRect.left,vDrawRect.top,vDrawRect.right - vDrawRect.left,vDrawRect.bottom - vDrawRect.top); } if ((pButton.attributes & BUTTON_ATTRIBUTE_HASBORDER)> 0){ //finally draw border stroke(180,180,180); noFill(); rect(vDrawRect.left,vDrawRect.top,vDrawRect.right - vDrawRect.left,vDrawRect.bottom - vDrawRect.top); } //last draw the text r = (pButton.forecolor & 0x00FF0000) >> 16; g = (pButton.forecolor & 0x0000FF00) >> 8; b = (pButton.forecolor & 0x000000FF); stroke(r,g,b); noFill(); text(pButton.label,vDrawRect.left+4, vDrawRect.top + ((vDrawRect.bottom - vDrawRect.top) /2)); //print the character string }
void setup() { size(700, 500); colorMode(COLOR_MODE_HSB, width, 100, 100, 100); strokeWeight(0.2); noFill(); //smooth(); background(width); //frameRate(100); radius = 10; thickness = 0.5; x = 2; y = height / 2; z = height / 2; t = height / 2; amp = 5; angle = 0; i = 0; }
//highlights a image button void highlightARDTButtonImage (ARDTButton& pButton){ noFill(); stroke(200); rect(pButton.rect.left, pButton.rect.top, BUTTON_SPACE, BUTTON_SPACE); stroke(150); rect(pButton.rect.left+1, pButton.rect.top+1, BUTTON_SPACE-2, BUTTON_SPACE-2); stroke(100); rect(pButton.rect.left+2, pButton.rect.top+2, BUTTON_SPACE-4, BUTTON_SPACE-4); delay(100); stroke(0); rect(pButton.rect.left, pButton.rect.top, BUTTON_SPACE, BUTTON_SPACE); rect(pButton.rect.left+1, pButton.rect.top+1, BUTTON_SPACE-2, BUTTON_SPACE-2); rect(pButton.rect.left+2, pButton.rect.top+2, BUTTON_SPACE-4, BUTTON_SPACE-4); }