summaryrefslogtreecommitdiffhomepage
path: root/example/text_editor_example
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2026-03-07 20:25:08 +0100
committerGitHub <noreply@github.com>2026-03-07 20:25:08 +0100
commite6d4517817a1e59a63932109e39b888257fb72a1 (patch)
tree46d290640fff74773a9d79191ff9221631324e77 /example/text_editor_example
parentb30b55c48fd9eb64f3555f19820279792f69703c (diff)
parent5a7fe8a6eacd5f4caac4f3c3d625ba82e393f7e6 (diff)
Merge pull request #3 from ocl-foss-org/text-editor-example
[CHORE] Text Editor example (Part 1)
Diffstat (limited to 'example/text_editor_example')
-rw-r--r--example/text_editor_example/Jamfile.v214
-rw-r--r--example/text_editor_example/example.cpp18
-rw-r--r--example/text_editor_example/texteditor.hpp54
3 files changed, 86 insertions, 0 deletions
diff --git a/example/text_editor_example/Jamfile.v2 b/example/text_editor_example/Jamfile.v2
new file mode 100644
index 0000000..4bfc827
--- /dev/null
+++ b/example/text_editor_example/Jamfile.v2
@@ -0,0 +1,14 @@
+#
+# File: Jamfile.v2
+# Author: Amlal El Mahrouss,
+# Copyright 2026, Amlal El Mahrouss, Licensed under the Boost Software License
+#
+
+project tests
+: default-build debug
+;
+
+exe example.o
+ : example.cpp
+ : <cxxstd>20 ;
+
diff --git a/example/text_editor_example/example.cpp b/example/text_editor_example/example.cpp
new file mode 100644
index 0000000..d61f91f
--- /dev/null
+++ b/example/text_editor_example/example.cpp
@@ -0,0 +1,18 @@
+/*
+ * File: example.cpp
+ * Purpose: Rope example.
+ * Author: Amlal El Mahrouss (amlal@nekernel.org)
+ * Copyright 2026, Amlal El Mahrouss, licensed under the Boost Software License.
+ */
+
+#include "texteditor.hpp"
+
+int main(int argc, char** argv)
+{
+ QApplication app(argc, argv);
+ TTextEditor win;
+
+ win.show();
+
+ return app.exec();
+}
diff --git a/example/text_editor_example/texteditor.hpp b/example/text_editor_example/texteditor.hpp
new file mode 100644
index 0000000..e83cf85
--- /dev/null
+++ b/example/text_editor_example/texteditor.hpp
@@ -0,0 +1,54 @@
+/*
+ * File: qt_widget.hpp
+ * Purpose: Minimal text editor widget example using tproc rope.
+ * Author: Amlal El Mahrouss (amlal@nekernel.org)
+ * Copyright 2026, Amlal El Mahrouss, licensed under the Boost Software License.
+ */
+
+#ifndef TPROC_EXAMPLE_QT_WIDGET_HPP
+#define TPROC_EXAMPLE_QT_WIDGET_HPP
+
+#include <ocl/tproc/rope.hpp>
+
+#include <iostream>
+#include <string>
+#include <string_view>
+#include <QtWidgets>
+#include <QApplication>
+
+#ifndef STANDALONE
+
+using namespace ocl;
+using namespace boost;
+
+#else
+
+using namespace boost;
+
+#endif
+
+class TTextEditor;
+
+class TTextEditor : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ using rope_type = tproc::crope;
+ using size_type = rope_type::size_type;
+ using string_view = std::string_view;
+
+ TTextEditorWidget() = delete;
+
+ TTextEditor(string_view text, TTextEditorDelegate* del)
+ : buffer_(text), delegate_(del)
+ {
+ }
+
+ virtual ~TTextEditor() = default;
+
+private:
+ rope_type buffer_;
+};
+
+#endif