]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - data/qcsrc/menu/item/image.c
Include gmqcc binaries for Windows and Linux
[voretournament/voretournament.git] / data / qcsrc / menu / item / image.c
1 #ifdef INTERFACE\r
2 CLASS(Image) EXTENDS(Item)\r
3         METHOD(Image, configureImage, void(entity, string))\r
4         METHOD(Image, draw, void(entity))\r
5         METHOD(Image, toString, string(entity))\r
6         METHOD(Image, resizeNotify, void(entity, vector, vector, vector, vector))\r
7         ATTRIB(Image, src, string, string_null)\r
8         ATTRIB(Image, color, vector, '1 1 1')\r
9         ATTRIB(Image, forcedAspect, float, 0)\r
10         ATTRIB(Image, imgOrigin, vector, '0 0 0')\r
11         ATTRIB(Image, imgSize, vector, '0 0 0')\r
12 ENDCLASS(Image)\r
13 #endif\r
14 \r
15 #ifdef IMPLEMENTATION\r
16 string toStringImage(entity me)\r
17 {\r
18         return me.src;\r
19 }\r
20 void configureImageImage(entity me, string path)\r
21 {\r
22         me.src = path;\r
23 }\r
24 void drawImage(entity me)\r
25 {\r
26         draw_Picture(me.imgOrigin, me.src, me.imgSize, me.color, 1);\r
27 }\r
28 void resizeNotifyImage(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)\r
29 {\r
30         resizeNotifyItem(me, relOrigin, relSize, absOrigin, absSize);\r
31         if(me.forcedAspect == 0)\r
32         {\r
33                 me.imgOrigin = '0 0 0';\r
34                 me.imgSize = '1 1 0';\r
35         }\r
36         else\r
37         {\r
38                 if(absSize_x > me.forcedAspect * absSize_y)\r
39                 {\r
40                         // x too large, so center x-wise\r
41                         me.imgSize = eY + eX * (absSize_y * me.forcedAspect / absSize_x);\r
42                 }\r
43                 else\r
44                 {\r
45                         // y too large, so center y-wise\r
46                         me.imgSize = eX + eY * (absSize_x / (me.forcedAspect * absSize_y));\r
47                 }\r
48                 me.imgOrigin = '0.5 0.5 0' - 0.5 * me.imgSize;\r
49         }\r
50 }\r
51 #endif\r