--- np2/win9x/dialog/dialogs.cpp 2005/02/09 20:11:36 1.6 +++ np2/win9x/dialog/dialogs.cpp 2007/10/26 14:38:34 1.11 @@ -1,19 +1,41 @@ #include "compiler.h" #include "strres.h" #include "bmpdata.h" +#include "oemtext.h" #include "dosio.h" #include "commng.h" #include "dialogs.h" +#if defined(MT32SOUND_DLL) +#include "mt32snd.h" +#endif + +extern HINSTANCE hInst; -const OEMCHAR str_nc[] = OEMTEXT("N/C"); +const TCHAR str_nc[] = _T("N/C"); -const OEMCHAR str_int0[] = OEMTEXT("INT0"); -const OEMCHAR str_int1[] = OEMTEXT("INT1"); -const OEMCHAR str_int2[] = OEMTEXT("INT2"); -const OEMCHAR str_int4[] = OEMTEXT("INT4"); -const OEMCHAR str_int5[] = OEMTEXT("INT5"); -const OEMCHAR str_int6[] = OEMTEXT("INT6"); +const TCHAR str_int0[] = _T("INT0"); +const TCHAR str_int1[] = _T("INT1"); +const TCHAR str_int2[] = _T("INT2"); +const TCHAR str_int4[] = _T("INT4"); +const TCHAR str_int5[] = _T("INT5"); +const TCHAR str_int6[] = _T("INT6"); + + +// ---- enable + +void dlgs_enablebyautocheck(HWND hWnd, UINT uID, UINT uCheckID) +{ + EnableWindow(GetDlgItem(hWnd, uID), + (SendDlgItemMessage(hWnd, uCheckID, BM_GETCHECK, 0, 0) != 0)); +} + +void dlgs_disablebyautocheck(HWND hWnd, UINT uID, UINT uCheckID) +{ + EnableWindow(GetDlgItem(hWnd, uID), + (SendDlgItemMessage(hWnd, uCheckID, BM_GETCHECK, 0, 0) == 0)); + +} // ---- file select @@ -21,52 +43,92 @@ const OEMCHAR str_int6[] = OEMTEXT("INT6 BOOL dlgs_selectfile(HWND hWnd, const FILESEL *item, OEMCHAR *path, UINT size, int *ro) { + TCHAR *pszTitle; OPENFILENAME ofn; +#if defined(OSLANG_UTF8) + TCHAR _path[MAX_PATH]; +#endif + BOOL bResult; if ((item == NULL) || (path == NULL) || (size == 0)) { return(FALSE); } + pszTitle = lockstringresource(hInst, item->title); + ZeroMemory(&ofn, sizeof(OPENFILENAME)); ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hWnd; ofn.lpstrFilter = item->filter; ofn.nFilterIndex = item->defindex; +#if defined(OSLANG_UTF8) + oemtotchar(_path, NELEMENTS(_path), path, -1); + ofn.lpstrFile = _path; + ofn.nMaxFile = NELEMENTS(_path); +#else ofn.lpstrFile = path; ofn.nMaxFile = size; +#endif ofn.Flags = OFN_FILEMUSTEXIST; ofn.lpstrDefExt = item->ext; - ofn.lpstrTitle = item->title; - if (!GetOpenFileName(&ofn)) { - return(FALSE); - } - if (ro) { - *ro = ofn.Flags & OFN_READONLY; + ofn.lpstrTitle = pszTitle; + + bResult = GetOpenFileName(&ofn); + unlockstringresource(pszTitle); + + if (bResult) { +#if defined(OSLANG_UTF8) + tchartooem(path, NELEMENTS(path), _path, -1); +#endif + if (ro) { + *ro = ofn.Flags & OFN_READONLY; + } } - return(TRUE); + return(bResult); } BOOL dlgs_selectwritefile(HWND hWnd, const FILESEL *item, OEMCHAR *path, UINT size) { OPENFILENAME ofn; + TCHAR *pszTitle; +#if defined(OSLANG_UTF8) + TCHAR _path[MAX_PATH]; +#endif + BOOL bResult; if ((item == NULL) || (path == NULL) || (size == 0)) { return(FALSE); } + + pszTitle = lockstringresource(hInst, item->title); + ZeroMemory(&ofn, sizeof(OPENFILENAME)); ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = hWnd; ofn.lpstrFilter = item->filter; ofn.nFilterIndex = item->defindex; +#if defined(OSLANG_UTF8) + oemtotchar(_path, NELEMENTS(_path), path, -1); + ofn.lpstrFile = _path; + ofn.nMaxFile = NELEMENTS(_path); +#else ofn.lpstrFile = path; ofn.nMaxFile = size; +#endif ofn.Flags = OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY; ofn.lpstrDefExt = item->ext; - ofn.lpstrTitle = item->title; - if (!GetSaveFileName(&ofn)) { - return(FALSE); + ofn.lpstrTitle = pszTitle; + + bResult = GetSaveFileName(&ofn); + + unlockstringresource(pszTitle); + +#if defined(OSLANG_UTF8) + if (bResult) { + tchartooem(path, NELEMENTS(path), _path, -1); } - return(TRUE); +#endif + return(bResult); } BOOL dlgs_selectwritenum(HWND hWnd, const FILESEL *item, @@ -107,9 +169,9 @@ BOOL dlgs_selectwritenum(HWND hWnd, cons // ---- mimpi def file -static const OEMCHAR mimpi_title[] = OEMTEXT("Open MIMPI define file"); -static const OEMCHAR mimpi_ext[] = OEMTEXT("def"); -static const OEMCHAR mimpi_filter[] = OEMTEXT("MIMPI define file(*.def)\0*.def\0"); +static const TCHAR mimpi_title[] = _T("Open MIMPI define file"); +static const TCHAR mimpi_ext[] = _T("def"); +static const TCHAR mimpi_filter[] = _T("MIMPI define file(*.def)\0*.def\0"); static const FILESEL mimpi = {mimpi_title, mimpi_ext, mimpi_filter, 1}; void dlgs_browsemimpidef(HWND hWnd, UINT16 res) { @@ -132,7 +194,7 @@ const OEMCHAR *p; // ---- list -void dlgs_setliststr(HWND hWnd, UINT16 res, const OEMCHAR **item, UINT items) { +void dlgs_setliststr(HWND hWnd, UINT16 res, const TCHAR **item, UINT items) { HWND wnd; UINT i; @@ -144,7 +206,6 @@ void dlgs_setliststr(HWND hWnd, UINT16 r } void dlgs_setlistuint32(HWND hWnd, UINT16 res, const UINT32 *item, UINT items) { - HWND wnd; UINT i; OEMCHAR str[16]; @@ -157,6 +218,66 @@ void dlgs_setlistuint32(HWND hWnd, UINT1 } +void dlgs_setdroplistitem(HWND hWnd, UINT uID, + const TCHAR **ppszItem, UINT uItems) +{ + HWND hItem; + UINT uPos; + UINT i; + TCHAR szString[128]; + + hItem = GetDlgItem(hWnd, uID); + uPos = 0; + for (i=0; i= 0) + { + return SendMessage(hItem, CB_GETITEMDATA, (WPARAM)nPos, 0); + } + return -1; +} + + // ---- MIDIデバイスのリスト void dlgs_setlistmidiout(HWND hWnd, UINT16 res, const OEMCHAR *defname) { @@ -184,6 +305,16 @@ void dlgs_setlistmidiout(HWND hWnd, UINT } num++; #endif +#if defined(MT32SOUND_DLL) + if (mt32sound_isenable()) { + SendMessage(wnd, CB_INSERTSTRING, (WPARAM)num, + (LPARAM)cmmidi_mt32sound); + if (!milstr_cmp(defname, cmmidi_mt32sound)) { + defcur = num; + } + num++; + } +#endif for (i=0; ileft -= pt.x; + pRect->top -= pt.y; + pRect->right -= pt.x; + pRect->bottom -= pt.y; + return TRUE; +} +