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

📄 taboptionpage.cpp

📁 用bcg库编写的java IDE 源码
💻 CPP
字号:
// TabOptionPage.cpp : implementation file
//

#include "stdafx.h"
#include "VisualJava.h"
#include "TabOptionPage.h"
#include "registry.h"
#include "VisualJavaDoc.h"
#include "VisualJavaView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif




#define CPropertyPage CSAPrefsSubDlg
/////////////////////////////////////////////////////////////////////////////
// CTabOptionPage property page
const UINT wm_msgTabUpdate    = ::RegisterWindowMessage(_T("40CBF0C8-6CFE-4b02-A465-7280C244BFD0"));

IMPLEMENT_DYNCREATE(CTabOptionPage, CPropertyPage)

CTabOptionPage::CTabOptionPage() : CSAPrefsSubDlg(CTabOptionPage::IDD)
{
	//{{AFX_DATA_INIT(CTabOptionPage)
	m_szpFileTypes = _T("");
	m_bIndentClosingBraces = FALSE;
	m_bIndentOpenBraces = FALSE;
	m_nIndentSize = 0;
	m_nNumberOfPrevLines = 0;
	m_nTabSize = 0;
	//}}AFX_DATA_INIT
}

CTabOptionPage::~CTabOptionPage()
{
}

void CTabOptionPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTabOptionPage)
	DDX_CBString(pDX, IDC_FILE_TYPES_COMBO, m_szpFileTypes);
	DDX_Check(pDX, IDC_INDENT_CLOSING_BRACE_CHECK, m_bIndentClosingBraces);
	DDX_Check(pDX, IDC_INDENT_OPEN_BRACE_CHECK, m_bIndentOpenBraces);
	DDX_Text(pDX, IDC_INDENT_SIZE_EDIT, m_nIndentSize);
	DDX_Text(pDX, IDC_NUM_PREV_LINES, m_nNumberOfPrevLines);
	DDX_Text(pDX, IDC_TAB_SIZE_EDIT, m_nTabSize);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTabOptionPage, CPropertyPage)
	//{{AFX_MSG_MAP(CTabOptionPage)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTabOptionPage message handlers

void CTabOptionPage::LoadSettings()
{
  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 tabReg;
       if(tabReg.Create(optionsReg.hKey,"\\Tabs",KEY_READ))
	   {
         tabReg.LoadNumber(_T ("File type"),(DWORD*)&m_nFileType);
         tabReg.LoadNumber(_T ("Tab size"),(DWORD*)&m_nTabSize);
         tabReg.LoadNumber(_T ("Insert spaces"),(DWORD*)&m_nInsertSpaces);
         tabReg.LoadNumber(_T ("Indent size"),(DWORD*)&m_nIndentSize);
         tabReg.LoadNumber(_T ("Keep tabs"),(DWORD*)&m_nKeepTabs);
         tabReg.LoadString(_T ("Auto Indent"),m_strAutoIndent);
         tabReg.LoadNumber(_T ("Indent open brace"),(DWORD*)&m_bIndentOpenBraces);
         tabReg.LoadNumber(_T ("Indent closing brace"),(DWORD*)&m_bIndentClosingBraces);
         tabReg.LoadNumber(_T ("Previous lines used for context"),(DWORD*)&m_nNumberOfPrevLines);
		 tabReg.Close();
	   }
	   optionsReg.Close();
	 }
	 reg.Close();
  }
}

void CTabOptionPage::SaveSettings()
{
  CReg reg;
  LPCTSTR lszpBase = REGISTRY_ROOT;
  if(reg.Create(HKEY_CURRENT_USER,lszpBase,KEY_WRITE))
  {
	 CReg optionsReg;
     if(optionsReg.Create(reg.hKey,"Options",KEY_WRITE))
	 {
       CReg tabReg;
       if(tabReg.Create(optionsReg.hKey,"\\Tabs",KEY_WRITE))
	   {	 
         VERIFY(tabReg.SaveNumber(_T ("File type"),m_nFileType));
         VERIFY(tabReg.SaveNumber(_T ("Tab size"),m_nTabSize));
         VERIFY(tabReg.SaveNumber(_T ("Insert spaces"),m_nInsertSpaces));
         VERIFY(tabReg.SaveNumber(_T ("Indent size"),m_nIndentSize));
         VERIFY(tabReg.SaveNumber(_T ("Keep tabs"),m_nKeepTabs));
         VERIFY(tabReg.SaveString(_T ("Auto Indent"),m_strAutoIndent));
         VERIFY(tabReg.SaveNumber(_T ("Indent open brace"),m_bIndentOpenBraces));
         VERIFY(tabReg.SaveNumber(_T ("Indent closing brace"),m_bIndentClosingBraces));
         VERIFY(tabReg.SaveNumber(_T ("Previous lines used for context"),m_nNumberOfPrevLines));
		 tabReg.Close();
	   }
	   optionsReg.Close();
	 }
	 reg.Close();
  }
}

BOOL CTabOptionPage::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
    m_nFileType = 0;
	LoadSettings();
	UpdateData(FALSE);	
	return TRUE;
}

void CTabOptionPage::OnOK() 
{
  UpdateData();
  SaveSettings();	
  POSITION nPos = theApp.GetFirstDocTemplatePosition();
  CDocTemplate* pTmp = theApp.GetNextDocTemplate(nPos);

  for(POSITION nPos1 = pTmp->GetFirstDocPosition();nPos1 != NULL;)
  {
    CVisualJavaDoc* pDoc = (CVisualJavaDoc*)pTmp->GetNextDoc(nPos1);
	CVisualJavaView* pView =  (CVisualJavaView*)pDoc->getBuffer()->getHeadView();
	if(pView != NULL)
        pView->OnTabUpdate();
  }
  CPropertyPage::OnOK();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -