1 #ifndef SCALER_H 2 #define SCALER_H 3 4 #include <QtGui> 5 6 #define DX(v) (scaler->dx(v)) 7 #define DY(v) (scaler->dy(v)) 8 #define DRECT(v) (scaler->drect(v)) 9 #define DSIZE(v) (scaler->dsize(v)) 10 #define DPOINT(v) (scaler->dpoint(v)) 11 12 #define X56 (scaler->x56()) 13 #define Y56 (scaler->y56()) 14 15 #define X48 (scaler->x48()) 16 #define Y48 (scaler->y48()) 17 18 #define X128 (scaler->x128()) 19 #define Y128 (scaler->y128()) 20 21 22 #define X100 (scaler->x100()) 23 #define X900 (scaler->x900()) 24 #define X910 (scaler->x910()) 25 26 #define Y20 (scaler->y20()) 27 28 #define WIDTH (scaler->width()) 29 #define HEIGHT (scaler->height()) 30 31 #define RIGHT(v) (scaler->right(v)) 32 #define BOTTOM(v) (scaler->bottom(v)) 33 34 #define LEFT_CENTER(v, target) (((target)-(v))/2) 35 36 class Scaler 37 { 38 public: 39 Scaler(); 40 41 static void init(); 42 43 void rescale(int w, int h); 44 dx(int val)45 inline int dx(int val) const { return (int)(cw*val); } dy(int val)46 inline int dy(int val) const { return (int)(ch*val); } 47 drect(const QRect & r)48 inline QRect drect(const QRect &r) 49 { return QRect((int)(cw*r.left()), (int)(ch*r.top()), 50 (int)(cw*r.width()), (int)(ch*r.height())); } 51 dsize(const QSize & r)52 inline QSize dsize(const QSize &r) 53 { return QSize((int)(cw*r.width()), (int)(ch*r.height())); } 54 dpoint(const QPoint & r)55 inline QPoint dpoint(const QPoint &r) 56 { return QPoint((int)(cw*r.x()), (int)(ch*r.y())); } 57 right(int val)58 inline int right(int val) const { return win_w-val; } bottom(int val)59 inline int bottom(int val) const { return win_h-val; } 60 x56()61 inline int x56() const { return m_x56; } y56()62 inline int y56() const { return m_y56; } 63 x48()64 inline int x48() const { return m_x48; } y48()65 inline int y48() const { return m_y48; } 66 x128()67 inline int x128() const { return m_x128; } y128()68 inline int y128() const { return m_y128; } 69 x100()70 inline int x100() const { return m_x100; } x900()71 inline int x900() const { return m_x900; } x910()72 inline int x910() const { return m_x910; } 73 y20()74 inline int y20() const { return m_y20; } 75 width()76 inline int width() const { return win_w; } height()77 inline int height() const { return win_h; } 78 79 private: 80 float cw, ch; 81 82 int m_x56, m_y56; 83 int m_x48, m_y48; 84 int m_x128, m_y128; 85 int m_x100, m_x900, m_x910, m_y20; 86 int win_w, win_h; 87 }; 88 89 extern Scaler *scaler; 90 91 #endif // SCALER_H 92