#ifndef GRAPHICS_GAUGE_H_
#define GRAPHICS_GAUGE_H_
-#include "../geometry/Point.h"
+#include "../geometry/Vector.h"
#include <SDL.h>
class Gauge {
public:
- Gauge(SDL_Surface *s, int fullX, int fullY, int emptyX, int emptyY, int height, int startWidth, int repeatWidth, int endWidth)
- : surface(s), fullX(fullX), fullY(fullY), emptyX(emptyX), emptyY(emptyY), height(height), startWidth(startWidth), repeatWidth(repeatWidth), endWidth(endWidth) { }
+ explicit Gauge(SDL_Surface *s = 0, int fullX = 0, int fullY = 0, int emptyX = 0, int emptyY = 0, int height = 1, int startWidth = 0, int repeatWidth = 1, int endWidth = 0)
+ : surface(s), fullOffset(fullX, fullY), emptyOffset(emptyX, emptyY), height(height), startWidth(startWidth), repeatWidth(repeatWidth), endWidth(endWidth) { }
public:
int MinWidth() const { return startWidth + endWidth; }
int Height() const { return height; }
- void Draw(SDL_Surface *dest, geometry::Point<int> position, int width, int filled) const;
+ void Draw(SDL_Surface *dest, const geometry::Vector<int> &position, int width, Uint8 fill) const;
+
+public:
+ void SetSurface(SDL_Surface *s) { surface = s; }
+ void SetFullOffset(const geometry::Vector<int> &o) { fullOffset = o; }
+ void SetEmptyOffset(const geometry::Vector<int> &o) { emptyOffset = o; }
+ void SetHeight(int h) { height = h; }
+ void SetStartWidth(int w) { startWidth = w; }
+ void SetRepeatWidth(int w) { repeatWidth = w; }
+ void SetEndWidth(int w) { endWidth = w; }
private:
SDL_Surface *surface;
- int fullX;
- int fullY;
- int emptyX;
- int emptyY;
+ geometry::Vector<int> fullOffset;
+ geometry::Vector<int> emptyOffset;
int height;
int startWidth;
int repeatWidth;