[usb] USB aplication that displays the link to the workshop.

Change-Id: I8458fe2a7f1eb4f04fc63f9e0b49d251c20f4cb6
This commit is contained in:
Léa Saviot
2018-03-30 14:32:59 +02:00
parent 838234aa02
commit 54eff38c34
12 changed files with 232 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ include apps/shared/Makefile
include apps/home/Makefile
include apps/on_boarding/Makefile
include apps/hardware_test/Makefile
include apps/usb/Makefile
snapshots =
# All selected apps are included. Each Makefile below is responsible for setting

13
apps/usb/Makefile Normal file
View File

@@ -0,0 +1,13 @@
app_objs += $(addprefix apps/usb/,\
app.o\
usb_connected_controller.o\
)
i18n_files += $(addprefix apps/usb/,\
base.de.i18n\
base.en.i18n\
base.es.i18n\
base.fr.i18n\
base.pt.i18n\
base.universal.i18n\
)

33
apps/usb/app.cpp Normal file
View File

@@ -0,0 +1,33 @@
#include "app.h"
#include "../apps_container.h"
#include <assert.h>
namespace USB {
I18n::Message App::Descriptor::name() {
return upperName();
}
I18n::Message App::Descriptor::upperName() {
return I18n::Message::USBAppCapital;
}
App * App::Snapshot::unpack(Container * container) {
return new App(container, this);
}
App::Descriptor * App::Snapshot::descriptor() {
static Descriptor descriptor;
return &descriptor;
}
App::App(Container * container, Snapshot * snapshot) :
::App(container, snapshot, &m_usbConnectedController)
{
}
bool App::processEvent(Ion::Events::Event e) {
return false;
}
}

29
apps/usb/app.h Normal file
View File

@@ -0,0 +1,29 @@
#ifndef USB_APP_H
#define USB_APP_H
#include "escher/include/escher/app.h"
#include "usb_connected_controller.h"
namespace USB {
class App : public ::App {
public:
class Descriptor : public ::App::Descriptor {
public:
I18n::Message name() override;
I18n::Message upperName() override;
};
class Snapshot : public ::App::Snapshot {
public:
App * unpack(Container * container) override;
Descriptor * descriptor() override;
};
bool processEvent(Ion::Events::Event) override;
private:
App(Container * container, Snapshot * snapshot);
USBConnectedController m_usbConnectedController;
};
}
#endif

7
apps/usb/base.de.i18n Normal file
View File

@@ -0,0 +1,7 @@
USBConnected = "VOTRE CALCULATRICE EST CONNECTEE"
ConnectedMessage1 = "Pour transferer des donnees connectez-"
ConnectedMessage2 = "vous depuis votre ordinateur sur le site"
ConnectedMessage3 = "workshop.numworks.com"
ConnectedMessage4 = "Appuyez sur la touche RETOUR de la"
ConnectedMessage5 = "calculatrice ou debranchez-la pour la"
ConnectedMessage6 = "deconnecter."

7
apps/usb/base.en.i18n Normal file
View File

@@ -0,0 +1,7 @@
USBConnected = "VOTRE CALCULATRICE EST CONNECTEE"
ConnectedMessage1 = "Pour transferer des donnees connectez-"
ConnectedMessage2 = "vous depuis votre ordinateur sur le site"
ConnectedMessage3 = "workshop.numworks.com"
ConnectedMessage4 = "Appuyez sur la touche RETOUR de la"
ConnectedMessage5 = "calculatrice ou debranchez-la pour la"
ConnectedMessage6 = "deconnecter."

7
apps/usb/base.es.i18n Normal file
View File

@@ -0,0 +1,7 @@
USBConnected = "VOTRE CALCULATRICE EST CONNECTEE"
ConnectedMessage1 = "Pour transferer des donnees connectez-"
ConnectedMessage2 = "vous depuis votre ordinateur sur le site"
ConnectedMessage3 = "workshop.numworks.com"
ConnectedMessage4 = "Appuyez sur la touche RETOUR de la"
ConnectedMessage5 = "calculatrice ou debranchez-la pour la"
ConnectedMessage6 = "deconnecter."

7
apps/usb/base.fr.i18n Normal file
View File

@@ -0,0 +1,7 @@
USBConnected = "VOTRE CALCULATRICE EST CONNECTEE"
ConnectedMessage1 = "Pour transferer des donnees connectez-"
ConnectedMessage2 = "vous depuis votre ordinateur sur le site"
ConnectedMessage3 = "workshop.numworks.com"
ConnectedMessage4 = "Appuyez sur la touche RETOUR de la"
ConnectedMessage5 = "calculatrice ou debranchez-la pour la"
ConnectedMessage6 = "deconnecter."

7
apps/usb/base.pt.i18n Normal file
View File

@@ -0,0 +1,7 @@
USBConnected = "VOTRE CALCULATRICE EST CONNECTEE"
ConnectedMessage1 = "Pour transferer des donnees connectez-"
ConnectedMessage2 = "vous depuis votre ordinateur sur le site"
ConnectedMessage3 = "workshop.numworks.com"
ConnectedMessage4 = "Appuyez sur la touche RETOUR de la"
ConnectedMessage5 = "calculatrice ou debranchez-la pour la"
ConnectedMessage6 = "deconnecter."

