diff --git a/src/main/java/de/neemann/digital/draw/elements/VisualElement.java b/src/main/java/de/neemann/digital/draw/elements/VisualElement.java
index bc3ccb344..14e50079d 100644
--- a/src/main/java/de/neemann/digital/draw/elements/VisualElement.java
+++ b/src/main/java/de/neemann/digital/draw/elements/VisualElement.java
@@ -228,7 +228,7 @@ public class VisualElement implements Drawable, Movable, AttributeListener {
Graphic gr = new GraphicTransform(graphic, getTransform());
Shape shape = getShape();
shape.drawTo(gr, highLight);
- if (!graphic.isFlagSet(GraphicSVG.NO_PIN_MARKER))
+ if (!graphic.isFlagSet(Graphic.Flag.noPinMarker))
for (Pin p : shape.getPins())
gr.drawCircle(p.getPos().add(-PIN, -PIN), p.getPos().add(PIN, PIN),
p.getDirection() == Pin.Direction.input ? Style.WIRE : Style.WIRE_OUT);
diff --git a/src/main/java/de/neemann/digital/draw/graphics/Graphic.java b/src/main/java/de/neemann/digital/draw/graphics/Graphic.java
index c01390ec9..a77c75865 100644
--- a/src/main/java/de/neemann/digital/draw/graphics/Graphic.java
+++ b/src/main/java/de/neemann/digital/draw/graphics/Graphic.java
@@ -16,25 +16,9 @@ import java.io.IOException;
public interface Graphic extends Closeable {
/**
- * The shape filling flag
+ * The available flags
*/
- String NO_SHAPE_FILLING = "noShapeFilling";
- /**
- * the small IO flag
- */
- String SMALL_IO = "smallIO";
- /**
- * flag used to hide the test cases
- */
- String HIDE_TEST = "hideTest";
- /**
- * flag used to hide the pin marker
- */
- String NO_PIN_MARKER = "noPinMarker";
- /**
- * flag used to make lines thinner
- */
- String THINNER_LINES = "thinnerLines";
+ enum Flag {noShapeFilling, smallIO, hideTest, noPinMarker, thinnerLines}
/**
* Sets the bounding box of the future usage of this instance
@@ -114,10 +98,10 @@ public interface Graphic extends Closeable {
/**
* Returns true if the given flag is set
*
- * @param name the flags name
+ * @param flag the flag
* @return true if the given flag is set
*/
- default boolean isFlagSet(String name) {
+ default boolean isFlagSet(Flag flag) {
return false;
}
diff --git a/src/main/java/de/neemann/digital/draw/graphics/GraphicMinMax.java b/src/main/java/de/neemann/digital/draw/graphics/GraphicMinMax.java
index 962edacae..6ba5f4568 100644
--- a/src/main/java/de/neemann/digital/draw/graphics/GraphicMinMax.java
+++ b/src/main/java/de/neemann/digital/draw/graphics/GraphicMinMax.java
@@ -154,10 +154,10 @@ public class GraphicMinMax implements Graphic {
}
@Override
- public boolean isFlagSet(String name) {
+ public boolean isFlagSet(Flag flag) {
if (parent == null)
return false;
else
- return parent.isFlagSet(name);
+ return parent.isFlagSet(flag);
}
}
diff --git a/src/main/java/de/neemann/digital/draw/graphics/GraphicSVG.java b/src/main/java/de/neemann/digital/draw/graphics/GraphicSVG.java
index d8211287a..98837cce2 100644
--- a/src/main/java/de/neemann/digital/draw/graphics/GraphicSVG.java
+++ b/src/main/java/de/neemann/digital/draw/graphics/GraphicSVG.java
@@ -24,7 +24,7 @@ public class GraphicSVG implements Graphic {
private BufferedWriter w;
private TextStyle textStyle = new TextFormatSVG();
private ColorStyle colorStyle = Style::getColor;
- private HashSet flags = new HashSet<>();
+ private HashSet flags = new HashSet<>();
/**
* Creates a new instance.
@@ -39,17 +39,15 @@ public class GraphicSVG implements Graphic {
if (a.get(SVGSettings.HIGH_CONTRAST))
setColorStyle(new ColorStyleHighContrast());
if (a.get(SVGSettings.SMALL_IO))
- setFlag(SMALL_IO);
+ setFlag(Flag.smallIO);
if (a.get(SVGSettings.HIDE_TEST))
- setFlag(HIDE_TEST);
+ setFlag(Flag.hideTest);
if (a.get(SVGSettings.NO_SHAPE_FILLING))
- setFlag(NO_SHAPE_FILLING);
- if (a.get(SVGSettings.NO_SHAPE_FILLING))
- setFlag(NO_SHAPE_FILLING);
+ setFlag(Flag.noShapeFilling);
if (a.get(SVGSettings.NO_PIN_MARKER))
- setFlag(NO_PIN_MARKER);
+ setFlag(Flag.noPinMarker);
if (a.get(SVGSettings.THINNER_LINES))
- setFlag(THINNER_LINES);
+ setFlag(Flag.thinnerLines);
if (a.get(SVGSettings.MONOCHROME))
setColorStyle(new ColorStyleMonochrome(colorStyle));
@@ -140,7 +138,7 @@ public class GraphicSVG implements Graphic {
if (p.getEvenOdd() && style.isFilled())
w.write(" fill-rule=\"evenodd\"");
- if (style.isFilled() && p.isClosed() && !isFlagSet(NO_SHAPE_FILLING))
+ if (style.isFilled() && p.isClosed() && !isFlagSet(Flag.noShapeFilling))
w.write(" stroke=\"" + getColor(style) + "\" stroke-width=\"" + getStrokeWidth(style) + "\" fill=\"" + getColor(style) + "\" fill-opacity=\"" + getOpacity(style) + "\"/>\n");
else {
double strokeWidth = getStrokeWidth(style);
@@ -154,7 +152,7 @@ public class GraphicSVG implements Graphic {
}
private double getStrokeWidth(Style style) {
- if (isFlagSet(THINNER_LINES))
+ if (isFlagSet(Flag.thinnerLines))
return style.getThickness() * 0.7;
else
return style.getThickness();
@@ -319,13 +317,13 @@ public class GraphicSVG implements Graphic {
this.colorStyle = colorStyle;
}
- private void setFlag(String flag) {
+ private void setFlag(Flag flag) {
flags.add(flag);
}
@Override
- public boolean isFlagSet(String name) {
- return flags.contains(name);
+ public boolean isFlagSet(Flag flag) {
+ return flags.contains(flag);
}
/**
diff --git a/src/main/java/de/neemann/digital/draw/graphics/GraphicTransform.java b/src/main/java/de/neemann/digital/draw/graphics/GraphicTransform.java
index 868319973..d8d23ccf8 100644
--- a/src/main/java/de/neemann/digital/draw/graphics/GraphicTransform.java
+++ b/src/main/java/de/neemann/digital/draw/graphics/GraphicTransform.java
@@ -45,7 +45,7 @@ public class GraphicTransform implements Graphic {
}
@Override
- public boolean isFlagSet(String name) {
- return parent.isFlagSet(name);
+ public boolean isFlagSet(Flag flag) {
+ return parent.isFlagSet(flag);
}
}
diff --git a/src/main/java/de/neemann/digital/draw/graphics/linemerger/GraphicSkipLines.java b/src/main/java/de/neemann/digital/draw/graphics/linemerger/GraphicSkipLines.java
index ab40d5494..9870d093a 100644
--- a/src/main/java/de/neemann/digital/draw/graphics/linemerger/GraphicSkipLines.java
+++ b/src/main/java/de/neemann/digital/draw/graphics/linemerger/GraphicSkipLines.java
@@ -55,7 +55,7 @@ public class GraphicSkipLines implements Graphic {
}
@Override
- public boolean isFlagSet(String name) {
- return delegate.isFlagSet(name);
+ public boolean isFlagSet(Flag flag) {
+ return delegate.isFlagSet(flag);
}
}
diff --git a/src/main/java/de/neemann/digital/draw/shapes/AsyncClockShape.java b/src/main/java/de/neemann/digital/draw/shapes/AsyncClockShape.java
index 64ecfdaef..150987086 100644
--- a/src/main/java/de/neemann/digital/draw/shapes/AsyncClockShape.java
+++ b/src/main/java/de/neemann/digital/draw/shapes/AsyncClockShape.java
@@ -49,7 +49,7 @@ public class AsyncClockShape implements Shape {
@Override
public void drawTo(Graphic graphic, Style highLight) {
- if (!graphic.isFlagSet(Graphic.HIDE_TEST)) {
+ if (!graphic.isFlagSet(Graphic.Flag.hideTest)) {
Polygon pol = new Polygon(true)
.add(SIZE2, SIZE2)
.add(SIZE2 + SIZE * 4, SIZE2)
diff --git a/src/main/java/de/neemann/digital/draw/shapes/ClockShape.java b/src/main/java/de/neemann/digital/draw/shapes/ClockShape.java
index 983f6076a..ce2968fe3 100644
--- a/src/main/java/de/neemann/digital/draw/shapes/ClockShape.java
+++ b/src/main/java/de/neemann/digital/draw/shapes/ClockShape.java
@@ -74,7 +74,7 @@ public class ClockShape implements Shape {
@Override
public void drawTo(Graphic graphic, Style heighLight) {
Vector wavePos;
- if (graphic.isFlagSet(Graphic.SMALL_IO)) {
+ if (graphic.isFlagSet(Graphic.Flag.smallIO)) {
Vector center = new Vector(-LATEX_RAD.x, 0);
graphic.drawCircle(center.sub(LATEX_RAD), center.add(LATEX_RAD), Style.NORMAL);
Vector textPos = new Vector(-SIZE2 - LATEX_RAD.x, 0);
diff --git a/src/main/java/de/neemann/digital/draw/shapes/InputShape.java b/src/main/java/de/neemann/digital/draw/shapes/InputShape.java
index e1fb1ed7c..64e6d06b7 100644
--- a/src/main/java/de/neemann/digital/draw/shapes/InputShape.java
+++ b/src/main/java/de/neemann/digital/draw/shapes/InputShape.java
@@ -123,7 +123,7 @@ public class InputShape implements Shape {
@Override
public void drawTo(Graphic graphic, Style heighLight) {
- if (graphic.isFlagSet(Graphic.SMALL_IO)) {
+ if (graphic.isFlagSet(Graphic.Flag.smallIO)) {
Vector center = new Vector(-LATEX_RAD.x, 0);
graphic.drawCircle(center.sub(LATEX_RAD), center.add(LATEX_RAD), Style.NORMAL);
Vector textPos = new Vector(-SIZE2 - LATEX_RAD.x, 0);
diff --git a/src/main/java/de/neemann/digital/draw/shapes/OutputShape.java b/src/main/java/de/neemann/digital/draw/shapes/OutputShape.java
index c7c0d7eec..beee8420b 100644
--- a/src/main/java/de/neemann/digital/draw/shapes/OutputShape.java
+++ b/src/main/java/de/neemann/digital/draw/shapes/OutputShape.java
@@ -84,7 +84,7 @@ public class OutputShape implements Shape {
@Override
public void drawTo(Graphic graphic, Style highLight) {
- if (graphic.isFlagSet(Graphic.SMALL_IO)) {
+ if (graphic.isFlagSet(Graphic.Flag.smallIO)) {
Vector center = new Vector(LATEX_RAD.x, 0);
graphic.drawCircle(center.sub(LATEX_RAD), center.add(LATEX_RAD), Style.NORMAL);
Vector textPos = new Vector(SIZE2 + LATEX_RAD.x, 0);
diff --git a/src/main/java/de/neemann/digital/draw/shapes/TestCaseShape.java b/src/main/java/de/neemann/digital/draw/shapes/TestCaseShape.java
index 22821c1c3..0c936155f 100644
--- a/src/main/java/de/neemann/digital/draw/shapes/TestCaseShape.java
+++ b/src/main/java/de/neemann/digital/draw/shapes/TestCaseShape.java
@@ -49,7 +49,7 @@ public class TestCaseShape implements Shape {
@Override
public void drawTo(Graphic graphic, Style highLight) {
- if (!graphic.isFlagSet(Graphic.HIDE_TEST)) {
+ if (!graphic.isFlagSet(Graphic.Flag.hideTest)) {
Polygon pol = new Polygon(true)
.add(SIZE2, SIZE2)
.add(SIZE2 + SIZE * 4, SIZE2)
diff --git a/src/main/resources/lang/lang_de.xml b/src/main/resources/lang/lang_de.xml
index b831d0c42..e463863dd 100644
--- a/src/main/resources/lang/lang_de.xml
+++ b/src/main/resources/lang/lang_de.xml
@@ -1361,7 +1361,7 @@ Sind evtl. die Namen der Variablen nicht eindeutig?
Aktiviert das Tutorial.
SVG Exporteinstellungen
- Text als LaTeX
+ Text im LaTeX-Format
Text wird in LaTeX-Notation eingefügt. Inkscape ist für die Weiterverabeitung erforderlich.
Testfälle verbergen
Die Testfälle werden nicht mit exportiert.
@@ -1373,9 +1373,9 @@ Sind evtl. die Namen der Variablen nicht eindeutig?
Die blauen und roten Pin-Marker an den Symbolen entfallen.
hoher Kontrast
Leitungen und der Text der Pins werden in Schwarz ausgegeben.
- Monochrom
+ monochrom
Es werden nur Graustufen verwendet.
- Dünne Linien
+ dünne Linien
Wenn gesetzt, werden die Linen etwas dünner gezeichnet.
Leitung eingefügt.
diff --git a/src/main/resources/lang/lang_en.xml b/src/main/resources/lang/lang_en.xml
index 849cd87e4..59627b61c 100644
--- a/src/main/resources/lang/lang_en.xml
+++ b/src/main/resources/lang/lang_en.xml
@@ -1347,7 +1347,7 @@
Enables the tutorial.
SVG Export Settings
- Text as LaTeX
+ Text in LaTeX notation
Text is inserted in LaTeX notation. Inkscape is required for further processing.
Hide Test Cases
The test cases are not exported.