]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/dialog_settings_input_userbind.c
rebrand nexuiz -> xonotic, will fix possible mess later
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / dialog_settings_input_userbind.c
diff --git a/qcsrc/menu/xonotic/dialog_settings_input_userbind.c b/qcsrc/menu/xonotic/dialog_settings_input_userbind.c
new file mode 100644 (file)
index 0000000..38660b8
--- /dev/null
@@ -0,0 +1,55 @@
+#ifdef INTERFACE
+CLASS(XonoticUserbindEditDialog) EXTENDS(XonoticDialog)
+       METHOD(XonoticUserbindEditDialog, loadUserBind, void(entity, string, string, string))
+       METHOD(XonoticUserbindEditDialog, fill, void(entity))
+       ATTRIB(XonoticUserbindEditDialog, title, string, "User defined key bind")
+       ATTRIB(XonoticUserbindEditDialog, color, vector, SKINCOLOR_DIALOG_USERBIND)
+       ATTRIB(XonoticUserbindEditDialog, intendedWidth, float, 0.7)
+       ATTRIB(XonoticUserbindEditDialog, rows, float, 4)
+       ATTRIB(XonoticUserbindEditDialog, columns, float, 3)
+       ATTRIB(XonoticUserbindEditDialog, keybindBox, entity, NULL)
+
+       ATTRIB(XonoticUserbindEditDialog, nameBox, entity, NULL)
+       ATTRIB(XonoticUserbindEditDialog, commandPressBox, entity, NULL)
+       ATTRIB(XonoticUserbindEditDialog, commandReleaseBox, entity, NULL)
+ENDCLASS(XonoticUserbindEditDialog)
+#endif
+
+#ifdef IMPLEMENTATION
+void XonoticUserbindEditDialog_Save(entity btn, entity me)
+{
+       me.keybindBox.editUserbind(me.keybindBox, me.nameBox.text, me.commandPressBox.text, me.commandReleaseBox.text);
+       Dialog_Close(btn, me);
+}
+
+void loadUserBindXonoticUserbindEditDialog(entity me, string theName, string theCommandPress, string theCommandRelease)
+{
+       me.nameBox.setText(me.nameBox, theName);
+               me.nameBox.keyDown(me.nameBox, K_END, 0, 0);
+       me.commandPressBox.setText(me.commandPressBox, theCommandPress);
+               me.nameBox.keyDown(me.commandPressBox, K_END, 0, 0);
+       me.commandReleaseBox.setText(me.commandReleaseBox, theCommandRelease);
+               me.nameBox.keyDown(me.commandReleaseBox, K_END, 0, 0);
+}
+
+void fillXonoticUserbindEditDialog(entity me)
+{
+       entity e;
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Name:"));
+               me.TD(me, 1, me.columns - 1, me.nameBox = makeXonoticInputBox(0, string_null));
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Command when pressed:"));
+               me.TD(me, 1, me.columns - 1, me.commandPressBox = makeXonoticInputBox(0, string_null));
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Command when released:"));
+               me.TD(me, 1, me.columns - 1, me.commandReleaseBox = makeXonoticInputBox(0, string_null));
+       me.TR(me);
+               me.TD(me, 1, me.columns / 2, e = makeXonoticButton("Save", '0 0 0'));
+                       e.onClick = XonoticUserbindEditDialog_Save;
+                       e.onClickEntity = me;
+               me.TD(me, 1, me.columns / 2, e = makeXonoticButton("Cancel", '0 0 0'));
+                       e.onClick = Dialog_Close;
+                       e.onClickEntity = me;
+}
+#endif