1 #include "screenshotimage.qh"
3 entity makeXonoticScreenshotImage()
6 me = NEW(XonoticScreenshotImage);
7 me.configureXonoticScreenshotImage(me);
11 void XonoticScreenshotImage_configureXonoticScreenshotImage(entity me)
13 me.configureXonoticImage(me, string_null, -2);
14 me.zoomLimitedByTheBox = false; // enable this to forbid enlarging the image more than the containing box (if making use of draw_SetClip is a too bad thing)
15 me.zoomSnapToTheBox = false; // disabled: it's cooler
18 void XonoticScreenshotImage_load(entity me, string theImage)
20 me.screenshotTime = time;
22 if (me.screenshotTitle)
23 strunzone(me.screenshotTitle);
24 me.screenshotTitle = strzone(substring(me.src, 13, strlen(theImage) - 13)); //strip "/screenshots/"
26 me.initZoom(me); // this image may have a different size
30 float XonoticScreenshotImage_mousePress(entity me, vector coords)
32 return me.drag_setStartPos(me, coords);
35 float XonoticScreenshotImage_mouseDrag(entity me, vector coords)
37 return me.drag(me, coords);
40 float XonoticScreenshotImage_mouseMove(entity me, vector coords)
42 return me.drag_setStartPos(me, coords);
45 void XonoticScreenshotImage_draw(entity me)
50 SUPER(XonoticScreenshotImage).draw(me);
51 if (me.showTitle && time < me.screenshotTime + 4) // 3 seconds at full alpha, 1 second fading out
53 theAlpha = (4 - (time - me.screenshotTime));
54 draw_CenterText('0.5 0 0', me.screenshotTitle, me.realFontSize, '1 1 1', theAlpha, false);
56 if (time < me.zoomTime + 2) // 1 seconds at full alpha, 1 second fading out
60 z = me.zoomFactor * 100;
61 if (z - floor(z) == 0)
62 zoomString = sprintf("%d%%", z);
64 zoomString = sprintf("%.2f%%", z);
65 theAlpha = (2 - (time - me.zoomTime));
66 draw_Text('0.05 0.95 0', zoomString, me.realFontSize, '1 1 1', theAlpha, false);
71 void XonoticScreenshotImage_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
73 SUPER(XonoticScreenshotImage).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
74 me.realFontSize_y = me.fontSize / absSize.y;
75 me.realFontSize_x = me.fontSize / absSize.x;