mirror of
https://github.com/fadden/ciderpress.git
synced 2024-11-23 11:33:58 +00:00
a5fa12b332
Some of the code was mis-handling wide character filenames. A direct copy & paste should be using the 8-bit form of the filename, but that's a deeper fix. Also, changed some types to use explicit integer width specifiers.
76 lines
2.1 KiB
C++
76 lines
2.1 KiB
C++
/*
|
|
* CiderPress
|
|
* Copyright (C) 2007 by faddenSoft, LLC. All Rights Reserved.
|
|
* See the file LICENSE for distribution terms.
|
|
*/
|
|
/*
|
|
* Dialog for choosing a directory.
|
|
*/
|
|
#ifndef APP_CHOOSEDIRDIALOG
|
|
#define APP_CHOOSEDIRDIALOG
|
|
|
|
#include "../util/UtilLib.h"
|
|
#include "resource.h"
|
|
|
|
/*
|
|
* Choose a directory. This is distinctly different from what the standard
|
|
* "Open" and "Save As" dialogs do, because those want to choose normal files
|
|
* only, while this wants to select a folder.
|
|
*
|
|
* TODO: Vista-style dialogs support folder selection. Consider switching
|
|
* based on OS version.
|
|
*/
|
|
class ChooseDirDialog : public CDialog {
|
|
public:
|
|
ChooseDirDialog(CWnd* pParent = NULL, int dialogID = IDD_CHOOSEDIR) :
|
|
CDialog(dialogID, pParent)
|
|
{
|
|
fPathName = L"";
|
|
}
|
|
virtual ~ChooseDirDialog(void) {}
|
|
|
|
const WCHAR* GetPathName(void) const { return fPathName; }
|
|
|
|
// set the pathname; when DoModal is called this will tunnel in
|
|
void SetPathName(const WCHAR* str) { fPathName = str; }
|
|
|
|
protected:
|
|
virtual BOOL OnInitDialog(void) override;
|
|
|
|
// Special handling for "return" key.
|
|
virtual BOOL PreTranslateMessage(MSG* pMsg) override;
|
|
|
|
/*
|
|
* Replace the ShellTree's default SELCHANGED handler with this so we can
|
|
* track changes to the edit control.
|
|
*/
|
|
afx_msg void OnSelChanged(NMHDR* pnmh, LRESULT* pResult);
|
|
|
|
// User pressed "Expand Tree" button.
|
|
afx_msg void OnExpandTree(void);
|
|
|
|
// User pressed "New Folder" button.
|
|
afx_msg void OnNewFolder(void);
|
|
|
|
// User pressed "Help" button.
|
|
afx_msg void OnHelp(void) {
|
|
MyApp::HandleHelp(this, HELP_TOPIC_CHOOSE_FOLDER);
|
|
}
|
|
|
|
// F1 key hit, or '?' button in title bar used to select help for an
|
|
// item in the dialog. For ON_WM_HELPINFO.
|
|
afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo) {
|
|
return MyApp::HandleHelpInfo(lpHelpInfo);
|
|
}
|
|
|
|
private:
|
|
CString fPathName;
|
|
|
|
ShellTree fShellTree;
|
|
MyBitmapButton fNewFolderButton;
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
#endif /*APP_CHOOSEDIRDIALOG*/
|