summaryrefslogtreecommitdiff
path: root/src/components/lazyimage.hpp
blob: abf0120448a8b02b64ae7d2c672ea0f19529ca16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once
#include <gtkmm/image.h>

// loads an image only when the widget is drawn for the first time
class LazyImage : public Gtk::Image {
public:
    LazyImage(int w, int h, bool use_placeholder = true);
    LazyImage(std::string url, int w, int h, bool use_placeholder = true);

    void SetAnimated(bool is_animated);
    void SetURL(const std::string &url);

private:
    bool OnDraw(const Cairo::RefPtr<Cairo::Context> &context);

    bool m_animated = false;
    bool m_needs_request = true;
    std::string m_url;
    int m_width;
    int m_height;
};