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

📄 filewindow.h

📁 Crimson编辑器的英文版,完成从韩文版变成英文版的移植,并且附带可执行文件和注册表文件,无需原先的安装包,是改写编辑器的最理想选择.
💻 H
字号:
#if !defined(AFX_FILEWINDOW_H__EF837327_15B9_11D5_A6F1_0050CE184C9B__INCLUDED_)
#define AFX_FILEWINDOW_H__EF837327_15B9_11D5_A6F1_0050CE184C9B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <fstream.h>
#include "SizeCBar.h"


#define FILE_WINDOW_DIRECTORY		0x00
#define FILE_WINDOW_REMOTE			0x02
#define FILE_WINDOW_PROJECT			0x01

#define PROJECT_ITEM_PROJECT		0x00
#define PROJECT_ITEM_CATEGORY		0x01
#define PROJECT_ITEM_LOCAL_FILE		0x02
#define PROJECT_ITEM_REMOTE_FILE	0x03


typedef void (* CALLBACK_SELCHANGE)(INT);

typedef struct _PROJECTITEMINFO {
	INT nItemType;
	INT nFtpAccount;
	CString szPathName;
	LONG nFileSize;
} PROJECTITEMINFO, * LPPROJECTITEMINFO;


class CFileWindow : public CSizingControlBar
{
public: // Construction
	CFileWindow();
	virtual ~CFileWindow();

protected: // Resources & Controls
	TBBUTTON m_tbiToolbarDirectory[10];
	TBBUTTON m_tbiToolbarProject[10];
	TBBUTTON m_tbiWinButtons[10];

	CImageList m_imgToolbarDirectory;
	CImageList m_imgToolbarProject;
	CImageList m_imgWinButtons;

	CToolBarCtrl m_btnToolbarDirectory;
	CToolBarCtrl m_btnToolbarProject;
	CToolBarCtrl m_btnWinButtons;

	CImageList m_imgCategoryTab;
	CImageList m_imgDirectoryTree;
	CImageList m_imgProjectTree;

	CFont m_fontControl;
	CTabCtrl m_tabCategory;

	CComboBox m_cmbLocalDrive;
	CTreeCtrl m_treDirectoryTree;
	CComboBox m_cmbFileFilter;

	CComboBox m_cmbFtpAccount;
	CTreeCtrl m_treRemoteTree;

	CTreeCtrl m_treProjectTree;

	BOOL m_bLabelEditing;
	CString m_szPrevDriveName;

	CStringArray m_arrFilterDescription, m_arrFilterExtensions;
	CALLBACK_SELCHANGE m_fcnCallbackSelchangeFileFilter;

public:
	INT  GetActiveCategory();
	void SetActiveCategory(INT nSelect);

protected:
	void InitAllFileWindowControls();
	void ResizeAllFileWindowControls(INT cx, INT cy);
	void ShowProperFileWindowControls(INT nSelect);

	void ShowOrHideCommonControls(INT nSelect);
	void ShowOrHideDirectoryControls(INT nSelect);
	void ShowOrHideRemoteControls(INT nSelect);
	void ShowOrHideProjectControls(INT nSelect);

protected: // initialize directory image list
	BOOL InitDirectoryImageList( CImageList & imglst );


public: // *** FileWindowDirectory.cpp ***
	BOOL InitLocalDriveList(LPCTSTR lpszInitialDriveName);
	BOOL InitFileFilterList(LPCTSTR lpszComposedFilter, INT nInitialFilter, CALLBACK_SELCHANGE fcnCallback = NULL);

	BOOL GetBrowsingDirectory(CString & szDirectory);
	BOOL SetBrowsingDirectory(LPCTSTR lpszDirectory);

	BOOL IsSelectedDirectoryItemRoot();
	CString GetSelectedDirectoryItemText();

	BOOL OpenDirectoryItem();
	BOOL ExecuteDirectoryItem();
	BOOL ExploreDirectoryItem();
	BOOL FindInDirectoryItem();

	BOOL MoveDirectoryItem();
	BOOL CopyDirectoryItem();
	BOOL RenameDirectoryItem();
	BOOL DeleteDirectoryItem();

	BOOL SetWorkdirDirectoryItem();
	BOOL RefreshDirectoryItem();

protected: // inner functions
	BOOL SelectLocalDrive(LPCTSTR lpszDriveName);
	CString GetActiveLocalDriveName();

	INT GetActiveFileFilterIndex();
	CString GetActiveFileFilterString();

	BOOL DoesDirectoryHaveChildren(LPCTSTR lpszPath);
	CString GetDirectoryItemPathName(HTREEITEM hItem);

	BOOL RefreshDirectoryTree(LPCTSTR lpszPath);
	BOOL AskDestinationDirectory(CString & szDirectory);

	HTREEITEM GetSelectedDirectoryItem() { return m_treDirectoryTree.GetSelectedItem(); }
	HTREEITEM GetClickedDirectoryItem();

