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 000000000..5a2d74f3a Binary files /dev/null and b/apps/omega/omega_icon.png differ 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