summaryrefslogtreecommitdiff
path: root/src/dialogues/ErrorMessage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dialogues/ErrorMessage.cpp')
-rw-r--r--src/dialogues/ErrorMessage.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/dialogues/ErrorMessage.cpp b/src/dialogues/ErrorMessage.cpp
new file mode 100644
index 0000000..bce0c33
--- /dev/null
+++ b/src/dialogues/ErrorMessage.cpp
@@ -0,0 +1,50 @@
+/*
+ * ErrorMessage.cpp
+ *
+ * Created on: Jan 29, 2012
+ * Author: Simon
+ */
+
+#include "ErrorMessage.h"
+#include "interface/Button.h"
+#include "interface/Label.h"
+
+ErrorMessage::ErrorMessage(std::string title, std::string message):
+ ui::Window(ui::Point(-1, -1), ui::Point(200, 75))
+{
+ ui::Label * titleLabel = new ui::Label(ui::Point(2, 1), ui::Point(Size.X-4, 16), title);
+ titleLabel->SetTextColour(ui::Colour(200, 100, 50));
+ titleLabel->SetAlignment(AlignLeft, AlignBottom);
+ AddComponent(titleLabel);
+
+ ui::Label * messageLabel = new ui::Label(ui::Point(4, 18), ui::Point(Size.X-8, 60), message);
+ messageLabel->SetAlignment(AlignLeft, AlignTop);
+ AddComponent(messageLabel);
+
+ class DismissAction: public ui::ButtonAction
+ {
+ void ActionCallback(ui::Button * sender)
+ {
+ ui::Engine::Ref().CloseWindow();
+ }
+ };
+
+ ui::Button * okayButton = new ui::Button(ui::Point(0, Size.Y-16), ui::Point(Size.X, 16), "Dismiss");
+ okayButton->SetAlignment(AlignRight, AlignBottom);
+ okayButton->SetBorderColour(ui::Colour(200, 200, 200));
+ okayButton->SetActionCallback(new DismissAction());
+ AddComponent(okayButton);
+ ui::Engine::Ref().ShowWindow(this);
+}
+
+void ErrorMessage::OnDraw()
+{
+ Graphics * g = ui::Engine::Ref().g;
+
+ g->clearrect(Position.X-2, Position.Y-2, Size.X+4, Size.Y+4);
+ g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 200, 200, 200, 255);
+}
+
+ErrorMessage::~ErrorMessage() {
+}
+