Add wx headers and ext
This commit is contained in:
parent
6390dcef6a
commit
66d3c7b811
1531 changed files with 295895 additions and 0 deletions
89
wxheaders/wx/msw/private/filedialog.h
Normal file
89
wxheaders/wx/msw/private/filedialog.h
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/msw/private/filedialog.h
|
||||
// Purpose: IFileDialog-related functions
|
||||
// Author: Vadim Zeitlin
|
||||
// Created: 2022-05-15
|
||||
// Copyright: (c) 2022 Vadim Zeitlin <vadim@wxwidgets.org>
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_MSW_PRIVATE_FILEDIALOG_H_
|
||||
#define _WX_MSW_PRIVATE_FILEDIALOG_H_
|
||||
|
||||
#include "wx/msw/private.h"
|
||||
#include "wx/msw/wrapshl.h"
|
||||
|
||||
// We want to use IFileDialog if either wxDirDialog or wxFileDialog are used.
|
||||
//
|
||||
// IFileOpenDialog implementation needs wxDynamicLibrary for
|
||||
// run-time linking SHCreateItemFromParsingName(), available
|
||||
// only under Windows Vista and newer.
|
||||
// It also needs a compiler providing declarations and definitions
|
||||
// of interfaces available in Windows Vista.
|
||||
// And it needs OLE support to actually use these interfaces.
|
||||
#if (wxUSE_DIRDLG || wxUSE_FILEDLG) && wxUSE_DYNLIB_CLASS && wxUSE_OLE && \
|
||||
defined(__IFileOpenDialog_INTERFACE_DEFINED__)
|
||||
#define wxUSE_IFILEOPENDIALOG 1
|
||||
#else
|
||||
#define wxUSE_IFILEOPENDIALOG 0
|
||||
#endif
|
||||
|
||||
#if wxUSE_IFILEOPENDIALOG
|
||||
|
||||
#include "wx/msw/private/comptr.h"
|
||||
|
||||
namespace wxMSWImpl
|
||||
{
|
||||
|
||||
// For historical reasons, this class is defined in src/msw/dirdlg.cpp.
|
||||
class wxIFileDialog
|
||||
{
|
||||
public:
|
||||
// Create the dialog of the specified type.
|
||||
//
|
||||
// CLSID must be either CLSID_FileOpenDialog or CLSID_FileSaveDialog.
|
||||
//
|
||||
// Use IsOk() to check if the dialog was created successfully.
|
||||
explicit wxIFileDialog(const CLSID& clsid);
|
||||
|
||||
// If this returns false, the dialog can't be used at all.
|
||||
bool IsOk() const { return m_fileDialog.Get() != NULL; }
|
||||
|
||||
// Set the dialog title.
|
||||
void SetTitle(const wxString& title);
|
||||
|
||||
// Set the initial path to show in the dialog.
|
||||
void SetInitialPath(const wxString& path);
|
||||
|
||||
// Add a shortcut.
|
||||
void AddPlace(const wxString& path, FDAP fdap);
|
||||
|
||||
// Show the file dialog with the given parent window and options.
|
||||
//
|
||||
// Returns the selected path, or paths, in the provided output parameters,
|
||||
// depending on whether FOS_ALLOWMULTISELECT is part of the options.
|
||||
//
|
||||
// The return value is wxID_OK if any paths were returned, wxID_CANCEL if the
|
||||
// dialog was cancelled.
|
||||
int
|
||||
Show(HWND owner, int options, wxArrayString* pathsOut, wxString* pathOut);
|
||||
|
||||
// Behave as IFileDialog.
|
||||
IFileDialog* Get() const { return m_fileDialog.Get(); }
|
||||
IFileDialog* operator->() const { return m_fileDialog.Get(); }
|
||||
|
||||
private:
|
||||
wxCOMPtr<IFileDialog> m_fileDialog;
|
||||
};
|
||||
|
||||
// Initialize an IShellItem object with the given path.
|
||||
HRESULT InitShellItemFromPath(wxCOMPtr<IShellItem>& item, const wxString& path);
|
||||
|
||||
// Extract the filesystem path corresponding to the given shell item.
|
||||
HRESULT GetFSPathFromShellItem(const wxCOMPtr<IShellItem>& item, wxString& path);
|
||||
|
||||
} // namespace wxMSWImpl
|
||||
|
||||
#endif // wxUSE_IFILEOPENDIALOG
|
||||
|
||||
#endif // _WX_MSW_PRIVATE_FILEDIALOG_H_
|
||||
Loading…
Add table
Add a link
Reference in a new issue