View File

@@ -0,0 +1 @@
USBAppCapital = "USB"

View File

@@ -0,0 +1,81 @@
#include "usb_connected_controller.h"
#include "../apps_container.h"
#include <assert.h>
namespace USB {
static I18n::Message sUSBConnectedMessages[] = {
I18n::Message::USBConnected,
I18n::Message::ConnectedMessage1,
I18n::Message::ConnectedMessage2,
I18n::Message::ConnectedMessage3,
I18n::Message::ConnectedMessage4,
I18n::Message::ConnectedMessage5,
I18n::Message::ConnectedMessage6};
static KDColor sUSBConnectedColors[] = {
KDColorBlack,
KDColorBlack,
KDColorBlack,
Palette::YellowDark,
KDColorBlack,
KDColorBlack,
KDColorBlack};
USBConnectedController::ContentView::ContentView(I18n::Message * messages, KDColor * colors) :
m_titleTextView(KDText::FontSize::Large, messages[0], 0.5f, 0.5f, colors[0]),
m_messageTextView1(KDText::FontSize::Small, messages[1], 0.5f, 0.5f, colors[1]),
m_messageTextView2(KDText::FontSize::Small, messages[2], 0.5f, 0.5f, colors[2]),
m_messageTextView3(KDText::FontSize::Small, messages[3], 0.5f, 0.5f, colors[3]),
m_messageTextView4(KDText::FontSize::Small, messages[4], 0.5f, 0.5f, colors[4]),
m_messageTextView5(KDText::FontSize::Small, messages[5], 0.5f, 0.5f, colors[5]),
m_messageTextView6(KDText::FontSize::Small, messages[6], 0.5f, 0.5f, colors[6])
{
}
void USBConnectedController::ContentView::drawRect(KDContext * ctx, KDRect rect) const {
ctx->fillRect(bounds(), KDColorWhite);
}
View * USBConnectedController::ContentView::subviewAtIndex(int index) {
switch (index) {
case 0:
return &m_titleTextView;
case 1:
return &m_messageTextView1;
case 2:
return &m_messageTextView2;
case 3:
return &m_messageTextView3;
case 4:
return &m_messageTextView4;
case 5:
return &m_messageTextView5;
case 6:
return &m_messageTextView6;
default:
assert(false);
return nullptr;
}
}
void USBConnectedController::ContentView::layoutSubviews() {
KDCoordinate width = bounds().width();
KDCoordinate titleHeight = m_titleTextView.minimalSizeForOptimalDisplay().height();
KDCoordinate textHeight = KDText::charSize(KDText::FontSize::Small).height();
m_titleTextView.setFrame(KDRect(0, k_titleMargin, width, titleHeight));
m_messageTextView1.setFrame(KDRect(0, k_paragraphHeight, width, textHeight));
m_messageTextView2.setFrame(KDRect(0, k_paragraphHeight+textHeight, width, textHeight));
m_messageTextView3.setFrame(KDRect(0, k_paragraphHeight+2*textHeight, width, textHeight));
m_messageTextView4.setFrame(KDRect(0, k_paragraphHeight+3*textHeight+k_paragraphMargin, width, textHeight));
m_messageTextView5.setFrame(KDRect(0, k_paragraphHeight+4*textHeight+k_paragraphMargin, width, textHeight));
m_messageTextView6.setFrame(KDRect(0, k_paragraphHeight+5*textHeight+k_paragraphMargin, width, textHeight));
}
USBConnectedController::USBConnectedController() :
ViewController(nullptr),
m_contentView(sUSBConnectedMessages, sUSBConnectedColors)
{
}
}

View File

@@ -0,0 +1,39 @@
#ifndef USB_USB_CONNECTED_CONTROLLER_H
#define USB_USB_CONNECTED_CONTROLLER_H
#include <escher.h>
namespace USB {
class USBConnectedController : public ViewController {
public:
USBConnectedController();
View * view() override { return &m_contentView; }
bool handleEvent(Ion::Events::Event event) override { return false; }
private:
class ContentView : public View {
public:
ContentView(I18n::Message * messages, KDColor * colors);
void drawRect(KDContext * ctx, KDRect rect) const override;
private:
constexpr static KDCoordinate k_titleMargin = 40;
constexpr static KDCoordinate k_paragraphHeight = 100;
constexpr static KDCoordinate k_paragraphMargin = 13;
int numberOfSubviews() const override { return 7; }
View * subviewAtIndex(int index) override;
void layoutSubviews() override;
MessageTextView m_titleTextView;
MessageTextView m_messageTextView1;
MessageTextView m_messageTextView2;
MessageTextView m_messageTextView3;
MessageTextView m_messageTextView4;
MessageTextView m_messageTextView5;
MessageTextView m_messageTextView6;
};
ContentView m_contentView;
};
}
#endif