From 4b176b87893ae0295ed3eefcefc14a892e838d56 Mon Sep 17 00:00:00 2001 From: SarahW Date: Thu, 4 May 2017 20:44:05 +0100 Subject: [PATCH] Add missing file. --- src/Makefile.mingw | 2 +- src/win-config_sel.c | 129 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 src/win-config_sel.c diff --git a/src/Makefile.mingw b/src/Makefile.mingw index e790238..9d143f9 100644 --- a/src/Makefile.mingw +++ b/src/Makefile.mingw @@ -18,7 +18,7 @@ OBJ = 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o acer386sx.o ali1429.o amstrad vid_olivetti_m24.o vid_oti067.o vid_paradise.o vid_pc1512.o vid_pc1640.o vid_pc200.o \ vid_pcjr.o vid_ps1_svga.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_stg_ramdac.o vid_svga.o \ vid_svga_render.o vid_tandy.o vid_tandysl.o vid_tgui9440.o vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o \ - vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o win.o win-config.o win-d3d.o win-d3d-fs.o win-ddraw.o \ + vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o win.o win-config.o win-config_sel.o win-d3d.o win-d3d-fs.o win-ddraw.o \ win-ddraw-fs.o win-deviceconfig.o win-hdconf.o win-joystick.o win-joystickconfig.o win-keyboard.o win-midi.o win-mouse.o \ win-status.o win-video.o x86seg.o x87.o xtide.o pc.res DBOBJ = dbopl.o vid_cga_comp.o diff --git a/src/win-config_sel.c b/src/win-config_sel.c new file mode 100644 index 0000000..adeee10 --- /dev/null +++ b/src/win-config_sel.c @@ -0,0 +1,129 @@ +#define BITMAP WINDOWS_BITMAP +#include +#include +#undef BITMAP + +#include + +#include "ibm.h" +#include "config.h" +#include "resources.h" +#include "win.h" + +static int has_been_inited = 0; + +static void config_list_update(HWND hdlg) +{ + char s[512]; + int num, c; + HWND h; + + strcpy(s, pcempath); + put_backslash(s); + strcat(s, "configs\\*.cfg"); + pclog("Dir %s\n", s); + + DlgDirList(hdlg, s, IDC_LIST, 0, 0); + + h = GetDlgItem(hdlg, IDC_LIST); + num = SendMessage(h, LB_GETCOUNT, 0, 0); + + for (c = 0; c < num; c++) + { + char *ext; + + SendMessage(h, LB_GETTEXT, c, (LPARAM)s); + ext = get_extension(s); + if (ext && ext[0]) + { + ext--; + *ext = 0; + } + + SendMessage(h, LB_DELETESTRING, c, 0); + SendMessage(h, LB_INSERTSTRING, c, (LPARAM)s); + } +} + +static BOOL CALLBACK config_selection_dlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + //HWND h; + + switch (message) + { + case WM_INITDIALOG: +// pause = 1; + config_list_update(hdlg); +// h = GetDlgItem(hdlg, IDC_LIST); +// SendMessage(h, LB_ADDSTRING, 0, (LPARAM)(LPCSTR)"AAA"); +// SendMessage(h, LB_ADDSTRING, 0, (LPARAM)(LPCSTR)"BBB"); + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case IDOK: + { + char s[512]; + + int ret = DlgDirSelectEx(hdlg, s, 512, IDC_LIST); + + pclog("DlgDirSelectEx returned %i %s\n", ret, s); + if (s[0]) + { + char cfg[512]; + + strcpy(cfg, pcempath); + put_backslash(cfg); + strcat(cfg, "configs\\"); + strcat(cfg, s); + strcat(cfg, "cfg"); +// sprintf(cfg, "%s\\configs\\%scfg", pcempath, s); + pclog("Config name %s\n", cfg); + + strcpy(config_file_default, cfg); + + EndDialog(hdlg, 1); +// pause = 0; + return TRUE; + } + } + return FALSE; + + case IDCANCEL: + EndDialog(hdlg, 0); +// pause = 0; + return TRUE; + + case IDC_NEW: + { + char s[512]; + + strcpy(s, pcempath); + put_backslash(s); + strcat(s, "configs\\"); + pclog("Dir %s\n", s); + + if (!getsfile(hdlg, "Configuration (*.CFG)\0*.CFG\0All files (*.*)\0*.*\0", "", s)) + { + config_open(hdlg, has_been_inited); + + saveconfig(openfilestring); + } + + config_list_update(hdlg); + + return TRUE; + } + } + break; + } + return FALSE; +} + +int config_selection_open(HWND hwnd, int inited) +{ + has_been_inited = inited; + + return DialogBox(hinstance, TEXT("ConfigureSelectionDlg"), hwnd, (DLGPROC)config_selection_dlgproc); +}