📄 taboptionpage.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 + -