]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/dialog_sandboxtools.c
Fix a bug in the sandbox menu
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_sandboxtools.c
1 #ifdef INTERFACE
2 CLASS(XonoticSandboxToolsDialog) EXTENDS(XonoticRootDialog)
3         METHOD(XonoticSandboxToolsDialog, fill, void(entity)) // to be overridden by user to fill the dialog with controls
4         ATTRIB(XonoticSandboxToolsDialog, title, string, _("Sandbox Tools")) // ;)
5         ATTRIB(XonoticSandboxToolsDialog, color, vector, SKINCOLOR_DIALOG_SANDBOXTOOLS)
6         ATTRIB(XonoticSandboxToolsDialog, intendedWidth, float, 0.8)
7         ATTRIB(XonoticSandboxToolsDialog, rows, float, 20)
8         ATTRIB(XonoticSandboxToolsDialog, columns, float, 4)
9         ATTRIB(XonoticSandboxToolsDialog, name, string, "SandboxTools")
10 ENDCLASS(XonoticSandboxToolsDialog)
11 #endif
12
13 #ifdef IMPLEMENTATION
14 void XonoticSandboxToolsDialog_fill(entity me)
15 {
16         entity e, box;
17
18         me.TR(me);
19                 me.TD(me, 1, 0.25, e = makeXonoticTextLabel(0, _("Model:")));
20                 me.TD(me, 1, 1.5, box = makeXonoticInputBox(1, "menu_sandbox_spawn_model"));
21                         box.forbiddenCharacters = "\r\n\\\"$"; // don't care, isn't getting saved
22                         box.maxLength = -127; // negative means encoded length in bytes
23                         box.saveImmediately = 1;
24         me.TDempty(me, 0.1);
25                 me.TD(me, 1, 0.5, makeXonoticCommandButton(_("Spawn"), '0 0 0', "sandbox spawn_object $menu_sandbox_spawn_model", 0));
26                 me.TD(me, 1, 0.5, makeXonoticCommandButton(_("Remove"), '0 0 0', "sandbox remove_object", 0));
27         me.TDempty(me, 0.1);
28                 me.TD(me, 1, 0.5, makeXonoticCommandButton(_("Copy"), '0 0 0', "sandbox duplicate_object_copy", 0));
29                 me.TD(me, 1, 0.5, makeXonoticCommandButton(_("Paste"), '0 0 0', "sandbox duplicate_object_paste", 0));
30         me.TR(me);
31         me.TR(me);
32                 me.TD(me, 1, 0.5, makeXonoticCommandButton(_("Set skin:"), '0 0 0', "sandbox edit_object skin $menu_sandbox_edit_skin", 0));
33                 me.TD(me, 1, 1.5, e = makeXonoticSlider(0, 99, 1, "menu_sandbox_edit_skin"));
34                 me.TD(me, 1, 0.5, makeXonoticCommandButton(_("Set frame:"), '0 0 0', "sandbox edit_object frame $menu_sandbox_edit_frame", 0));
35                 me.TD(me, 1, 1.5, e = makeXonoticSlider(0, 99, 1, "menu_sandbox_edit_frame"));
36         me.TR(me);
37                 me.TD(me, 1, 0.5, makeXonoticCommandButton(_("Set physics:"), '0 0 0', "sandbox edit_object physics $menu_sandbox_edit_physics", 0));
38         me.TDempty(me, 0.1);
39                 me.TD(me, 1, 0.5, e = makeXonoticRadioButton(1, "menu_sandbox_edit_physics", "0", _("Static")));
40                 me.TD(me, 1, 0.5, e = makeXonoticRadioButton(1, "menu_sandbox_edit_physics", "1", _("Movable")));
41                 me.TD(me, 1, 0.5, e = makeXonoticRadioButton(1, "menu_sandbox_edit_physics", "2", _("Physical")));
42
43         me.gotoRC(me, me.rows - 1, 0);
44                 me.TD(me, 1, me.columns, e = makeXonoticButton(_("OK"), '0 0 0'));
45                         e.onClick = Dialog_Close;
46                         e.onClickEntity = me;
47 }
48 #endif
49
50 /* Click. The c-word is here so you can grep for it :-) */