mirror of
https://github.com/celisej567/source-engine.git
synced 2026-01-04 18:09:53 +03:00
1
This commit is contained in:
146
utils/FileSystemOpenDialog/FileSystemOpenDlg.h
Normal file
146
utils/FileSystemOpenDialog/FileSystemOpenDlg.h
Normal file
@@ -0,0 +1,146 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
#if !defined(AFX_FILESYSTEMOPENDLG_H__01CFDE04_321F_4F1E_94ED_933B2B32C193__INCLUDED_)
|
||||
#define AFX_FILESYSTEMOPENDLG_H__01CFDE04_321F_4F1E_94ED_933B2B32C193__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// FileSystemOpenDlg.h : header file
|
||||
//
|
||||
|
||||
#include "utlvector.h"
|
||||
#include "resource.h"
|
||||
#include "filesystem.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CFileSystemOpenDlg dialog
|
||||
|
||||
class CWindowAnchor
|
||||
{
|
||||
public:
|
||||
CWnd *m_pWnd;
|
||||
int m_Side; //0=left, 1=top, 2=right, 3=bottom
|
||||
int m_ParentSide; //which side to anchor to parent
|
||||
int m_OriginalDist; //original distance from the parent side
|
||||
};
|
||||
|
||||
class CFileInfo
|
||||
{
|
||||
public:
|
||||
CFileInfo();
|
||||
~CFileInfo();
|
||||
|
||||
bool m_bIsDir;
|
||||
CString m_Name;
|
||||
CBitmap *m_pBitmap;
|
||||
};
|
||||
|
||||
|
||||
class CFileSystemOpenDlg : public CDialog
|
||||
{
|
||||
friend class CFileSystemOpenDialogWrapper;
|
||||
|
||||
// Construction
|
||||
public:
|
||||
CFileSystemOpenDlg(CreateInterfaceFn factory, CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CFileSystemOpenDlg)
|
||||
enum { IDD = IDD_FILESYSTEM_OPENDIALOG };
|
||||
CEdit m_FilenameLabel;
|
||||
CEdit m_FilenameControl;
|
||||
CEdit m_LookInLabel;
|
||||
CListCtrl m_FileList;
|
||||
//}}AFX_DATA
|
||||
|
||||
void AddFileMask( const char *pMask );
|
||||
|
||||
void SetInitialDir( const char *pDir, const char *pPathID = NULL );
|
||||
|
||||
void SetFilterMdlAndJpgFiles( bool bFilter );
|
||||
CString GetFilename() const; // Get the filename they chose.
|
||||
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CFileSystemOpenDlg)
|
||||
public:
|
||||
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
|
||||
private:
|
||||
|
||||
enum GetEntriesMode_t
|
||||
{
|
||||
GETENTRIES_FILES_ONLY,
|
||||
GETENTRIES_DIRECTORIES_ONLY
|
||||
};
|
||||
void GetEntries( const char *pMask, CUtlVector<CString> &entries, GetEntriesMode_t mode );
|
||||
void PopulateListControl();
|
||||
int SetupLabelImage( CFileInfo *pInfo, CString name, bool bIsDir );
|
||||
|
||||
void AddAnchor( int iDlgItem, int iSide, int anchorSide );
|
||||
void ProcessAnchor( CWindowAnchor *pAnchor );
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
|
||||
const char* GetPathID();
|
||||
|
||||
friend int CALLBACK FileListSortCallback( LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort );
|
||||
friend class CFilenameShortcut;
|
||||
|
||||
CUtlVector<CWindowAnchor> m_Anchors;
|
||||
|
||||
enum
|
||||
{
|
||||
PREVIEW_IMAGE_SIZE=96
|
||||
};
|
||||
|
||||
IFileSystem *m_pFileSystem;
|
||||
|
||||
// These are indexed by the lParam or userdata of each item in m_FileList.
|
||||
CUtlVector<CFileInfo> m_FileInfos;
|
||||
|
||||
int m_iLabel_Folder;
|
||||
int m_iLabel_Mdl;
|
||||
int m_iLabel_File;
|
||||
CBitmap m_BitmapMdl;
|
||||
CBitmap m_BitmapFile;
|
||||
CBitmap m_BitmapFolder;
|
||||
|
||||
CImageList m_ImageList;
|
||||
CString m_CurrentDir;
|
||||
CString m_Filename;
|
||||
CString m_PathIDString;
|
||||
CUtlVector<CString> m_FileMasks;
|
||||
|
||||
// If this is true, then we get rid of .mdl files if there is a corresponding .jpg file.
|
||||
bool m_bFilterMdlAndJpgFiles;
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CFileSystemOpenDlg)
|
||||
virtual void OnOK();
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
afx_msg void OnDblclkFileList(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnUpButton();
|
||||
afx_msg void OnItemchangedFileList(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_FILESYSTEMOPENDLG_H__01CFDE04_321F_4F1E_94ED_933B2B32C193__INCLUDED_)
|
||||
Reference in New Issue
Block a user