Example #1
0
/*------------------------------------------------------------------
---------------------------------- open dialog to browse sound files
------------------------------------------------------------------*/
BOOL BrowseSoundFile(HWND hDlg, const wchar_t* deffile, wchar_t fname[MAX_PATH])
{
	wchar_t filter[1024], mmfileexts[1024];
	DWORD index;
	
	filter[0]=filter[1]='\0';
	str0cat(filter, MyString(IDS_MMFILE));
	GetMMFileExts(mmfileexts);
	str0cat(filter, mmfileexts);
	str0cat(filter, MyString(IDS_ALLFILE));
	str0cat(filter, L"*.*");
	
	if(!deffile[0] || IsMMFile(deffile))
		index = 1;
	else
		index = 2;
	
	if(SelectMyFile(hDlg, filter, index, deffile, fname)) {
		if(!wcsncmp(fname,api.root,api.root_len)) { // make relative to waves/ if possible
			if(!wcsncmp(fname+api.root_len, L"\\waves\\", 7)) {
				memmove(fname, fname+api.root_len+7, ((wcslen(fname)-api.root_len-7+1) * sizeof fname[0]));
			}
		}
		return 1;
	}
	return 0;
}
Example #2
0
/*------------------------------------------------------------------
---------------------------------- open dialog to browse sound files
------------------------------------------------------------------*/
BOOL BrowseSoundFile(HWND hDlg, const char* deffile, char* fname)
{
	char filter[1024], mmfileexts[1024];
	char ftitle[MAX_PATH], initdir[MAX_PATH];
	
	OPENFILENAME ofn;
	ZeroMemory(&ofn, sizeof(ofn)); // Initialize OPENFILENAME
	ofn.lStructSize = sizeof(ofn);
	
	filter[0]=filter[1]='\0';
	str0cat(filter, MyString(IDS_MMFILE));
	GetMMFileExts(mmfileexts);
	str0cat(filter, mmfileexts);
	str0cat(filter, MyString(IDS_ALLFILE));
	str0cat(filter, "*.*");
	
	if(!deffile[0] || IsMMFile(deffile)) ofn.nFilterIndex = 1;
	else ofn.nFilterIndex = 2;
	
	memcpy(initdir, api.root, api.root_len+1);
	if(deffile[0]) {
		WIN32_FIND_DATA fd;
		HANDLE hfind;
		hfind = FindFirstFile(deffile, &fd);
		if(hfind != INVALID_HANDLE_VALUE) {
			FindClose(hfind);
			strncpy_s(initdir,sizeof(initdir),deffile,_TRUNCATE);
			del_title(initdir);
		}
	}
	
	*fname = '\0';
	
	ofn.hwndOwner = hDlg;
	ofn.hInstance = NULL;
	ofn.lpstrFilter = filter;
	ofn.lpstrFile = fname;
	ofn.nMaxFile = MAX_PATH;
	ofn.lpstrFileTitle = ftitle;
	ofn.nMaxFileTitle = MAX_PATH;
	ofn.lpstrInitialDir = initdir;
	ofn.Flags = OFN_HIDEREADONLY|OFN_EXPLORER|OFN_FILEMUSTEXIST;
	
	if(GetOpenFileName(&ofn)) {
		size_t tlen=api.root_len;
		if(!strncmp(fname,api.root,tlen)) { // make relative to waves/ if possible
			if(!strncmp(fname+tlen,"\\waves\\",7)) {
				memmove(fname,fname+tlen+7,strlen(fname)-tlen-6);
			}
		}
		return 1;
	}
	return 0;
}
Example #3
0
/*------------------------------------------------
  clicked "..." button
--------------------------------------------------*/
void OnBrowseFile(HWND hDlg, WORD id)
{
	char filter[80], deffile[MAX_PATH], fname[MAX_PATH];

	filter[0] = filter[1] = 0;

	if(id == IDC_BROWSEHELP)
	{
		str0cat(filter, "HTML");
		str0cat(filter, "*.html;*.htm");
	}
	else if(id == IDC_BROWSEHELP2CH)
	{
		str0cat(filter, "HTML");
		str0cat(filter, "*.html;*.htm");
	}
	else if(id == IDC_BROWSELANGDLL)
	{
		str0cat(filter, MyString(IDS_LANGDLLFILE));
		str0cat(filter, "lang*.dll");
	}

	GetDlgItemText(hDlg, id - 1, deffile, MAX_PATH);

	if(!SelectMyFile(hDlg, filter, 0, deffile, fname)) // propsheet.c
		return;

	SetDlgItemText(hDlg, id - 1, fname);
	PostMessage(hDlg, WM_NEXTDLGCTL, 1, FALSE);
	SendPSChanged(hDlg);
}