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

📄 coretooljavaw.cpp

📁 用bcg库编写的java IDE 源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// CoreToolJavaw.cpp : implementation file
//

#include "stdafx.h"
#include "VisualJava.h"
#include "CoreToolJavaw.h"
#include "ToolManager.h"
#include "WorkSpace.h"
#include "xmlsupport.h"
#include "JOptionsArgDlg.h"

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

#define CPropertyPage CSAPrefsSubDlg


//#define STRICT
#include <windows.h>
#include <shlobj.h>


INT CALLBACK BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lp,LPARAM pData) 
{
   TCHAR szDir[MAX_PATH];   
   switch(uMsg) 
   {
      case BFFM_INITIALIZED: 
      if(GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir))
      {
         // WParam is TRUE since you are passing a path.
         // It would be FALSE if you were passing a pidl.
         SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)szDir);
      }
      break;   
	  case BFFM_SELCHANGED: 
      // Set the status window to the currently selected path.
      if(SHGetPathFromIDList((LPITEMIDLIST) lp ,szDir))
         SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir);
      break;
   }return 0;
}




/////////////////////////////////////////////////////////////////////////////
// CCoreToolJavaw property page

static BOOL m_bInit = TRUE;
#define PANEL_DIR_LIST_RECT         CRect(0,25,210,195)
#define PANEL_DIR_LISTHEADER_RECT   CRect(0,0,210,25)
#define DIR_PANEL_SIZE              CSize(220,220)

#define ID_HEADER_SRC   0x2
#define ID_HEADER_ARG   0x3

  LPCTSTR CCoreToolJavaw::m_pOptions[] =
  {
    _T("-client"),
	_T("-server"),
	_T("-classpath"),
	_T("-D"),
	_T("-enableassertions"),
	_T("-disableassertions"),
	_T("-enablesystemassertions"),
	_T("-disablesystemassertions"),
	_T("-jar"),
	_T("-verbose"),
	_T("-verbose:class"),
	_T("-verbose:gc"),
	_T("-verbose:jni"),
	_T("-version"),
	_T("-showversion"),
	_T("-help"),
	_T("-X"),
	_T("-Xmixed"),
	_T("-Xint"),
	_T("-Xdebug"),
	_T("-Xbootclasspath"),
	_T("-Xbootclasspath/a"),
	_T("-Xbootclasspath/p"),
	_T("-Xcheck:jni"),
	_T("-Xconcgc"),
	_T("-Xfuture"),
	_T("-Xnoclassgc"),
	_T("-Xincgc"),
	_T("-Xloggc"),
	_T("-Xms"),
	_T("-Xmx"),
	_T("-Xprof"),
	_T("-Xrunhprof"),
	_T("-Xrunjdwp"),
	_T("-Xrs"),
	NULL
  };

IMPLEMENT_DYNCREATE(CCoreToolJavaw, CPropertyPage)

CCoreToolJavaw::CCoreToolJavaw() : CPropertyPage(CCoreToolJavaw::IDD)
{
	//{{AFX_DATA_INIT(CCoreToolJavaw)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

CCoreToolJavaw::~CCoreToolJavaw()
{
}

void CCoreToolJavaw::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCoreToolJavaw)
	//}}AFX_DATA_MAP
}
//	DDX_Control(pDX, IDC_JAVAW_OPTION_LIST, m_wndOpts);


BEGIN_MESSAGE_MAP(CCoreToolJavaw, CPropertyPage)
	//{{AFX_MSG_MAP(CCoreToolJavaw)
	ON_BN_CLICKED(IDC_CHECK_APPLY_TO_ALL_CLASSFILE, OnCheckApplyToAllClassfile)
	//}}AFX_MSG_MAP

	ON_HD_ITEMCLICKED(IDC_STATIC_HEADER_CLASSFILE,OnHeaderItemClicked)
	ON_BL_ITEMBROWSE(IDC_CLASSFILE_LIST,OnBrowseClsList)

	ON_LBN_SELCHANGE(IDC_CLASSFILE_LIST,OnSetCurClsSel)
	ON_LBN_SETCURSEL(IDC_CLASSFILE_LIST,OnSetCurClsSel)

    ON_LBN_ITEMADDED(IDC_CLASSFILE_LIST,OnAddItemClsFileList)
	ON_LBN_ITEMDEL(IDC_CLASSFILE_LIST,OnDelItemClsFileList)

    //relational listbox
	ON_RL_CHECKCHANGED(IDC_JAVAW_OPTION_LIST,OnOptionCheckChanged)
	ON_RL_PULLDOWN(IDC_JAVAW_OPTION_LIST,OnOptionPullDown)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCoreToolJavaw message handlers

