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