Windows: Add ugly dialog that just shows controls for now. Also had VS rewrite the .rc file for me, looks neater.

This commit is contained in:
Henrik Rydgard 2013-01-02 22:57:57 +01:00
parent 19b8ff5331
commit fb487ded17
3 changed files with 263 additions and 141 deletions

View File

@ -61,6 +61,7 @@ namespace MainWindow
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK DisplayProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK Controls(HWND, UINT, WPARAM, LPARAM);
HWND GetHWND()
{
@ -547,6 +548,12 @@ namespace MainWindow
g_Config.bLinearFiltering = !g_Config.bLinearFiltering;
UpdateMenus();
break;
case ID_OPTIONS_CONTROLS:
DialogManager::EnableAll(FALSE);
DialogBox(hInst, (LPCTSTR)IDD_CONTROLS, hWnd, (DLGPROC)Controls);
DialogManager::EnableAll(TRUE);
break;
//////////////////////////////////////////////////////////////////////////
@ -746,6 +753,53 @@ namespace MainWindow
return FALSE;
}
const char *controllist[] = {
"Start\tSpace",
"Select\tV",
"Square\tA",
"Triangle\tS",
"Circle\tX",
"Cross\tZ",
"Left Trigger\tQ",
"Right Trigger\tW",
"Up\tArrow Up",
"Down\tArrow Down",
"Left\tArrow Left",
"Right\tArrow Right",
"Analog Up\tI",
"Analog Down\tK",
"Analog Left\tJ",
"Analog Right\tL",
};
// Message handler for about box.
LRESULT CALLBACK Controls(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
W32Util::CenterWindow(hDlg);
{
// TODO: connect to keyboard device instead
HWND list = GetDlgItem(hDlg, IDC_LISTCONTROLS);
int stops[1] = {80};
SendMessage(list, LB_SETTABSTOPS, 1, (LPARAM)stops);
for (int i = 0; i < sizeof(controllist)/sizeof(controllist[0]); i++) {
SendMessage(list, LB_INSERTSTRING, -1, (LPARAM)controllist[i]);
}
}
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
void Update()
{
InvalidateRect(hwndDisplay,0,0);

View File

@ -1,15 +1,7 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
#include "windows.h"
#undef APSTUDIO_READONLY_SYMBOLS
#define IDC_STATIC -1
/////////////////////////////////////////////////////////////////////////////
// Neutral resources
@ -187,10 +179,10 @@ BEGIN
MENUITEM "&Open...", ID_FILE_LOAD
MENUITEM "&Close", ID_EMULATION_STOP
MENUITEM SEPARATOR
MENUITEM "Quickload state\tF4" ID_FILE_QUICKLOADSTATE
MENUITEM "Quicksave state\tF2" ID_FILE_QUICKSAVESTATE
MENUITEM "&Load State File..." ID_FILE_LOADSTATEFILE
MENUITEM "&Save State File..." ID_FILE_SAVESTATEFILE
MENUITEM "Quickload state\tF4", ID_FILE_QUICKLOADSTATE
MENUITEM "Quicksave state\tF2", ID_FILE_QUICKSAVESTATE
MENUITEM "&Load State File...", ID_FILE_LOADSTATEFILE
MENUITEM "&Save State File...", ID_FILE_SAVESTATEFILE
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_FILE_EXIT
END
@ -217,13 +209,15 @@ BEGIN
END
POPUP "&Options"
BEGIN
MENUITEM "&Controls", ID_OPTIONS_CONTROLS
MENUITEM SEPARATOR
MENUITEM "&Toggle Full Screen\tF12", ID_OPTIONS_FULLSCREEN
MENUITEM "&Display Raw Framebuffer", ID_OPTIONS_DISPLAYRAWFRAMEBUFFER
MENUITEM "&Buffered Rendering\tF5", ID_OPTIONS_BUFFEREDRENDERING
MENUITEM "&Hardware Transform\tF6", ID_OPTIONS_HARDWARETRANSFORM
MENUITEM "&Linear Filtering", ID_OPTIONS_LINEARFILTERING
MENUITEM "&Fast Memory (dynarec, unstable)", ID_OPTIONS_FASTMEMORY
MENUITEM SEPARATOR
MENUITEM "&Wireframe (experimental)", ID_OPTIONS_WIREFRAME
MENUITEM "&Display Raw Framebuffer", ID_OPTIONS_DISPLAYRAWFRAMEBUFFER
MENUITEM "&Show Debug Statistics", ID_OPTIONS_SHOWDEBUGSTATISTICS
MENUITEM SEPARATOR
MENUITEM "Screen &1x\tCtrl+1", ID_OPTIONS_SCREEN1X
@ -231,6 +225,7 @@ BEGIN
MENUITEM "Screen &3x\tCtrl+3", ID_OPTIONS_SCREEN3X
MENUITEM "Screen &4x\tCtrl+4", ID_OPTIONS_SCREEN4X
MENUITEM SEPARATOR
MENUITEM "&Fast Memory (dynarec, unstable)", ID_OPTIONS_FASTMEMORY
MENUITEM "&Ignore illegal reads/writes", ID_OPTIONS_IGNOREILLEGALREADS
END
POPUP "&Help"
@ -246,13 +241,80 @@ END
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUD)
LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT
#pragma code_page(1252)
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_CONTROLS DIALOGEX 0, 0, 287, 238
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Controls"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,176,217,50,14
PUSHBUTTON "Cancel",IDCANCEL,230,217,50,14
LTEXT "NOTE: Currently controls are NOT configurable.",IDC_STATIC,7,7,188,10
LISTBOX IDC_LISTCONTROLS,7,19,273,184,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_USETABSTOPS | WS_VSCROLL | WS_TABSTOP
END
/////////////////////////////////////////////////////////////////////////////
// Swedish (Sweden) resources
//
// DESIGNINFO
//
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SVE)
LANGUAGE LANG_SWEDISH, SUBLANG_SWEDISH
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_CONTROLS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 280
TOPMARGIN, 7
BOTTOMMARGIN, 231
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Neutral resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUD)
LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT
#pragma code_page(1252)
/////////////////////////////////////////////////////////////////////////////
@ -395,7 +457,7 @@ BEGIN
IDS_GAMELISTTYPE "Type"
END
#endif // Swedish (Sweden) resources
#endif // Neutral resources
/////////////////////////////////////////////////////////////////////////////
@ -405,6 +467,8 @@ END
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@ -107,6 +107,7 @@
#define IDI_STOP 223
#define IDD_INPUTBOX 226
#define IDD_VFPU 231
#define IDD_CONTROLS 232
#define IDC_GO 1001
#define IDC_ADDRESS 1002
#define IDC_DEBUG_COUNT 1003
@ -154,6 +155,7 @@
#define IDC_FILELIST 1150
#define IDC_BROWSE 1159
#define IDC_SHOWVFPU 1161
#define IDC_LISTCONTROLS 1162
#define ID_FILE_BOOTISO 40001
#define ID_FILE_EXIT 40002
#define ID_CONFIG_SELECT_PLUGINS 40003
@ -250,14 +252,16 @@
#define ID_OPTIONS_LINEARFILTERING 40127
#define ID_FILE_QUICKSAVESTATE 40128
#define ID_FILE_QUICKLOADSTATE 40129
#define ID_OPTIONS_CONTROLS 40130
#define IDC_STATIC -1
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 232
#define _APS_NEXT_COMMAND_VALUE 40130
#define _APS_NEXT_CONTROL_VALUE 1162
#define _APS_NEXT_RESOURCE_VALUE 233
#define _APS_NEXT_COMMAND_VALUE 40131
#define _APS_NEXT_CONTROL_VALUE 1163
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif