File: FilePageAddDlg.h

package info (click to toggle)
descent3 1.5.0%2Bds-2
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid
  • size: 35,256 kB
  • sloc: cpp: 416,147; ansic: 3,233; sh: 10; makefile: 8
file content (140 lines) | stat: -rw-r--r-- 3,865 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
 * Descent 3
 * Copyright (C) 2024 Parallax Software
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#if !defined(AFX_FILEPAGEADDDLG_H__F3555122_C5AB_11D2_AB2B_006008BF0B09__INCLUDED_)
#define AFX_FILEPAGEADDDLG_H__F3555122_C5AB_11D2_AB2B_006008BF0B09__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// FilePageAddDlg.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CFilePageAddDlg dialog

#define DRIVES 0
#define DIRECTORIES 1
#define FILES 2

extern char *DirectoryNames[];
extern int NumDirectoryNames;

/////////////////////////////////////////////////////////////////////////////
// CFileList window
class CFileList : public CListBox {
  // Construction
public:
  BOOL RefreshMask(CString mask);
  BOOL RefreshBox(CString path);
  //*.* is default filemask
  BOOL RefreshBox(CString path, CString mask);
  void setFileMask(CString mask);
  CString getFileMask();
  void setPath(CString path);
  CString getPath();
  BOOL InitBox(UINT res, CWnd *parent, LPSTR lpszPath, LPSTR lpszFileMask, UINT flags, UINT msg,
               void (*cb)(char *path) = NULL);
  CFileList();

  // Attributes
public:
  // Operations
protected:
  // Overrides
  // ClassWizard generated virtual function overrides
  //{{AFX_VIRTUAL(CFileList)
  //}}AFX_VIRTUAL

  // Implementation
public:
  virtual ~CFileList();

  // Generated message map functions
protected:
  //{{AFX_MSG(CFileList)
  afx_msg void OnDblclk();
  //}}AFX_MSG

  DECLARE_MESSAGE_MAP()
private:
  CWnd *m_cwndParent;
  UINT m_nMsg;
  UINT m_nFlag;
  CString m_csPath;
  CString m_csFileMask;
  void CheckEntry(LPSTR name, DWORD flag, BOOL dir); // dir==TRUE for directories
  BOOL FillBox();
  void (*callback)(char *path);
};

class CFilePageAddDlg : public CDialog {
  // Construction
public:
  CFilePageAddDlg(CWnd *pParent = NULL); // standard constructor
  ~CFilePageAddDlg(void);

  void SetInitialPath(char *path);

  int m_NumberOfSelectedFiles;
  char **m_SelectedFiles;
  char *m_SelectedDestDir;

private:
  bool Quit(void);
  CString initial_path;

  // Dialog Data
  //{{AFX_DATA(CFilePageAddDlg)
  enum { IDD = IDD_FILEPAGEADD };
  // NOTE: the ClassWizard will add data members here
  //}}AFX_DATA

  // Overrides
  // ClassWizard generated virtual function overrides
  //{{AFX_VIRTUAL(CFilePageAddDlg)
protected:
  virtual void DoDataExchange(CDataExchange *pDX); // DDX/DDV support
  virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  //}}AFX_VIRTUAL

  // Implementation
protected:
  // Generated message map functions
  //{{AFX_MSG(CFilePageAddDlg)
  virtual BOOL OnInitDialog();
  afx_msg void OnSelchangeListDrives();
  afx_msg void OnSelchangeListFolders();
  virtual void OnOK();
  //}}AFX_MSG
  DECLARE_MESSAGE_MAP()

private:
  // the three boxes in this example
  CFileList m_cflDrive;
  CFileList m_cflDir;
  CFileList m_cflFile;
  // user-defined message for communication between the boxes
  // and dialog (msg is trapped in WindowProc)
  UINT m_nBoxMsg;
};

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

#endif // !defined(AFX_FILEPAGEADDDLG_H__F3555122_C5AB_11D2_AB2B_006008BF0B09__INCLUDED_)