2013-03-25 19:26:55 +01:00

56 lines
1.6 KiB
C

#include <windows.h>
extern HWND s_window;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int Dialog_open(wchar_t* path, int pathSize)
{
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = path;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = pathSize;
ofn.lpstrFilter = L"All Files\0*.*\0Rocket\0*.Rocket\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
return GetOpenFileName(&ofn);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int Dialog_save(wchar_t* path)
{
OPENFILENAME dialog;
ZeroMemory(&dialog, sizeof(dialog));
dialog.lStructSize = sizeof(dialog);
dialog.lpstrFilter = L"All Files (*.*)\0*.*\0";
dialog.lpstrFile = path;
dialog.nMaxFile = MAX_PATH;
dialog.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
dialog.lpstrDefExt = L"rocket";
return GetSaveFileName(&dialog);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static COLORREF custColors[16];
void Dialog_showColorPicker(unsigned int* color)
{
CHOOSECOLOR cc;
ZeroMemory(&cc, sizeof(CHOOSECOLOR));
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.lpCustColors = (LPDWORD)custColors;
cc.rgbResult = *color & 0x00ffffff;
cc.Flags = CC_FULLOPEN | CC_RGBINIT;
cc.hwndOwner = s_window;
if (ChooseColor(&cc))
*color = cc.rgbResult | 0xff000000;
}