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
|
// *****************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved *
// *****************************************************************************
#ifndef FOLDER_SELECTOR2_H_073246031245342566
#define FOLDER_SELECTOR2_H_073246031245342566
#include <wx/stattext.h>
#include <wx/button.h>
#include <wx/textctrl.h>
#include <wx+/file_drop.h>
namespace rts
{
//handle drag and drop, tooltip, label and manual input, coordinating a wxWindow, wxButton, and wxTextCtrl
class FolderSelector2 : public wxEvtHandler
{
public:
FolderSelector2(wxWindow* parent,
wxWindow& dropWindow,
wxButton& selectButton,
wxTextCtrl& folderPathCtrl,
Zstring& folderLastSelected,
wxStaticText* staticText, //optional
const std::function<bool (const std::vector<Zstring>& shellItemPaths)>& droppedPathsFilter); //optional
~FolderSelector2();
Zstring getPath() const;
void setPath(const Zstring& dirpath);
private:
void onMouseWheel (wxMouseEvent& event);
void onFilesDropped (zen::FileDropEvent& event);
void onEditFolderPath(wxCommandEvent& event);
void onSelectDir (wxCommandEvent& event);
const std::function<bool(const std::vector<Zstring>& shellItemPaths)> droppedPathsFilter_;
wxWindow* parent_;
wxWindow& dropWindow_;
wxButton& selectButton_;
wxTextCtrl& folderPathCtrl_;
Zstring& folderLastSelected_;
wxStaticText* staticText_ = nullptr; //optional
};
}
#endif //FOLDER_SELECTOR2_H_073246031245342566
|