1#pragma once
2
3#include "../item.qh"
4CLASS(Image, Item)
5	METHOD(Image, configureImage, void(entity, string));
6	METHOD(Image, draw, void(entity));
7	METHOD(Image, toString, string(entity));
8	METHOD(Image, resizeNotify, void(entity, vector, vector, vector, vector));
9	METHOD(Image, updateAspect, void(entity));
10	METHOD(Image, initZoom, void(entity));
11	METHOD(Image, setZoom, void(entity, float, float));
12	METHOD(Image, drag_setStartPos, float(entity, vector));
13	METHOD(Image, drag, float(entity, vector));
14	ATTRIB(Image, src, string);
15	ATTRIB(Image, color, vector, '1 1 1');
16	ATTRIB(Image, forcedAspect, float, 0);        // special values: -1 keep image aspect ratio, -2 keep image size but bound to the containing box, -3 always keep image size
17	ATTRIB(Image, zoomBox, float, 0);             // used by forcedAspect -2 when the image is larger than the containing box
18	ATTRIB(Image, zoomFactor, float, 1);
19	ATTRIB(Image, zoomOffset, vector, '0.5 0.5 0');
20	ATTRIB(Image, zoomSnapToTheBox, float, 1);    // snap the zoomed in image to the box borders when zooming/dragging it
21	ATTRIB(Image, zoomTime, float, 0);
22	ATTRIB(Image, zoomLimitedByTheBox, float, 0); // forbids zoom if image would be larger than the containing box
23	ATTRIB(Image, zoomMax, float, 0);
24	ATTRIB(Image, start_zoomOffset, vector, '0 0 0');
25	ATTRIB(Image, start_coords, vector, '0 0 0');
26	ATTRIB(Image, imgOrigin, vector, '0 0 0');
27	ATTRIB(Image, imgSize, vector, '0 0 0');
28ENDCLASS(Image)
29