ref: 2f634a05ce168e6c9955a8298103ffdc5de1aceb
parent: b7fced59e1d1690842f7ac8f286eb89d4c976189
author: Simon Howard <fraggle@gmail.com>
date: Mon Sep 25 16:31:42 EDT 2006
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
--- a/setup/Makefile.am
+++ b/setup/Makefile.am
@@ -13,6 +13,7 @@
mouse.c \
multiplayer.c \
sound.c \
+ testconfig.c testconfig.h \
txt_keyinput.c txt_keyinput.h \
txt_mouseinput.c txt_mouseinput.h
--- 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 @@
AddKeyControl(table, "Fire", &key_fire);
TXT_AddWidget(window, table);
+
+ TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction());
}
--- 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 @@
AddMouseControl(table, "Strafe on", &mouseb_strafe);
TXT_AddWidget(window, table);
+
+ TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction());
}
--- /dev/null
+++ b/setup/testconfig.c
@@ -1,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;
+}
+
--- /dev/null
+++ b/setup/testconfig.h
@@ -1,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 */
+