From 1010d0d526ad7419449f19ac4db42d63f7731540 Mon Sep 17 00:00:00 2001
From: Nao Pross <naopross@thearcway.org>
Date: Fri, 16 Feb 2018 21:10:24 +0100
Subject: Add basic widget implementation (not usable) and configure cmake

---
 src/main/cpp/Widget.cpp         |  8 ++++++++
 src/main/cpp/WorldScene.cpp     |  2 +-
 src/main/headers/Scene.hpp      |  5 ++++-
 src/main/headers/Widget.hpp     | 23 +++++++++++++++++++++++
 src/main/headers/WorldScene.hpp |  5 +++--
 src/main/headers/config.h       |  0
 src/main/headers/config.h.in    |  0
 7 files changed, 39 insertions(+), 4 deletions(-)
 create mode 100644 src/main/cpp/Widget.cpp
 create mode 100644 src/main/headers/Widget.hpp
 create mode 100644 src/main/headers/config.h
 create mode 100644 src/main/headers/config.h.in

(limited to 'src')

diff --git a/src/main/cpp/Widget.cpp b/src/main/cpp/Widget.cpp
new file mode 100644
index 0000000..82773bc
--- /dev/null
+++ b/src/main/cpp/Widget.cpp
@@ -0,0 +1,8 @@
+#include "Widget.hpp"
+
+#include <SFML/Graphics.hpp>
+
+void Widget::render()
+{
+    sf::RectangleShape rect;
+}
diff --git a/src/main/cpp/WorldScene.cpp b/src/main/cpp/WorldScene.cpp
index 8887f6f..4b7d940 100644
--- a/src/main/cpp/WorldScene.cpp
+++ b/src/main/cpp/WorldScene.cpp
@@ -16,7 +16,7 @@ void WorldScene::render()
     rect.setOutlineThickness(-.5);
     rect.setOutlineColor(sf::Color::Black);
 
-    for (const Tile &tile : map.tiles()) {
+    for (const Tile &tile : _map.tiles()) {
         rect.setPosition(tile.x * _tileSize, tile.y * _tileSize);
         _window.draw(rect);
     }
diff --git a/src/main/headers/Scene.hpp b/src/main/headers/Scene.hpp
index 2d720a9..0e121e9 100644
--- a/src/main/headers/Scene.hpp
+++ b/src/main/headers/Scene.hpp
@@ -1,7 +1,10 @@
 #ifndef SCENE_HPP
 #define SCENE_HPP
 
+#include "Widget.hpp"
+
 #include <SFML/Graphics.hpp>
+#include <vector>
 
 class Scene
 {
@@ -15,7 +18,7 @@ public:
     virtual void keyPress(const sf::Event::KeyEvent &event) {}
 
 protected:
-    float _zoom = 1;
+    std::vector<Widget> widgets;
     sf::RenderWindow &_window;
 
     Scene(sf::RenderWindow &window) : _window(window) {}
diff --git a/src/main/headers/Widget.hpp b/src/main/headers/Widget.hpp
new file mode 100644
index 0000000..53543fc
--- /dev/null
+++ b/src/main/headers/Widget.hpp
@@ -0,0 +1,23 @@
+#ifndef WIDGET_HPP
+#define WIDGET_HPP
+
+#include <SFML/Graphics.hpp>
+
+struct Widget
+{
+public:
+    int x;
+    int y;
+    unsigned width;
+    unsigned height;
+
+    Widget() = delete;
+    virtual void render();
+
+protected:
+    sf::RenderWindow &_window;   
+
+    Widget(sf::RenderWindow &window) : _window(window) {}
+};
+
+#endif
diff --git a/src/main/headers/WorldScene.hpp b/src/main/headers/WorldScene.hpp
index d21d885..2835842 100644
--- a/src/main/headers/WorldScene.hpp
+++ b/src/main/headers/WorldScene.hpp
@@ -23,9 +23,10 @@ public:
     virtual void pan(int dx, int dy);
 
 private:
-    Map map;
-
+    float _zoom = 1;
     unsigned _tileSize;
+
+    Map _map;
 };
 
 #endif
diff --git a/src/main/headers/config.h b/src/main/headers/config.h
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/headers/config.h.in b/src/main/headers/config.h.in
new file mode 100644
index 0000000..e69de29
-- 
cgit v1.2.1