summaryrefslogtreecommitdiff
path: root/setup
diff options
context:
space:
mode:
authorSimon Howard2006-09-25 20:31:42 +0000
committerSimon Howard2006-09-25 20:31:42 +0000
commit2f634a05ce168e6c9955a8298103ffdc5de1aceb (patch)
treeee09fdd4c650b63e94bbdc2e06a9c4b6d5408de8 /setup
parentb7fced59e1d1690842f7ac8f286eb89d4c976189 (diff)
downloadchocolate-doom-2f634a05ce168e6c9955a8298103ffdc5de1aceb.tar.gz
chocolate-doom-2f634a05ce168e6c9955a8298103ffdc5de1aceb.tar.bz2
chocolate-doom-2f634a05ce168e6c9955a8298103ffdc5de1aceb.zip
Add "test" window actions to the keyboard/mouse dialogs to invoke Chocolate
Doom with the -testcontrols option. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 663
Diffstat (limited to 'setup')
-rw-r--r--setup/Makefile.am1
-rw-r--r--setup/keyboard.c3
-rw-r--r--setup/mouse.c4
-rw-r--r--setup/testconfig.c54
-rw-r--r--setup/testconfig.h30
5 files changed, 92 insertions, 0 deletions
diff --git a/setup/Makefile.am b/setup/Makefile.am
index 22ad81b0..09b5c56c 100644
--- a/setup/Makefile.am
+++ b/setup/Makefile.am
@@ -13,6 +13,7 @@ chocolate_setup_SOURCES = \
mouse.c \
multiplayer.c \
sound.c \
+ testconfig.c testconfig.h \
txt_keyinput.c txt_keyinput.h \
txt_mouseinput.c txt_mouseinput.h
diff --git a/setup/keyboard.c b/setup/keyboard.c
index a76bbbfe..8555e5e5 100644
--- a/setup/keyboard.c
+++ b/setup/keyboard.c
@@ -20,6 +20,7 @@
//
#include "textscreen.h"
+#include "testconfig.h"
#include "txt_keyinput.h"
int key_left = KEY_LEFTARROW;
@@ -99,5 +100,7 @@ void ConfigKeyboard(void)
AddKeyControl(table, "Fire", &key_fire);
TXT_AddWidget(window, table);
+
+ TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction());
}
diff --git a/setup/mouse.c b/setup/mouse.c
index b8eeaff6..37aaef1b 100644
--- a/setup/mouse.c
+++ b/setup/mouse.c
@@ -20,8 +20,10 @@
//
#include <stdlib.h>
+
#include "textscreen.h"
+#include "testconfig.h"
#include "txt_mouseinput.h"
int use_mouse = 1;
@@ -108,5 +110,7 @@ void ConfigMouse(void)
AddMouseControl(table, "Strafe on", &mouseb_strafe);
TXT_AddWidget(window, table);
+
+ TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction());
}
diff --git a/setup/testconfig.c b/setup/testconfig.c
new file mode 100644
index 00000000..4e991d1a
--- /dev/null
+++ b/setup/testconfig.c
@@ -0,0 +1,54 @@
+// Emacs style mode select -*- C++ -*-
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 2006 Simon Howard
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+
+// Code for invoking Doom to test the current configuration.
+
+#include <stdlib.h>
+
+#include "textscreen.h"
+
+static void TestCallback(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(data))
+{
+ txt_window_t *testwindow;
+ txt_label_t *label;
+
+ testwindow = TXT_NewWindow("Starting Doom");
+
+ label = TXT_NewLabel("Starting Doom to test the\n"
+ "settings. Please wait.");
+ TXT_SetWidgetAlign(label, TXT_HORIZ_CENTER);
+ TXT_AddWidget(testwindow, label);
+ TXT_DrawDesktop();
+ system("chocolate-doom -testcontrols");
+
+ TXT_CloseWindow(testwindow);
+}
+
+txt_window_action_t *TestConfigAction(void)
+{
+ txt_window_action_t *test_action;
+
+ test_action = TXT_NewWindowAction('t', "Test");
+ TXT_SignalConnect(test_action, "pressed", TestCallback, NULL);
+
+ return test_action;
+}
+
diff --git a/setup/testconfig.h b/setup/testconfig.h
new file mode 100644
index 00000000..3806e26f
--- /dev/null
+++ b/setup/testconfig.h
@@ -0,0 +1,30 @@
+// Emacs style mode select -*- C++ -*-
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 2006 Simon Howard
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+
+#ifndef TESTCONFIG_H
+#define TESTCONFIG_H
+
+#include "textscreen.h"
+
+txt_window_action_t *TestConfigAction(void);
+
+#endif /* #ifndef TESTCONFIG_H */
+