1 #pragma once
2 
3 #include "messages/Image.hpp"
4 
5 namespace chatterino {
6 
7 class ImageSet
8 {
9 public:
10     ImageSet();
11     ImageSet(const ImagePtr &image1, const ImagePtr &image2 = Image::getEmpty(),
12              const ImagePtr &image3 = Image::getEmpty());
13     ImageSet(const Url &image1, const Url &image2 = {}, const Url &image3 = {});
14 
15     void setImage1(const ImagePtr &image);
16     void setImage2(const ImagePtr &image);
17     void setImage3(const ImagePtr &image);
18     const ImagePtr &getImage1() const;
19     const ImagePtr &getImage2() const;
20     const ImagePtr &getImage3() const;
21 
22     /// Preferes getting an already loaded image, even if it is smaller/bigger.
23     /// However, it starts loading the proper image.
24     const ImagePtr &getImageOrLoaded(float scale) const;
25     const ImagePtr &getImage(float scale) const;
26 
27     bool operator==(const ImageSet &other) const;
28     bool operator!=(const ImageSet &other) const;
29 
30 private:
31     ImagePtr imageX1_;
32     ImagePtr imageX2_;
33     ImagePtr imageX3_;
34 };
35 
36 }  // namespace chatterino
37