xref: /haiku/src/preferences/screensaver/Utility.h (revision c0a4294edd9a7083cb1c7275fd54fbab34701745)
17cae4a1eSAxel Dörfler #ifndef UTILITY_H
27cae4a1eSAxel Dörfler #define UTILITY_H
37cae4a1eSAxel Dörfler 
47cae4a1eSAxel Dörfler 
57cae4a1eSAxel Dörfler #include <Rect.h>
67cae4a1eSAxel Dörfler 
77cae4a1eSAxel Dörfler 
87cae4a1eSAxel Dörfler inline BPoint
97cae4a1eSAxel Dörfler scale_direct(float x, float y, BRect area)
107cae4a1eSAxel Dörfler {
117cae4a1eSAxel Dörfler 	return BPoint(area.Width() * x + area.left, area.Height() * y + area.top);
127cae4a1eSAxel Dörfler }
137cae4a1eSAxel Dörfler 
147cae4a1eSAxel Dörfler 
157cae4a1eSAxel Dörfler inline BRect
167cae4a1eSAxel Dörfler scale_direct(float x1, float x2, float y1, float y2, BRect area)
177cae4a1eSAxel Dörfler {
18*c0a4294eSKarsten Heimrich 	return BRect(area.Width() * x1 + area.left, area.Height() * y1 + area.top,
19*c0a4294eSKarsten Heimrich 		area.Width()* x2 + area.left, area.Height() * y2 + area.top);
207cae4a1eSAxel Dörfler }
217cae4a1eSAxel Dörfler 
227cae4a1eSAxel Dörfler static const float kPositionalX[] = { 0, .1, .25, .3, .7, .75, .9, 1.0 };
237cae4a1eSAxel Dörfler static const float kPositionalY[] = { 0, .1, .7, .8, .9, 1.0 };
247cae4a1eSAxel Dörfler 
257cae4a1eSAxel Dörfler inline BPoint
267cae4a1eSAxel Dörfler scale(int x, int y,BRect area)
277cae4a1eSAxel Dörfler {
287cae4a1eSAxel Dörfler 	return scale_direct(kPositionalX[x], kPositionalY[y], area);
297cae4a1eSAxel Dörfler }
307cae4a1eSAxel Dörfler 
317cae4a1eSAxel Dörfler 
327cae4a1eSAxel Dörfler inline BRect
337cae4a1eSAxel Dörfler scale(int x1, int x2, int y1, int y2,BRect area)
347cae4a1eSAxel Dörfler {
357cae4a1eSAxel Dörfler 	return scale_direct(kPositionalX[x1], kPositionalX[x2],
367cae4a1eSAxel Dörfler 		kPositionalY[y1], kPositionalY[y2], area);
377cae4a1eSAxel Dörfler }
387cae4a1eSAxel Dörfler 
397cae4a1eSAxel Dörfler #endif	// UTILITY_H
40