reactos/rosapps/devutils/vgafontedit/opensave.c
Colin Finck 7901978873 Wrote a Win32 Font Editor for our VGA Fonts used in blue.sys.
It has a MDI user interface, imports binary fonts (.bin) and PC Screen Fonts (.psf) and exports .bin fonts.
Compiles without any warnings with GCC and MSVC (at /W3).

The "misc.c" file was taken from devmgmt (thanks Ged!) and modified.
The used bitmaps and icons were all done myself, but partly consist of characters of the cp737 font we have in media/vgafont.

svn path=/trunk/; revision=32079
2008-02-01 21:40:18 +00:00

78 lines
1.6 KiB
C

/*
* PROJECT: ReactOS VGA Font Editor
* LICENSE: GNU General Public License Version 2.0 or any later version
* FILE: devutils/vgafontedit/opensave.c
* PURPOSE: Functions for opening and saving files
* COPYRIGHT: Copyright 2008 Colin Finck <mail@colinfinck.de>
*/
#include "precomp.h"
static OPENFILENAMEW ofn;
VOID
FileInitialize(IN HWND hwnd)
{
ZeroMemory( &ofn, sizeof(ofn) );
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrDefExt = L"bin";
}
static __inline VOID
PrepareFilter(IN PWSTR pszFilter)
{
// RC strings can't be double-null terminated, so we use | instead to separate the entries.
// Convert them back to null characters here.
do
{
if(*pszFilter == '|')
*pszFilter = 0;
}
while(*++pszFilter);
}
BOOL
DoOpenFile(OUT PWSTR pszFileName)
{
BOOL bRet;
PWSTR pszFilter;
if( AllocAndLoadString(&pszFilter, IDS_OPENFILTER) )
{
PrepareFilter(pszFilter);
ofn.lpstrFilter = pszFilter;
ofn.lpstrFile = pszFileName;
ofn.Flags = OFN_FILEMUSTEXIST;
bRet = GetOpenFileNameW(&ofn);
HeapFree(hProcessHeap, 0, pszFilter);
return bRet;
}
return FALSE;
}
BOOL
DoSaveFile(IN OUT PWSTR pszFileName)
{
BOOL bRet;
PWSTR pszFilter;
if( AllocAndLoadString(&pszFilter, IDS_SAVEFILTER) )
{
PrepareFilter(pszFilter);
ofn.lpstrFilter = pszFilter;
ofn.lpstrFile = pszFileName;
bRet = GetSaveFileNameW(&ofn);
HeapFree(hProcessHeap, 0, pszFilter);
return bRet;
}
return FALSE;
}