diff options
Diffstat (limited to 'example/text_editor_example')
| -rw-r--r-- | example/text_editor_example/Jamfile.v2 | 14 | ||||
| -rw-r--r-- | example/text_editor_example/example.cpp | 18 | ||||
| -rw-r--r-- | example/text_editor_example/texteditor.hpp | 54 |
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..bc2bffd --- /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 |
