📄 visualjavaview.cpp
字号:
struct forebackColors
{
DWORD m_dwForeGrnd;
DWORD m_dwBackGrnd;
forebackColors()
{
m_dwForeGrnd = 0;
m_dwBackGrnd = 0;
}
};
CReg reg;
LPCTSTR lszpBase = REGISTRY_ROOT;
if(reg.Create(HKEY_CURRENT_USER,lszpBase,KEY_READ))
{
CReg optionsReg;
if(optionsReg.Create(reg.hKey,_T("Options"),KEY_READ))
{
CReg formatReg;
if(formatReg.Create(optionsReg.hKey,_T("\\Format"),KEY_READ))
{
CReg rgWindowTextSettings;
if(rgWindowTextSettings.Create(formatReg.hKey,_T("\\Window Text Settings"),KEY_READ))
{
CReg rgWindow;
if(rgWindow.Create(rgWindowTextSettings.hKey,CString("\\")+(*(CFormatOptionPage::m_szpWindows[1][0])),KEY_READ))
{
//rgWindow.LoadString(_T ("font"),m_lszpCurFont);
rgWindow.LoadNumber(_T ("font size"),(DWORD*)&m_nCurFontSize);
LPCTSTR* lszpBase = CFormatOptionPage::m_szpWindows[1][1];
int I = 0;
for(lszpBase; ((lszpBase != NULL)&&(*lszpBase!=NULL));lszpBase++)
{
forebackColors cfColors;
rgWindow.LoadBinary(*lszpBase,(LPBYTE)&cfColors,sizeof(cfColors));
m_nColors[I][0] = cfColors.m_dwForeGrnd;
m_nColors[I][1] = cfColors.m_dwBackGrnd;
I++;
}
rgWindow.Close();
}
rgWindowTextSettings.Close();
}
formatReg.Close();
}
optionsReg.Close();
}
reg.Close();
}
RedrawWindow();
}
void CVisualJavaView::InitSettings()
{
struct forebackColors
{
DWORD m_dwForeGrnd;
DWORD m_dwBackGrnd;
forebackColors()
{
m_dwForeGrnd = 0;
m_dwBackGrnd = 0;
}
};
CReg reg;
LPCTSTR lszpBase = REGISTRY_ROOT;
if(reg.Create(HKEY_CURRENT_USER,lszpBase,KEY_READ))
{
CReg optionsReg;
if(optionsReg.Create(reg.hKey,_T("Options"),KEY_READ))
{
CReg formatReg;
if(formatReg.Create(optionsReg.hKey,_T("\\Format"),KEY_READ))
{
CReg rgWindowTextSettings;
if(rgWindowTextSettings.Create(formatReg.hKey,_T("\\Window Text Settings"),KEY_READ))
{
CReg rgWindow;
if(rgWindow.Create(rgWindowTextSettings.hKey,CString("\\")+(*(CFormatOptionPage::m_szpWindows[1][0])),KEY_READ))
{
//rgWindow.LoadString(_T ("font"),m_lszpCurFont);
rgWindow.LoadNumber(_T ("font size"),(DWORD*)&m_nCurFontSize);
LPCTSTR* lszpBase = CFormatOptionPage::m_szpWindows[1][1];
int I = 0;
for(lszpBase; ((lszpBase != NULL)&&(*lszpBase!=NULL));lszpBase++)
{
forebackColors cfColors;
rgWindow.LoadBinary(*lszpBase,(LPBYTE)&cfColors,sizeof(cfColors));
m_nColors[I][0] = cfColors.m_dwForeGrnd;
m_nColors[I][1] = cfColors.m_dwBackGrnd;
I++;
}
rgWindow.Close();
}
rgWindowTextSettings.Close();
}
formatReg.Close();
}
optionsReg.Close();
}
reg.Close();
}
{
CReg reg;
LPCTSTR lszpBase = REGISTRY_ROOT;
if(reg.Create(HKEY_CURRENT_USER,lszpBase,KEY_READ))
{
CReg optionsReg;
if(optionsReg.Create(reg.hKey,"Options",KEY_READ))
{
CReg edtReg;
if(edtReg.Create(optionsReg.hKey,"\\Editor",KEY_READ))
{
BOOL m_bVertScrllBar = TRUE;
BOOL m_bHorizScrllBar = TRUE;
edtReg.LoadNumber(_T("Vertical Scroll bar"),(DWORD*)&m_bVertScrllBar);
edtReg.LoadNumber(_T("Horizontal Scroll bar"),(DWORD*)&m_bHorizScrllBar);
if(!m_bVertScrllBar)
ModifyStyle(WS_VSCROLL,0);
if(!m_bHorizScrllBar)
ModifyStyle(WS_HSCROLL,0);
//edtReg.LoadNumber(_T("Auto window recycling"),(DWORD*)&m_bAutoWinRecycling);
edtReg.LoadNumber(_T("Selection Margin"),(DWORD*)&m_bSelMargin);
edtReg.LoadNumber(_T("Drag and drop text editing"),(DWORD*)&m_bDisableDragAndDrop);
SetDisableDragAndDrop(!m_bDisableDragAndDrop);
//edtReg.LoadNumber(_T("Save before running tools"),(DWORD*)&m_bSaveB4RunningTools);
//edtReg.LoadNumber(_T("Prompt before saving files"),(DWORD*)&m_bPrmtB4SavingFiles);
//edtReg.LoadNumber(_T("Auto reload of externally modified files"),(DWORD*)&m_bAutoReloadExtModFiles);
//edtReg.LoadNumber(_T("Auto list members"),(DWORD*)&m_bAutoListMembers);
//edtReg.LoadNumber(_T("Code comments"),(DWORD*)&m_bCodeComments);
//edtReg.LoadNumber(_T("Auto type info"),(DWORD*)&m_bAutoTypeInfo);
//edtReg.LoadNumber(_T("Auto parameter info"),(DWORD*)&m_bAutoParamInfo);
edtReg.Close();
}
optionsReg.Close();
}
reg.Close();
}
}
}
void CVisualJavaView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
CJavaTextBuffer* pBuffer = GetDocument()->getBuffer();
CCrystalEditView::OnChar(nChar,nRepCnt,nFlags);
if(m_bDidInsert)
{
if(char(nChar) == '.' || char(nChar) == '(')
{
::Sleep(500);//wait for insertion to finish:temp fix for lack of mutex
CString strFile = pBuffer->getDocument()->GetPathName();
strFile = strFile.Right(strFile.GetLength()-strFile.Find(':',0)-1);
//TRACE(strFile+"\n");
//strFile.TrimRight(".java");strFile.TrimRight(".jav");//u can add more trims
CJavaDeclManager* pDeclMgr = CVisualJavaApp::findDeclMgr(strFile);
if(pDeclMgr)
{
pDeclMgr->SuspendThread();
//TRACE("DECL_SUCCEED\n");
pDeclMgr->OnInfoRequestChar(m_rcInsert.left,m_rcInsert.top,nChar,this);
pDeclMgr->ResumeThread();
}
}
}
m_bDidInsert = FALSE;
}
#include "worksbar.h"
void CVisualJavaView::OnLButtonDown(UINT nFlags, CPoint point)
{
CBGFEditView::OnLButtonDown(nFlags, point);
/**
CPoint ptText = ClientToText(point);
__DeclPoint ptDecl(ptText.x,ptText.y);
__CBaseDecl* pDecl =
GetDocument()->getBuffer()->getDeclMgr()->getParentBlock(ptDecl);
while(pDecl)
{
if(pDecl->getKind() == METHOD_DECL)
{
int sel = CWorkSpaceBar::m_pwndWizbarClass->GetCurSel();
CJavaClassDecl* pClass = (CJavaClassDecl*)
CWorkSpaceBar::m_pwndWizbarClass->GetItemData(sel);
if(pClass == pDecl->getParent())
CWorkSpaceBar::SelectMethod(pDecl);
else
CWorkSpaceBar::SelectClass(pDecl->getParent());
break;
}
else
if(pDecl->getKind() == CLASS_DECL || pDecl->getKind() == INTERFACE_DECL)
{
//CWorkSpaceBar::m_pwndWizbarMethod->SetState(BOLD_INACTIVE);
CWorkSpaceBar::SelectClass(pDecl);
break;
}
pDecl = pDecl->getParent();
}**/
}
CPoint CVisualJavaView::TextToClientExt(const CPoint & point)
{
return TextToClient(point);
}
CPoint CVisualJavaView::ClientToTextExt(const CPoint & point)
{
return ClientToText(point);
}
int CVisualJavaView::GetScreenLinesExt()
{
return GetScreenLines();
}
int CVisualJavaView::CharPosToPoint( int nLineIndex, int nCharPos, CPoint &charPoint )
{
return CCrystalTextView::CharPosToPoint(nLineIndex,nCharPos,charPoint);
}
void CVisualJavaView::MoveLeft (BOOL bSelect)
{
CCrystalTextView::MoveLeft(bSelect);
}
void CVisualJavaView::MoveRight (BOOL bSelect)
{
CCrystalTextView::MoveRight(bSelect);
}
void CVisualJavaView::MoveUp (BOOL bSelect)
{
CCrystalTextView::MoveUp(bSelect);
}
void CVisualJavaView::MoveDown (BOOL bSelect)
{
CCrystalTextView::MoveDown(bSelect);
}
void CVisualJavaView::MoveHome (BOOL bSelect)
{
CCrystalTextView::MoveHome(bSelect);
}
void CVisualJavaView::MoveEnd (BOOL bSelect)
{
CCrystalTextView::MoveEnd(bSelect);
}
void CVisualJavaView::OnEditTab()
{
CCrystalEditView::OnEditTab();
}
void CVisualJavaView::ScrollToLineExt(int nNewTopLine,BOOL bNoSmoothScroll
/*= FALSE*/,BOOL bTrackScrollBar/*= TRUE*/)
{
ScrollToLine(nNewTopLine,bNoSmoothScroll,bTrackScrollBar);
}
void CVisualJavaView::SetSelectionExt(const CPoint & ptStart,const CPoint & ptEnd)
{
SetSelection(ptStart,ptEnd);
}
void CVisualJavaView::OnKillFocus(CWnd* pNewWnd)
{
CBGFEditView::OnKillFocus(pNewWnd);
}
BOOL CVisualJavaView::InsertText(LPCTSTR pszText)
{
CJavaTextBuffer* pTextBuffer = GetDocument()->getBuffer();
if(!QueryEditable())
return FALSE;
if(pTextBuffer == NULL)
return FALSE;
pTextBuffer->BeginUndoGroup();
CPoint ptCursorPos;
if(IsSelection ())
{
CPoint ptSelStart, ptSelEnd;
GetSelection (ptSelStart, ptSelEnd);
ptCursorPos = ptSelStart;
pTextBuffer->DeleteTextExt(this,ptSelStart.y,ptSelStart.x,ptSelEnd.y,
ptSelEnd.x,CE_ACTION_PASTE);
}
else
ptCursorPos = GetCursorPos();
ASSERT_VALIDTEXTPOS (ptCursorPos);
int x, y;
pTextBuffer->InsertTextExt(this,ptCursorPos.y,ptCursorPos.x,pszText,
y,x,CE_ACTION_PASTE);
ptCursorPos.x = x;
ptCursorPos.y = y;
ASSERT_VALIDTEXTPOS (ptCursorPos);
SetAnchor (ptCursorPos);
SetSelection (ptCursorPos, ptCursorPos);
SetCursorPos (ptCursorPos);
EnsureVisible (ptCursorPos);
pTextBuffer->FlushUndoGroup (this);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -