Mercurial > malikania
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; }