diff --git a/Games/Minesweeper/Field.cpp b/Games/Minesweeper/Field.cpp index 1480a445f8..fc6aceb543 100644 --- a/Games/Minesweeper/Field.cpp +++ b/Games/Minesweeper/Field.cpp @@ -1,8 +1,9 @@ #include "Field.h" #include #include -#include +#include #include +#include #include #include @@ -180,6 +181,26 @@ void Field::flood_fill(Square& square) }); } +void Field::paint_event(GPaintEvent& event) +{ + GFrame::paint_event(event); + GPainter painter(*this); + painter.add_clip_rect(event.rect()); + + auto inner_rect = frame_inner_rect(); + + for (int y = inner_rect.top() - 1; y <= inner_rect.bottom(); y += square_size()) { + Point a { inner_rect.left(), y }; + Point b { inner_rect.right(), y }; + painter.draw_line(a, b, Color::MidGray); + } + for (int x = frame_inner_rect().left() - 1; x <= frame_inner_rect().right(); x += square_size()) { + Point a { x, inner_rect.top() }; + Point b { x, inner_rect.bottom() }; + painter.draw_line(a, b, Color::MidGray); + } +} + void Field::on_square_clicked(Square& square) { if (square.is_swept) diff --git a/Games/Minesweeper/Field.h b/Games/Minesweeper/Field.h index a8d57f9caa..2e91a24c37 100644 --- a/Games/Minesweeper/Field.h +++ b/Games/Minesweeper/Field.h @@ -31,6 +31,8 @@ public: void reset(); private: + virtual void paint_event(GPaintEvent&) override; + void on_square_clicked(Square&); void on_square_right_clicked(Square&); void game_over();