summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-15 11:25:08 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-15 11:25:08 +0100
commitaa50be8e36a34a0d142918476cbf2b1f693e12da (patch)
treecda2537611d7ffa5c35d84155072468c75718219
parent1632571d463a8c8731bb3e4559f78e4fdf329cb2 (diff)
IDE: Improve MetroWorks code editor class.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
-rw-r--r--64x0-Drivers/64asm.cc16
-rw-r--r--64x0-Drivers/64ld.cc12
-rw-r--r--CompilerKit/Defines.hpp1
-rw-r--r--CompilerKit/StdKit/AE.hpp17
-rw-r--r--CompilerKit/StdKit/PEF.hpp20
-rw-r--r--IDE/makefile3
-rw-r--r--IDE/src/main/java/org/elmahrouss/App.java6
-rw-r--r--IDE/src/main/java/org/elmahrouss/CodeEditor.java34
-rw-r--r--IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java4
9 files changed, 78 insertions, 35 deletions
diff --git a/64x0-Drivers/64asm.cc b/64x0-Drivers/64asm.cc
index e82585f..9550f80 100644
--- a/64x0-Drivers/64asm.cc
+++ b/64x0-Drivers/64asm.cc
@@ -97,22 +97,6 @@ namespace detail
}
}
-// provide operator<< for AE
-
-std::ofstream &operator<<(std::ofstream &fp, CompilerKit::AEHeader &container)
-{
- fp.write((char *)&container, sizeof(CompilerKit::AEHeader));
-
- return fp;
-}
-
-std::ofstream &operator<<(std::ofstream &fp, CompilerKit::AERecordHeader &container)
-{
- fp.write((char *)&container, sizeof(CompilerKit::AERecordHeader));
-
- return fp;
-}
-
/////////////////////////////////////////////////////////////////////////////////////////
// @brief Main entrypoint.
diff --git a/64x0-Drivers/64ld.cc b/64x0-Drivers/64ld.cc
index 2aa7e96..852fba8 100644
--- a/64x0-Drivers/64ld.cc
+++ b/64x0-Drivers/64ld.cc
@@ -47,18 +47,6 @@
enum { kAbiMpUx = 0x5046 /* PF */ };
-std::ofstream& operator<<(std::ofstream& fp, CompilerKit::PEFContainer& container)
-{
- fp.write((char*)&container, sizeof(CompilerKit::PEFContainer));
- return fp;
-}
-
-std::ofstream& operator<<(std::ofstream& fp, CompilerKit::PEFCommandHeader& container)
-{
- fp.write((char*)&container, sizeof(CompilerKit::PEFCommandHeader));
- return fp;
-}
-
static std::string kOutput = "a" kPefExt;
static Int32 kAbi = kAbiMpUx;
static Int32 kSubArch = kPefNoSubCpu;
diff --git a/CompilerKit/Defines.hpp b/CompilerKit/Defines.hpp
index 027f24f..6118a9b 100644
--- a/CompilerKit/Defines.hpp
+++ b/CompilerKit/Defines.hpp
@@ -87,6 +87,7 @@
#include <ctime>
#include <string>
+#include <fstream>
namespace CompilerKit
{
diff --git a/CompilerKit/StdKit/AE.hpp b/CompilerKit/StdKit/AE.hpp
index c01bc51..f06c785 100644
--- a/CompilerKit/StdKit/AE.hpp
+++ b/CompilerKit/StdKit/AE.hpp
@@ -59,3 +59,20 @@ namespace CompilerKit
kKindRelocationAtRuntime = 0x34f,
};
}
+
+
+// provide operator<< for AE
+
+std::ofstream &operator<<(std::ofstream &fp, CompilerKit::AEHeader &container)
+{
+ fp.write((char *)&container, sizeof(CompilerKit::AEHeader));
+
+ return fp;
+}
+
+std::ofstream &operator<<(std::ofstream &fp, CompilerKit::AERecordHeader &container)
+{
+ fp.write((char *)&container, sizeof(CompilerKit::AERecordHeader));
+
+ return fp;
+}
diff --git a/CompilerKit/StdKit/PEF.hpp b/CompilerKit/StdKit/PEF.hpp
index 69ed99f..b8c5190 100644
--- a/CompilerKit/StdKit/PEF.hpp
+++ b/CompilerKit/StdKit/PEF.hpp
@@ -17,6 +17,11 @@
#define kPefMagic "PEF"
#define kPefMagicFat "FEP"
+#define kPefExt ".out"
+#define kPefDylibExt ".lib"
+#define kPefObjectExt ".o"
+#define kPefDebugExt ".dbg"
+
#define kPefMagicLen 3
#define kPefVersion 2
@@ -82,7 +87,14 @@ namespace CompilerKit
};
}
-#define kPefExt ".out"
-#define kPefDylibExt ".lib"
-#define kPefObjectExt ".o"
-#define kPefDebugExt ".dbg" \ No newline at end of file
+inline std::ofstream& operator<<(std::ofstream& fp, CompilerKit::PEFContainer& container)
+{
+ fp.write((char*)&container, sizeof(CompilerKit::PEFContainer));
+ return fp;
+}
+
+inline std::ofstream& operator<<(std::ofstream& fp, CompilerKit::PEFCommandHeader& container)
+{
+ fp.write((char*)&container, sizeof(CompilerKit::PEFCommandHeader));
+ return fp;
+}
diff --git a/IDE/makefile b/IDE/makefile
new file mode 100644
index 0000000..352fed5
--- /dev/null
+++ b/IDE/makefile
@@ -0,0 +1,3 @@
+.PHONY: all
+all:
+ mvn clean javafx:run \ No newline at end of file
diff --git a/IDE/src/main/java/org/elmahrouss/App.java b/IDE/src/main/java/org/elmahrouss/App.java
index 85eb8f7..b7a44bd 100644
--- a/IDE/src/main/java/org/elmahrouss/App.java
+++ b/IDE/src/main/java/org/elmahrouss/App.java
@@ -2,6 +2,7 @@ package org.elmahrouss;
import javafx.application.Application;
import javafx.scene.Scene;
+import javafx.scene.input.KeyCombination;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
@@ -13,12 +14,13 @@ public class App extends Application {
@Override
public void start(Stage stage) {
stage.setTitle("MetroWorks - Untitled");
+ stage.setResizable(false);
var projectPane = new VBox();
projectPane.setSpacing(10);
- CodeEditor edCxx = new CodeEditor();
- projectPane.getChildren().addAll(edCxx);
+ CodeEditor editorClass = new CodeEditor();
+ projectPane.getChildren().addAll(editorClass);
var scene = new Scene(projectPane, 1280, 720);
diff --git a/IDE/src/main/java/org/elmahrouss/CodeEditor.java b/IDE/src/main/java/org/elmahrouss/CodeEditor.java
index cb78bd7..3d8b7f1 100644
--- a/IDE/src/main/java/org/elmahrouss/CodeEditor.java
+++ b/IDE/src/main/java/org/elmahrouss/CodeEditor.java
@@ -1,13 +1,47 @@
package org.elmahrouss;
+import javafx.beans.property.ObjectProperty;
+import javafx.collections.ObservableList;
+import javafx.event.EventHandler;
+import javafx.scene.Node;
+import javafx.scene.control.Label;
+import javafx.scene.control.TextField;
+import javafx.scene.input.KeyEvent;
import javafx.scene.layout.*;
public class CodeEditor extends Pane {
+ private Pane linePane;
+ private Label lines;
+
CodeEditor() {
super();
+ lines = new Label();
+ lines.setText("#include <iostream>\n\nint main()\n{\n\tstd::cout << \"Hello, world!\";\n}\n");
+ lines.setStyle("-fx-font-size: 15");
+ lines.setWrapText(true);
+ lines.setTranslateX(70);
+ lines.setTranslateY(30);
+
+ linePane = new Pane();
+
+ linePane.setStyle("-fx-background-color: #" + CodeEditorTheme.lineTheme + ";");
+ linePane.setMinSize(42, 720);
+ linePane.setMaxSize(42, 1080);
+
+ this.getChildren().addAll(linePane, lines);
+
this.setStyle("-fx-background-color: #" + CodeEditorTheme.backgroundTheme);
+
this.setMinSize(1280, 720);
this.setMaxSize(1920, 1080);
}
+
+ @Override
+ public ObservableList<Node> getChildren() {
+ return super.getChildren();
+ }
+
+ public String getContents() { return lines.getText(); }
+ public void setContents(String content) { lines.setText(content); }
}
diff --git a/IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java b/IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java
index b580bcd..b4359d0 100644
--- a/IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java
+++ b/IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java
@@ -1,5 +1,7 @@
package org.elmahrouss;
public class CodeEditorTheme {
- public static String backgroundTheme = "202020";
+ public static String backgroundTheme = "FFFFFF";
+ public static String lineTheme = "1A1A1A";
+ public static String lineClr = "white";
}