From: <td...@us...> - 2003-12-07 17:06:15
|
Update of /cvsroot/anyedit/AnyEditv2 In directory sc8-pr-cvs1:/tmp/cvs-serv4740 Modified Files: AnyEdit.cpp AnyEdit.dsp AnyEdit.h AnyEdit.rc AnyEditView.cpp AnyEditView.h ChangeLog.txt QuickJump.cpp RegProfile.h resource.h scintillaif.cpp scintillaif.h Log Message: - Added macro support - Added document position saving support Index: AnyEdit.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/AnyEdit.cpp,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** AnyEdit.cpp 2 Dec 2003 12:03:34 -0000 1.36 --- AnyEdit.cpp 7 Dec 2003 17:06:10 -0000 1.37 *************** *** 64,68 **** ON_COMMAND(ID_FILE_NEW, OnFileNew) ON_COMMAND(ID_FILE_OPENSTARTUPPAGE, OnFileOpenstartuppage) ! //}}AFX_MSG_MAP // Standard file based document commands ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) --- 64,72 ---- ON_COMMAND(ID_FILE_NEW, OnFileNew) ON_COMMAND(ID_FILE_OPENSTARTUPPAGE, OnFileOpenstartuppage) ! ON_COMMAND(ID_TOOLS_SAVEMACRO, OnToolsSavemacro) ! ON_UPDATE_COMMAND_UI(ID_TOOLS_SAVEMACRO, OnUpdateToolsSavemacro) ! ON_COMMAND(ID_TOOLS_LOADMACRO, OnToolsLoadmacro) ! ON_UPDATE_COMMAND_UI(ID_TOOLS_LOADMACRO, OnUpdateToolsLoadmacro) ! //}}AFX_MSG_MAP // Standard file based document commands ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) *************** *** 84,91 **** --- 88,104 ---- m_bLastParsedFileInCurrentProject=false; pluginHead=NULL; + macroholder=NULL; + isRecordingMacro=FALSE; } CAnyEditApp::~CAnyEditApp() { + if(macroholder) + { + macroholder->DeleteNext(); + delete macroholder; + macroholder=NULL; + } + POSITION pos = langmap.GetStartPosition(); *************** *** 222,225 **** --- 235,240 ---- pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); + //Load document save positions + LoadDocumentPosition(); //check for leaks *************** *** 435,438 **** --- 450,456 ---- delete m_ClassViewParserThread; m_ClassViewParserThread=NULL; + + //Save doc positions + SaveDocumentPosition(); //Delete all the files in the temp folder *************** *** 1491,1493 **** --- 1509,1684 ---- if(lang)lang->LoadAcmpFile(); } + } + + void CAnyEditApp::OnToolsSavemacro() + { + // TODO: Add your command handler code here + + CString str; + if(theApp.DoPromptFileName(str,_T("Choose file to save macro"),OFN_HIDEREADONLY,FALSE)) + { + + CStringArray arr; + MacroHolder * mh = macroholder; + while(mh) + { + CString tstr; + mh->ToString(tstr); + arr.Add(tstr); + mh = mh->next; + } + + msc.WriteArrayToFile(arr,str); + } + + } + + void CAnyEditApp::OnUpdateToolsSavemacro(CCmdUI* pCmdUI) + { + if(macroholder) + { + if(!isRecordingMacro) + { + pCmdUI->Enable(); + return; + } + } + + pCmdUI->Enable(FALSE); + } + + void CAnyEditApp::OnToolsLoadmacro() + { + if(!isRecordingMacro) + { + CString str; + if(theApp.DoPromptFileName(str,_T("Open macro file"),OFN_HIDEREADONLY,TRUE)) + { + CStringArray arr; + msc.LoadFileToArray(str,arr); + if(macroholder) + { + macroholder->DeleteNext(); + delete macroholder; + macroholder=NULL; + } + + for(int i=0;i<arr.GetSize();i++) + { + CStringArray tarr; + CString macrostr = arr[i]; + msc.ReturnDelimitedArray(macrostr,"µ",tarr); + if(tarr.GetSize() >= 2) + { + MacroHolder * nm = new MacroHolder; + nm->message = msc.GetIntForString(tarr[0]); + nm->wParam = msc.GetIntForString(tarr[1]); + nm->lParam = msc.GetIntForString(tarr[2]); + if(nm->message == SCI_REPLACESEL) + { + if(tarr.GetSize() >= 3) + strcpy(nm->replacesel,tarr[3].GetBuffer(tarr[3].GetLength())); + } + + if(macroholder) + { + MacroHolder * tmacro = theApp.macroholder; + while(tmacro->next){tmacro=tmacro->next;} + tmacro->next = nm; + }else macroholder = nm; + + } + + } + + + } + + } + } + + void CAnyEditApp::OnUpdateToolsLoadmacro(CCmdUI* pCmdUI) + { + if(isRecordingMacro) pCmdUI->Enable(FALSE); + else pCmdUI->Enable(); + } + + void CAnyEditApp::SetDocumentPosition(LPCSTR filepath, long startpos, long endpos,int visline) + { + CString fpath = msc.ChangeFormatToFilePath(filepath); + for(int i=0;i<m_docPos.GetSize();i++) + { + if(m_docPos[i].file_path == fpath) + { + m_docPos[i].initial_pos = startpos; + m_docPos[i].final_pos = endpos; + m_docPos[i].visible_line = visline; + return; + } + } + + DocumentPosition dpos; + dpos.file_path = fpath; + dpos.initial_pos = startpos; + dpos.final_pos = endpos; + dpos.visible_line = visline; + + m_docPos.InsertAt(0,dpos); + } + + BOOL CAnyEditApp::GetDocumentPosition(LPCSTR filepath, long &startpos, long &endpos,int &visline) + { + CString fpath = msc.ChangeFormatToFilePath(filepath); + for(int i=0;i<m_docPos.GetSize();i++) + { + if(m_docPos[i].file_path == fpath) + { + startpos = m_docPos[i].initial_pos; + endpos = m_docPos[i].final_pos; + visline = m_docPos[i].visible_line; + return TRUE; + } + } + + return FALSE; + } + + void CAnyEditApp::SaveDocumentPosition() + { + int cnt = 25; + if(m_docPos.GetSize() < cnt) cnt = m_docPos.GetSize(); + + m_reg.WriteProfileInt(SEC_DOCPOS,_T("Count"),cnt); + for(int i=0;i<cnt;i++) + { + CString savepos = m_docPos[i].file_path; + savepos += "|"; + savepos += msc.GetStringForInt(m_docPos[i].initial_pos); + savepos += "|"; + savepos += msc.GetStringForInt(m_docPos[i].final_pos); + savepos += "|"; + savepos += msc.GetStringForInt(m_docPos[i].visible_line); + m_reg.WriteProfileString(SEC_DOCPOS, msc.GetStringForInt(i),savepos); + } + } + + void CAnyEditApp::LoadDocumentPosition() + { + TCHAR tempStr[1024]; + int cnt = m_reg.GetProfileInt(SEC_DOCPOS,_T("Count"),0); + for(int i=0;i<cnt;i++) + { + CString docpos = m_reg.GetProfileString(SEC_DOCPOS,msc.GetStringForInt(i),tempStr,""); + CStringArray arr; + msc.ReturnDelimitedArray(docpos,"|",arr); + if(arr.GetSize()== 4) + { + DocumentPosition dp; + dp.file_path = arr[0]; + dp.initial_pos = msc.GetIntForString(arr[1]); + dp.final_pos = msc.GetIntForString(arr[2]); + dp.visible_line = msc.GetIntForString(arr[3]); + m_docPos.Add(dp); + } + } } Index: AnyEdit.dsp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/AnyEdit.dsp,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** AnyEdit.dsp 28 Nov 2003 13:20:36 -0000 1.27 --- AnyEdit.dsp 7 Dec 2003 17:06:10 -0000 1.28 *************** *** 76,80 **** # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" ! # ADD RSC /l 0x409 /i "f:\WORKING\BGCONTROL\NBCGCONTROLBAR" /d "_DEBUG" /d "_AFXDLL" BSC32=bscmake.exe # ADD BASE BSC32 /nologo --- 76,80 ---- # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" ! # ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" BSC32=bscmake.exe # ADD BASE BSC32 /nologo Index: AnyEdit.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/AnyEdit.h,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** AnyEdit.h 2 Dec 2003 12:03:35 -0000 1.30 --- AnyEdit.h 7 Dec 2003 17:06:10 -0000 1.31 *************** *** 35,38 **** --- 35,47 ---- #include "Plugin.h" + //Save final position + struct DocumentPosition + { + CString file_path; + long initial_pos; + long final_pos; + int visible_line; + }; + class CAnyEditApp : public CDumpHandleApp { *************** *** 100,103 **** --- 109,114 ---- void UnloadPlugins(); void PluginMenuClicked(UINT id); + BOOL GetDocumentPosition(LPCSTR filepath,long &startpos,long &endpos,int &visline); + void SetDocumentPosition(LPCSTR filepath, long startpos, long endpos, int visline); void SetModification(BOOL modval) { *************** *** 148,151 **** --- 159,166 ---- CComboBox * funcbox; + //For macro support + MacroHolder * macroholder; + BOOL isRecordingMacro; + protected: CMultiDocTemplate* pDocTemplate; //was taken from .cpp after loadstdprofilesettings *************** *** 166,172 **** --- 181,190 ---- BOOL lastsearchdirection; AEPlugin * pluginHead; + CArray<DocumentPosition,DocumentPosition> m_docPos; CPlugin plugin; protected: + void LoadDocumentPosition(); + void SaveDocumentPosition(); void LoadGlobalSettings(); *************** *** 189,193 **** afx_msg void OnFileNew(); afx_msg void OnFileOpenstartuppage(); ! //}}AFX_MSG DECLARE_MESSAGE_MAP() --- 207,215 ---- afx_msg void OnFileNew(); afx_msg void OnFileOpenstartuppage(); ! afx_msg void OnToolsSavemacro(); ! afx_msg void OnUpdateToolsSavemacro(CCmdUI* pCmdUI); ! afx_msg void OnToolsLoadmacro(); ! afx_msg void OnUpdateToolsLoadmacro(CCmdUI* pCmdUI); ! //}}AFX_MSG DECLARE_MESSAGE_MAP() Index: AnyEdit.rc =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/AnyEdit.rc,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** AnyEdit.rc 25 Nov 2003 15:05:56 -0000 1.28 --- AnyEdit.rc 7 Dec 2003 17:06:10 -0000 1.29 *************** *** 394,424 **** MENUITEM SEPARATOR ! MENUITEM "Record Keystrokes", ID_TOOLS_RECORDMACRO ! MENUITEM "Stop Recording", ID_TOOLS_STOPRECORDING ! MENUITEM "Repeat Command", ID_TOOLS_REPEATCOMMAND MENUITEM SEPARATOR - POPUP "Play Keystrokes" - BEGIN - MENUITEM "Keystroke &1", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE1 - - MENUITEM "Keystroke &2", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE2 - - MENUITEM "Keystroke &3", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE3 - - MENUITEM "Keystroke &4", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE4 - - MENUITEM "Keystroke &5", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE5 - - MENUITEM "Keystroke &6", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE6 - - MENUITEM "Keystroke &7", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE7 - - MENUITEM "Keystroke &8", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE8 - - MENUITEM "Keystroke &9", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE9 - - MENUITEM "Keystroke 1&0", ID_TOOLS_PLAYKEYSTROKES_KEYSTROKE10 - - END POPUP "Current Doc Tools" BEGIN --- 394,404 ---- MENUITEM SEPARATOR ! MENUITEM "Record Macro\tCtrl+Shift+R", ID_TOOLS_RECORDMACRO ! MENUITEM "Play Recording\tCtrl+Shift+P", ID_TOOLS_PLAYRECORDING ! MENUITEM "Repeat Macro", ID_TOOLS_REPEATCOMMAND ! MENUITEM SEPARATOR ! MENUITEM "Save Macro", ID_TOOLS_SAVEMACRO ! MENUITEM "Load Macro", ID_TOOLS_LOADMACRO MENUITEM SEPARATOR POPUP "Current Doc Tools" BEGIN *************** *** 1216,1219 **** --- 1196,1203 ---- "H", ID_SEARCH_FINDREPLACE, VIRTKEY, CONTROL, NOINVERT "J", ID_SEARCH_QUICKJUMP, VIRTKEY, CONTROL, NOINVERT + "P", ID_TOOLS_PLAYRECORDING, VIRTKEY, SHIFT, CONTROL, + NOINVERT + "R", ID_TOOLS_RECORDMACRO, VIRTKEY, SHIFT, CONTROL, + NOINVERT "V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT VK_F2, ID_SEARCH_BOOKMARK_NEXTBOOKMARK, VIRTKEY, NOINVERT *************** *** 1628,1632 **** STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Clip Text Editor" ! FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,185,212,50,14 --- 1612,1616 ---- STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Clip Text Editor" ! FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN DEFPUSHBUTTON "OK",IDOK,185,212,50,14 Index: AnyEditView.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/AnyEditView.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** AnyEditView.cpp 2 Dec 2003 12:03:35 -0000 1.38 --- AnyEditView.cpp 7 Dec 2003 17:06:11 -0000 1.39 *************** *** 94,98 **** ON_COMMAND(ID_SEARCH_GOTOLINE, OnSearchGotoline) ON_COMMAND(ID_TOOLS_RECORDMACRO, OnToolsRecordmacro) - ON_COMMAND(ID_TOOLS_STOPRECORDING, OnToolsStoprecording) ON_COMMAND(ID_TOOLS_HIGHLIGHTCURRENTLINE, OnToolsHighlightcurrentline) ON_UPDATE_COMMAND_UI(ID_TOOLS_HIGHLIGHTCURRENTLINE, OnUpdateToolsHighlightcurrentline) --- 94,97 ---- *************** *** 109,112 **** --- 108,116 ---- ON_WM_DESTROY() ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview) + ON_COMMAND(ID_TOOLS_REPEATCOMMAND, OnToolsRepeatcommand) + ON_COMMAND(ID_TOOLS_PLAYRECORDING, OnToolsPlayrecording) + ON_UPDATE_COMMAND_UI(ID_TOOLS_RECORDMACRO, OnUpdateToolsRecordmacro) + ON_UPDATE_COMMAND_UI(ID_TOOLS_PLAYRECORDING, OnUpdateToolsPlayrecording) + ON_UPDATE_COMMAND_UI(ID_TOOLS_REPEATCOMMAND, OnUpdateToolsRepeatcommand) //}}AFX_MSG_MAP ON_WM_CONTEXTMENU() *************** *** 350,358 **** break; case SCN_MACRORECORD: ! AfxMessageBox(msc.GetStringForInt(scn->message)); ! AfxMessageBox(msc.GetStringForInt(scn->wParam)); ! AfxMessageBox(msc.GetStringForInt(scn->lParam)); ! break; } --- 354,377 ---- break; case SCN_MACRORECORD: ! MacroHolder * newmacro = new MacroHolder; ! newmacro->message = scn->message; ! newmacro->lParam = scn->lParam; ! newmacro->wParam = scn->wParam; ! if(newmacro->message == SCI_REPLACESEL) ! { ! char * sel = (char *) newmacro->lParam; ! if(strlen(sel)==1) ! { ! strcpy(newmacro->replacesel,sel); ! } ! } ! if(theApp.macroholder) ! { ! MacroHolder * tmacro = theApp.macroholder; ! while(tmacro->next){tmacro=tmacro->next;} ! tmacro->next = newmacro; ! }else theApp.macroholder = newmacro; + break; } *************** *** 581,586 **** if(proarr.GetSize() == 0) { ! theApp.SetSelectedLine(((CTagEntry ! *)dwData)->lineno-1); } else --- 600,604 ---- if(proarr.GetSize() == 0) { ! theApp.SetSelectedLine(((CTagEntry *)dwData)->lineno-1); } else *************** *** 595,600 **** char file_ext[_MAX_EXT]; CString targetName,targetExt; ! _splitpath(((CTagEntry ! *)dwData)->filename,file_drive,file_path,file_name,file_ext); targetName=file_name; targetExt=file_ext; --- 613,617 ---- char file_ext[_MAX_EXT]; CString targetName,targetExt; ! _splitpath(((CTagEntry *)dwData)->filename,file_drive,file_path,file_name,file_ext); targetName=file_name; targetExt=file_ext; *************** *** 613,621 **** if(!realpath.IsEmpty()) ! theApp.GotoFileAndLine(((CTagEntry ! *)dwData)->lineno,realpath); else ! theApp.SetSelectedLine(((CTagEntry ! *)dwData)->lineno-1); } } --- 630,636 ---- if(!realpath.IsEmpty()) ! theApp.GotoFileAndLine(((CTagEntry *)dwData)->lineno,realpath); else ! theApp.SetSelectedLine(((CTagEntry *)dwData)->lineno-1); } } *************** *** 674,678 **** { - m_Scintilla.SetSel(0,0); CString docname = GetDocument()->GetPathName(); if(!docname.IsEmpty()) --- 689,692 ---- *************** *** 703,707 **** { CView::OnInitialUpdate(); ! JustOpenedFile(); } --- 717,733 ---- { CView::OnInitialUpdate(); ! JustOpenedFile(); ! ! //Check for previously saved document position and restore if any ! char tpath[500]; ! strcpy(tpath,CurDocPath.GetBuffer(CurDocPath.GetLength())); ! long startpos=0,endpos=0; ! int visline=0; ! if(theApp.GetDocumentPosition(tpath,startpos,endpos,visline)) ! { ! m_Scintilla.SetSel(startpos,endpos); ! int i = m_Scintilla.GetFirstVisibleLine(); ! m_Scintilla.LineScroll(0,visline-i); ! } } *************** *** 1906,1915 **** void CAnyEditView::OnToolsRecordmacro() { ! //m_Scintilla.StartRecord(); } ! void CAnyEditView::OnToolsStoprecording() { ! //m_Scintilla.StopRecord(); } --- 1932,1964 ---- void CAnyEditView::OnToolsRecordmacro() { ! if(theApp.isRecordingMacro) ! { ! m_Scintilla.StopRecord(); ! theApp.isRecordingMacro=FALSE; ! } ! else ! { ! if(theApp.macroholder) ! { ! theApp.macroholder->DeleteNext(); ! delete theApp.macroholder; ! theApp.macroholder=NULL; ! } ! m_Scintilla.StartRecord(); ! theApp.isRecordingMacro=TRUE; ! } } ! void CAnyEditView::OnToolsPlayrecording() { ! if(!theApp.isRecordingMacro) ! { ! if(theApp.macroholder) ! { ! m_Scintilla.BeginUndoAction(); ! m_Scintilla.PerformMacro(theApp.macroholder); ! m_Scintilla.EndUndoAction(); ! } ! } } *************** *** 2040,2043 **** --- 2089,2103 ---- { CView::OnDestroy(); + + //Set document save point + char tpath[500]; + strcpy(tpath,CurDocPath.GetBuffer(CurDocPath.GetLength())); + long startpos=0,endpos=0; + int visline=0; + startpos = m_Scintilla.GetSelectionStart(); + endpos = m_Scintilla.GetSelectionEnd(); + visline = m_Scintilla.GetFirstVisibleLine(); + theApp.SetDocumentPosition(tpath,startpos,endpos,visline); + CDocument* pDoc=GetDocument(); if ( (pDoc!=NULL) && (pDoc->IsKindOf(RUNTIME_CLASS(CAnyEditDoc))) ) *************** *** 2057,2060 **** --- 2117,2121 ---- }; + } *************** *** 2074,2076 **** --- 2135,2198 ---- // TODO: Add your command handler code here BCGPrintPreview(this); + } + + void CAnyEditView::OnToolsRepeatcommand() + { + //Right now a place holder to test macros.. :) + if(theApp.macroholder) + { + CInputBox inpBox(_T("Repeat Macro"),_T("Enter no of times"),_T("1")); + if(inpBox.DoModal()==IDOK) + { + CString tstr = inpBox.GetOutput(); + int num = msc.GetIntForString(tstr); + if(num > 0) + { + m_Scintilla.BeginUndoAction(); + for(int i=0;i<num;i++) + { + m_Scintilla.PerformMacro(theApp.macroholder); + } + m_Scintilla.EndUndoAction(); + } + } + } + } + + void CAnyEditView::OnUpdateToolsRecordmacro(CCmdUI* pCmdUI) + { + if(theApp.isRecordingMacro) + { + pCmdUI->SetText("Stop Record\tCtrl+Shift+R"); + } + else + { + pCmdUI->SetText("Record Macro\tCtrl+Shift+R"); + } + } + + void CAnyEditView::OnUpdateToolsPlayrecording(CCmdUI* pCmdUI) + { + if(theApp.macroholder) + { + if(!theApp.isRecordingMacro) + { + pCmdUI->Enable(); + return; + } + } + pCmdUI->Enable(FALSE); + } + + void CAnyEditView::OnUpdateToolsRepeatcommand(CCmdUI* pCmdUI) + { + if(theApp.macroholder) + { + if(!theApp.isRecordingMacro) + { + pCmdUI->Enable(); + return; + } + } + pCmdUI->Enable(FALSE); } Index: AnyEditView.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/AnyEditView.h,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** AnyEditView.h 28 Nov 2003 13:20:37 -0000 1.20 --- AnyEditView.h 7 Dec 2003 17:06:11 -0000 1.21 *************** *** 159,163 **** afx_msg void OnSearchGotoline(); afx_msg void OnToolsRecordmacro(); - afx_msg void OnToolsStoprecording(); afx_msg void OnToolsHighlightcurrentline(); afx_msg void OnUpdateToolsHighlightcurrentline(CCmdUI* pCmdUI); --- 159,162 ---- *************** *** 174,177 **** --- 173,181 ---- afx_msg void OnDestroy(); afx_msg void OnFilePrintPreview(); + afx_msg void OnToolsRepeatcommand(); + afx_msg void OnToolsPlayrecording(); + afx_msg void OnUpdateToolsRecordmacro(CCmdUI* pCmdUI); + afx_msg void OnUpdateToolsPlayrecording(CCmdUI* pCmdUI); + afx_msg void OnUpdateToolsRepeatcommand(CCmdUI* pCmdUI); //}}AFX_MSG afx_msg void OnEditFind(); Index: ChangeLog.txt =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/ChangeLog.txt,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** ChangeLog.txt 28 Nov 2003 13:20:37 -0000 1.33 --- ChangeLog.txt 7 Dec 2003 17:06:11 -0000 1.34 *************** *** 2,5 **** --- 2,11 ---- ============ + Beta 2.0 + -------- + 1) Added macro support + 2) Added document position saving support + + Beta 2.0 [Tester's Release 2] -------- *************** *** 95,118 **** - Alpha 9.0 - Give Me Beta ! - -------------------------- - - 1) Added Initial CTags Support - 2) Fixed up flicker in ClassView - 3) Fixed up tool execution bug wherein tools dont work when paths have spaces - 4) AE now adds on document words in autocompletion list ;) - 5) Multiline Clip Text insertion works now - 6) Startup page starting is configurable - I know some of you hate it :) - 7) Added many new options - Remaining --------- 1) Code completion - 2) Workspace loading bug - Will be finished only when rewriting the entire workspace handling ! - - Remaining later --- - --------------- - Rewrite entire workspace handling .... --- 101,108 ---- Index: QuickJump.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/QuickJump.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** QuickJump.cpp 2 Dec 2003 12:03:35 -0000 1.5 --- QuickJump.cpp 7 Dec 2003 17:06:11 -0000 1.6 *************** *** 197,236 **** void CQuickJump::FillTagList() { ! /* CTagList * taglist = theApp.GetCurrentTagList(); ! CObList * classlist = taglist->GetClassList(); POSITION pos = classlist->GetHeadPosition(); while(pos != NULL) { ! CTagEntry ! * ent = (CTagEntry ! *)classlist->GetNext(pos); InsertMember(ent->tagname,0,0,ent->lineno,(DWORD)ent); } ! CObList * functionlist = taglist->GetFunctionList(); pos = functionlist->GetHeadPosition(); while(pos != NULL) { ! CTagEntry ! * ent = (CTagEntry ! *)functionlist->GetNext(pos); ! int imtype=8; ! ! switch(ent->access) ! { ! case 1: ! imtype=1; ! break; ! case 2: ! imtype=4; ! break; ! case 3: ! imtype=3; ! } ! ! InsertMember(ent->tagname,imtype,1,ent->lineno,(DWORD)ent); ! }*/ } --- 197,218 ---- void CQuickJump::FillTagList() { ! CTagList * taglist = theApp.GetCurrentTagList(); ! CObList * classlist = taglist->GetParentList(); POSITION pos = classlist->GetHeadPosition(); while(pos != NULL) { ! CTagEntry * ent = (CTagEntry*)classlist->GetNext(pos); InsertMember(ent->tagname,0,0,ent->lineno,(DWORD)ent); } ! CObList * functionlist = taglist->GetChildList(); pos = functionlist->GetHeadPosition(); while(pos != NULL) { ! CTagEntry * ent = (CTagEntry*)functionlist->GetNext(pos); ! InsertMember(ent->tagname,ent->imagetype,1,ent->lineno,(DWORD)ent); ! } } *************** *** 240,246 **** NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; int cursel = pNMListView->iItem; ! CTagEntry ! * s = (CTagEntry ! *)m_qlist.GetItemData(cursel); if(s) theApp.GotoFileAndLine(s->lineno,s->filename); --- 222,226 ---- NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; int cursel = pNMListView->iItem; ! CTagEntry * s = (CTagEntry*)m_qlist.GetItemData(cursel); if(s) theApp.GotoFileAndLine(s->lineno,s->filename); *************** *** 257,263 **** if(csel>=0) { ! CTagEntry ! * s = (CTagEntry ! *)m_qlist.GetItemData(csel); if(s!=NULL) { --- 237,241 ---- if(csel>=0) { ! CTagEntry * s = (CTagEntry *)m_qlist.GetItemData(csel); if(s!=NULL) { Index: RegProfile.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/RegProfile.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** RegProfile.h 25 Nov 2003 15:05:56 -0000 1.5 --- RegProfile.h 7 Dec 2003 17:06:11 -0000 1.6 *************** *** 38,41 **** --- 38,42 ---- #define SEC_PREF _T("Preferences") #define SEC_DEF _T("Preferences\\Defaults") + #define SEC_DOCPOS _T("Preferences\\DocPos") // Registry keys for default editor prefs Index: resource.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/resource.h,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** resource.h 31 Jul 2003 08:57:48 -0000 1.17 --- resource.h 7 Dec 2003 17:06:11 -0000 1.18 *************** *** 419,422 **** --- 419,423 ---- #define ID_SEARCH_QUICKJUMP 33028 #define ID_TOOLS_STOPRECORDING 33030 + #define ID_TOOLS_PLAYRECORDING 33030 #define ID_CONFIGURE_CURRENTDOCUMENT_WORDWRAP 33035 #define ID_CONFIGURE_CURRENTDOCUMENT_VIEWENDOFLINE 33036 *************** *** 453,456 **** --- 454,459 ---- #define ID_TOOLS_DINGDONG 33071 #define ID_NEWGUY_WLKJLJLJ 33072 + #define ID_TOOLS_SAVEMACRO 33073 + #define ID_TOOLS_LOADMACRO 33074 #define ID_OUTPUT_CLEAR 57632 #define ID_OUTPUT_COPY 57634 *************** *** 468,472 **** #define _APS_3D_CONTROLS 1 #define _APS_NEXT_RESOURCE_VALUE 252 ! #define _APS_NEXT_COMMAND_VALUE 33073 #define _APS_NEXT_CONTROL_VALUE 1088 #define _APS_NEXT_SYMED_VALUE 105 --- 471,475 ---- #define _APS_3D_CONTROLS 1 #define _APS_NEXT_RESOURCE_VALUE 252 ! #define _APS_NEXT_COMMAND_VALUE 33075 #define _APS_NEXT_CONTROL_VALUE 1088 #define _APS_NEXT_SYMED_VALUE 105 Index: scintillaif.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/scintillaif.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** scintillaif.cpp 21 Nov 2003 13:53:00 -0000 1.9 --- scintillaif.cpp 7 Dec 2003 17:06:11 -0000 1.10 *************** *** 125,128 **** --- 125,141 ---- } + void CScintilla::PerformMacro(MacroHolder * macro) + { + MacroHolder * mymacro = macro; + while(mymacro) + { + if(mymacro->message == SCI_REPLACESEL) + SPerform(mymacro->message,mymacro->wParam,(LPARAM)mymacro->replacesel); + else + SPerform(mymacro->message,mymacro->wParam,mymacro->lParam); + mymacro = mymacro->next; + } + } + void CScintilla::HandleNotify(LPARAM lParam) { Index: scintillaif.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/scintillaif.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** scintillaif.h 17 Jul 2003 11:32:16 -0000 1.7 --- scintillaif.h 7 Dec 2003 17:06:11 -0000 1.8 *************** *** 13,16 **** --- 13,67 ---- typedef enum {efsVSNet, efsVSNetR, efsPlus, efsArrow} EFoldStyle; + struct MacroHolder + { + int message; // SCN_MACRORECORD + uptr_t wParam; // SCN_MACRORECORD + sptr_t lParam; // SCN_MACRORECORD + MacroHolder * next; + char replacesel[2]; + + MacroHolder() + { + message=0; + wParam=0; + lParam=0; + next=NULL; + } + + void DeleteNext() + { + if(next) + { + next->DeleteNext(); + delete next; + next = NULL; + } + } + + void ToString(CString &str) + { + CString retstr; + char temp[10]; + strcpy(temp,""); + sprintf(temp,"%d",message); + retstr+= temp; + retstr+= "µ"; + strcpy(temp,""); + sprintf(temp,"%d",(int)wParam); + retstr+= temp; + retstr+= "µ"; + strcpy(temp,""); + sprintf(temp,"%d",(int)lParam); + retstr+= temp; + if(message == SCI_REPLACESEL) + { + retstr+= "µ"; + strcpy(temp,replacesel); + retstr+= temp; + } + str = retstr; + } + }; + /** * CScintilla is a non-MFC Scintilla wrapper for C++, it still requires *************** *** 1495,1498 **** --- 1546,1550 ---- CharacterRange GetSelection(); + void PerformMacro(MacroHolder * macro); //-- //@} |