mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
//
|
||||
// mxToolKit (c) 1999 by Mete Ciragan
|
||||
//
|
||||
// file: mxFileDialog.cpp
|
||||
// implementation: Win32 API
|
||||
// last modified: Mar 14 1999, Mete Ciragan
|
||||
// copyright: The programs and associated files contained in this
|
||||
// distribution were developed by Mete Ciragan. The programs
|
||||
// are not in the public domain, but they are freely
|
||||
// distributable without licensing fees. These programs are
|
||||
// provided without guarantee or warrantee expressed or
|
||||
// implied.
|
||||
//
|
||||
#include "mxtk/mxFileDialog.h"
|
||||
#include "mxtk/mxWindow.h"
|
||||
#include <windows.h>
|
||||
#include <commdlg.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
|
||||
static char sd_path[_MAX_PATH] = "";
|
||||
|
||||
|
||||
|
||||
const char*
|
||||
mxGetOpenFileName (mxWindow *parent, const char *path, const char *filter)
|
||||
{
|
||||
CHAR szPath[_MAX_PATH], szFilter[_MAX_PATH];
|
||||
|
||||
strcpy (sd_path, "");
|
||||
|
||||
if (path)
|
||||
strcpy (szPath, path);
|
||||
else
|
||||
strcpy (szPath, "");
|
||||
|
||||
if (filter)
|
||||
{
|
||||
memset (szFilter, 0, _MAX_PATH);
|
||||
strcpy (szFilter, filter);
|
||||
strcpy (szFilter + strlen (szFilter) + 1, filter);
|
||||
}
|
||||
else
|
||||
strcpy (szFilter, "");
|
||||
|
||||
|
||||
OPENFILENAME ofn;
|
||||
memset (&ofn, 0, sizeof (ofn));
|
||||
ofn.lStructSize = sizeof (ofn);
|
||||
if (parent)
|
||||
ofn.hwndOwner = (HWND) parent->getHandle ();
|
||||
ofn.hInstance = (HINSTANCE) GetModuleHandle (NULL);
|
||||
ofn.lpstrFilter = szFilter;
|
||||
ofn.nFilterIndex = 1;
|
||||
ofn.lpstrFile = sd_path;
|
||||
ofn.nMaxFile = _MAX_PATH;
|
||||
if (path && strlen (path))
|
||||
ofn.lpstrInitialDir = szPath;
|
||||
ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;
|
||||
|
||||
if (GetOpenFileName (&ofn))
|
||||
return sd_path;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const char*
|
||||
mxGetSaveFileName (mxWindow *parent, const char *path, const char *filter)
|
||||
{
|
||||
CHAR szPath[_MAX_PATH], szFilter[_MAX_PATH];
|
||||
|
||||
strcpy (sd_path, "");
|
||||
|
||||
if (path)
|
||||
strcpy (szPath, path);
|
||||
else
|
||||
strcpy (szPath, "");
|
||||
|
||||
if (filter)
|
||||
{
|
||||
memset (szFilter, 0, _MAX_PATH);
|
||||
strcpy (szFilter, filter);
|
||||
strcpy (szFilter + strlen (szFilter) + 1, filter);
|
||||
}
|
||||
else
|
||||
strcpy (szFilter, "");
|
||||
|
||||
OPENFILENAME ofn;
|
||||
memset (&ofn, 0, sizeof (ofn));
|
||||
ofn.lStructSize = sizeof (ofn);
|
||||
if (parent)
|
||||
ofn.hwndOwner = (HWND) parent->getHandle ();
|
||||
ofn.hInstance = (HINSTANCE) GetModuleHandle (NULL);
|
||||
ofn.lpstrFilter = szFilter;
|
||||
ofn.lpstrFile = sd_path;
|
||||
ofn.nMaxFile = _MAX_PATH;
|
||||
if (path && strlen (path))
|
||||
ofn.lpstrInitialDir = szPath;
|
||||
ofn.Flags = OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;
|
||||
|
||||
if (GetSaveFileName (&ofn))
|
||||
return sd_path;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user