From 9c06cdaa34d3edf2035d1e5dc95b66aa7424df04 Mon Sep 17 00:00:00 2001 From: Tamir Atias Date: Thu, 2 Feb 2012 01:12:13 +0200 Subject: [PATCH] [Add] Pimped out Event History box to Sara's request. --- Unuk-QT/Makefile | 9 ++-- Unuk-QT/Unuk-QT.pro.user | 2 +- src/libUnuk/UI/EventHistory.cpp | 75 ++++++++++++++++++++++----------- src/libUnuk/UI/EventHistory.h | 5 ++- 4 files changed, 59 insertions(+), 32 deletions(-) diff --git a/Unuk-QT/Makefile b/Unuk-QT/Makefile index fca81ca..6eb6e0e 100644 --- a/Unuk-QT/Makefile +++ b/Unuk-QT/Makefile @@ -1,10 +1,6 @@ ############################################################################# # Makefile for building: Unuk-QT -<<<<<<< HEAD -# Generated by qmake (2.01a) (Qt 4.7.4) on: Wed Feb 1 19:11:29 2012 -======= -# Generated by qmake (2.01a) (Qt 4.7.4) on: Wed Feb 1 21:18:56 2012 ->>>>>>> 7a6a20dc0c0e4be1afba7b092f663f8be21feb53 +# Generated by qmake (2.01a) (Qt 4.7.4) on: Wed Feb 1 22:50:50 2012 # Project: Unuk-QT.pro # Template: app # Command: /home/kono/QtSDK/Desktop/Qt/474/gcc/bin/qmake -spec ../../../QtSDK/Desktop/Qt/474/gcc/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro @@ -627,7 +623,8 @@ Bar.o: ../src/libUnuk/UI/Bar.cpp ../src/libUnuk/UI/Bar.h \ ../src/libUnuk/System/Debug.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o Bar.o ../src/libUnuk/UI/Bar.cpp -Vec2.o: ../src/libUnuk/System/Vec2.cpp ../src/libUnuk/System/Vec2.h +Vec2.o: ../src/libUnuk/System/Vec2.cpp ../src/libUnuk/System/Vec2.h \ + ../src/libUnuk/System/MathBox.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o Vec2.o ../src/libUnuk/System/Vec2.cpp ####### Install diff --git a/Unuk-QT/Unuk-QT.pro.user b/Unuk-QT/Unuk-QT.pro.user index 14b8615..90f8dfe 100644 --- a/Unuk-QT/Unuk-QT.pro.user +++ b/Unuk-QT/Unuk-QT.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget diff --git a/src/libUnuk/UI/EventHistory.cpp b/src/libUnuk/UI/EventHistory.cpp index 2a7c6fc..0240de7 100644 --- a/src/libUnuk/UI/EventHistory.cpp +++ b/src/libUnuk/UI/EventHistory.cpp @@ -6,13 +6,17 @@ #include "../../Unuk/Globals.h" const int EventHistory::BOX_WIDTH = 350; -const int EventHistory::BOX_HEIGHT = 130; +const int EventHistory::BOX_HEIGHT = 140; EventHistory::EventHistory(void) { _bgx = SCREEN_WIDTH / 2 - BOX_WIDTH / 2; _bgy = 10; - _text.SetXY(_bgx + 5, _bgy + 5); + _titleText.SetXY(_bgx + BOX_WIDTH/2, _bgy + 5); + _titleText.SetTextBlended("Unuk Log", small, 0, 255, 255); + _titleText.SetXY(_titleText.GetX() - _titleText.GetWidth()/2, _titleText.GetY()); + + _text.SetXY(_bgx + 5, _bgy + 30); _visible = false; } @@ -23,36 +27,59 @@ EventHistory::~EventHistory(void) { void EventHistory::LogEvent(const std::string& evtText) { _events.push_back(evtText); - if(_events.size() > 5) { + if(_events.size() > 4) { _events.erase(_events.begin()); } + BakeText(); + + if(!_visible) { + _timeToVanish.Start(); + _visible = true; + } +} + +void EventHistory::Render(void) { + if(_visible && (_timeToVanish.GetTicks() >= 5000)) { + _timeToVanish.Stop(); + + _events.erase(_events.begin()); + + if(_events.empty()) { + _visible = false; + } else { + BakeText(); + _timeToVanish.Start(); + } + } + + if(!_visible) { + return; + } + + roundedBoxRGBA(screen, + _bgx, _bgy, + _bgx + BOX_WIDTH, _bgy + BOX_HEIGHT, + 8, + 0, 0, 0, 200); + + roundedRectangleRGBA(screen, + _bgx, _bgy, + _bgx + BOX_WIDTH, _bgy + BOX_HEIGHT, + 8, + 0, 255, 255, 255); + + _titleText.RenderLiteral(); + _text.RenderLiteral(); +} + +void EventHistory::BakeText(void) { std::string textStr; for(std::list::iterator evIt = _events.begin(); evIt != _events.end(); ++evIt) { textStr.append(*evIt); textStr.append("\n"); } - _text.SetTextBlended(textStr, small, 255, 255, 255); - - _timeToVanish.Start(); - _visible = true; + _text.SetTextBlended(textStr, small, 255, 255, 255); } -void EventHistory::Render(void) { - if(_visible && (_timeToVanish.GetTicks() >= 2500)) { - _timeToVanish.Stop(); - _visible = false; - } - - if(!_visible) { - return; - } - - boxRGBA(screen, - _bgx, _bgy, - _bgx + BOX_WIDTH, _bgy + BOX_HEIGHT, - 0, 0, 0, 128); - - _text.RenderLiteral(); -} \ No newline at end of file diff --git a/src/libUnuk/UI/EventHistory.h b/src/libUnuk/UI/EventHistory.h index 6d8eea1..5d19741 100644 --- a/src/libUnuk/UI/EventHistory.h +++ b/src/libUnuk/UI/EventHistory.h @@ -16,7 +16,10 @@ public: void Render(void); private: + void BakeText(void); + std::list _events; + Text _titleText; Text _text; Rect _background; @@ -28,4 +31,4 @@ private: static const int BOX_WIDTH; static const int BOX_HEIGHT; -}; \ No newline at end of file +};