- int MinWidth() const { return 2 * borderWidth; }
- int MinHeight() const { return 2 * borderHeight; }
- int BorderWidth() const { return borderWidth; }
- int BorderHeight() const { return borderHeight; }
- void Draw(SDL_Surface *dest, const geometry::Vector<int> &position, int width, int height) const;
+ int MinWidth() const { return 2 * BorderWidth(); }
+ int MinHeight() const { return 2 * BorderHeight(); }
+ int BorderWidth() const { return BorderSize().X(); }
+ int BorderHeight() const { return BorderSize().Y(); }
+ const math::Vector<int> BorderSize() const { return borderSize; }
+ int RepeatWidth() const { return RepeatSize().X(); }
+ int RepeatHeight() const { return RepeatSize().Y(); }
+ const math::Vector<int> RepeatSize() const { return repeatSize; }
+ void Draw(SDL_Surface *dest, const math::Vector<int> &position, int width, int height) const;
+
+public:
+ void SetSurface(SDL_Surface *s) { surface = s; }
+ void SetBorderSize(const math::Vector<int> &s) { borderSize = s; }
+ void SetRepeatSize(const math::Vector<int> &s) { repeatSize = s; }
+ void SetOffset(const math::Vector<int> &o) { offset = o; }
+
+ static void CreateTypeDescription();
+ static void Construct(void *);