	HTREEITEM InsertDirectoryItem(HTREEITEM hParent, LPCTSTR lpszPath);
	HTREEITEM RemoveChildDirectoryItems(HTREEITEM hParent);
	HTREEITEM FindChildDirectoryItem(HTREEITEM hParent, LPCTSTR lpszText);

private:
	void DisplayDirectoryDrive(LPCTSTR lpszDrive);
	void DisplayDirectoryPath(HTREEITEM hParent, LPCTSTR lpszPath);

protected: // action functions
	BOOL OpenDirectoryContextMenu(HTREEITEM hItem);

	BOOL SetAsCurrentDirectory(HTREEITEM hItem);
	BOOL SetAsWorkingDirectory(HTREEITEM hItem);
	BOOL ShowDirectoryItemProperties(HTREEITEM hItem);

	BOOL OpenDirectoryItem(HTREEITEM hItem);
	BOOL ExecuteDirectoryItem(HTREEITEM hItem);
	BOOL ExploreDirectoryItem(HTREEITEM hItem);
	BOOL FindInDirectoryItem(HTREEITEM hItem);

	BOOL MoveToDirectoryItem(HTREEITEM hItem, LPCTSTR lpszDestination);
	BOOL CopyToDirectoryItem(HTREEITEM hItem, LPCTSTR lpszDestination);
	BOOL RenameDirectoryItem(HTREEITEM hItem, LPCTSTR lpszNewName);
	BOOL DeleteDirectoryItem(HTREEITEM hItem);
	BOOL RefreshDirectoryItem(HTREEITEM hItem);


public: // *** FileWindowRemote.cpp ***


public: // *** FileWindowProject.cpp ***
	BOOL InitProjectWorkspace();

	BOOL NewProjectWorkspace(LPCTSTR lpszPathName);
	BOOL SaveProjectWorkspace(LPCTSTR lpszPathName);
	BOOL OpenProjectWorkspace(LPCTSTR lpszPathName);

	BOOL SaveRegularWorkspace(LPCTSTR lpszPathName);
	BOOL OpenRegularWorkspace(LPCTSTR lpszPathName);

	BOOL AddCategoryToProject(LPCTSTR lpszCategory);
	BOOL AddLocalFileToProject(LPCTSTR lpszPathName);
	BOOL AddRemoteFileToProject(INT nAccount, LPCTSTR lpszPathName, DWORD dwSize);

	BOOL OpenProjectItem();
	BOOL ExecuteProjectItem();
	BOOL RenameProjectItem();
	BOOL RemoveProjectItem();

	BOOL IsSelectedProjectItemRoot();
	CString GetSelectedProjectItemText();

protected: // inner functions
	BOOL SaveProjectItem(ostream & os, INT nLevel, HTREEITEM hItem);
	BOOL LoadProjectItem(istream & is, TCHAR szText[], HTREEITEM hParent);

	BOOL SaveWorkspaceItem(ostream & os, INT nLevel, CDocument * pDoc);
	BOOL LoadWorkspaceItem(istream & is, TCHAR szText[], CWinApp * pApp);

	BOOL ParseProjectItemAttr(LPCTSTR lpszText, CMapStringToString & mapAttr);

	LPPROJECTITEMINFO GetProjectItemInfo(HTREEITEM hItem);
	CString GetProjectItemPathName(HTREEITEM hItem);

	HTREEITEM GetSelectedProjectItem() { return m_treProjectTree.GetSelectedItem(); }
	HTREEITEM GetClickedProjectItem();

	BOOL EnableAllProjectButtons(BOOL bEnable);
	static INT CALLBACK CompareProjectItem(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);

	HTREEITEM InsertProjectItem(HTREEITEM hParent, LPCTSTR lpszText, INT nType, INT nAccount, LPCTSTR lpszPathName, LONG nSize);
	HTREEITEM FindChildProjectItem(HTREEITEM hParent, LPCTSTR lpszText);

protected: // action functions
	BOOL OpenProjectContextMenu(HTREEITEM hItem);
	BOOL RemoveAllProjectItems();

	BOOL OpenProjectItem(HTREEITEM hItem);
	BOOL ExecuteProjectItem(HTREEITEM hItem);

	BOOL RenameProjectItem(HTREEITEM hItem, LPCTSTR lpszNewName);
	BOOL RemoveProjectItem(HTREEITEM hItem);


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CFileWindow)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	//}}AFX_VIRTUAL

// Attributes
protected:

	// Generated message map functions
protected:
	//{{AFX_MSG(CFileWindow)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnDestroy();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnSelchangeCategoryTab(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnDropdownLocalDrive();
	afx_msg void OnSelchangeLocalDrive();
	afx_msg void OnSelchangeFileFilter();
	afx_msg void OnItemexpandedDirectoryTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnSelchangedDirectoryTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnClickDirectoryTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnDblclkDirectoryTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnRclickDirectoryTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnBeginlabeleditDirectoryTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnEndlabeleditDirectoryTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnClickProjectTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnDblclkProjectTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnRclickProjectTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnBeginlabeleditProjectTree(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnEndlabeleditProjectTree(NMHDR* pNMHDR, LRESULT* pResult);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_FILEWINDOW_H__EF837327_15B9_11D5_A6F1_0050CE184C9B__INCLUDED_)

⌨️ 快捷键说明

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