From a32e802cf4d4008d6fb331c841e09e8a98400675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quentin=20Guid=C3=A9e?= Date: Fri, 21 Feb 2020 18:13:57 +0100 Subject: [PATCH] New Omega App --- apps/omega/Makefile | 21 ++++++++++++++++ apps/omega/app.cpp | 43 ++++++++++++++++++++++++++++++++ apps/omega/app.h | 31 +++++++++++++++++++++++ apps/omega/base.de.i18n | 2 ++ apps/omega/base.en.i18n | 2 ++ apps/omega/base.es.i18n | 2 ++ apps/omega/base.fr.i18n | 2 ++ apps/omega/base.hu.i18n | 2 ++ apps/omega/base.pt.i18n | 2 ++ apps/omega/omega_controller.cpp | 25 +++++++++++++++++++ apps/omega/omega_controller.h | 21 ++++++++++++++++ apps/omega/omega_icon.png | Bin 0 -> 6806 bytes apps/omega/omega_view.cpp | 34 +++++++++++++++++++++++++ apps/omega/omega_view.h | 22 ++++++++++++++++ build/config.mak | 2 +- themes | 2 +- 16 files changed, 211 insertions(+), 2 deletions(-) create mode 100644 apps/omega/Makefile create mode 100644 apps/omega/app.cpp create mode 100644 apps/omega/app.h create mode 100644 apps/omega/base.de.i18n create mode 100644 apps/omega/base.en.i18n create mode 100644 apps/omega/base.es.i18n create mode 100644 apps/omega/base.fr.i18n create mode 100644 apps/omega/base.hu.i18n create mode 100644 apps/omega/base.pt.i18n create mode 100644 apps/omega/omega_controller.cpp create mode 100644 apps/omega/omega_controller.h create mode 100644 apps/omega/omega_icon.png create mode 100644 apps/omega/omega_view.cpp create mode 100644 apps/omega/omega_view.h diff --git a/apps/omega/Makefile b/apps/omega/Makefile new file mode 100644 index 000000000..038972af4 --- /dev/null +++ b/apps/omega/Makefile @@ -0,0 +1,21 @@ +apps += Omega::App +app_headers += apps/omega/app.h + +app_src += $(addprefix apps/omega/,\ + app.cpp \ + omega_controller.cpp \ + omega_view.cpp \ +) + +app_images += apps/omega/omega_icon.png + +i18n_files += $(addprefix apps/omega/,\ + base.de.i18n\ + base.en.i18n\ + base.es.i18n\ + base.fr.i18n\ + base.pt.i18n\ + base.hu.i18n\ +) + +$(eval $(call depends_on_image,apps/omega/app.cpp,apps/omega/omega_icon.png)) \ No newline at end of file diff --git a/apps/omega/app.cpp b/apps/omega/app.cpp new file mode 100644 index 000000000..fec7f0027 --- /dev/null +++ b/apps/omega/app.cpp @@ -0,0 +1,43 @@ +#include "app.h" +#include "apps/apps_container.h" +#include "omega_icon.h" +#include "apps/i18n.h" +#include + +namespace Omega { + +I18n::Message App::Descriptor::name() { + return I18n::Message::OmegaApp; +} + +I18n::Message App::Descriptor::upperName() { + return I18n::Message::OmegaAppCapital; +} + +const Image * App::Descriptor::icon() { + return ImageStore::OmegaIcon; +} + +App::Snapshot::Snapshot() +{ +} + +App * App::Snapshot::unpack(Container * container) { + return new App(this); +} + +App::Descriptor * App::Snapshot::descriptor() { + static Descriptor descriptor; + return &descriptor; +} + +void App::Snapshot::reset() { +} + +App::App(Snapshot * snapshot) : + ::App(snapshot, &m_omegaController), + m_omegaController(this) +{ +} + +} diff --git a/apps/omega/app.h b/apps/omega/app.h new file mode 100644 index 000000000..9b3988a17 --- /dev/null +++ b/apps/omega/app.h @@ -0,0 +1,31 @@ +#ifndef OMEGA_APP_H +#define OMEGA_APP_H + +#include +#include "omega_controller.h" + +namespace Omega { + +class App : public ::App { +public: + class Descriptor : public ::App::Descriptor { + public: + I18n::Message name() override; + I18n::Message upperName() override; + const Image * icon() override; + }; + class Snapshot : public ::App::Snapshot { + public: + Snapshot(); + App * unpack(Container * container) override; + void reset() override; + Descriptor * descriptor() override; + }; +private: + App(Snapshot * snapshot); + OmegaController m_omegaController; +}; + +} + +#endif diff --git a/apps/omega/base.de.i18n b/apps/omega/base.de.i18n new file mode 100644 index 000000000..8a4c7f44d --- /dev/null +++ b/apps/omega/base.de.i18n @@ -0,0 +1,2 @@ +OmegaApp = "Omega" +OmegaAppCapital = "OMEGA" diff --git a/apps/omega/base.en.i18n b/apps/omega/base.en.i18n new file mode 100644 index 000000000..8a4c7f44d --- /dev/null +++ b/apps/omega/base.en.i18n @@ -0,0 +1,2 @@ +OmegaApp = "Omega" +OmegaAppCapital = "OMEGA" diff --git a/apps/omega/base.es.i18n b/apps/omega/base.es.i18n new file mode 100644 index 000000000..8a4c7f44d --- /dev/null +++ b/apps/omega/base.es.i18n @@ -0,0 +1,2 @@ +OmegaApp = "Omega" +OmegaAppCapital = "OMEGA" diff --git a/apps/omega/base.fr.i18n b/apps/omega/base.fr.i18n new file mode 100644 index 000000000..8a4c7f44d --- /dev/null +++ b/apps/omega/base.fr.i18n @@ -0,0 +1,2 @@ +OmegaApp = "Omega" +OmegaAppCapital = "OMEGA" diff --git a/apps/omega/base.hu.i18n b/apps/omega/base.hu.i18n new file mode 100644 index 000000000..8a4c7f44d --- /dev/null +++ b/apps/omega/base.hu.i18n @@ -0,0 +1,2 @@ +OmegaApp = "Omega" +OmegaAppCapital = "OMEGA" diff --git a/apps/omega/base.pt.i18n b/apps/omega/base.pt.i18n new file mode 100644 index 000000000..8a4c7f44d --- /dev/null +++ b/apps/omega/base.pt.i18n @@ -0,0 +1,2 @@ +OmegaApp = "Omega" +OmegaAppCapital = "OMEGA" diff --git a/apps/omega/omega_controller.cpp b/apps/omega/omega_controller.cpp new file mode 100644 index 000000000..333620546 --- /dev/null +++ b/apps/omega/omega_controller.cpp @@ -0,0 +1,25 @@ +#include "omega_controller.h" +#include + +namespace Omega { + +OmegaController::OmegaController(Responder * parentResponder) : + ViewController(parentResponder) +{ +} + +View * OmegaController::view() { + return &m_omegaView; +} + +void OmegaController::didBecomeFirstResponder() { +} + +bool OmegaController::handleEvent(Ion::Events::Event event) { + /* if (event == Ion::Events::OK || event == Ion::Events::EXE) { + return true; + } */ + return false; +} + +} diff --git a/apps/omega/omega_controller.h b/apps/omega/omega_controller.h new file mode 100644 index 000000000..601ee2418 --- /dev/null +++ b/apps/omega/omega_controller.h @@ -0,0 +1,21 @@ +#ifndef APPS_OMEGA_CONTROLLER_H +#define APPS_OMEGA_CONTROLLER_H + +#include +#include "omega_view.h" + +namespace Omega { + +class OmegaController : public ViewController { +public: + OmegaController(Responder * parentResponder); + View * view() override; + bool handleEvent(Ion::Events::Event event) override; + void didBecomeFirstResponder() override; +private: + OmegaView m_omegaView; +}; + +} + +#endif diff --git a/apps/omega/omega_icon.png b/apps/omega/omega_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5a2d74f3a72cd7fcfbbf4e33555814fcc16e264b GIT binary patch literal 6806 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 Eg8tL)K>z>% literal 0 HcmV?d00001 diff --git a/apps/omega/omega_view.cpp b/apps/omega/omega_view.cpp new file mode 100644 index 000000000..c8f3c9c98 --- /dev/null +++ b/apps/omega/omega_view.cpp @@ -0,0 +1,34 @@ +#include "omega_view.h" +#include "apps/i18n.h" + +namespace Omega { + +OmegaView::OmegaView() : + View(), + m_bufferTextView(KDFont::LargeFont, 0.5, 0.5, Palette::PrimaryText) +{ + m_bufferTextView.setText(I18n::translate(I18n::Message::OmegaApp)); +} + +void OmegaView::drawRect(KDContext * ctx, KDRect rect) const { + ctx->fillRect(KDRect(0, 0, bounds().width(), bounds().height()), Palette::BackgroundApps); +} + +void OmegaView::reload() { + markRectAsDirty(bounds()); +} + +int OmegaView::numberOfSubviews() const { + return 1; +} + +View * OmegaView::subviewAtIndex(int index) { + assert(index == 0); + return &m_bufferTextView; +} + +void OmegaView::layoutSubviews(bool force) { + m_bufferTextView.setFrame(KDRect(0, 0, bounds().width(), bounds().height()), force); +} + +} diff --git a/apps/omega/omega_view.h b/apps/omega/omega_view.h new file mode 100644 index 000000000..cfa8ed623 --- /dev/null +++ b/apps/omega/omega_view.h @@ -0,0 +1,22 @@ +#ifndef APPS_OMEGA_VIEW_H +#define APPS_OMEGA_VIEW_H + +#include + +namespace Omega { + +class OmegaView : public View { +public: + OmegaView(); + void drawRect(KDContext * ctx, KDRect rect) const override; + void reload(); + int numberOfSubviews() const override; + View * subviewAtIndex(int index) override; +private: + void layoutSubviews(bool force = false) override; + BufferTextView m_bufferTextView; +}; + +} + +#endif diff --git a/build/config.mak b/build/config.mak index 9168085d4..2d0c1d60f 100644 --- a/build/config.mak +++ b/build/config.mak @@ -9,7 +9,7 @@ include build/platform.$(PLATFORM).mak EPSILON_VERSION ?= 13.0.0 EPSILON_CUSTOM_VERSION ?= 1.20.0 # USERNAME ?= N/A -EPSILON_APPS ?= calculation rpn graph code statistics probability solver atom sequence regression settings external +EPSILON_APPS ?= calculation rpn graph code statistics probability solver atom sequence regression settings external omega EPSILON_I18N ?= en fr es de pt hu # EPSILON_I18N ?= en fr es de pt hu EPSILON_GETOPT ?= 0 diff --git a/themes b/themes index 9e1688dcb..5e482b5f6 160000 --- a/themes +++ b/themes @@ -1 +1 @@ -Subproject commit 9e1688dcbe31116a30861492f57967abb3bdc8a9 +Subproject commit 5e482b5f6d5e19e9c91634569777cf72f74504b3