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

📄 workspcoptionpage.cpp

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

#include "stdafx.h"
#include "VisualJava.h"
#include "WorkSpcOptionPage.h"
#include "registry.h"

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

#define CPropertyPage CSAPrefsSubDlg

/////////////////////////////////////////////////////////////////////////////
// CWorkSpcOptionPage property page


static LPCTSTR m_szpDockingViews [] =
{
  _T("Output"),
  _T("Watch"),
  _T("Variables"),
  _T("Registers"),
  _T("Memory"),
  _T("Call Stack"),
  _T("Disassembly"),
  _T("Workspace"),
  NULL
}


;
IMPLEMENT_DYNCREATE(CWorkSpcOptionPage, CPropertyPage)

CWorkSpcOptionPage::CWorkSpcOptionPage() : CSAPrefsSubDlg(CWorkSpcOptionPage::IDD)
{
	//{{AFX_DATA_INIT(CWorkSpcOptionPage)
	m_bAutoSortWindowMenu = FALSE;
	m_bDisplayClockOnStatus = FALSE;
	m_bDisplayStatusbar = FALSE;
	m_nRecentFileCount = 0;
	m_bReloadDocOnOpenWorkspc = FALSE;
	m_bShowRecentlyUsed = FALSE;
	m_bSRCmenus = FALSE;
	m_nRecentWindowCount = 0;
	m_bRecentWorkSpcCount = 0;
	//}}AFX_DATA_INIT
	for(int i=0; i<8; i++)
		m_nCheckState[i] =0;
}

CWorkSpcOptionPage::~CWorkSpcOptionPage()
{
}

void CWorkSpcOptionPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CWorkSpcOptionPage)
	DDX_Check(pDX, IDC_AUTO_SORT_MENU_CHECK, m_bAutoSortWindowMenu);
	DDX_Check(pDX, IDC_DISPLAY_CLOCK_ON_STATUS_BAR_CHECK, m_bDisplayClockOnStatus);
	DDX_Check(pDX, IDC_DISPLAY_STATUS_BAR_CHECK, m_bDisplayStatusbar);
	DDX_Text(pDX, IDC_FILE_COUNT_EDIT, m_nRecentFileCount);
	DDX_Check(pDX, IDC_RELOAD_DOCS_ON_WORKSPC_OPENED_CHECK, m_bReloadDocOnOpenWorkspc);
	DDX_Check(pDX, IDC_SHOW_RECENT_ITEMS_CHECK, m_bShowRecentlyUsed);
	DDX_Check(pDX, IDC_USE_SCREEN_TYPE_MENUS_CHECK, m_bSRCmenus);
	DDX_Text(pDX, IDC_WINDOWS_COUNT_EDIT, m_nRecentWindowCount);
	DDX_Text(pDX, IDC_WORKSPACE_COUNT_EDIT, m_bRecentWorkSpcCount);
	//}}AFX_DATA_MAP
}


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

/////////////////////////////////////////////////////////////////////////////
// CWorkSpcOptionPage message handlers

BOOL CWorkSpcOptionPage::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	LoadSettings();
	UpdateData(FALSE);

    m_wndDockingViews.SubclassDlgItem(IDC_DOCKING_VIEWS_LIST,this);
	for(int i=0;m_szpDockingViews[i] != NULL;i++)
	{
		m_wndDockingViews.AddString(m_szpDockingViews[i]);
		m_wndDockingViews.SetCheck(i,m_nCheckState[i]);
	}
	return TRUE;
}

