main.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include <LibGUI/GApplication.h>
  2. #include <LibGUI/GPainter.h>
  3. #include <LibGUI/GWidget.h>
  4. #include <LibGUI/GWindow.h>
  5. #include <LibDraw/PNGLoader.h>
  6. class TestWidget final : public GWidget {
  7. public:
  8. TestWidget(GWidget* parent)
  9. : GWidget(parent)
  10. {
  11. }
  12. virtual ~TestWidget() override {}
  13. void set_bitmap(RefPtr<GraphicsBitmap>&& bitmap)
  14. {
  15. m_bitmap = move(bitmap);
  16. update();
  17. }
  18. private:
  19. virtual void paint_event(GPaintEvent&) override
  20. {
  21. GPainter painter(*this);
  22. painter.fill_rect(rect(), Color::WarmGray);
  23. painter.blit_tiled({ 0, 0, 160, 160 }, *m_bitmap, m_bitmap->rect());
  24. painter.add_clip_rect({ 50, 50, 115, 95 });
  25. painter.blit_tiled({ 160, 160, 160, 160 }, *m_bitmap, m_bitmap->rect());
  26. }
  27. RefPtr<GraphicsBitmap> m_bitmap;
  28. };
  29. int main(int argc, char** argv)
  30. {
  31. GApplication app(argc, argv);
  32. auto window = GWindow::construct();
  33. window->set_rect(100, 100, 400, 400);
  34. window->set_title("Paint test");
  35. auto test_widget = new TestWidget(nullptr);
  36. window->set_main_widget(test_widget);
  37. test_widget->set_bitmap(load_png("/res/icons/gear16.png"));
  38. window->show();
  39. return app.exec();
  40. }