diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-15 11:25:08 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-15 11:25:08 +0100 |
| commit | aa50be8e36a34a0d142918476cbf2b1f693e12da (patch) | |
| tree | cda2537611d7ffa5c35d84155072468c75718219 | |
| parent | 1632571d463a8c8731bb3e4559f78e4fdf329cb2 (diff) | |
IDE: Improve MetroWorks code editor class.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
| -rw-r--r-- | 64x0-Drivers/64asm.cc | 16 | ||||
| -rw-r--r-- | 64x0-Drivers/64ld.cc | 12 | ||||
| -rw-r--r-- | CompilerKit/Defines.hpp | 1 | ||||
| -rw-r--r-- | CompilerKit/StdKit/AE.hpp | 17 | ||||
| -rw-r--r-- | CompilerKit/StdKit/PEF.hpp | 20 | ||||
| -rw-r--r-- | IDE/makefile | 3 | ||||
| -rw-r--r-- | IDE/src/main/java/org/elmahrouss/App.java | 6 | ||||
| -rw-r--r-- | IDE/src/main/java/org/elmahrouss/CodeEditor.java | 34 | ||||
| -rw-r--r-- | IDE/src/main/java/org/elmahrouss/CodeEditorTheme.java | 4 |
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"; } |
