Rose
ImageView.h
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include "Widget.h"
11 #include "ImageRepository.h"
12 #include "Utilities.h"
13 
14 namespace rose {
15 
20  class ImageView : public Widget {
21  protected:
22  ImageId mImageId;
23 
24  public:
25  ImageView();
26  ~ImageView() override = default;
27  ImageView(ImageView &&) = delete;
28  ImageView(const ImageView &) = delete;
29  ImageView& operator=(ImageView &&) = delete;
30  ImageView& operator=(const ImageView &) = delete;
31 
36  explicit ImageView(ImageId imageId);
37 
42  explicit ImageView(std::optional<ImageId> imageId) : ImageView(imageId ? imageId.value() : RoseImageInvalid) {}
43 
49  ImageView(ImageId imageId, bool shrinkable);
50 
56  ImageView(std::optional<ImageId> imageId, bool shrinkable) : ImageView(imageId ? imageId.value() : RoseImageInvalid, shrinkable) {}
57 
59  void initializeComposite() override;
60 
67  Rectangle widgetLayout(sdl::Renderer &renderer, Rectangle available, uint layoutStage) override;
68 
75  void draw(sdl::Renderer &renderer, Rectangle parentRect) override;
76 
81  void setImageId(ImageId imageId) override;
82 
83  };
84 
85 }
The Sprite Class.
Invalid image ID.
Definition: Constants.h:172
Display an image texture.
Definition: ImageView.h:20
Rectangle widgetLayout(sdl::Renderer &renderer, Rectangle available, uint layoutStage) override
Determine the desired size of the label with text and badge.
Definition: ImageView.cpp:31
ImageView(std::optional< ImageId > imageId)
Constructor.
Definition: ImageView.h:42
void setImageId(ImageId imageId) override
Set the ImageId of the image texture to display.
Definition: ImageView.cpp:91
void draw(sdl::Renderer &renderer, Rectangle parentRect) override
Draw the Label.
Definition: ImageView.cpp:72
A composite of a Position and a Size.
Definition: Types.h:307
ImageView(std::optional< ImageId > imageId, bool shrinkable)
Constructor.
Definition: ImageView.h:56
void initializeComposite() override
See Widget::initializeComposite()
Definition: ImageView.cpp:26
An element of the application user interface.
Definition: Visual.h:451
Written as a workaround for an issue in the SDL2 Library.
Definition: Renderer.h:64
ToDo: There is an issue that the initial scroll interaction is lost if the click/press lands on a Wid...
Definition: CelestialOverlay.cpp:13