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