Пример #1
0
static INT_PTR CALLBACK Window_StopwatchExportDlg(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	(void)lParam; // unused
	switch(msg) {
	case WM_INITDIALOG:{
		wchar_t buf[128];
		api.GetStr(L"Timers", L"SwExT", buf, _countof(buf), L"");
		SetDlgItemText(hDlg,IDC_SWE_TOTAL,buf);
		api.GetStr(L"Timers", L"SwExL", buf, _countof(buf), L"");
		SetDlgItemText(hDlg, IDC_SWE_LAP, buf);
		SendMessage(hDlg, WM_COMMAND,IDOK, 0);
		Edit_SetSel(GetDlgItem(hDlg,IDC_SWE_OUT), 0, -1);
		SetFocus(GetDlgItem(hDlg,IDC_SWE_OUT));
		return FALSE;}
	case WM_DESTROY:{
		break;}
	case WM_COMMAND: {
			switch(LOWORD(wParam)) {
			case IDC_SWE_EXPORT:{
				wchar_t filename[MAX_PATH];
				unsigned buflen = (unsigned)SendDlgItemMessageA(hDlg,IDC_SWE_OUT,WM_GETTEXTLENGTH,0,0);
				char* buf = malloc(buflen + 1);
				if(buf && buflen){
					GetDlgItemTextA(hDlg, IDC_SWE_OUT, buf, buflen+1);
					*filename = '\0';
					if(SaveFileDialog(hDlg,filename,_countof(filename))){
						FILE* fp = _wfopen(filename, L"wb");
						if(fp){
							fwrite(buf, sizeof(buf[0]), buflen, fp);
							fclose(fp);
						}
					}
				}
				free(buf);
				break;}
			case IDOK:{
				wchar_t buf[128];
				GetDlgItemText(hDlg, IDC_SWE_TOTAL, buf, _countof(buf));
				if(!*buf){
					api.DelValue(L"Timers", L"SwExT");
					SetDlgItemText(hDlg, IDC_SWE_TOTAL, L"\\n--------------------\\n\\t");
				}else
					api.SetStr(L"Timers", L"SwExT", buf);
				GetDlgItemText(hDlg, IDC_SWE_LAP, buf, _countof(buf));
				if(!*buf){
					api.DelValue(L"Timers", L"SwExL");
					SetDlgItemText(hDlg, IDC_SWE_LAP, L"Lap \\#\\f: \\l (\\t)\\n");
				}else
					api.SetStr(L"Timers", L"SwExL", buf);
				export_text(hDlg);
				break;}
			case IDCANCEL:
				EndDialog(hDlg, TRUE);
			}
			return TRUE;
		}
	}
	return FALSE;
}
Пример #2
0
// modified from doccore.cpp
BOOL CBonfireDoc::DoSave(LPCTSTR lpszPathName, BOOL bReplace)
	// Save the document data to a file
	// lpszPathName = path name where to save document file
	// if lpszPathName is NULL then the user will be prompted (SaveAs)
	// note: lpszPathName can be different than 'm_strPathName'
	// if 'bReplace' is TRUE will change file name if successful (SaveAs)
	// if 'bReplace' is FALSE will not change path name (SaveCopyAs)
{
	CString newName = lpszPathName;
	if (newName.IsEmpty())
	{
		CDocTemplate* pTemplate = GetDocTemplate();
		ASSERT(pTemplate != NULL);

		newName = m_strPathName;
		if (bReplace && newName.IsEmpty())
		{
			newName = m_strTitle;
			// check for dubious filename
			int iBad = newName.FindOneOf(_T(" #%;/\\"));
			if (iBad != -1)
				newName.ReleaseBuffer(iBad);

			// append the default suffix if there is one
			CString strExt;
			if (pTemplate->GetDocString(strExt, CDocTemplate::filterExt) &&
			  !strExt.IsEmpty())
			{
				ASSERT(strExt[0] == '.');
				newName += strExt;
			}
		}

		if (SaveFileDialog(AfxGetMainWnd(),newName,newName,NULL,
			GetFileFilter(FILTER_FILES),6,GetDefExt(FILTER_FILES)) <= 0)
			return FALSE; // don't even attempt to save
	}

	CWaitCursor wait;

	if (!OnSaveDocument(newName))
	{
		if (lpszPathName == NULL)
		{
			// be sure to delete the file
			TRY
			{
				CFile::Remove(newName);
			}
			CATCH_ALL(e)
			{
				TRACE0("Warning: failed to delete file after failed SaveAs.\n");
				do { e->Delete(); } while (0); //DELETE_EXCEPTION(e);
			}
			END_CATCH_ALL
		}
		return FALSE;
	}
//!「ファイル名を付けて保存」ダイアログ
bool CDocFileOperation::SaveFileDialog(LPTSTR szPath)
{
	SSaveInfo sSaveInfo;
	sSaveInfo.cFilePath = szPath;
	sSaveInfo.eCharCode = CODE_CODEMAX; //###トリッキー
	bool bRet = SaveFileDialog(&sSaveInfo);
	_tcscpy_s(szPath, _MAX_PATH, sSaveInfo.cFilePath);
	return bRet;
}
string_t SaveFileDialogUTF8(const char *title, const char *filter) {
	string_t ret = String.Create(NULL);
	if (is_contains_not_ascii(title, NULL) || is_contains_not_ascii(filter, NULL)) {
		char *sjis_title = utf82sjis(title, NULL);
		char *sjis_filtere = utf82sjis(filter, NULL);
		ret = SaveFileDialog(sjis_title, sjis_filtere);
		free(sjis_title);
		free(sjis_filtere);
	} else {
		ret = SaveFileDialog(title, filter);
	}
	if (ret.c_str == NULL) {
		return ret;
	} else {
		utf8_t *utf8 = sjis2utf8(ret.c_str, NULL);
		String.Free(ret);
		return String.Create(utf8);
	}
}
void MainDialog::mSaveButtonClick(wxCommandEvent& WXUNUSED(event))
{
    wxFileDialog SaveFileDialog(this, wxT("Save AMD/ATI Overdrive profile"), wxT(""), wxT(""),
                                wxT("ovdr files (*.ovdr)|*.ovdr"), wxFD_SAVE|wxFD_OVERWRITE_PROMPT);

    if(SaveFileDialog.ShowModal() == wxID_OK)
    {
        SaveXML(SaveFileDialog.GetPath());
    }
}
Пример #6
0
void Export( HWND hWnd, bool flgGray )
{
	lString8 fn = SaveFileDialog( hWnd );
	if (fn.empty())
		return;

	HCURSOR newCursor = ::LoadCursor( NULL, IDC_WAIT );
	HCURSOR oldCursor = ::SetCursor( newCursor );
	text_view->exportWolFile(fn.c_str(), flgGray, 3);
	::SetCursor( oldCursor );
}
/*! 名前を付けて保存フロー

	@date 2006.12.30 ryoji CEditView::Command_FILESAVEAS_DIALOG()から処理本体を切り出し
*/
bool CDocFileOperation::FileSaveAs( const WCHAR* filename,ECodeType eCodeType, EEolType eEolType, bool bDialog )
{
	//セーブ情報
	SSaveInfo sSaveInfo;
	m_pcDocRef->GetSaveInfo(&sSaveInfo);
	sSaveInfo.cEol = EOL_NONE; // 初期値は変換しない
	if( filename ){
		// ダイアログなし保存、またはマクロの引数あり
		sSaveInfo.cFilePath = to_tchar(filename);
		if( EOL_NONE <= eEolType && eEolType < EOL_CODEMAX ){
			sSaveInfo.cEol = eEolType;
		}
		if( IsValidCodeType(eCodeType) && eCodeType != sSaveInfo.eCharCode ){
			sSaveInfo.eCharCode = eCodeType;
			sSaveInfo.bBomExist = CCodeTypeName(eCodeType).IsBomDefOn();
		}
	}
	if( bDialog ){
		if(!filename && CAppMode::getInstance()->IsViewMode()){
			sSaveInfo.cFilePath = _T(""); //※読み込み専用モードのときはファイル名を指定しない
		}

		//ダイアログ表示
		if(!SaveFileDialog(&sSaveInfo))return false;
	}

	//セーブ処理
	if( DoSaveFlow(&sSaveInfo) ){
		// オープン後自動実行マクロを実行する(ANSI版ではここで再ロード実行→自動実行マクロが実行される)
		// 提案時の Patches#1550557 に、「名前を付けて保存」でオープン後自動実行マクロが実行されることの是非について議論の経緯あり
		//   →”ファイル名に応じて表示を変化させるマクロとかを想定すると、これはこれでいいように思います。”
		m_pcDocRef->RunAutoMacro( GetDllShareData().m_Common.m_sMacro.m_nMacroOnOpened );

		//プラグイン:DocumentOpenイベント実行
		CPlug::Array plugs;
		CWSHIfObj::List params;
		CJackManager::getInstance()->GetUsablePlug( PP_DOCUMENT_OPEN, 0, &plugs );
		for( CPlug::ArrayIter it = plugs.begin(); it != plugs.end(); it++ ){
			(*it)->Invoke(&m_pcDocRef->m_pcEditWnd->GetActiveView(), params);
		}

		return true;
	}

	return false;
}
Пример #8
0
void CInstrumentEditorDPCM::OnBnClickedSave()
{
	CString		Path;
	CFile		SampleFile;
	CDSample	*DSample;
	TCHAR		Text[256];

	m_pSampleListCtrl = reinterpret_cast<CListCtrl*>(GetDlgItem(IDC_SAMPLE_LIST));

	int Index = m_pSampleListCtrl->GetSelectionMark();

	if (Index == -1)
		return;

	m_pSampleListCtrl->GetItemText(Index, 0, Text, 256);
	Index = _tstoi(Text);
	
	DSample = GetDocument()->GetDSample(Index);

	if (DSample->SampleSize == 0)
		return;

	CFileDialog SaveFileDialog(FALSE, _T("dmc"), (LPCTSTR)DSample->Name, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("Delta modulation samples (*.dmc)|*.dmc|All files|*.*||"));
	
	SaveFileDialog.m_pOFN->lpstrInitialDir = theApp.GetSettings()->GetPath(PATH_DMC);

	if (SaveFileDialog.DoModal() == IDCANCEL)
		return;

	theApp.GetSettings()->SetPath(SaveFileDialog.GetPathName(), PATH_DMC);

	Path = SaveFileDialog.GetPathName();

	if (!SampleFile.Open(Path, CFile::modeWrite | CFile::modeCreate)) {
		AfxMessageBox(IDS_FILE_OPEN_ERROR);
		return;
	}

	SampleFile.Write(DSample->SampleData, DSample->SampleSize);
	SampleFile.Close();
}
Пример #9
0
//
//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND  - process the application menu
//  WM_PAINT    - Paint the main window
//  WM_DESTROY  - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{\
	switch (message)
	{
	case WM_COMMAND:
	{
		int wmId = LOWORD(wParam);
		// Parse the menu selections:
		switch (wmId)
		{
		case IDM_FILE_OPEN: {
			TCHAR path[MAX_PATH];
			if (OpenFileDialog(hWnd, path, _T("Pri File (*.pri)\0*.pri\0*.*\0*.*\0\0"))) {
				TCHAR* name = _tcsrchr(path, _T('\\')) + 1;
				_tcscpy_s(pAppendTitle, MAX_PATH + szTitle - pAppendTitle, _T(" - "));
				_tcscat_s(pAppendTitle, MAX_PATH + szTitle - pAppendTitle, name);
				SetWindowText(hWnd, szTitle);

				if (pLoader) delete pLoader;
				pLoader = new PriFileLoader(path);

				if (pChanger) delete pChanger;
				pChanger = new PriChanger(pLoader->getPriEntry());

				if (pImage) {
					delete pImage;
					pImage = NULL;
				}

				BYTE* pBuffer = reinterpret_cast<BYTE*>(GlobalLock(hGlobal));
				pLoader->getDataByIndex(pBuffer, MAP_BUFFER_SIZE, 3);
				GlobalUnlock(hGlobal);
				IStream* pStream = NULL;
				if (CreateStreamOnHGlobal(hGlobal, FALSE, &pStream) == S_OK) {
					pImage = Gdiplus::Image::FromStream(pStream);

					HMENU hMenu = GetMenu(hWnd);
					EnableMenuItem(hMenu, IDM_SAVE_AS, MF_ENABLED);
					EnableMenuItem(hMenu, IDM_DUMP_JPGS, MF_ENABLED);
					EnableMenuItem(hMenu, IDM_CHANGE_JPG, MF_ENABLED);
					InvalidateRect(hWnd, NULL, TRUE);
				}
			}
			break;
		}
		case IDM_SAVE_AS: {
			TCHAR path[MAX_PATH];
			if (SaveFileDialog(hWnd, path, _T("Pri File (*.pri)\0*.pri\0\0"))) {
				int length = _tcslen(path);
				if (length <= 4 || !isStringIgnoreCaseEndWith(path, _T(".pri")))
					_tcscat_s(path, _T(".pri"));

				if (pChanger)
					pChanger->saveAs(path);
			}
			break;
		}
		case IDM_DUMP_JPGS: {
			TCHAR path[MAX_PATH];
			BROWSEINFO bInfo = { 0 };
			bInfo.hwndOwner = hWnd;
			bInfo.lpszTitle = szOutputDirectory;
			bInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI | BIF_UAHINT;
			LPITEMIDLIST lpList = SHBrowseForFolder(&bInfo);
			if (lpList && SHGetPathFromIDList(lpList, path) && pLoader) {
				_tcscat_s(path, _T("\\"));
				pLoader->dumpDataFiles(path, 0xD8FF);
			}
			break;
		}
		case IDM_CHANGE_JPG: {
			TCHAR path[MAX_PATH];
			if (OpenFileDialog(hWnd, path, _T("Jpg File (*.jpg)\0*.jpg\0\0"))) {
				if (pChanger)
					pChanger->changeBackGroundJpg(path);

				if (pImage) {
					delete pImage;
					pImage = NULL;
				}

				BYTE* pBuffer = reinterpret_cast<BYTE*>(GlobalLock(hGlobal));
				pLoader->getDataByIndex(pBuffer, MAP_BUFFER_SIZE, 3);
				GlobalUnlock(hGlobal);
				IStream* pStream = NULL;
				if (CreateStreamOnHGlobal(hGlobal, FALSE, &pStream) == S_OK) {
					pImage = Gdiplus::Image::FromStream(pStream);

					HMENU hMenu = GetMenu(hWnd);
					EnableMenuItem(hMenu, IDM_SAVE_AS, MF_ENABLED);
					EnableMenuItem(hMenu, IDM_CHANGE_JPG, MF_ENABLED);
					InvalidateRect(hWnd, NULL, TRUE);
				}
			}
			break;
		}
		case IDM_ABOUT:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
	}
	break;
	case WM_ERASEBKGND:
		return 1;
	case WM_PAINT:
	{
		RECT rc;
		GetClientRect(hWnd, &rc);
		Gdiplus::Rect rect(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);

		PAINTSTRUCT ps;
		HDC hdc = BeginPaint(hWnd, &ps);
		HDC hMemDC = CreateCompatibleDC(hdc);
		HBITMAP hMemBitmap = CreateCompatibleBitmap(hdc, rect.Width, rect.Height);
		SelectObject(hMemDC, hMemBitmap);
		if (pImage) {
			Gdiplus::Graphics graphics(hMemDC);
			graphics.DrawImage(pImage, rect);
			BitBlt(hdc, rect.GetTop(), rect.GetTop(), rect.Width, rect.Height, hMemDC, 0, 0, SRCCOPY);
		}
		DeleteObject(hMemBitmap);
		DeleteDC(hMemDC);
		EndPaint(hWnd, &ps);
	}
	break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}
Пример #10
0
void OnMenuSaveList (GtkObject *object, gpointer user_data)
{
	ClassString source=SaveFileDialog();
	if(source.s) UtilsSaveFiles(source.s);
}