BOOL CCoreToolJavaw::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	m_imglist.Create(IDB_HEADERCTRL,16,2,RGB(255,0,255));

    m_wndOptions.SubclassDlgItem(IDC_JAVAW_OPTION_LIST,this);


	//add options and thier associated data windows

	m_wndOptions.AddString(m_pOptions[0]);
	m_wndOptions.AddString(m_pOptions[1]);

	m_wndOptions.AddRelationalString(m_pOptions[2]);
	
	m_wndOptions.AddRelationalString(m_pOptions[3]);

	m_wndOptions.AddRelationalString(m_pOptions[4]);

	m_wndOptions.AddRelationalString(m_pOptions[5]);

	m_wndOptions.AddString(m_pOptions[6]);
	m_wndOptions.AddString(m_pOptions[7]);
	m_wndOptions.AddString(m_pOptions[8]);

	m_wndOptions.AddString(m_pOptions[9]);
	m_wndOptions.AddString(m_pOptions[10]);
	m_wndOptions.AddString(m_pOptions[11]);

	m_wndOptions.AddString(m_pOptions[12]);
	m_wndOptions.AddString(m_pOptions[13]);
	m_wndOptions.AddString(m_pOptions[14]);
	m_wndOptions.AddString(m_pOptions[15]);
	m_wndOptions.AddString(m_pOptions[16]);
	m_wndOptions.AddString(m_pOptions[17]);
	m_wndOptions.AddString(m_pOptions[18]);
	m_wndOptions.AddString(m_pOptions[19]);

	m_wndOptions.AddRelationalString(m_pOptions[20]);
	m_wndOptions.AddRelationalString(m_pOptions[21]);
	m_wndOptions.AddRelationalString(m_pOptions[22]);
	m_wndOptions.AddString(m_pOptions[23]);
	m_wndOptions.AddString(m_pOptions[24]);
	m_wndOptions.AddString(m_pOptions[25]);
    m_wndOptions.AddString(m_pOptions[26]);
    m_wndOptions.AddString(m_pOptions[27]);
	
	m_wndOptions.AddRelationalString(m_pOptions[28]);

	m_wndOptions.AddRelationalString(m_pOptions[29]);
	m_wndOptions.AddRelationalString(m_pOptions[30]);
	m_wndOptions.AddString(m_pOptions[31]);

	m_wndOptions.AddRelationalString(m_pOptions[32]);

	m_wndOptions.AddString(m_pOptions[33]);
	m_wndOptions.AddString(m_pOptions[34]);


	CRect rt;
	GetClientRect(&rt);
    
	//classfile static
	{
	  CRect rc(rt.left+6,rt.top+8,rt.left+290,rt.bottom-10);
      rc.InflateRect(2,4,4,4);
      GetDlgItem(IDC_STATIC_CLASSFILE)->MoveWindow(&rc);
	}
    //classfile list
	{
	  m_wndClassFileList.SubclassDlgItem(IDC_CLASSFILE_LIST,this);
	  CRect rc(rt.left+8,rt.top+43,rt.left+290,rt.bottom-85);
      m_wndClassFileList.MoveWindow(&rc);
	}

	//display arg edit
	{
	  CRect rc(rt.left+8,rt.bottom-85,rt.left+80,rt.bottom-65);
	  rc.OffsetRect(0,8);
      GetDlgItem(IDC_STATIC_ARG_EDIT)->MoveWindow(&rc);

	  CRect rc1(rt.left+62,rt.bottom -85,rt.left+270,rt.bottom-65);
	  rc1.OffsetRect(0,8);
	  GetDlgItem(IDC_EDIT_ARG)->MoveWindow(&rc1);
	}

	//option edit
	{
	  CRect rc(rt.left+8,rt.bottom-60,rt.left+80,rt.bottom-40);
	  rc.OffsetRect(0,8);
      GetDlgItem(IDC_STATIC_EDIT_OPT)->MoveWindow(&rc);

	  CRect rc1(rt.left+62,rt.bottom -60,rt.left+290,rt.bottom-40);
	  rc1.OffsetRect(0,8);
	  GetDlgItem(IDC_OPTION_EDIT)->MoveWindow(&rc1);
	}

	//prompt
	{
	  CRect rc(rt.left+8,rt.bottom-30,rt.left+120,rt.bottom-10);
      GetDlgItem(IDC_CHECK_PROMPT_4_ARG)->MoveWindow(&rc);
	}

	//browse
	{
	  CRect rc(rt.left+271,rt.bottom -85,rt.left+290,rt.bottom-65);
	  rc.OffsetRect(0,8);
      GetDlgItem(IDC_ARG_BROWSE_BUTTON)->MoveWindow(&rc);
	}

	//classfile header
	{
       CRect rc(rt.left+8,rt.top+15,rt.left+290,rt.top+40);
       m_wndClassFileHeader.SubclassDlgItem(IDC_STATIC_HEADER_CLASSFILE,this);
       m_wndClassFileHeader.m_pMsgWnd = this;

	   m_wndClassFileHeader.MoveWindow(&rc);
	   {
         m_wndClassFileHeader.SetImgList(&m_imglist);

		 m_wndClassFileHeader.AddItem(0,25,16,"New");
		 m_wndClassFileHeader.AddItem(1,25,16,"Delete");
		 m_wndClassFileHeader.AddItem(2,25,16,"Move up");
		 m_wndClassFileHeader.AddItem(3,25,16,"Move down");
	   }
	}

	//options static
	{
	  CRect rc(rt.left+305,rt.top+8,rt.right-5,rt.bottom-10);
      rc.InflateRect(4,4,4,4);
      GetDlgItem(IDC_STATIC_CLASSFILE_OPTION)->MoveWindow(&rc);
	}

	//options list
	{
	  CRect rc(rt.left+305,rt.top+20,rt.right-5,rt.bottom-30);
      m_wndOptions.MoveWindow(&rc);	
	}
    //apply check
	{
	  CRect rc(rt.left+305,rt.bottom-25,rt.right-10,rt.bottom-10);
	  GetDlgItem(IDC_CHECK_APPLY_TO_ALL_CLASSFILE)->MoveWindow(&rc);
	}


	//load settings
	if(CVisualJavaApp::m_pCurWorkSpace != NULL &&
		CVisualJavaApp::m_pCurWorkSpace->GetActiveProject() != NULL)
	{
       //CVisualJavaApp::m_pCurWorkSpace->LoadJavawsetting(this);
	   XMLSerialize(0);
	   if(m_wndClassFileList.GetCount()==0)
	   {
	     for(int i=0; i<m_wndOptions.GetCount(); i++)
		     m_wndOptions.Enable(i,FALSE);
	   }
	}
	else
	{
	   m_wndClassFileList.EnableWindow(FALSE);
	   m_wndClassFileHeader.EnableWindow(FALSE);


       GetDlgItem(IDC_CHECK_APPLY_TO_ALL_CLASSFILE)->EnableWindow(FALSE);
       GetDlgItem(IDC_EDIT_ARG)->EnableWindow(FALSE);
	   GetDlgItem(IDC_OPTION_EDIT)->EnableWindow(FALSE);
	   GetDlgItem(IDC_CHECK_PROMPT_4_ARG)->EnableWindow(FALSE);
	   GetDlgItem(IDC_ARG_BROWSE_BUTTON)->EnableWindow(FALSE);

	   for(int i=0; i<m_wndOptions.GetCount(); i++)
		   m_wndOptions.Enable(i,FALSE);
	}
	return TRUE;
}

void CCoreToolJavaw::OnHeaderItemClicked()
{
#define ACTION_ADDITEM   0
#define ACTION_DELETE    1
#define ACTION_MOVEUP    2
#define ACTION_MOVEDOWN  3


  switch(m_wndClassFileHeader.GetClicked())
  {
	 case ACTION_ADDITEM:
		 {
          m_wndClassFileList.EditNew();
          break;
		 }
	 case ACTION_DELETE:
		 {
          m_wndClassFileList.DeleteSelected();
          break;
		 }
	 case ACTION_MOVEUP:
		 {
		  if(m_wndClassFileList.GetCurSel() != LB_ERR)
          m_wndClassFileList.MoveItemUp(m_wndClassFileList.GetCurSel());
		  break;
		 }

⌨️ 快捷键说明

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