diff mlk-client/main.cpp @ 200:0a285d62ace7

windows: initial VS2017 support While here, do some cleanup in CMake files for a better hierarchy.
author David Demelier <markand@malikania.fr>
date Wed, 28 Nov 2018 22:01:55 +0100
parents 209bdaa13a49
children c973501abe36
line wrap: on
line diff
--- a/mlk-client/main.cpp	Tue Oct 30 13:21:55 2018 +0100
+++ b/mlk-client/main.cpp	Wed Nov 28 22:01:55 2018 +0100
@@ -23,35 +23,55 @@
 #include <malikania/client/color.hpp>
 #include <malikania/client/button.hpp>
 #include <malikania/client/window.hpp>
+#include <malikania/client/sprite.hpp>
+#include <malikania/client/theme.hpp>
 
-using namespace mlk;
-using namespace mlk::client;
+#include <ui.hpp>
 
-int main()
+class loop : public mlk::client::dispatcher {
+};
+
+int main(int, char**)
 {
-	window w;
+	mlk::client::window win(1920/2, 1080/2, "Hello");
+	mlk::client::image image(std::string(ui, sizeof (ui)));
+	mlk::client::sprite sprite(std::move(image), {16, 16});
+
+	loop looper;
 
-	//SDL_RenderSetScale(w.get_renderer(), 2, 2);
-	button b("click me");
+	while (win.is_open()) {
+		win.poll(looper);
+		win.clear();
+		win.set_drawing_color(mlk::client::color::from_hex(0xffffffff));
 
-	b.set_position({50, 50});
-	b.set_size({100, 20});
+		const auto width = 200;
+		const auto height = 150;
 
-	w.set_drawing_color(color::from_name("white"));
-	w.clear();
-	b.draw(w);
-	w.present();
-	std::this_thread::sleep_for(std::chrono::seconds(10));
+		// top
+		sprite.draw(win, 0, mlk::point{10, 10});
+		sprite.draw(win, 1, mlk::rectangle{10 + 16, 10, width, 16});
+		sprite.draw(win, 2, mlk::point{10 + 16 + width, 10});
 
+		// middle
+		sprite.draw(win, 32, mlk::rectangle{10, 10 + 16, 16, height});
+		sprite.draw(win, 33, mlk::rectangle{10 + 16, 10 + 16, width, height});
+		sprite.draw(win, 34, mlk::rectangle{10 + 16 + width, 10 + 16, 16, height});
 
-#if 0
-	boost::asio::io_service service;
+		// bottom
+		sprite.draw(win, 64, mlk::point{10, 10 + 16 + height});
+		sprite.draw(win, 65, mlk::rectangle{10 + 16, 10 + 16 + height, width, 16});
+		sprite.draw(win, 66, mlk::point{10 + 16 + width, 10 + 16 + height});
 
-	mlk::client::connection conn(service);
-	mlk::client::window w;
-	mlk::client::client clt(service, conn, w);
+		// input
+		sprite.draw(win, 3, mlk::point{10 + 8, 10 + 8});
+		sprite.draw(win, 4, mlk::rectangle{10 + 8 + 16, 10 + 8, width - 16, 16});
+		sprite.draw(win, 5, mlk::point{10 + 8 + width, 10 + 8});
+		sprite.draw(win, 35, mlk::point{10 + 8, 10 + 8 + 16});
+		sprite.draw(win, 36, mlk::rectangle{10 + 8 + 16, 10 + 8 + 16, width - 16, 16});
+		sprite.draw(win, 37, mlk::point{10 + 8 + width, 10 + 8 + 16});
 
-	clt.set_state(std::make_unique<mlk::client::login_state>(clt));
-	clt.run();
-#endif
+		win.present();
+	}
+
+	return 0;
 }