⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 visualjavaview.cpp

📁 用bcg库编写的java IDE 源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
  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 + -