diff options
Diffstat (limited to 'src/osd/winui/mui_util.h')
-rw-r--r-- | src/osd/winui/mui_util.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/src/osd/winui/mui_util.h b/src/osd/winui/mui_util.h new file mode 100644 index 00000000000..0939f7338d1 --- /dev/null +++ b/src/osd/winui/mui_util.h @@ -0,0 +1,102 @@ +// For licensing and usage information, read docs/winui_license.txt +//**************************************************************************** + +#ifndef MUI_UTIL_H +#define MUI_UTIL_H + +#include "emucore.h" + +extern void __cdecl ErrorMsg(const char* fmt, ...); +extern void __cdecl dprintf(const char* fmt, ...); + + +extern UINT GetDepth(HWND hWnd); + +/* Open a text file */ +extern void DisplayTextFile(HWND hWnd, const char *cName); + +#define PACKVERSION(major,minor) MAKELONG(minor,major) + +/* Check for old version of comctl32.dll */ +extern LONG GetCommonControlVersion(void); + +void ShellExecuteCommon(HWND hWnd, const char *cName); +extern char * MyStrStrI(const char* pFirst, const char* pSrch); +extern char * ConvertToWindowsNewlines(const char *source); + +extern const char * GetDriverFilename(uint32_t nIndex); + +BOOL DriverIsClone(uint32_t driver_index); +BOOL DriverIsBroken(uint32_t driver_index); +BOOL DriverIsHarddisk(uint32_t driver_index); +BOOL DriverHasOptionalBIOS(uint32_t driver_index); +BOOL DriverIsStereo(uint32_t driver_index); +BOOL DriverIsVector(uint32_t driver_index); +int DriverNumScreens(uint32_t driver_index); +BOOL DriverIsBios(uint32_t driver_index); +BOOL DriverUsesRoms(uint32_t driver_index); +BOOL DriverUsesSamples(uint32_t driver_index); +BOOL DriverUsesTrackball(uint32_t driver_index); +BOOL DriverUsesLightGun(uint32_t driver_index); +BOOL DriverUsesMouse(uint32_t driver_index); +BOOL DriverSupportsSaveState(uint32_t driver_index); +BOOL DriverIsVertical(uint32_t driver_index); +BOOL DriverIsMechanical(uint32_t driver_index); +BOOL DriverIsArcade(uint32_t driver_index); +BOOL DriverHasRam(uint32_t driver_index); + +int isDriverVector(const machine_config *config); +int numberOfSpeakers(const machine_config *config); +int numberOfScreens(const machine_config *config); + +void FlushFileCaches(void); + +BOOL StringIsSuffixedBy(const char *s, const char *suffix); + +BOOL SafeIsAppThemed(void); + +// provides result of FormatMessage() +// resulting buffer must be free'd with LocalFree() +void GetSystemErrorMessage(DWORD dwErrorId, TCHAR **tErrorMessage); + +HICON win_extract_icon_utf8(HINSTANCE inst, const char* exefilename, UINT iconindex); +TCHAR* win_tstring_strdup(LPCTSTR str); +HANDLE win_create_file_utf8(const char* filename, DWORD desiredmode, DWORD sharemode, + LPSECURITY_ATTRIBUTES securityattributes, DWORD creationdisposition, + DWORD flagsandattributes, HANDLE templatehandle); +DWORD win_get_current_directory_utf8(DWORD bufferlength, char* buffer); +HANDLE win_find_first_file_utf8(const char* filename, LPWIN32_FIND_DATA findfiledata); + + // wstring_from_utf8 + //============================================================ + +WCHAR *ui_wstring_from_utf8(const char *utf8string) +{ + int char_count; + WCHAR *result; + + // convert MAME string (UTF-8) to UTF-16 + char_count = MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, nullptr, 0); + result = (WCHAR *)malloc(char_count * sizeof(*result)); + if (result != nullptr) + MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, result, char_count); + + return result; +} + +char *ui_utf8_from_wstring(const WCHAR *wstring) +{ + int char_count; + char *result; + + // convert UTF-16 to MAME string (UTF-8) + char_count = WideCharToMultiByte(CP_UTF8, 0, wstring, -1, nullptr, 0, nullptr, nullptr); + result = (char *)malloc(char_count * sizeof(*result)); + if (result != nullptr) + WideCharToMultiByte(CP_UTF8, 0, wstring, -1, result, char_count, nullptr, nullptr); + return result; +} + + +#endif /* MUI_UTIL_H */ + |