void CWorkSpcOptionPage::LoadSettings()
{
  CReg reg;
  LPCTSTR lszpWorkSpaceOpts = _T("Options\\Workspace");
  LPCTSTR lszpBase = REGISTRY_ROOT;
  if(reg.Create(HKEY_CURRENT_USER,lszpBase,KEY_READ))
  {
     CReg edtReg;
     if(edtReg.Create(reg.hKey,lszpWorkSpaceOpts,KEY_READ))
	 {
        edtReg.LoadNumber(_T ("Display status bar"),(DWORD*)&m_bDisplayStatusbar);
        edtReg.LoadNumber(_T ("Display clock on status bar"),(DWORD*)&m_bDisplayClockOnStatus);
        edtReg.LoadNumber(_T ("Reload documents when opening workspace"),(DWORD*)&m_bReloadDocOnOpenWorkspc);
        edtReg.LoadNumber(_T ("Automatically sort window menu"),(DWORD*)&m_bAutoSortWindowMenu);
        edtReg.LoadNumber(_T ("Use screen reader compatible menus"),(DWORD*)&m_bSRCmenus);
        edtReg.LoadNumber(_T ("Show recently used items on submenus"),(DWORD*)&m_bShowRecentlyUsed);
        edtReg.LoadNumber(_T ("window menu cantains"),(DWORD*)&m_nRecentWindowCount);
        edtReg.LoadNumber(_T ("recent file list contains"),(DWORD*)&m_nRecentFileCount);
        edtReg.LoadNumber(_T ("recent workspace list contains"),(DWORD*)&m_bRecentWorkSpcCount);
		
		CReg wkReg;
        if(wkReg.Create(edtReg.hKey,_T("\\Docking views"),KEY_READ))
		{
           for(int i=0; i<8; i++)
            edtReg.LoadNumber(m_szpDockingViews[i],(DWORD*)&m_nCheckState[i]);
		   wkReg.Close();
		}		
		edtReg.Close();
	 }
	 reg.Close();
  }
}



void CWorkSpcOptionPage::SaveSettings()
{
  CReg reg;
  LPCTSTR lszpWorkSpaceOpts = _T("Options\\Workspace");
  LPCTSTR lszpBase = REGISTRY_ROOT;
  if(reg.Create(HKEY_CURRENT_USER,lszpBase,KEY_WRITE))
  {
     CReg edtReg;
     if(edtReg.Create(reg.hKey,lszpWorkSpaceOpts,KEY_WRITE))
	 {
        VERIFY(edtReg.SaveNumber(_T ("Display status bar"),m_bDisplayStatusbar));
        VERIFY(edtReg.SaveNumber(_T ("Display clock on status bar"),m_bDisplayClockOnStatus));
        VERIFY(edtReg.SaveNumber(_T ("Reload documents when opening workspace"),m_bReloadDocOnOpenWorkspc));
        VERIFY(edtReg.SaveNumber(_T ("Automatically sort window menu"),m_bAutoSortWindowMenu));
        VERIFY(edtReg.SaveNumber(_T ("Use screen reader compatible menus"),m_bSRCmenus));
        VERIFY(edtReg.SaveNumber(_T ("Show recently used items on submenus"),m_bShowRecentlyUsed));
        VERIFY(edtReg.SaveNumber(_T ("window menu cantains"),m_nRecentWindowCount));
        VERIFY(edtReg.SaveNumber(_T ("recent file list contains"),m_nRecentFileCount));
        VERIFY(edtReg.SaveNumber(_T ("recent workspace list contains"),m_bRecentWorkSpcCount));
		CReg wkReg;
        if(wkReg.Create(edtReg.hKey,_T("\\Docking views"),KEY_WRITE))
		{
           for(int i=0; i<8; i++)
             VERIFY(edtReg.SaveNumber(m_szpDockingViews[i],m_nCheckState[i]));
		   wkReg.Close();
		}
		edtReg.Close();
	 }
	 reg.Close();
  }
}

void CWorkSpcOptionPage::OnOK() 
{
  for(int i=0; i<8; i++)
    m_nCheckState[i] = m_wndDockingViews.GetCheck(i);

  UpdateData();
  SaveSettings();		
  CPropertyPage::OnOK();
}

⌨️ 快捷键说明

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