Beispiel #1
0
frmImport::frmImport(frmMain *form, pgObject *_object, pgConn *_conn)
{
	// Initialize variables
	connection = _conn;
	object = _object;
	done = false;

	// Set-up window
	SetFont(settings->GetSystemFont());
	LoadResource(form, wxT("frmImport"));
	RestorePosition();
	SetTitle(wxT("Import data from file into ") + object->GetName());
	SetIcon(*reload_png_ico);

	// Fill the encoding combobox
	long encNo = 0;
	wxString encStr;
	cbEncoding->Append(wxT(""));
	do
	{
		encStr = object->GetConnection()->ExecuteScalar(
		             wxT("SELECT pg_encoding_to_char(") + NumToStr(encNo) + wxT(")"));
		if (pgConn::IsValidServerEncoding(encNo) && !encStr.IsEmpty())
			cbEncoding->Append(encStr);

		encNo++;
	}
	while (!encStr.IsEmpty());
	cbEncoding->SetSelection(0);

	// Fill the columns checklistboxes
	wxCookieType cookie;
	pgObject *data = 0;
	wxTreeItemId columnsItem;
	wxTreeItemId item = form->GetBrowser()->GetFirstChild(object->GetId(), cookie);
	while (item)
	{
		data = form->GetBrowser()->GetObject(item);
		pgaFactory *factory = data->GetFactory();
		if (factory == columnFactory.GetCollectionFactory())
			columnsItem = item;
		if (data->GetMetaType() == PGM_COLUMN && data->IsCollection())
			columnsItem = item;
		if (columnsItem)
			break;

		item = form->GetBrowser()->GetNextChild(object->GetId(), cookie);
	}

	if (columnsItem)
	{
		pgCollection *coll = (pgCollection *)data;
		coll->ShowTreeDetail(form->GetBrowser());
		item = form->GetBrowser()->GetFirstChild(columnsItem, cookie);

		while (item)
		{
			data = form->GetBrowser()->GetObject(item);
			if (data->IsCreatedBy(columnFactory))
			{
				pgColumn *column = (pgColumn *)data;
				column->ShowTreeDetail(form->GetBrowser());
				if (column->GetColNumber() > 0)
				{
					lstColumnsToImport->Append(column->GetName());
					lstIgnoreForColumns->Append(column->GetName());
				}
			}
			item = form->GetBrowser()->GetNextChild(columnsItem, cookie);
		}

		for (unsigned int x = 0; x < lstColumnsToImport->GetCount(); x++)
			lstColumnsToImport->Check(x, true);
	}

	// Fix some widgets
	wxCommandEvent ev;
	OnChangeFormat(ev);
}
Beispiel #2
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 命令处理
VOID CChildWnd::OnCommand(WPARAM wParam, LPARAM lParam)
{
	switch (LOWORD(wParam))
	{
	case IDM_File_Open:
		PostMessage(CMainWnd::m_hWnd, WM_COMMAND, IDM_File_Open, 0);
		break;

	case IDM_File_Export:
		OnFileExport();
		break;

	case IDM_Play_Play:
		TogglePlay();
		break;

	case IDM_Play_GotoStart:
		Stop();
		Seek(0);
		break;

	case IDM_Play_GotoEnd:
		Stop();
		Seek(MAX_Frame);
		break;

	case IDM_Play_StepBackward:
		Stop();
		Step(-1);
		break;

	case IDM_Play_StepForward:
		Stop();
		Step(1);
		break;

	case IDM_Play_Synchronize:
		CMainWnd::CheckCommand(IDM_Play_Synchronize, CRawPlayer::ToggleSync());
		break;

	case IDM_Play_Scrabble:
		CClientWnd::OnPlayScrabble();
		break;

	case IDM_Play_GdiDraw:
		// 切换为 GDI 方式
		if (IsDDraw())
		{
			EnableDDraw(FALSE);
			Draw();
			CIni::SetInt(INI_DirectDraw, FALSE);
		}
		break;

	case IDM_Play_DirectDraw:
		// 切换为 DirectDraw 方式
		if (IsDDraw() == FALSE)
		{
			HRESULT hResult = EnableDDraw();
			if (SUCCEEDED(hResult))
			{
				Draw();
				CIni::SetInt(INI_DirectDraw, TRUE);
			}
			else
			{
				TCHAR tzText[MAX_PATH];
				if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, (DWORD) hResult, 
					MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), tzText, MAX_PATH, NULL) == 0)	
				{
					wsprintf(tzText, LNG_DirectDrawErr, hResult);
				}
				CMainWnd::ErrorBox(tzText);
				CIni::SetInt(INI_DirectDraw, FALSE);
			}
		}
		break;

	case IDM_Play_YChannel:
	case IDM_Play_UChannel:
	case IDM_Play_VChannel:
	case IDM_Play_RChannel:
	case IDM_Play_GChannel:
	case IDM_Play_BChannel:
		OnPlayChannel(LOWORD(wParam));
		break;

	case IDM_Play_ZoomHalf:
	case IDM_Play_ZoomActual:
	case IDM_Play_ZoomDouble:
		if (CRawPlayer::m_bSync || CClientWnd::IsScrabble())
		{
			CClientWnd::OnPlayZoom(LOWORD(wParam));
		}
		else
		{
			OnPlayZoom(LOWORD(wParam));
		}
		break;

	case TB_THUMBPOSITION:
		Seek((DWORD) SendMessage(m_hSeekBar, TBM_GETPOS, 0, 0));
		break;

	case TB_PAGEUP:
	case TB_PAGEDOWN:
	case TB_ENDTRACK:
	case TB_THUMBTRACK:
		// 暂停
		if (m_bStartOfScroll)
		{
			m_bStartOfScroll = FALSE;
			m_bPrevPlaying = Stop();
		}

		// 定位
		Seek((DWORD) SendMessage(m_hSeekBar, TBM_GETPOS, 0, 0));

		// 恢复状态
		if (LOWORD(wParam) == TB_ENDTRACK)
		{
			if (m_bPrevPlaying)
			{
				Play();
			}
			m_bStartOfScroll = TRUE;
		}

		break;

	case IDC_RawVideo_Play:
		// 播放或停止
		SendMessage(m_hToolbar, TB_CHECKBUTTON, IDM_Play_Play, lParam);
		break;

	case IDC_RawVideo_Seek:
		// 重定位
		SendMessage(m_hSeekBar, TBM_SETPOS, TRUE, lParam);
		SetStatusText(m_uCurFrame + 1, SBI_CurFrame);
		break;

	case IDC_RawVideo_Change:
		// 显示格式信息
		SetStatusText(c_tzColorSpace[m_csColorSpace], SBI_ColorSpace);
		SetStatusText(m_uWidth, SBI_Width);
		SetStatusText(m_iHeight, SBI_Height);
		SetStatusText(m_uFrameRate, SBI_FrameRate);
		SetStatusText(m_iFrameStep, SBI_FrameStep);
		SetStatusText(m_uCurFrame + 1, SBI_CurFrame);
		SetStatusText(m_uTotalFrame, SBI_TotalFrame);
		break;

	case IDC_EditBox:
		// 编辑格式
		if (HIWORD(wParam) == EN_KILLFOCUS)
		{
			if (OnChangeFormat())
			{
				SetStatusText(LNG_Ready);
				OnClickStatusBar(m_uEditBox + 1);
			}
			else
			{
				ShowWindow(m_hEditBox, SW_HIDE);
				SetStatusText(LNG_InputErr);
			}
		}
		break;
	}
}