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