From e8b18a18ecbd45147c374cf3909f22b213b50b7e Mon Sep 17 00:00:00 2001 From: C4Phone Date: Thu, 10 Dec 2015 14:05:28 -0600 Subject: [PATCH] better text --- mp3/student-distrib/inc/ui/compositor.h | 9 ++------- mp3/student-distrib/ui/compositor.cpp | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/mp3/student-distrib/inc/ui/compositor.h b/mp3/student-distrib/inc/ui/compositor.h index 83a18838..638426df 100644 --- a/mp3/student-distrib/inc/ui/compositor.h +++ b/mp3/student-distrib/inc/ui/compositor.h @@ -96,7 +96,7 @@ class Compositor : public KeyB::IEvent { void drawSingle(const Container *d, const Rectangle &rect); void drawSingle(const Container *d, const Rectangle &rect, const Rectangle &difference); - void addText(int txtX, int txtY, char c); + Drawable* addText(int txtX, int txtY, char c); Container *getElementAtPosition(int absX, int absY); @@ -104,12 +104,7 @@ class Compositor : public KeyB::IEvent { int32_t txtX = 0; public: - virtual void key(uint32_t kkc, bool capslock) - { - if(kkc &(~KKC_ASCII_MASK)) - return; - addText(txtX++, 0, (char)kkc); - } + virtual void key(uint32_t kkc, bool capslock); // Down and Up cuts changes to ONE single key at a time. virtual void keyDown(uint32_t kkc, bool capslock) diff --git a/mp3/student-distrib/ui/compositor.cpp b/mp3/student-distrib/ui/compositor.cpp index dbaa37c7..95eb959c 100644 --- a/mp3/student-distrib/ui/compositor.cpp +++ b/mp3/student-distrib/ui/compositor.cpp @@ -225,7 +225,7 @@ static uint8_t *renderRGBAFont(ArrFile &parser, int width, int height, char c) } -void Compositor::addText(int txtX, int txtY, char c) +Drawable* Compositor::addText(int txtX, int txtY, char c) { constexpr int NumFont = 94; constexpr int FontWidth = 20; @@ -246,6 +246,8 @@ void Compositor::addText(int txtX, int txtY, char c) theDispatcher->close(fontFile); rootContainer->addChild(draw); draw->show(); + + return draw; } void Compositor::drawNikita() @@ -288,6 +290,21 @@ void Compositor::enterTextMode() }); } +void Compositor::key(uint32_t kkc, bool capslock) +{ + if(kkc &(~KKC_ASCII_MASK)) + return; + static Drawable* all[10] = {0}; + all[txtX] = addText(txtX++, 0, (char)kkc); + if(txtX >= 10) + { + txtX = 0; + for(int i=0; i<10; i++) + (all[i])->hide(); + } + +} + // SYSCALLS