]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/dialog_settings_input.qc
take3: format 903 files
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_settings_input.qc
1 #include "dialog_settings_input.qh"
2
3 #include "dialog_settings_input_userbind.qh"
4 #include "skinlist.qh"
5 #include "slider_resolution.qh"
6 #include "../item/checkbox.qh"
7 #include "keybinder.qh"
8 #include "textlabel.qh"
9 #include "button.qh"
10 #include "slider.qh"
11 #include "checkbox.qh"
12
13 entity makeXonoticInputSettingsTab()
14 {
15         entity me;
16         me = NEW(XonoticInputSettingsTab);
17         me.configureDialog(me);
18         return me;
19 }
20
21 void CheckBox_Click_Redisplay(entity me, entity checkbox)
22 {
23         CheckBox_Click(me, checkbox);
24         cmd("\ndefer 0.2 \"togglemenu 1\"\n");
25         // m_display();
26 }
27 void XonoticInputSettingsTab_fill(entity me)
28 {
29         entity e;
30         entity kb = makeXonoticKeyBinder();
31
32         me.TR(me);
33         me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Key Bindings")));
34         me.TR(me);
35         me.TD(me, me.rows - 3, 3, kb);
36         me.gotoRC(me, me.rows - 2, 0);
37         me.TD(me, 1, 1, e = makeXonoticButton(_("Change key..."), '0 0 0'));
38         e.onClick = KeyBinder_Bind_Change;
39         e.onClickEntity = kb;
40         kb.keyGrabButton = e;
41         me.TD(me, 1, 1, e = makeXonoticButton(_("Edit..."), '0 0 0'));
42         e.onClick = KeyBinder_Bind_Edit;
43         e.onClickEntity = kb;
44         kb.userbindEditButton = e;
45         kb.userbindEditDialog = main.userbindEditDialog;
46         main.userbindEditDialog.keybindBox = kb;
47         me.TD(me, 1, 1, e = makeXonoticButton(_("Clear"), '0 0 0'));
48         e.onClick = KeyBinder_Bind_Clear;
49         e.onClickEntity = kb;
50         kb.clearButton = e;
51         me.TR(me);
52         me.TD(me, 1, 3, e = makeXonoticButton(_("Reset all"), '0 0 0'));
53         e.onClick = KeyBinder_Bind_Reset_All;
54         e.onClickEntity = kb;
55
56         me.gotoRC(me, 0, 3.2);
57         me.setFirstColumn(me, me.currentColumn);
58         me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Mouse")));
59         me.TR(me);
60         me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Sensitivity:")));
61         me.TD(me, 1, 2, e = makeXonoticSlider_T(1, 32, 0.2, "sensitivity",
62                         _("Mouse speed multiplier")));
63         me.TR(me);
64         me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "m_filter", _("Smooth aiming"),
65                         _("Smoothes the mouse movement, but makes aiming slightly less responsive")));
66         me.TR(me);
67         me.TD(me, 1, 3, e = makeXonoticCheckBox_T(1.022, "m_pitch", _("Invert aiming"),
68                         _("Invert mouse movement on the Y-axis")));
69         me.TR(me);
70         me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "menu_mouse_absolute", _("Use system mouse positioning"), "-"));
71         makeMulti(e, "hud_cursormode");
72         e.onClick = CheckBox_Click_Redisplay;
73         e.onClickEntity = e;
74         me.TR(me);
75         me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "m_accelerate", _("Enable built in mouse acceleration")));
76         me.TR(me);
77         if (cvar_type("vid_dgamouse") & CVAR_TYPEFLAG_ENGINE) {
78                 me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "vid_dgamouse", _("Disable system mouse acceleration"),
79                                 _("Make use of DGA mouse input")));
80         } else if (cvar_type("apple_mouse_noaccel") & CVAR_TYPEFLAG_ENGINE) {
81                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "apple_mouse_noaccel", _("Disable system mouse acceleration")));
82         } else {
83                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, string_null, _("Disable system mouse acceleration")));
84                 e.disabled = 1; // the option is never available in this case, just there for show
85         }
86
87         me.TR(me);
88         me.TR(me);
89         me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Other")));
90         me.TR(me);
91         me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "con_closeontoggleconsole", _("Pressing \"enter console\" key also closes it"),
92                         _("Allow the console toggling bind to also close the console")));
93         me.TR(me);
94         me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_movement_track_canjump", _("Automatically repeat jumping if holding jump")));
95         e.sendCvars = true;
96         me.TR(me);
97         me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Jetpack on jump:")));
98         me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_jetpack_jump"));
99         e.addValue(e, ZCTX(_("JPJUMP^Disabled")), "0");
100         e.addValue(e, _("Air only"), "1");
101         e.addValue(e, ZCTX(_("JPJUMP^All")), "2");
102         e.configureXonoticTextSliderValues(e);
103         e.sendCvars = true;
104         me.TR(me);
105         if (cvar_type("joy_enable") & CVAR_TYPEFLAG_ENGINE) {
106                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "joy_enable", _("Use joystick input")));
107                 setDependent(e, "joy_detected", 1, 10000000);
108         } else if (cvar_type("joystick") & CVAR_TYPEFLAG_ENGINE) {
109                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "joystick", _("Use joystick input")));
110                 setDependent(e, "joy_detected", 1, 10000000);
111         } else {
112                 me.TD(me, 1, 3, e = makeXonoticCheckBox(0, string_null, _("Use joystick input")));
113                 e.disabled = 1; // the option is never available in this case, just there for show
114         }
115 }