mirror of
https://github.com/pfalstad/circuitjs1.git
synced 2026-03-23 08:46:56 +01:00
option to rotate chip (flip x/y) (#624)
This commit is contained in:
@@ -53,19 +53,13 @@ class ADCElm extends ChipElm {
|
||||
int getVoltageSourceCount() { return bits; }
|
||||
int getPostCount() { return bits+2; }
|
||||
int getDumpType() { return 167; }
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n < 2)
|
||||
return super.getEditInfo(n);
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Bits", bits, 1, 1).setDimensionless();
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n < 2) {
|
||||
super.setEditValue(n, ei);
|
||||
return;
|
||||
}
|
||||
if (n == 2 && ei.value >= 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value >= 2) {
|
||||
bits = (int)ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
|
||||
@@ -177,7 +177,7 @@ class CCVSElm extends VCCSElm {
|
||||
}
|
||||
}
|
||||
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 1) {
|
||||
// make sure number of inputs is even
|
||||
if (ei.value < 0 || ei.value > 8 || (ei.value % 2) == 1)
|
||||
@@ -187,7 +187,7 @@ class CCVSElm extends VCCSElm {
|
||||
allocNodes();
|
||||
setPoints();
|
||||
} else
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
|
||||
void setParentList(Vector<CircuitElm> elmList) {
|
||||
|
||||
@@ -23,8 +23,9 @@ abstract class ChipElm extends CircuitElm {
|
||||
int csize, cspc, cspc2;
|
||||
int bits;
|
||||
static final int FLAG_SMALL = 1;
|
||||
static final int FLAG_FLIP_X = 1024;
|
||||
static final int FLAG_FLIP_Y = 2048;
|
||||
static final int FLAG_FLIP_X = 1<<10;
|
||||
static final int FLAG_FLIP_Y = 1<<11;
|
||||
static final int FLAG_FLIP_XY = 1<<12;
|
||||
public ChipElm(int xx, int yy) {
|
||||
super(xx, yy);
|
||||
if (needsBits())
|
||||
@@ -114,10 +115,9 @@ abstract class ChipElm extends CircuitElm {
|
||||
int asc=(int)g.currentFontSize;
|
||||
int tx;
|
||||
// put text closer to edge if it's on left or right.
|
||||
// we could do extra work to handle flipped case, but we don't
|
||||
if (p.side == SIDE_W && !isFlippedX())
|
||||
if (p.side == flippedXSide(SIDE_W))
|
||||
tx = p.textloc.x-(cspc-5);
|
||||
else if (p.side == SIDE_E && !isFlippedX())
|
||||
else if (p.side == flippedXSide(SIDE_E))
|
||||
tx = p.textloc.x+(cspc-5)-sw;
|
||||
else
|
||||
tx = p.textloc.x-sw/2;
|
||||
@@ -139,7 +139,7 @@ abstract class ChipElm extends CircuitElm {
|
||||
int rectPointsX[], rectPointsY[];
|
||||
int clockPointsX[], clockPointsY[];
|
||||
Pin pins[];
|
||||
int sizeX, sizeY;
|
||||
int sizeX, sizeY, flippedSizeX, flippedSizeY;
|
||||
boolean lastClock;
|
||||
void drag(int xx, int yy) {
|
||||
yy = sim.snapGrid(yy);
|
||||
@@ -155,18 +155,23 @@ abstract class ChipElm extends CircuitElm {
|
||||
clockPointsX = null;
|
||||
if (x2-x > sizeX*cspc2 && this == sim.dragElm)
|
||||
setSize(2);
|
||||
int hs = cspc;
|
||||
int x0 = x+cspc2; int y0 = y;
|
||||
int xr = x0-cspc;
|
||||
int yr = y0-cspc;
|
||||
int xs = sizeX*cspc2;
|
||||
int ys = sizeY*cspc2;
|
||||
rectPointsX = new int[] { xr, xr+xs, xr+xs, xr };
|
||||
rectPointsY = new int[] { yr, yr, yr+ys, yr+ys };
|
||||
setBbox(xr, yr, rectPointsX[2], rectPointsY[2]);
|
||||
flippedSizeX = sizeX;
|
||||
flippedSizeY = sizeY;
|
||||
if (isFlippedXY()) {
|
||||
flippedSizeX = sizeY;
|
||||
flippedSizeY = sizeX;
|
||||
}
|
||||
int xs = flippedSizeX*cspc2;
|
||||
int ys = flippedSizeY*cspc2;
|
||||
int i;
|
||||
for (i = 0; i != getPostCount(); i++) {
|
||||
Pin p = pins[i];
|
||||
p.side = p.side0;
|
||||
if ((flags & FLAG_FLIP_XY) != 0)
|
||||
p.side = sideFlipXY[p.side];
|
||||
switch (p.side) {
|
||||
case SIDE_N: p.setPoint(x0, y0, 1, 0, 0, -1, 0, 0); break;
|
||||
case SIDE_S: p.setPoint(x0, y0, 1, 0, 0, 1, 0, ys-cspc2);break;
|
||||
@@ -174,6 +179,9 @@ abstract class ChipElm extends CircuitElm {
|
||||
case SIDE_E: p.setPoint(x0, y0, 0, 1, 1, 0, xs-cspc2, 0);break;
|
||||
}
|
||||
}
|
||||
rectPointsX = new int[] { xr, xr+xs, xr+xs, xr };
|
||||
rectPointsY = new int[] { yr, yr, yr+ys, yr+ys };
|
||||
setBbox(xr, yr, rectPointsX[2], rectPointsY[2]);
|
||||
}
|
||||
|
||||
// see if we can move pin to position xp, yp, and return the new position
|
||||
@@ -324,7 +332,7 @@ abstract class ChipElm extends CircuitElm {
|
||||
return pins[n].current;
|
||||
}
|
||||
|
||||
boolean isFlippedX() { return (flags & FLAG_FLIP_X) != 0; }
|
||||
boolean isFlippedXY() { return (flags & FLAG_FLIP_XY) != 0; }
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
@@ -337,7 +345,12 @@ abstract class ChipElm extends CircuitElm {
|
||||
ei.checkbox = new Checkbox("Flip Y", (flags & FLAG_FLIP_Y) != 0);
|
||||
return ei;
|
||||
}
|
||||
return null;
|
||||
if (n == 2) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Flip X/Y", (flags & FLAG_FLIP_XY) != 0);
|
||||
return ei;
|
||||
}
|
||||
return getChipEditInfo(n-3);
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
@@ -348,8 +361,17 @@ abstract class ChipElm extends CircuitElm {
|
||||
flags = ei.changeFlag(flags, FLAG_FLIP_Y);
|
||||
setPoints();
|
||||
}
|
||||
if (n == 2) {
|
||||
flags = ei.changeFlag(flags, FLAG_FLIP_XY);
|
||||
setPoints();
|
||||
}
|
||||
if (n >= 3)
|
||||
setChipEditValue(n-3, ei);
|
||||
}
|
||||
|
||||
public EditInfo getChipEditInfo(int n) { return null; }
|
||||
public void setChipEditValue(int n, EditInfo ei) { }
|
||||
|
||||
static String writeBits(boolean[] data) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int integer = 0;
|
||||
@@ -393,28 +415,39 @@ abstract class ChipElm extends CircuitElm {
|
||||
static final int SIDE_W = 2;
|
||||
static final int SIDE_E = 3;
|
||||
|
||||
static final int sideFlipXY[] = { SIDE_W, SIDE_E, SIDE_N, SIDE_S };
|
||||
|
||||
int flippedXSide(int s) {
|
||||
if ((flags & FLAG_FLIP_X) == 0)
|
||||
return s;
|
||||
if (s == SIDE_W)
|
||||
return SIDE_E;
|
||||
if (s == SIDE_E)
|
||||
return SIDE_W;
|
||||
return s;
|
||||
}
|
||||
|
||||
class Pin {
|
||||
Pin(int p, int s, String t) {
|
||||
pos = p; side = s; text = t;
|
||||
pos = p; side0 = side = s; text = t;
|
||||
}
|
||||
Point post, stub;
|
||||
Point textloc;
|
||||
int pos, side, voltSource, bubbleX, bubbleY;
|
||||
int pos, side, side0, voltSource, bubbleX, bubbleY;
|
||||
String text;
|
||||
boolean lineOver, bubble, clock, output, value, state, selected;
|
||||
double curcount, current;
|
||||
void setPoint(int px, int py, int dx, int dy, int dax, int day,
|
||||
int sx, int sy) {
|
||||
void setPoint(int px, int py, int dx, int dy, int dax, int day, int sx, int sy) {
|
||||
if ((flags & FLAG_FLIP_X) != 0) {
|
||||
dx = -dx;
|
||||
dax = -dax;
|
||||
px += cspc2*(sizeX-1);
|
||||
px += cspc2*(flippedSizeX-1);
|
||||
sx = -sx;
|
||||
}
|
||||
if ((flags & FLAG_FLIP_Y) != 0) {
|
||||
dy = -dy;
|
||||
day = -day;
|
||||
py += cspc2*(sizeY-1);
|
||||
py += cspc2*(flippedSizeY-1);
|
||||
sy = -sy;
|
||||
}
|
||||
int xa = px+cspc2*dx*pos+sx;
|
||||
|
||||
@@ -81,23 +81,22 @@ package com.lushprojects.circuitjs1.client;
|
||||
int getPostCount() {
|
||||
return bits*2+6;
|
||||
}
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Bits", bits, 1, 1).setDimensionless();
|
||||
if (n == 3)
|
||||
if (n == 1)
|
||||
return new EditInfo("Modulus", modulus, 1, 1).setDimensionless();
|
||||
return super.getEditInfo(n);
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2 && ei.value >= 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value >= 2) {
|
||||
bits = (int)ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
allocNodes();
|
||||
}
|
||||
if (n == 3)
|
||||
if (n == 1)
|
||||
modulus = (int)ei.value;
|
||||
super.setEditValue(n, ei);
|
||||
}
|
||||
int getVoltageSourceCount() { return bits+1; }
|
||||
|
||||
|
||||
@@ -72,71 +72,47 @@ package com.lushprojects.circuitjs1.client;
|
||||
int getPostCount() {
|
||||
return (hasUpDown()) ? bits+3 : bits+2;
|
||||
}
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Flip X", (flags & FLAG_FLIP_X) != 0);
|
||||
return ei;
|
||||
}
|
||||
if (n == 1) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Flip Y", (flags & FLAG_FLIP_Y) != 0);
|
||||
return ei;
|
||||
}
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Invert reset pin",invertreset);
|
||||
return ei;
|
||||
}
|
||||
if (n == 3)
|
||||
if (n == 1)
|
||||
return new EditInfo("# of Bits", bits, 1, 1).setDimensionless();
|
||||
if (n == 4)
|
||||
if (n == 2)
|
||||
return new EditInfo("Modulus", modulus, 1, 1).setDimensionless();
|
||||
if (n == 5) {
|
||||
if (n == 3) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Up/Down Pin", hasUpDown());
|
||||
return ei;
|
||||
}
|
||||
if (n == 6) {
|
||||
if (n == 4) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Negative Edge Triggered", negativeEdgeTriggered());
|
||||
return ei;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
if (ei.checkbox.getState())
|
||||
flags |= FLAG_FLIP_X;
|
||||
else
|
||||
flags &= ~FLAG_FLIP_X;
|
||||
setPoints();
|
||||
}
|
||||
if (n == 1) {
|
||||
if (ei.checkbox.getState())
|
||||
flags |= FLAG_FLIP_Y;
|
||||
else
|
||||
flags &= ~FLAG_FLIP_Y;
|
||||
setPoints();
|
||||
}
|
||||
if (n == 2) {
|
||||
invertreset = ei.checkbox.getState();
|
||||
setupPins();
|
||||
setPoints();
|
||||
}
|
||||
if (n == 3 && ei.value >= 3) {
|
||||
if (n == 1 && ei.value >= 3) {
|
||||
bits = (int)ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
}
|
||||
if (n == 4)
|
||||
if (n == 2)
|
||||
modulus = (int)ei.value;
|
||||
if (n == 5) {
|
||||
if (n == 3) {
|
||||
flags = ei.changeFlag(flags, FLAG_UP_DOWN);
|
||||
setupPins();
|
||||
setPoints();
|
||||
}
|
||||
if (n == 6) {
|
||||
if (n == 4) {
|
||||
flags = ei.changeFlag(flags, FLAG_NEGATIVE_EDGE);
|
||||
setupPins();
|
||||
setPoints();
|
||||
|
||||
@@ -88,7 +88,7 @@ public class CustomCompositeElm extends CompositeElm {
|
||||
chip = new CustomCompositeChipElm(x, y);
|
||||
chip.x2 = x2;
|
||||
chip.y2 = y2;
|
||||
chip.flags = (flags & (ChipElm.FLAG_FLIP_X | ChipElm.FLAG_FLIP_Y));
|
||||
chip.flags = (flags & (ChipElm.FLAG_FLIP_X | ChipElm.FLAG_FLIP_Y | ChipElm.FLAG_FLIP_XY));
|
||||
|
||||
chip.sizeX = model.sizeX;
|
||||
chip.sizeY = model.sizeY;
|
||||
@@ -157,14 +157,19 @@ public class CustomCompositeElm extends CompositeElm {
|
||||
ei.checkbox = new Checkbox("Flip Y", (flags & ChipElm.FLAG_FLIP_Y) != 0);
|
||||
return ei;
|
||||
}
|
||||
if (n == 4 && model.canLoadModelCircuit()) {
|
||||
if (n == 4) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Flip X/Y", (flags & ChipElm.FLAG_FLIP_XY) != 0);
|
||||
return ei;
|
||||
}
|
||||
if (n == 5 && model.canLoadModelCircuit()) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.button = new Button(sim.LS("Load Model Circuit"));
|
||||
return ei;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
model = models.get(ei.choice.getSelectedIndex());
|
||||
@@ -194,6 +199,10 @@ public class CustomCompositeElm extends CompositeElm {
|
||||
setPoints();
|
||||
}
|
||||
if (n == 4) {
|
||||
flags = ei.changeFlag(flags, ChipElm.FLAG_FLIP_XY);
|
||||
setPoints();
|
||||
}
|
||||
if (n == 5) {
|
||||
sim.readCircuit(model.modelCircuit);
|
||||
sim.editDialog.closeDialog();
|
||||
}
|
||||
|
||||
@@ -216,23 +216,23 @@ public class CustomLogicElm extends ChipElm {
|
||||
}
|
||||
}
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("Model Name", 0, -1, -1);
|
||||
ei.text = modelName;
|
||||
ei.disallowSliders();
|
||||
return ei;
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.button = new Button(sim.LS("Edit Model"));
|
||||
return ei;
|
||||
}
|
||||
return super.getEditInfo(n);
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
modelName = lastModelName = ei.textf.getText();
|
||||
model = CustomLogicModel.getModelWithNameOrCopy(modelName, model);
|
||||
setupPins();
|
||||
@@ -240,15 +240,13 @@ public class CustomLogicElm extends ChipElm {
|
||||
setPoints();
|
||||
return;
|
||||
}
|
||||
if (n == 3)
|
||||
if (n == 1)
|
||||
{
|
||||
EditDialog editDialog = new EditDialog(model, sim);
|
||||
CirSim.customLogicEditDialog = editDialog;
|
||||
editDialog.show();
|
||||
return;
|
||||
}
|
||||
|
||||
super.setEditValue(n, ei);
|
||||
}
|
||||
|
||||
int getDumpType() { return 208; }
|
||||
|
||||
@@ -52,19 +52,13 @@ class DACElm extends ChipElm {
|
||||
int getVoltageSourceCount() { return 1; }
|
||||
int getPostCount() { return bits+2; }
|
||||
int getDumpType() { return 166; }
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n < 2)
|
||||
return super.getEditInfo(n);
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Bits", bits, 1, 1).setDimensionless();
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n < 2) {
|
||||
super.setEditValue(n, ei);
|
||||
return;
|
||||
}
|
||||
if (n == 2 && ei.value >= 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value >= 2) {
|
||||
bits = (int)ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
|
||||
@@ -89,26 +89,26 @@ package com.lushprojects.circuitjs1.client;
|
||||
lastClock = pins[3].value;
|
||||
}
|
||||
int getDumpType() { return 155; }
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Reset Pin", hasReset());
|
||||
return ei;
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Set Pin", hasSet());
|
||||
return ei;
|
||||
}
|
||||
if (n == 4) {
|
||||
if (n == 2) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Invert Set/Reset", invertSetReset());
|
||||
return ei;
|
||||
}
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
if (ei.checkbox.getState())
|
||||
flags |= FLAG_RESET;
|
||||
else
|
||||
@@ -117,7 +117,7 @@ package com.lushprojects.circuitjs1.client;
|
||||
allocNodes();
|
||||
setPoints();
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
if (ei.checkbox.getState())
|
||||
flags |= FLAG_SET;
|
||||
else
|
||||
@@ -126,11 +126,11 @@ package com.lushprojects.circuitjs1.client;
|
||||
allocNodes();
|
||||
setPoints();
|
||||
}
|
||||
if (n == 4) {
|
||||
if (n == 2) {
|
||||
flags = ei.changeFlag(flags, FLAG_INVERT_SET_RESET);
|
||||
setupPins();
|
||||
setPoints();
|
||||
}
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,19 +74,13 @@ package com.lushprojects.circuitjs1.client;
|
||||
pins[val].value = pins[qPin].value;
|
||||
}
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n < 2)
|
||||
return super.getEditInfo(n);
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Select Bits", selectBitCount).setDimensionless();
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n < 2) {
|
||||
super.setEditValue(n, ei);
|
||||
return;
|
||||
}
|
||||
if (n == 2 && ei.value >= 1 && ei.value <= 6) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value >= 1 && ei.value <= 6) {
|
||||
selectBitCount = (int)ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
|
||||
@@ -71,20 +71,20 @@ class DecimalDisplayElm extends ChipElm {
|
||||
int getPostCount() { return bitCount; }
|
||||
int getDumpType() { return 419; }
|
||||
int getVoltageSourceCount() { return 0; }
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Bits", bitCount, 1, 8).
|
||||
setDimensionless();
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2 && ei.value >= 1 && ei.value <= 16) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value >= 1 && ei.value <= 16) {
|
||||
bitCount = (int) ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
return;
|
||||
}
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -75,13 +75,13 @@ package com.lushprojects.circuitjs1.client;
|
||||
int getDumpType() { return 196; }
|
||||
boolean needsBits() { return (flags & FLAG_BITS) != 0; }
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Bits", bits, 1, 1).setDimensionless();
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2 && ei.value >= 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value > 0) {
|
||||
bits = (int)ei.value;
|
||||
flags |= FLAG_BITS;
|
||||
setupPins();
|
||||
@@ -89,7 +89,7 @@ package com.lushprojects.circuitjs1.client;
|
||||
allocNodes();
|
||||
return;
|
||||
}
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -93,31 +93,31 @@ package com.lushprojects.circuitjs1.client;
|
||||
}
|
||||
int getDumpType() { return 156; }
|
||||
|
||||
public EditInfo getEditInfo(int n){
|
||||
if (n == 2){
|
||||
public EditInfo getChipEditInfo(int n){
|
||||
if (n == 0){
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Reset Pin", hasReset());
|
||||
return ei;
|
||||
}
|
||||
|
||||
if (n == 3){
|
||||
if (n == 1){
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Positive Edge Triggered", positiveEdgeTriggered());
|
||||
return ei;
|
||||
}
|
||||
|
||||
if (n == 4){
|
||||
if (n == 2){
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Invert Reset", invertReset());
|
||||
return ei;
|
||||
}
|
||||
|
||||
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
|
||||
public void setEditValue(int n, EditInfo ei){
|
||||
if (n == 2){
|
||||
public void setChipEditValue(int n, EditInfo ei){
|
||||
if (n == 0){
|
||||
if(ei.checkbox.getState()){
|
||||
flags |= FLAG_RESET;
|
||||
} else {
|
||||
@@ -128,16 +128,16 @@ package com.lushprojects.circuitjs1.client;
|
||||
allocNodes();
|
||||
setPoints();
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
flags = ei.changeFlag(flags, FLAG_POSITIVE_EDGE);
|
||||
pins[1].bubble = !positiveEdgeTriggered();
|
||||
}
|
||||
if (n == 4) {
|
||||
if (n == 2) {
|
||||
flags = ei.changeFlag(flags, FLAG_INVERT_RESET);
|
||||
setupPins();
|
||||
setPoints();
|
||||
}
|
||||
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,10 @@ package com.lushprojects.circuitjs1.client;
|
||||
for (iy = 0; iy != sizeY; iy++) {
|
||||
int i = ix+iy*sizeX;
|
||||
setColor(g, i);
|
||||
g.fillOval(pins[ix].post.x-cspc/2, pins[iy+sizeX].post.y-cspc/2, cspc, cspc);
|
||||
if (isFlippedXY())
|
||||
g.fillOval(pins[iy+sizeX].post.x-cspc/2, pins[ix].post.y-cspc/2, cspc, cspc);
|
||||
else
|
||||
g.fillOval(pins[ix].post.x-cspc/2, pins[iy+sizeX].post.y-cspc/2, cspc, cspc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,30 +146,29 @@ package com.lushprojects.circuitjs1.client;
|
||||
// this is true but it causes strange behavior with unconnected pins so we don't do it
|
||||
// boolean getConnection(int n1, int n2) { return true; }
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("Grid Width", sizeX).setDimensionless();
|
||||
if (n == 3)
|
||||
return new EditInfo("Grid Height", sizeY).setDimensionless();
|
||||
return super.getEditInfo(n);
|
||||
if (n == 1)
|
||||
return new EditInfo("Grid Height", sizeY).setDimensionless();
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2 && ei.value >= 2 && ei.value <= 16) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value >= 2 && ei.value <= 16) {
|
||||
sizeX = (int)ei.value;
|
||||
allocNodes();
|
||||
setupPins();
|
||||
setPoints();
|
||||
return;
|
||||
}
|
||||
if (n == 3 && ei.value >= 2 && ei.value <= 16) {
|
||||
if (n == 1 && ei.value >= 2 && ei.value <= 16) {
|
||||
sizeY = (int)ei.value;
|
||||
allocNodes();
|
||||
setupPins();
|
||||
setPoints();
|
||||
return;
|
||||
}
|
||||
super.setEditValue(n, ei);
|
||||
}
|
||||
|
||||
// default getInfo doesn't work because the pins are unlabeled
|
||||
|
||||
@@ -65,19 +65,13 @@ class LatchElm extends ChipElm {
|
||||
int getVoltageSourceCount() { return bits; }
|
||||
int getPostCount() { return bits*2+1; }
|
||||
int getDumpType() { return 168; }
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n < 2)
|
||||
return super.getEditInfo(n);
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Bits", bits, 1, 1).setDimensionless();
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n < 2) {
|
||||
super.setEditValue(n, ei);
|
||||
return;
|
||||
}
|
||||
if (n == 2 && ei.value >= 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value >= 2) {
|
||||
bits = (int)ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
|
||||
@@ -84,25 +84,25 @@ package com.lushprojects.circuitjs1.client;
|
||||
return super.dump() + " " + retriggerable + " " + delay;
|
||||
}
|
||||
int getDumpType() { return 194; }
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox=new Checkbox("Retriggerable",retriggerable);
|
||||
return ei;
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
EditInfo ei = new EditInfo("Period (s)",delay, 0.001,0.1);
|
||||
return ei;
|
||||
}
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
retriggerable=ei.checkbox.getState();
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
delay=ei.value;
|
||||
}
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,21 +82,21 @@ package com.lushprojects.circuitjs1.client;
|
||||
|
||||
int getDumpType() { return 184; }
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Select Bits", selectBitCount, 1, 8).
|
||||
setDimensionless();
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2 && ei.value >= 1 && ei.value <= 6) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value >= 1 && ei.value <= 6) {
|
||||
selectBitCount = (int) ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
return;
|
||||
}
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -128,19 +128,13 @@ class PisoShiftElm extends ChipElm {
|
||||
}
|
||||
}
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n < 2)
|
||||
return super.getEditInfo(n);
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Bits", bits, 1, 1).setDimensionless();
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n < 2) {
|
||||
super.setEditValue(n, ei);
|
||||
return;
|
||||
}
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
if (ei.value != bits && ei.value >= 1) {
|
||||
bits = (int)ei.value;
|
||||
data = new boolean[bits];
|
||||
|
||||
@@ -99,24 +99,18 @@ package com.lushprojects.circuitjs1.client;
|
||||
}
|
||||
lastClock = pins[0].value;
|
||||
}
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n < 2)
|
||||
return super.getEditInfo(n);
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Invert reset pin", hasInvertReset());
|
||||
return ei;
|
||||
}
|
||||
if (n == 3)
|
||||
if (n == 1)
|
||||
return new EditInfo("# of Bits", bits, 1, 1).setDimensionless();
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n < 2) {
|
||||
super.setEditValue(n, ei);
|
||||
return;
|
||||
}
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
if (ei.checkbox.getState())
|
||||
flags &= ~FLAG_RESET_HIGH;
|
||||
else
|
||||
@@ -125,7 +119,7 @@ package com.lushprojects.circuitjs1.client;
|
||||
setPoints();
|
||||
return;
|
||||
}
|
||||
if (n == 3 && ei.value >= 2) {
|
||||
if (n == 1 && ei.value >= 2) {
|
||||
bits = (int)ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
|
||||
@@ -114,12 +114,12 @@ import com.google.gwt.user.client.ui.TextArea;
|
||||
int getPostCount() {
|
||||
return 2 + addressBits + dataBits;
|
||||
}
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Address Bits", addressBits, 1, 1).setDimensionless();
|
||||
if (n == 3)
|
||||
if (n == 1)
|
||||
return new EditInfo("# of Data Bits", dataBits, 1, 1).setDimensionless();
|
||||
if (n == 4) {
|
||||
if (n == 2) {
|
||||
EditInfo ei = new EditInfo("Contents", 0);
|
||||
ei.textArea = new TextArea();
|
||||
ei.textArea.setVisibleLines(5);
|
||||
@@ -151,30 +151,28 @@ import com.google.gwt.user.client.ui.TextArea;
|
||||
ei.textArea.setText(s);
|
||||
return ei;
|
||||
}
|
||||
if (n == 5 && SRAMLoadFile.isSupported()) {
|
||||
if (n == 3 && SRAMLoadFile.isSupported()) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.loadFile = new SRAMLoadFile();
|
||||
ei.button = new Button("Load Contents From File");
|
||||
ei.newDialog = true;
|
||||
return ei;
|
||||
}
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n < 2)
|
||||
super.setEditValue(n, ei);
|
||||
if (n == 2 && ei.value >= 2 && ei.value <= 16) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0 && ei.value >= 2 && ei.value <= 16) {
|
||||
addressBits = (int)ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
}
|
||||
if (n == 3 && ei.value >= 2 && ei.value <= 16) {
|
||||
if (n == 1 && ei.value >= 2 && ei.value <= 16) {
|
||||
dataBits = (int)ei.value;
|
||||
setupPins();
|
||||
setPoints();
|
||||
}
|
||||
if (n == 4) {
|
||||
if (n == 2) {
|
||||
String s = ei.textArea.getText();
|
||||
String lines[] = s.split("\n");
|
||||
int i;
|
||||
|
||||
@@ -145,15 +145,13 @@ class SeqGenElm extends ChipElm {
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n < 2)
|
||||
return super.getEditInfo(n);
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Play Once", hasPlayOnce());
|
||||
return ei;
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
EditInfo ei = new EditInfo("Sequence", 0, -1, -1);
|
||||
ei.textArea = new TextArea();
|
||||
ei.textArea.setVisibleLines(5);
|
||||
@@ -165,16 +163,12 @@ class SeqGenElm extends ChipElm {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n < 2) {
|
||||
super.setEditValue(n, ei);
|
||||
return;
|
||||
}
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
flags = ei.changeFlag(flags, FLAG_PLAY_ONCE);
|
||||
return;
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
String s = ei.textArea.getText();
|
||||
|
||||
// First count the number of bits so we can initialize the data array
|
||||
|
||||
@@ -107,29 +107,29 @@ package com.lushprojects.circuitjs1.client;
|
||||
}
|
||||
}
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Blank Pin", hasBlank());
|
||||
return ei;
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Blank on 1111", blankOnF());
|
||||
return ei;
|
||||
}
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
flags = ei.changeFlag(flags, FLAG_ENABLE);
|
||||
setupPins();
|
||||
setPoints();
|
||||
return;
|
||||
}
|
||||
if (n == 3)
|
||||
if (n == 1)
|
||||
flags = ei.changeFlag(flags, FLAG_BLANK_F);
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
|
||||
int getDumpType() { return 197; }
|
||||
|
||||
@@ -294,8 +294,8 @@ package com.lushprojects.circuitjs1.client;
|
||||
int getVoltageSourceCount() { return 0; }
|
||||
int getDumpType() { return 157; }
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("Segments", 0, -1, -1);
|
||||
ei.choice = new Choice();
|
||||
ei.choice.add("7 Segment");
|
||||
@@ -304,7 +304,7 @@ package com.lushprojects.circuitjs1.client;
|
||||
ei.choice.select(baseSegmentCount == 7 ? 0 : baseSegmentCount == 14 ? 1 : 2);
|
||||
return ei;
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
EditInfo ei = new EditInfo("Extra Segment", 0, -1, -1);
|
||||
ei.choice = new Choice();
|
||||
ei.choice.add("None");
|
||||
@@ -313,7 +313,7 @@ package com.lushprojects.circuitjs1.client;
|
||||
ei.choice.select(extraSegment);
|
||||
return ei;
|
||||
}
|
||||
if (n == 4) {
|
||||
if (n == 2) {
|
||||
EditInfo ei = new EditInfo("Diodes", 0, -1, -1);
|
||||
ei.choice = new Choice();
|
||||
ei.choice.add("Common Cathode");
|
||||
@@ -322,28 +322,28 @@ package com.lushprojects.circuitjs1.client;
|
||||
ei.choice.select(diodeDirection == 1 ? 0 : diodeDirection == -1 ? 1 : 2);
|
||||
return ei;
|
||||
}
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
int ix = ei.choice.getSelectedIndex();
|
||||
baseSegmentCount = (ix == 0) ? 7 : (ix == 1) ? 14 : 16;
|
||||
setPinCount();
|
||||
return;
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
extraSegment = ei.choice.getSelectedIndex();
|
||||
setPinCount();
|
||||
return;
|
||||
}
|
||||
if (n == 4) {
|
||||
if (n == 2) {
|
||||
int ix = ei.choice.getSelectedIndex();
|
||||
diodeDirection = (ix == 0) ? 1 : (ix == 1) ? -1 : 0;
|
||||
setPinCount();
|
||||
return;
|
||||
}
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
|
||||
void setPinCount() {
|
||||
|
||||
@@ -84,19 +84,13 @@ class SipoShiftElm extends ChipElm {
|
||||
}
|
||||
}
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n < 2)
|
||||
return super.getEditInfo(n);
|
||||
if (n == 2)
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("# of Bits", bits, 1, 1).setDimensionless();
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n < 2) {
|
||||
super.setEditValue(n, ei);
|
||||
return;
|
||||
}
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
if (ei.value != bits && ei.value >= 1) {
|
||||
bits = (int)ei.value;
|
||||
setupPins();
|
||||
|
||||
@@ -82,21 +82,21 @@ package com.lushprojects.circuitjs1.client;
|
||||
lastClock = pins[3].value;
|
||||
}
|
||||
int getDumpType() { return 193; }
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Reset Pin", hasReset());
|
||||
return ei;
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
EditInfo ei = new EditInfo("", 0, -1, -1);
|
||||
ei.checkbox = new Checkbox("Set Pin", hasSet());
|
||||
return ei;
|
||||
}
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
if (ei.checkbox.getState())
|
||||
flags |= FLAG_RESET;
|
||||
else
|
||||
@@ -105,7 +105,7 @@ package com.lushprojects.circuitjs1.client;
|
||||
allocNodes();
|
||||
setPoints();
|
||||
}
|
||||
if (n == 3) {
|
||||
if (n == 1) {
|
||||
if (ei.checkbox.getState())
|
||||
flags |= FLAG_SET;
|
||||
else
|
||||
@@ -114,6 +114,6 @@ package com.lushprojects.circuitjs1.client;
|
||||
allocNodes();
|
||||
setPoints();
|
||||
}
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ package com.lushprojects.circuitjs1.client;
|
||||
int getVoltageSourceCount() { return 0; }
|
||||
int getDumpType() { return 414; }
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0)
|
||||
return new EditInfo("On Delay (s)", onDelay, 0, 0);
|
||||
if (n == 1)
|
||||
@@ -105,7 +105,7 @@ package com.lushprojects.circuitjs1.client;
|
||||
return new EditInfo("Off Resistance (ohms)", offResistance, 0, 0);
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0)
|
||||
onDelay = ei.value;
|
||||
if (n == 1)
|
||||
|
||||
@@ -114,22 +114,22 @@ class TimerElm extends ChipElm {
|
||||
int getPostCount() { return hasGroundPin() ? 8 : hasReset() ? 7 : 6; }
|
||||
int getVoltageSourceCount() { return 0; }
|
||||
int getDumpType() { return 165; }
|
||||
public EditInfo getEditInfo(int n) {
|
||||
if (n == 2) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo("", 0, 0, 0);
|
||||
ei.checkbox = new Checkbox("Ground Pin", hasGroundPin());
|
||||
return ei;
|
||||
}
|
||||
return super.getEditInfo(n);
|
||||
return super.getChipEditInfo(n);
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
if (n == 2) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
flags = ei.changeFlag(flags, FLAG_GROUND);
|
||||
allocNodes();
|
||||
setPoints();
|
||||
return;
|
||||
}
|
||||
super.setEditValue(n, ei);
|
||||
super.setChipEditValue(n, ei);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -166,7 +166,7 @@ class VCCSElm extends ChipElm {
|
||||
return false;
|
||||
}
|
||||
|
||||
public EditInfo getEditInfo(int n) {
|
||||
public EditInfo getChipEditInfo(int n) {
|
||||
if (n == 0) {
|
||||
EditInfo ei = new EditInfo(EditInfo.makeLink("customfunction.html", "Output Function"), 0, -1, -1);
|
||||
ei.text = exprString;
|
||||
@@ -178,7 +178,7 @@ class VCCSElm extends ChipElm {
|
||||
setDimensionless();
|
||||
return null;
|
||||
}
|
||||
public void setEditValue(int n, EditInfo ei) {
|
||||
public void setChipEditValue(int n, EditInfo ei) {
|
||||
if (n == 0) {
|
||||
exprString = ei.textf.getText();
|
||||
parseExpr();
|
||||
|
||||
Reference in New Issue
Block a user