}
private boolean editing = false;
+ private long lastClick = 0;
+ private float doubleClickMode = 0;
+ private float doubleClickX = 0;
protected void onMousePressed(float mx, float my) {
+ long now = millis();
float handleLeft = 4 + parameter.getValuef() * (w-8-handleWidth);
if (mx >= handleLeft && mx < handleLeft + handleWidth) {
editing = true;
+ } else {
+ if ((now - lastClick) < 300 && abs(mx - doubleClickX) < 3) {
+ parameter.setValue(doubleClickMode);
+ }
+ doubleClickX = mx;
+ if (mx < w*.25) {
+ doubleClickMode = 0;
+ } else if (mx > w*.75) {
+ doubleClickMode = 1;
+ } else {
+ doubleClickMode = 0.5;
+ }
}
+ lastClick = now;
}
protected void onMouseReleased(float mx, float my) {
itemColor = pendingColor;
} else {
labelColor = #000000;
- itemColor = even ? #666666 : #777777;
+ itemColor = #707070;
}
+ float factor = even ? .92 : 1.08;
+ itemColor = color(hue(itemColor), saturation(itemColor), min(100, factor*brightness(itemColor)));
+
pg.noStroke();
pg.fill(itemColor);
pg.rect(0, yp, w, itemHeight);
if (scrollOffset + index < items.size()) {
pressedItem = items.get(scrollOffset + index);
pressedItem.onMousePressed();
- pressedItem.select();
redraw();
}
}
public boolean isSelected();
public boolean isPending();
public String getLabel();
- public void select();
public void onMousePressed();
public void onMouseReleased();
}
}
protected void onDraw(PGraphics pg) {
- pg.stroke(#999999);
+ pg.stroke(#666666);
pg.fill(#222222);
pg.rect(0, 0, w, h);
pg.textAlign(CENTER, CENTER);