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); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 命令处理 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; } }