void CannyGradientImage::PRIVATE_CannyImage(double aSigma) { // When we start this function, we already know by construction // that _dxImg and _dyImg contain copies of the original image // to be derived. // Create Gaussian masks Mask1dGauss sMask(aSigma); // smoothing mask Mask1dGaussD1 dMask(aSigma); // derivation mask FConvolImage* dx = new FConvolImage(_dxImg, dMask, QGE_AXIS_X); FConvolImage* dy = new FConvolImage( *dx, sMask, QGE_AXIS_Y); // This was _dxImg _dxImg = *dy; delete dx; delete dy; dx = new FConvolImage(_dyImg, sMask, QGE_AXIS_X); dy = new FConvolImage( *dx, dMask, QGE_AXIS_Y); // And this was _dyImg _dyImg = *dy; delete dx; delete dy; }
void CVarDefMap::ClearKeys(LPCTSTR mask) { ADDTOCALLSTACK("CVarDefMap::ClearKeys"); if ( mask && *mask ) { if ( !m_Container.size() ) return; CGString sMask(mask); sMask.MakeLower(); DefSet::iterator i = m_Container.begin(); CVarDefCont * pVarBase = NULL; while ( i != m_Container.end() ) { pVarBase = NULL; pVarBase = (*i); if ( pVarBase && ( strstr(pVarBase->GetKey(), sMask.GetPtr()) ) ) { DeleteAtIterator(i); i = m_Container.begin(); } else { ++i; } } } else { Empty(); } }
void CThread::MakeList(CString scString, TPStrList& aMasks) { if (scString.Empty()) return; CString sString(scString); sString.ToLower(); WORD wStart = 0; WORD wPos = 0; while (wPos < sString.Length()) { if (sString[wPos] == TEXT(';')) { CString sMask(sString, wStart, wPos - wStart); sMask.Trim(); aMasks.Add(new CString(sMask)); wPos++; wStart = wPos; } else if (sString[wPos] == TEXT('\r')) { CString sMask(sString, wStart, wPos - wStart); sMask.Trim(); aMasks.Add(new CString(sMask)); wPos += 2; wStart = wPos; } else if (wPos == sString.Length() - 1) { CString sMask(sString, wStart, wPos - wStart + 1); sMask.Trim(); aMasks.Add(new CString(sMask)); break; } else wPos++; } }
wxGISFeatureDetailsPanel::wxGISFeatureDetailsPanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxImage img = wxBitmap(small_arrow_xpm).ConvertToImage(); wxBitmap oDownArrow = img.Rotate90(); wxBoxSizer* bSizer1; bSizer1 = new wxBoxSizer( wxVERTICAL ); wxFlexGridSizer* fgSizer1; fgSizer1 = new wxFlexGridSizer( 1, 3, 0, 0 ); fgSizer1->AddGrowableCol( 1 ); fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText1 = new wxStaticText( this, wxID_ANY, _("Location:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1->Wrap( -1 ); fgSizer1->Add( m_staticText1, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); m_textCtrl = new wxTextCtrl( this, wxID_ANY, wxT("..."), wxDefaultPosition, wxDefaultSize, wxTE_READONLY, wxGenericValidator( &m_sLocation )); //m_textCtrl->Enable( false ); fgSizer1->Add( m_textCtrl, 1, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 ); m_bpSelStyleButton = new wxBitmapButton( this, ID_MASKBTN, oDownArrow, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW ); m_bpSelStyleButton->SetToolTip( _("Select location text style") ); fgSizer1->Add( m_bpSelStyleButton, 0, wxRIGHT, 5 ); bSizer1->Add( fgSizer1, 0, wxEXPAND, 5 ); m_listCtrl = new wxListCtrl( this, ID_LISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_HRULES | wxLC_VRULES ); m_listCtrl->InsertColumn(0, _("Field"), wxLIST_FORMAT_LEFT, 90); m_listCtrl->InsertColumn(1, _("Value"), wxLIST_FORMAT_LEFT, 120); m_ImageListSmall.Create(16, 16); wxBitmap SmallA(small_arrow_xpm);// > arrow wxImage SmallImg = SmallA.ConvertToImage(); SmallImg = SmallImg.Rotate90(); wxBitmap SmallDown(SmallImg); SmallImg = SmallImg.Mirror(false); wxBitmap SmallUp(SmallImg); m_ImageListSmall.Add(wxBitmap(SmallDown)); m_ImageListSmall.Add(wxBitmap(SmallUp)); m_ImageListSmall.Add(wxBitmap(field_16_xpm)); m_listCtrl->SetImageList(&m_ImageListSmall, wxIMAGE_LIST_SMALL); m_listCtrl->Bind(wxEVT_LEFT_DOWN, &wxGISFeatureDetailsPanel::OnMouseLeftUp, this); //not work on GTK //m_listCtrl->Bind(wxEVT_SET_CURSOR, &wxGISFeatureDetailsPanel::OnSetCursor, this); m_listCtrl->Bind(wxEVT_MOTION, &wxGISFeatureDetailsPanel::OnMouseMove, this); bSizer1->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 ); this->SetSizer( bSizer1 ); this->Layout(); m_pCFormat = new wxGISCoordinatesFormatMenu(); wxString sMask( wxT("X: dd.dddd[ ]Y: dd.dddd") ); wxGISAppConfig oConfig = GetConfig(); m_sAppName = GetApplication()->GetAppName(); if(oConfig.IsOk()) { sMask = oConfig.Read(enumGISHKCU, m_sAppName + wxString(wxT("/identifydlg/format_mask")), sMask); } m_pCFormat->Create(sMask); m_pMenu = new wxMenu; m_pMenu->Append(ID_WG_COPY_NAME, wxString::Format(_("Copy %s"), _("Field")), wxString::Format(_("Copy '%s' value"), _("Field")), wxITEM_NORMAL); m_pMenu->Append(ID_WG_COPY_VALUE, wxString::Format(_("Copy %s"), _("Value")), wxString::Format(_("Copy '%s' value"), _("Value")), wxITEM_NORMAL); m_pMenu->Append(ID_WG_COPY, _("Copy"), _("Copy rows"), wxITEM_NORMAL); m_pMenu->Append(ID_WG_HIDE, _("Hide"), _("Hide rows"), wxITEM_NORMAL); m_pMenu->AppendSeparator(); m_pMenu->Append(ID_WG_RESET_SORT, wxString(_("Remove sort")), wxString(_("Remove sort")), wxITEM_NORMAL); m_pMenu->Append(ID_WG_RESET_HIDE, wxString(_("Show all rows")), wxString(_("Show all rows")), wxITEM_NORMAL); m_pMenu->AppendSeparator(); //encoding wxMenu *pEncMenu = new wxMenu; //add encodings wxString sDefault; for (int i = wxFONTENCODING_DEFAULT; i < wxFONTENCODING_MAX; i++) { wxString sDesc = wxFontMapper::GetEncodingDescription((wxFontEncoding)i); if (!sDesc.StartsWith(_("Unknown"))) { wxMenuItem* pMItem = pEncMenu->AppendRadioItem(ID_WG_ENCODING_START + i, sDesc); if (i == wxFONTENCODING_DEFAULT) pMItem->Check(); } } m_pMenu->AppendSubMenu(pEncMenu, _("Encodings"), _("Change text encoding")); m_currentSortCol = 0; m_nSortAsc = 0; m_dfX = 0; m_dfY = 0; }
static bool localUpdate( const char * pDest, const char * pSrc ) { bool bRestart = false; ASSERT( pDest[ strlen(pDest) - 1 ] == PATH_SEPERATORC ); ASSERT( pSrc[ strlen(pSrc) - 1 ] == PATH_SEPERATORC ); Path srcPath( pSrc ); CharString sMask( srcPath.directory() + "*" ); FindFile ff( sMask ); // make sure destination directory exists FileDisk::createDirectory( pDest ); // move files for(int i=0;i<ff.fileCount();i++) { CharString dstFile; dstFile.format( "%s%s", pDest, ff.file(i) ); CharString srcFile; srcFile.format( "%s%s", pSrc, ff.file(i) ); bool copyFile = false; bool copyUpdate = false; if ( FileDisk::fileExists( dstFile ) ) { // make sure date of src file is newer if ( FileDisk::fileDate( srcFile ) > FileDisk::fileDate( dstFile ) ) { copyFile = true; // attempt to delete the old file, if it fails then use MirrorUpdate if (! FileDisk::deleteFile( dstFile ) ) copyUpdate = true; } } else copyFile = true; bRestart |= copyFile; if ( copyFile && copyUpdate ) FileDisk::copyFile( srcFile, dstFile + ".upd" ); else if ( copyFile ) FileDisk::copyFile( srcFile, dstFile ); } // recurse into subdirectories for(int i=0;i<ff.directoryCount();i++) { if ( ff.directory(i)[0] == '.' ) continue; CharString newDst; newDst.format( "%s%s" PATH_SEPERATOR, pDest, ff.directory( i ) ); CharString newSrc; newSrc.format( "%s%s" PATH_SEPERATOR, pSrc, ff.directory( i ) ); bRestart |= localUpdate( newDst, newSrc ); } return bRestart; }
bool FileMisc::CopyFolder(const TCHAR* szSrcFolder, const TCHAR* szDestFolder, BOOL bIncludeSubFolders, const TCHAR* szFileMask, HANDLE hTerminate, BOOL bProcessMsgLoop) { if (!CreateFolder(szDestFolder)) { return false; } if (!FolderExists(szSrcFolder)) { return false; } // if a file mask has been specified with subfolders we need to do 2 passes on each folder, // one for the files and one for the sub folders int nPasses = (bIncludeSubFolders && (szFileMask && lstrlen(szFileMask))) ? 2 : 1; bool bResult = true; bool bStopped = (WaitForSingleObject(hTerminate, 0) == WAIT_OBJECT_0); for (int nPass = 0; !bStopped && nPass < nPasses; nPass++) { CString sSearchSpec(szSrcFolder), sMask(szFileMask); if (sMask.IsEmpty() || nPass == 1) // (nPass == 1) == 2nd pass (for folders) { sMask = "*.*"; } TerminatePath(sSearchSpec); sSearchSpec += sMask; WIN32_FIND_DATA finfo; HANDLE hSearch = NULL; if ((hSearch = FindFirstFile(sSearchSpec, &finfo)) != INVALID_HANDLE_VALUE) { do { if (bProcessMsgLoop) { Misc::ProcessMsgLoop(); } if (finfo.cFileName[0] != '.') { CString sSource(szSrcFolder); sSource += "\\"; sSource += finfo.cFileName; CString sDest(szDestFolder); sDest += "\\"; sDest += finfo.cFileName; if (finfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if ((nPass == 1 || nPasses == 1) && bIncludeSubFolders) { bResult = CopyFolder(sSource, sDest, hTerminate); } } else if (nPass == 0) // files { bResult = (TRUE == CopyFile(sSource, sDest, FALSE)); } } bStopped = (WaitForSingleObject(hTerminate, 0) == WAIT_OBJECT_0); } while (!bStopped && bResult && FindNextFile(hSearch, &finfo)); FindClose(hSearch); } } return (!bStopped && bResult); }
bool FileMisc::DeleteFolderContents(const TCHAR* szFolder, BOOL bIncludeSubFolders, const TCHAR* szFileMask, HANDLE hTerminate, BOOL bProcessMsgLoop) { // if the dir does not exists just return if (!FolderExists(szFolder)) { return true; } // if a file mask has been specified with subfolders we need to do 2 passes on each folder, // one for the files and one for the sub folders int nPasses = (bIncludeSubFolders && (szFileMask && lstrlen(szFileMask))) ? 2 : 1; bool bResult = true; bool bStopped = (WaitForSingleObject(hTerminate, 0) == WAIT_OBJECT_0); for (int nPass = 0; !bStopped && nPass < nPasses; nPass++) { CString sSearchSpec(szFolder), sMask(szFileMask); if (sMask.IsEmpty() || nPass == 1) // (nPass == 1) == 2nd pass (for folders) { sMask = "*.*"; } TerminatePath(sSearchSpec); sSearchSpec += sMask; WIN32_FIND_DATA finfo; HANDLE hSearch = NULL; if ((hSearch = FindFirstFile(sSearchSpec, &finfo)) != INVALID_HANDLE_VALUE) { do { if (bProcessMsgLoop) { Misc::ProcessMsgLoop(); } if (finfo.cFileName[0] != '.') { CString sItem(szFolder); sItem += "\\"; sItem += finfo.cFileName; if (finfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (bIncludeSubFolders && (nPass == 1 || nPasses == 1)) { if (DeleteFolderContents(sItem, TRUE, szFileMask, hTerminate, bProcessMsgLoop)) { if (!szFileMask || !lstrlen(szFileMask)) { bResult = (RemoveDirectory(sItem) == TRUE); } } } } else { bResult = (DeleteFile(sItem) == TRUE); } } bStopped = (WaitForSingleObject(hTerminate, 0) == WAIT_OBJECT_0); } while (!bStopped && bResult && FindNextFile(hSearch, &finfo)); FindClose(hSearch); } } return (!bStopped && bResult); }