]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/colorpicker_string.c
Merge remote branch 'remotes/origin/fruitiex/newpanelhud' into terencehill/newpanelhud
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / colorpicker_string.c
1 #ifdef INTERFACE
2 CLASS(XonoticColorpickerString) EXTENDS(Image)
3         METHOD(XonoticColorpickerString, configureXonoticColorpickerString, void(entity, string))
4         METHOD(XonoticColorpickerString, mousePress, float(entity, vector))
5         METHOD(XonoticColorpickerString, mouseRelease, float(entity, vector))
6         METHOD(XonoticColorpickerString, mouseDrag, float(entity, vector))
7         ATTRIB(XonoticColorpickerString, cvarName, string, string_null)
8         ATTRIB(XonoticColorpickerString, prevcoords, vector, '0 0 0')
9         ATTRIB(XonoticColorpickerString, image, string, SKINGFX_COLORPICKER)
10         ATTRIB(XonoticColorpickerString, imagemargin, vector, SKINMARGIN_COLORPICKER)
11         ATTRIB(XonoticColorpickerString, focusable, float, 1)
12         METHOD(XonoticColorpickerString, draw, void(entity))
13         ATTRIB(XonoticColorpickerString, disabledAlpha, float, 0.3)
14 ENDCLASS(XonoticColorpickerString)
15 entity makeXonoticColorpickerString(string theCvar);
16 #endif
17
18 #ifdef IMPLEMENTATION
19 entity makeXonoticColorpickerString(string theCvar)
20 {
21         entity me;
22         me = spawnXonoticColorpickerString();
23         me.configureXonoticColorpickerString(me, theCvar);
24         return me;
25 }
26
27 void XonoticColorpickerString_configureXonoticColorpickerString(entity me, string theCvar)
28 {
29         me.cvarName = theCvar;
30         me.configureImage(me, me.image);
31         me.prevcoords = '1 1 0';
32 }
33
34 float XonoticColorpickerString_mousePress(entity me, vector coords)
35 {
36         me.mouseDrag(me, coords);
37         return 1;
38 }
39
40 float XonoticColorpickerString_mouseDrag(entity me, vector coords)
41 {
42         if(me.disabled)
43                 return 0;
44         vector margin;
45         margin = me.imagemargin;
46         if(coords_x >= margin_x)
47         if(coords_y >= margin_y)
48         if(coords_x <= 1 - margin_x)
49         if(coords_y <= 1 - margin_y)
50         {
51                 cvar_set(me.cvarName, sprintf("%v", hslimage_color(coords, margin)));
52                 me.prevcoords = coords;
53         }
54
55         return 1;
56 }
57
58 float XonoticColorpickerString_mouseRelease(entity me, vector coords)
59 {
60         me.mouseDrag(me, coords);
61         return 1;
62 }
63
64 void XonoticColorpickerString_draw(entity me)
65 {
66         float save;
67         save = draw_alpha;
68         if(me.disabled)
69                 draw_alpha *= me.disabledAlpha;
70
71         SUPER(XonoticColorpickerString).draw(me);
72
73         if(me.disabled)
74                 me.prevcoords = '1 1 0';
75         else
76                 draw_Picture(me.imgOrigin + me.prevcoords - '0.05 0.125 0', strcat(me.src, "_selected"), '0.1 0.25 0', '1 1 1', 1);
77         draw_alpha = save;
78 }
79 #endif