12#include "../media/image.h" 
   22        virtual Component* getHitComponent(int32_t x, int32_t y) 
override;
 
   23        virtual void render(
const Sml::Rectangle<int32_t>& targetRegion) 
override;
 
   24        virtual void layout() 
override;
 
   25        virtual void prerender() 
override;
 
   26        virtual bool isResizable() 
const override;
 
   28        const Image* getImage() 
const;
 
   29        void setImage(
const Image* image);
 
   31        float getRatio() 
const;
 
   33        bool getPreserveRatio() 
const;
 
   34        void setPreserveRatio(
bool preserveRatio);
 
   36        int32_t getFitWidth() 
const;
 
   37        void setFitWidth(int32_t width);
 
   39        int32_t getFitHeight() 
const;
 
   40        void setFitHeight(int32_t height);
 
   42        virtual int32_t computePrefWidth(int32_t height = -1) 
const override;
 
   43        virtual int32_t computePrefHeight(int32_t width = -1) 
const override;
 
   45        virtual int32_t computeMinWidth(int32_t height = -1) 
const override;
 
   46        virtual int32_t computeMinHeight(int32_t width = -1) 
const override;
 
   48        virtual int32_t computeMaxWidth(int32_t height = -1) 
const override;
 
   49        virtual int32_t computeMaxHeight(int32_t width = -1) 
const override;
 
   52        const Image* m_Image         = 
nullptr;
 
   54        bool         m_PreserveRatio = 
true;
 
   55        int32_t      m_FitWidth      = USE_COMPUTED_SIZE;
 
   56        int32_t      m_FitHeight     = USE_COMPUTED_SIZE;