diff --git a/Compiled/Logisim-ITA.exe b/Compiled/Logisim-ITA.exe old mode 100644 new mode 100755 index 136ff4e9..1cfac781 Binary files a/Compiled/Logisim-ITA.exe and b/Compiled/Logisim-ITA.exe differ diff --git a/Compiled/Logisim-ITA.jar b/Compiled/Logisim-ITA.jar index fd937364..ef65bdf9 100644 Binary files a/Compiled/Logisim-ITA.jar and b/Compiled/Logisim-ITA.jar differ diff --git a/Logisim-Fork/.classpath b/Logisim-Fork/.classpath deleted file mode 100644 index c95a786a..00000000 --- a/Logisim-Fork/.classpath +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Logisim-Fork/.gitignore b/Logisim-Fork/.gitignore index 03bcabef..33aaa16d 100644 --- a/Logisim-Fork/.gitignore +++ b/Logisim-Fork/.gitignore @@ -1,4 +1,8 @@ /module-info.class /KAppemblerListener.class /bin/ -target/ \ No newline at end of file +target/ +/.settings/ +/.classpath +/.vscode/ +/.idea/ diff --git a/Logisim-Fork/.settings/org.eclipse.jdt.core.prefs b/Logisim-Fork/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 445e8ebd..00000000 --- a/Logisim-Fork/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,106 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.APILeak=warning -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore -org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=error -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled -org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Logisim-Fork/.settings/org.eclipse.m2e.core.prefs b/Logisim-Fork/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/Logisim-Fork/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/Logisim-Fork/pom.xml b/Logisim-Fork/pom.xml index cb58dfdb..709e344f 100644 --- a/Logisim-Fork/pom.xml +++ b/Logisim-Fork/pom.xml @@ -13,6 +13,7 @@ 8 8 + UTF-8 @@ -63,6 +64,34 @@ + + + com.akathist.maven.plugins.launch4j + launch4j-maven-plugin + 2.0.1 + + + generate-exe + package + + launch4j + + + + + ${project.build.directory}/${project.artifactId}-ITA.exe + ${project.build.directory}/${project.build.finalName}-jar-with-dependencies.jar + false + gui + src/main/java/resources/logisim/img/logisim-icon.ico + + 1.8.0 + + + com.cburch.logisim.Main + + + diff --git a/Logisim-Fork/src/main/java/com/cburch/logisim/Main.java b/Logisim-Fork/src/main/java/com/cburch/logisim/Main.java index f25c0485..fea4d6e2 100644 --- a/Logisim-Fork/src/main/java/com/cburch/logisim/Main.java +++ b/Logisim-Fork/src/main/java/com/cburch/logisim/Main.java @@ -33,7 +33,7 @@ public class Main { // current version - public static final LogisimVersion VERSION = LogisimVersion.get(2, 16, 1, 4, LogisimVersion.getVariantFromFile()); + public static final LogisimVersion VERSION = LogisimVersion.get(2, 16, 2, 0, LogisimVersion.getVariantFromFile()); // the version of the file you're using, equals to current version if new file public static LogisimVersion FILE_VERSION; diff --git a/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/Analyze.java b/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/Analyze.java index fe8b999e..4873546d 100644 --- a/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/Analyze.java +++ b/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/Analyze.java @@ -9,6 +9,7 @@ import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; +import java.util.regex.Pattern; import com.cburch.logisim.analyze.model.AnalyzerModel; import com.cburch.logisim.analyze.model.Entry; @@ -21,6 +22,7 @@ import com.cburch.logisim.instance.StdAttr; import com.cburch.logisim.proj.Project; import com.cburch.logisim.std.wiring.Pin; +import com.cburch.logisim.util.StringUtil; public class Analyze { @@ -298,43 +300,21 @@ public int compare(Instance ac, Instance bc) { * throw new AnalyzeException.Conflict(); } } expressionMap.put(p2, e); } } } } */ + // This function check label name private static String toValidLabel(String label) { - if (label == null) - return null; - StringBuilder end = null; - StringBuilder ret = new StringBuilder(); - boolean afterWhitespace = false; - for (int i = 0; i < label.length(); i++) { + StringBuilder buildLabel = new StringBuilder(); //StringBuilder for hold string in building + for(int i = 0; i < label.length(); i++) { char c = label.charAt(i); - if (Character.isJavaIdentifierStart(c)) { - if (afterWhitespace) { - // capitalize words after the first one - c = Character.toTitleCase(c); - afterWhitespace = false; - } - ret.append(c); - } else if (Character.isJavaIdentifierPart(c)) { - // If we can't place it at the start, we'll dump it - // onto the end. - if (ret.length() > 0) { - ret.append(c); - } else { - if (end == null) - end = new StringBuilder(); - end.append(c); - } - afterWhitespace = false; - } else if (Character.isWhitespace(c)) { - afterWhitespace = true; - } else { - ; // just ignore any other characters + int unicode = label.codePointAt(i); // Get character unicode + if((unicode < 8192 || unicode > 8207) && (unicode < 8234 || unicode > 8239) && (unicode < 8298 || unicode > 8303)) { // Check that it is not a prohibited Unicode + buildLabel.append(c); // Add character on final string } } - if (end != null && ret.length() > 0) - ret.append(end.toString()); - if (ret.length() == 0) + String newLabel = buildLabel.toString().trim(); + if(newLabel.length() > 0) // If is find a character or number + return newLabel; // Return a final string + else return null; - return ret.toString(); } private Analyze() { diff --git a/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/Splitter.java b/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/Splitter.java index 53355717..9dd42d91 100644 --- a/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/Splitter.java +++ b/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/Splitter.java @@ -103,8 +103,8 @@ private synchronized void configureComponent() { @Override public void configureMenu(JPopupMenu menu, Project proj) { menu.addSeparator(); - menu.add(new SplitterDistributeItem(proj, this, 1)); menu.add(new SplitterDistributeItem(proj, this, -1)); + menu.add(new SplitterDistributeItem(proj, this, 1)); } @Override @@ -195,15 +195,15 @@ public String getToolTip(ComponentUserEvent e) { appendBuf(buf, beginString, bit_end.length - 1); String base; switch (bits) { - case 0: - base = Strings.get("splitterSplit0Tip"); - break; - case 1: - base = Strings.get("splitterSplit1Tip"); - break; - default: - base = Strings.get("splitterSplitManyTip"); - break; + case 0: + base = Strings.get("splitterSplit0Tip"); + break; + case 1: + base = Strings.get("splitterSplit1Tip"); + break; + default: + base = Strings.get("splitterSplitManyTip"); + break; } return StringUtil.format(base, buf.toString()); } else { diff --git a/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/SplitterAttributes.java b/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/SplitterAttributes.java index 28ee94d3..81f4f33d 100644 --- a/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/SplitterAttributes.java +++ b/Logisim-Fork/src/main/java/com/cburch/logisim/circuit/SplitterAttributes.java @@ -18,6 +18,8 @@ import com.cburch.logisim.instance.StdAttr; class SplitterAttributes extends AbstractAttributeSet { + + public static int order=0; static class BitOutAttribute extends Attribute { int which; BitOutOption[] options; @@ -103,6 +105,7 @@ public String toString() { } } + //the list of selection for the splitter attributes public static final AttributeOption APPEAR_LEGACY = new AttributeOption("legacy", Strings.getter("splitterAppearanceLegacy")); public static final AttributeOption APPEAR_LEFT = new AttributeOption("left", @@ -117,6 +120,18 @@ public String toString() { Strings.getter("splitterAppearanceAttr"), new AttributeOption[] { APPEAR_LEFT, APPEAR_RIGHT, APPEAR_CENTER, APPEAR_LEGACY }); + //////////////////////////////////////////////////////dis/////////////////////////////////////////////////// + public static final AttributeOption APPEAR_ASS = new AttributeOption("ascending", + Strings.getter("splitterDistributeAscending")); + + public static final AttributeOption APPEAR_DESS = new AttributeOption("descending", + Strings.getter("splitterDistributeDescending")); + public static final Attribute ATTR_ORDER = Attributes.forOption("order", + Strings.getter("splitterDistribute"), + new AttributeOption[] { APPEAR_ASS, APPEAR_DESS }); + + ////////////////////////////////////////////////////////////dis///////////////////////////////////////////// + public static final Attribute ATTR_WIDTH = Attributes.forBitWidth("incoming", Strings.getter("splitterBitWidthAttr")); @@ -124,11 +139,13 @@ public String toString() { Strings.getter("splitterFanOutAttr"), 1, 32); private static final List> INIT_ATTRIBUTES = Arrays - .asList(new Attribute[] { StdAttr.FACING, ATTR_FANOUT, ATTR_WIDTH, ATTR_APPEARANCE, }); + .asList(new Attribute[] { StdAttr.FACING, ATTR_FANOUT, ATTR_WIDTH, ATTR_APPEARANCE,ATTR_ORDER }); private static final String unchosen_val = "none"; static byte[] computeDistribution(int fanout, int bits, int order) { + //order=-1; -1== 3,2,1,0 1=0,1,2,3 order of bits + order=SplitterAttributes.order; //i think i can call it bypass byte[] ret = new byte[bits]; if (order >= 0) { if (fanout >= bits) { @@ -181,6 +198,8 @@ static byte[] computeDistribution(int fanout, int bits, int order) { private ArrayList> attrs = new ArrayList>(INIT_ATTRIBUTES); private SplitterParameters parameters; AttributeOption appear = APPEAR_LEFT; + AttributeOption ordershow=APPEAR_ASS; + Direction facing = Direction.EAST; byte fanout = 4; // number of ends this splits into byte[] bit_end = new byte[4]; // how each bit maps to an end (0 if nowhere); @@ -282,6 +301,7 @@ public SplitterParameters getParameters() { return ret; } + // val that will remain in the text box after selection @Override public V getValue(Attribute attr) { if (attr == StdAttr.FACING) { @@ -292,6 +312,8 @@ public V getValue(Attribute attr) { return (V) BitWidth.create(bit_end.length); } else if (attr == ATTR_APPEARANCE) { return (V) appear; + } else if (attr == ATTR_ORDER) { + return (V) ordershow; } else if (attr instanceof BitOutAttribute) { BitOutAttribute bitOut = (BitOutAttribute) attr; return (V) Integer.valueOf(bit_end[bitOut.which]); @@ -300,6 +322,7 @@ public V getValue(Attribute attr) { } } + //what happends when the one of the selection is selected @Override public void setValue(Attribute attr, V value) { if (attr == StdAttr.FACING) { @@ -322,7 +345,24 @@ public void setValue(Attribute attr, V value) { bit_end = new byte[width.getWidth()]; configureOptions(); configureDefaults(); - } else if (attr == ATTR_APPEARANCE) { + +/////////////////////////////////////////button order/////////////////////////////// + } else if (value == APPEAR_ASS) { + SplitterAttributes.order=1; + ordershow = (AttributeOption) value; + configureOptions(); + configureDefaults(); + + } else if (value == APPEAR_DESS) { + SplitterAttributes.order =-1; + ordershow = (AttributeOption) value; + configureOptions(); + configureDefaults(); + + } +///////////////////////////////////////button order//////////////////////////////// + + else if (attr == ATTR_APPEARANCE) { appear = (AttributeOption) value; parameters = null; } else if (attr instanceof BitOutAttribute) { diff --git a/Logisim-Fork/src/main/java/com/cburch/logisim/comp/TextField.java b/Logisim-Fork/src/main/java/com/cburch/logisim/comp/TextField.java index 6b63112b..a4716960 100644 --- a/Logisim-Fork/src/main/java/com/cburch/logisim/comp/TextField.java +++ b/Logisim-Fork/src/main/java/com/cburch/logisim/comp/TextField.java @@ -67,38 +67,7 @@ public void draw(Graphics g) { g.setColor(color); int x = this.x; int y = this.y; - FontMetrics fm = g.getFontMetrics(); - requestLongestWidth(fm); - int width = ( longestWidth == 0 && fm.stringWidth(text) > 0) ? longestWidth = fm.stringWidth(text) : longestWidth; //if longestWidth is zero but stringWidth(text) is > 0 requestLongestWidth() didn't find any TextFieldCaret object - int ascent = fm.getAscent(); - int descent = fm.getDescent(); - switch (halign) { - case TextField.H_CENTER: - x -= width / 2; - break; - case TextField.H_RIGHT: - x -= width; - break; - default: - break; - } - switch (valign) { - case TextField.V_TOP: - y += ascent; - break; - case TextField.V_CENTER: - y += ascent / 2; - break; - case TextField.V_CENTER_OVERALL: - y += (ascent - descent) / 2; - break; - case TextField.V_BOTTOM: - y -= descent; - break; - default: - break; - } - g.drawString(text, x, y); + GraphicsUtil.drawText(g, text, x, y, halign, valign); g.setFont(oldFont); g.setColor(oldColor); } diff --git a/Logisim-Fork/src/main/java/com/cburch/logisim/gui/log/LogFrame.java b/Logisim-Fork/src/main/java/com/cburch/logisim/gui/log/LogFrame.java index ec263fd8..2f8fd07c 100644 --- a/Logisim-Fork/src/main/java/com/cburch/logisim/gui/log/LogFrame.java +++ b/Logisim-Fork/src/main/java/com/cburch/logisim/gui/log/LogFrame.java @@ -12,6 +12,7 @@ import java.util.Map; import javax.swing.JButton; +import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTabbedPane; @@ -41,6 +42,8 @@ public void actionPerformed(ActionEvent event) { if (src == clearLog) { getModel().clearAllLogs(); getModel().fireSelectionChanged(new ModelEvent()); + } else if (src == alwaysOnTop) { + setAlwaysOnTopWindow(alwaysOnTop.isSelected()); } } @@ -61,6 +64,7 @@ public void localeChanged() { panels[i].localeChanged(); } clearLog.setText(Strings.get("clearLogButton")); + alwaysOnTop.setText(Strings.get("alwaysOnTopCheckBox")); windowManager.localeChanged(); } @@ -145,6 +149,7 @@ private static String computeTitle(Model data, Project proj) { private JTabbedPane tabbedPane; private JButton clearLog = new JButton(); + private JCheckBox alwaysOnTop = new JCheckBox(); public LogFrame(Project project) { this.project = project; @@ -165,6 +170,9 @@ public LogFrame(Project project) { JPanel buttonPanel = new JPanel(); buttonPanel.add(clearLog); clearLog.addActionListener(myListener); + + buttonPanel.add(alwaysOnTop); + alwaysOnTop.addActionListener(myListener); Container contents = getContentPane(); tabbedPane.setPreferredSize(new Dimension(450, 300)); @@ -234,4 +242,8 @@ public void setVisible(boolean value) { } super.setVisible(value); } + + public void setAlwaysOnTopWindow (boolean value) { + super.setAlwaysOnTop(value); + } } diff --git a/Logisim-Fork/src/main/java/com/cburch/logisim/std/ttl/Ttl74283.java b/Logisim-Fork/src/main/java/com/cburch/logisim/std/ttl/Ttl74283.java index 9719c038..b9949a3e 100644 --- a/Logisim-Fork/src/main/java/com/cburch/logisim/std/ttl/Ttl74283.java +++ b/Logisim-Fork/src/main/java/com/cburch/logisim/std/ttl/Ttl74283.java @@ -9,7 +9,7 @@ public class Ttl74283 extends AbstractTtlGate { public Ttl74283() { super("74283", (byte) 16, new byte[] { 1, 4, 9, 10, 13 }, - new String[] { "∑2", "B2", "A2", "∑1", "A1", "B1", "CIN", "C4", "∑4", "B4", "A4", "∑3", "A3", "B3" }); + new String[] { "\u03a32", "B2", "A2", "\u03a31", "A1", "B1", "CIN", "C4", "\u03a34", "B4", "A4", "\u03a33", "A3", "B3" }); } @Override diff --git a/Logisim-Fork/src/main/java/resources/logisim/de/circuit.properties b/Logisim-Fork/src/main/java/resources/logisim/de/circuit.properties index feee3fe1..75c39867 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/de/circuit.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/de/circuit.properties @@ -54,6 +54,7 @@ splitterAppearanceCenter = Mittig splitterAppearanceRight = Rechts splitterDistributeAscending = Aufsteigend verteilen splitterDistributeDescending = Absteigend verteilen +splitterDistribute = Bitverteilung # # circuit/WireClass.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/de/log.properties b/Logisim-Fork/src/main/java/resources/logisim/de/log.properties index 1400711b..dc8bc41a 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/de/log.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/de/log.properties @@ -5,6 +5,7 @@ logFrameTitle= Logisim: Log %s von %s logFrameMenuItem= %s: Log closeButton= Fenster schlie\u00dfen clearLogButton = Alle Logs löschen +alwaysOnTopCheckBox = Immer oben # # SelectionPanel.java # @@ -41,4 +42,4 @@ fileExistsTitle= Datei exisitiert bereits. fileExistsMessage= Die Datei "%s" existiert bereits. fileOverwriteOption= \u00dcberschreiben fileAppendOption= Anf\u00fcgen -fileCancelOption= Abbrechen \ No newline at end of file +fileCancelOption= Abbrechen diff --git a/Logisim-Fork/src/main/java/resources/logisim/el/circuit.properties b/Logisim-Fork/src/main/java/resources/logisim/el/circuit.properties index baf7176f..b7ab43fb 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/el/circuit.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/el/circuit.properties @@ -50,6 +50,9 @@ splitterBitWidthAttr= \u0395\u03cd\u03c1\u03bf\u03c2 Bit \u0395\u03b9\u03c3\u03c splitterFanOutAttr= \u0392\u03b1\u03b8\u03bc\u03cc\u03c2 \u039f\u03b4\u03ae\u03b3\u03b7\u03c3\u03b7\u03c2 splitterBitAttr= Bit %s splitterBitNone= \u039a\u03b1\u03bd\u03ad\u03bd\u03b1 +splitterDistributeAscending = \u0391\u03cd\u03be\u03b7\u03c3\u03b7\u0020\u03c4\u03b7\u03c2\u0020\u03b4\u03b9\u03b1\u03bd\u03bf\u03bc\u03ae\u03c2 +splitterDistributeDescending = \u03a6\u03b8\u03af\u03bd\u03bf\u03c5\u03c3\u03b1\u0020\u03ba\u03b1\u03c4\u03b1\u03bd\u03bf\u03bc\u03ae +splitterDistribute = \u039a\u03b1\u03c4\u03b1\u03bd\u03bf\u03bc\u03ae\u000a bit # # circuit/WireClass.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/el/log.properties b/Logisim-Fork/src/main/java/resources/logisim/el/log.properties index 066ba6e4..f45407c5 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/el/log.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/el/log.properties @@ -4,6 +4,7 @@ logFrameTitle= Logisim: \u039a\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae %s \u03b1\u03c0\u03cc %s logFrameMenuItem= %s: Log closeButton= \u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf \u03a0\u03b1\u03c1\u03b1\u03b8\u03cd\u03c1\u03bf\u03c5 +alwaysOnTopCheckBox = \u03A0\u03AC\u03BD\u03C4\u03B1 \u03C3\u03C4\u03B7\u03BD \u03BA\u03BF\u03C1\u03C5\u03C6\u03AE # # SelectionPanel.java # @@ -38,4 +39,4 @@ fileExistsTitle= \u0391\u03c1\u03c7\u03b5\u03af\u03bf \u03a5\u03c0\u03ac\u03c1\u fileExistsMessage= \u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf "%s" \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7. fileOverwriteOption= \u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 fileAppendOption= \u03a0\u03c1\u03bf\u03c3\u03ac\u03c1\u03c4\u03b7\u03c3\u03b7 -fileCancelOption= \u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7 \ No newline at end of file +fileCancelOption= \u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7 diff --git a/Logisim-Fork/src/main/java/resources/logisim/en/circuit.properties b/Logisim-Fork/src/main/java/resources/logisim/en/circuit.properties index 6f16a897..76d49425 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/en/circuit.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/en/circuit.properties @@ -57,6 +57,7 @@ splitterAppearanceCenter = Centered splitterAppearanceRight = Right-handed splitterDistributeAscending = Distribute Ascending splitterDistributeDescending = Distribute Descending +splitterDistribute = Bit Distribute # # circuit/WireClass.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/en/comp.properties b/Logisim-Fork/src/main/java/resources/logisim/en/comp.properties index 919bdeaa..8657de55 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/en/comp.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/en/comp.properties @@ -1,6 +1,6 @@ # # comp/TextFieldCaret.java # -MultilineTip = Press shift + enter to return +MultilineTip = Press shift + enter to add a new line diff --git a/Logisim-Fork/src/main/java/resources/logisim/en/log.properties b/Logisim-Fork/src/main/java/resources/logisim/en/log.properties index fa9a7124..cc1fc822 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/en/log.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/en/log.properties @@ -5,6 +5,7 @@ logFrameTitle = Logisim: Log %s of %s logFrameMenuItem = %s: Log closeButton = Close Window clearLogButton = Clear All Logs +alwaysOnTopCheckBox = Always on top # # SelectionPanel.java # @@ -41,4 +42,4 @@ fileExistsTitle = File Already Exists fileExistsMessage = The file "%s" already exists. fileOverwriteOption = Overwrite fileAppendOption = Append -fileCancelOption = Cancel \ No newline at end of file +fileCancelOption = Cancel diff --git a/Logisim-Fork/src/main/java/resources/logisim/es/circuit.properties b/Logisim-Fork/src/main/java/resources/logisim/es/circuit.properties index 5dfab443..01ecd306 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/es/circuit.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/es/circuit.properties @@ -56,6 +56,9 @@ splitterBitWidthAttr = Bits De Entrada splitterFanOutAttr = Fan Out splitterBitAttr = Bit %s splitterBitNone = Nada +splitterDistributeAscending = Aumento de la distribución +splitterDistributeDescending = Distribución descendente +splitterDistribute = Distribución de bit # # circuit/WireClass.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/es/log.properties b/Logisim-Fork/src/main/java/resources/logisim/es/log.properties index 2f25fc70..4bc6810f 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/es/log.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/es/log.properties @@ -5,6 +5,7 @@ logFrameTitle = Logisim: Registro %s de %s logFrameMenuItem = %s: Registro closeButton = Cerrar Ventana clearLogButton = Limpiar Todos Los Logs +alwaysOnTopCheckBox = Siempre en la cima # # SelectionPanel.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/fr/circuit.properties b/Logisim-Fork/src/main/java/resources/logisim/fr/circuit.properties index f2f26ea3..d96ca23e 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/fr/circuit.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/fr/circuit.properties @@ -57,6 +57,7 @@ splitterAppearanceCenter = Centr splitterAppearanceRight = A droite splitterDistributeAscending = Distribué en montant splitterDistributeDescending = Distribué en descendant +splitterDistribute = Répartition des bits # # circuit/WireClass.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/fr/log.properties b/Logisim-Fork/src/main/java/resources/logisim/fr/log.properties index 7f651e0d..12718ece 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/fr/log.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/fr/log.properties @@ -5,6 +5,7 @@ logFrameTitle = Logisim: Log %s de %s logFrameMenuItem = %s: Log closeButton = Fermer la fenêtre clearLogButton = Effacer Tout Logs +alwaysOnTopCheckBox = Toujours au top # # SelectionPanel.java # @@ -41,4 +42,4 @@ fileExistsTitle = Le fichier existe d fileExistsMessage = Le fichier "%s" existe déjà. fileOverwriteOption = Ecraser fileAppendOption = Ajouter -fileCancelOption = Annuler \ No newline at end of file +fileCancelOption = Annuler diff --git a/Logisim-Fork/src/main/java/resources/logisim/img/logisim-icon.ico b/Logisim-Fork/src/main/java/resources/logisim/img/logisim-icon.ico new file mode 100644 index 00000000..af37d0ff Binary files /dev/null and b/Logisim-Fork/src/main/java/resources/logisim/img/logisim-icon.ico differ diff --git a/Logisim-Fork/src/main/java/resources/logisim/it/circuit.properties b/Logisim-Fork/src/main/java/resources/logisim/it/circuit.properties index 1e3351c7..f004aa54 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/it/circuit.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/it/circuit.properties @@ -57,6 +57,7 @@ splitterAppearanceCenter = Centrato splitterAppearanceRight = Rivolto a destra splitterDistributeAscending = Distribuzione Crescente splitterDistributeDescending = Distribuzione Decrescente +splitterDistribute = Distribuzione bit # # circuit/WireClass.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/it/gui.properties b/Logisim-Fork/src/main/java/resources/logisim/it/gui.properties index 988372a3..e12250dc 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/it/gui.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/it/gui.properties @@ -103,7 +103,7 @@ statsTotalWith = TOTALE (con sottocircuiti) projectViewToolboxTip = Mostra circuito e librerie del progetto nel pannello di esplorazione projectViewSimulationTip = Visualizza gerarchia simulazione nel pannello di esplorazione projectEditLayoutTip = Modifica vista layout del circuito -projectEditAppearanceTip = Modifica vista layout sottocircuito del circuito +projectEditAppearanceTip = Modifica l'aspetto del sottocircuito del circuito visualizzato # # gui/main/ToolboxToolbarModel.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/it/log.properties b/Logisim-Fork/src/main/java/resources/logisim/it/log.properties index 58921d6a..960bde48 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/it/log.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/it/log.properties @@ -5,6 +5,7 @@ logFrameTitle = Logisim: Log %s di %s logFrameMenuItem = %s: Log closeButton = Chiudi Finestra clearLogButton = Pulisci Tutti Log +alwaysOnTopCheckBox = Sempre in primo piano # # SelectionPanel.java # @@ -41,4 +42,4 @@ fileExistsTitle = Il file esiste gi fileExistsMessage = Il file "%s" esiste già. fileOverwriteOption = Sovrascrivi fileAppendOption = Aggiungi -fileCancelOption = Annulla \ No newline at end of file +fileCancelOption = Annulla diff --git a/Logisim-Fork/src/main/java/resources/logisim/pt/circuit.properties b/Logisim-Fork/src/main/java/resources/logisim/pt/circuit.properties index 452aa111..4afa8143 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/pt/circuit.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/pt/circuit.properties @@ -57,6 +57,7 @@ splitterAppearanceCenter = Central splitterAppearanceRight = À direita splitterDistributeAscending = Distribuir em ordem crescente splitterDistributeDescending = Distribuir em ordem decrescente +splitterDistribute = Distribuição de bits # # circuit/WireClass.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/pt/log.properties b/Logisim-Fork/src/main/java/resources/logisim/pt/log.properties index 59b7ed73..4c44d42a 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/pt/log.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/pt/log.properties @@ -5,6 +5,7 @@ logFrameTitle= Logisim: Registro %s de %s logFrameMenuItem= %s: Registro closeButton= Fechar janela clearLogButton = Limpar todos os logs +alwaysOnTopCheckBox = Sempre no topo # # SelectionPanel.java # @@ -41,4 +42,4 @@ fileExistsTitle= Arquivo j fileExistsMessage= Arquivo "%s" já existente. fileOverwriteOption= Sobrescrever fileAppendOption= Acrescentar -fileCancelOption= Cancelar \ No newline at end of file +fileCancelOption= Cancelar diff --git a/Logisim-Fork/src/main/java/resources/logisim/ru/circuit.properties b/Logisim-Fork/src/main/java/resources/logisim/ru/circuit.properties index a0ba5e6a..c35ebb9c 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/ru/circuit.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/ru/circuit.properties @@ -57,6 +57,7 @@ splitterAppearanceCenter= \u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443 splitterAppearanceRight= \u041f\u0440\u0430\u0432\u043e\u0440\u0443\u043a\u0438\u0439 splitterDistributeAscending= \u0420\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e splitterDistributeDescending= \u0420\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e +splitterDistribute = \u0411\u0438\u0442\u043e\u0432\u043e\u0435\u0020\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 # # circuit/WireClass.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/ru/log.properties b/Logisim-Fork/src/main/java/resources/logisim/ru/log.properties index 15ee1df6..a018e50f 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/ru/log.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/ru/log.properties @@ -4,6 +4,7 @@ logFrameTitle= Logisim: \u0436\u0443\u0440\u043d\u0430\u043b %s \u0438\u0437 %s logFrameMenuItem= %s: \u0436\u0443\u0440\u043d\u0430\u043b closeButton= \u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u043a\u043d\u043e +alwaysOnTopCheckBox = \u0412\u0441\u0435\u0433\u0434\u0430 \u043D\u0430 \u0432\u044B\u0441\u043E\u0442\u0435 # # SelectionPanel.java # @@ -38,4 +39,4 @@ fileExistsTitle= \u0424\u0430\u0439\u043b \u0443\u0436\u0435 \u0441\u0443\u0449\ fileExistsMessage= \u0424\u0430\u0439\u043b "%s" \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. fileOverwriteOption= \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c fileAppendOption= \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c -fileCancelOption= \u041e\u0442\u043c\u0435\u043d\u0430 \ No newline at end of file +fileCancelOption= \u041e\u0442\u043c\u0435\u043d\u0430 diff --git a/Logisim-Fork/src/main/java/resources/logisim/zh/circuit.properties b/Logisim-Fork/src/main/java/resources/logisim/zh/circuit.properties index bfcb2581..ddfd54f6 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/zh/circuit.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/zh/circuit.properties @@ -57,6 +57,7 @@ splitterAppearanceCenter = \u4E2D\u5FC3\u5F0F splitterAppearanceRight = \u53F3\u624B\u5F0F splitterDistributeAscending = \u5206\u7EBF\u7AEF\u5347\u5E8F\u6392\u5217 splitterDistributeDescending = \u5206\u7EBF\u7AEF\u964D\u5E8F\u6392\u5217 +splitterDistribute = \u6bd4\u7279\u5206\u5e03 # # circuit/WireClass.java # diff --git a/Logisim-Fork/src/main/java/resources/logisim/zh/log.properties b/Logisim-Fork/src/main/java/resources/logisim/zh/log.properties index 0f5149cc..95f4027c 100644 --- a/Logisim-Fork/src/main/java/resources/logisim/zh/log.properties +++ b/Logisim-Fork/src/main/java/resources/logisim/zh/log.properties @@ -5,6 +5,7 @@ logFrameTitle = Logisim: \u65E5\u5FD7 %s of %s logFrameMenuItem = %s: \u65E5\u5FD7 closeButton = \u5173\u95ED\u7A97\u53E3 clearLogButton = \u6E05\u9664\u6240\u6709\u65E5\u5FD7 +alwaysOnTopCheckBox = \u59CB\u7EC8\u4F4D\u4E8E\u9876\u90E8 # # SelectionPanel.java # @@ -41,4 +42,4 @@ fileExistsTitle = \u6587\u4EF6\u5DF2\u7ECF\u5B58\u5728 fileExistsMessage = \u6587\u4EF6 "%s" \u5DF2\u7ECF\u5B58\u5728 fileOverwriteOption = \u8986\u76D6 fileAppendOption = \u8FFD\u52A0 -fileCancelOption = \u53D6\u6D88 \ No newline at end of file +fileCancelOption = \u53D6\u6D88 diff --git a/README.md b/README.md index b86a715f..3f5bde01 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ I fixed this problem but if you open an old file containing gates with those att ## EXE and JAR downloads + microprocessor project All in our website [here](https://logisim.altervista.org) ## How to compile & use -The project uses maven, from `Logisim/Logisim-Form` run `mvn package` or use your ide and import the directory as a maven project, +The project uses maven, from `Logisim/Logisim-Fork` run `mvn package` or use your ide and import the directory as a maven project, the output file is `target/Logisim-jar-with-dependencies.jar` If you use ecplise, or a older version of Logisim: diff --git a/version.xml b/version.xml index ef776fc3..1169ede4 100644 --- a/version.xml +++ b/version.xml @@ -2,11 +2,16 @@ https://github.com/LogisimIt/Logisim/raw/master/Compiled/Logisim-ITA.jar - 2.16.1.4 + 2.16.2.0 https://github.com/LogisimIt/Logisim/raw/master/Compiled/Logisim-ITA.exe - 2.16.1.4 + 2.16.2.0 -* Added multi-line text editing -* Added simplified RAM/ROM mode + * Added button to reverse the bit distribution in the splitter + * Added "Always on top" checkbox in the Logging window + * Updated labels + * Corrected Italian translation key "projectEditAppearanceTip" + * Tunnel label + * Corrected Italian translation key "projectEditAppearanceTip" + * Tunnel label