]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/filedlg.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / msw / filedlg.h
index f9c6ecafc2503a7eac3a501ba4a6d1e9d337ade0..a1958bace719990c6ea52ddeabb93d587a29e448 100644 (file)
@@ -1,88 +1,71 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        filedlg.h
+// Name:        wx/msw/filedlg.h
 // Purpose:     wxFileDialog class
 // Author:      Julian Smart
 // Modified by:
 // Created:     01/02/97
 // Purpose:     wxFileDialog class
 // Author:      Julian Smart
 // Modified by:
 // Created:     01/02/97
-// RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __FILEDLGH__
-#define __FILEDLGH__
+#ifndef _WX_FILEDLG_H_
+#define _WX_FILEDLG_H_
 
 
-#ifdef __GNUG__
-#pragma interface "filedlg.h"
-#endif
+//-------------------------------------------------------------------------
+// wxFileDialog
+//-------------------------------------------------------------------------
 
 
-#include "wx/dialog.h"
+class WXDLLIMPEXP_CORE wxFileDialog: public wxFileDialogBase
+{
+public:
+    wxFileDialog(wxWindow *parent,
+                 const wxString& message = wxFileSelectorPromptStr,
+                 const wxString& defaultDir = wxEmptyString,
+                 const wxString& defaultFile = wxEmptyString,
+                 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
+                 long style = wxFD_DEFAULT_STYLE,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& sz = wxDefaultSize,
+                 const wxString& name = wxFileDialogNameStr);
 
 
-/*
- * File selector
- */
+    virtual void GetPaths(wxArrayString& paths) const;
+    virtual void GetFilenames(wxArrayString& files) const;
+#ifndef __WXWINCE__
+    virtual bool SupportsExtraControl() const { return true; }
+    void MSWOnInitDialogHook(WXHWND hwnd);
+#endif // __WXWINCE__
 
 
-WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr;
-WXDLLEXPORT_DATA(extern const char*) wxFileSelectorDefaultWildcardStr;
+    virtual int ShowModal();
 
 
-class WXDLLEXPORT wxFileDialog: public wxDialog
-{
-DECLARE_DYNAMIC_CLASS(wxFileDialog)
-protected:
-    wxString    m_message;
-    long        m_dialogStyle;
-    wxWindow *  m_parent;
-    wxString    m_dir;
-    wxString    m_path; // Full path
-    wxString    m_fileName;
-    wxString    m_wildCard;
-    int         m_filterIndex;
-public:
-    wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr,
-        const wxString& defaultDir = "", const wxString& defaultFile = "", const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-        long style = 0, const wxPoint& pos = wxDefaultPosition);
+    // wxMSW-specific implementation from now on
+    // -----------------------------------------
 
 
-    inline void SetMessage(const wxString& message) { m_message = message; }
-    inline void SetPath(const wxString& path) { m_path = path; }
-    inline void SetDirectory(const wxString& dir) { m_dir = dir; }
-    inline void SetFilename(const wxString& name) { m_fileName = name; }
-    inline void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
-    inline void SetStyle(long style) { m_dialogStyle = style; }
-    inline void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
+    // called from the hook procedure on CDN_INITDONE reception
+    virtual void MSWOnInitDone(WXHWND hDlg);
 
 
-    inline wxString GetMessage(void) const { return m_message; }
-    inline wxString GetPath(void) const { return m_path; }
-    inline wxString GetDirectory(void) const { return m_dir; }
-    inline wxString GetFilename(void) const { return m_fileName; }
-    inline wxString GetWildcard(void) const { return m_wildCard; }
-    inline long GetStyle(void) const { return m_dialogStyle; }
-    inline int GetFilterIndex(void) const { return m_filterIndex ; }
+    // called from the hook procedure on CDN_SELCHANGE.
+    void MSWOnSelChange(WXHWND hDlg);
 
 
-    int ShowModal(void);
-};
+protected:
 
 
-#define wxOPEN 1
-#define wxSAVE 2
-#define wxOVERWRITE_PROMPT 4
-#define wxHIDE_READONLY 8
+#if !(defined(__SMARTPHONE__) && defined(__WXWINCE__))
+    virtual void DoMoveWindow(int x, int y, int width, int height);
+    virtual void DoCentre(int dir);
+    virtual void DoGetSize( int *width, int *height ) const;
+    virtual void DoGetPosition( int *x, int *y ) const;
+#endif // !(__SMARTPHONE__ && __WXWINCE__)
 
 
-// File selector - backward compatibility
-char* WXDLLEXPORT wxFileSelector(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL,
-                     const char *default_filename = NULL, const char *default_extension = NULL,
-                     const char *wildcard = wxFileSelectorDefaultWildcardStr, int flags = 0,
-                     wxWindow *parent = NULL, int x = -1, int y = -1);
+private:
+    wxArrayString m_fileNames;
 
 
-// An extended version of wxFileSelector
-char* WXDLLEXPORT wxFileSelectorEx(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL,
-                     const char *default_filename = NULL, int *indexDefaultExtension = NULL,
-                     const char *wildcard = wxFileSelectorDefaultWildcardStr, const int flags = 0,
-                     wxWindow *parent = NULL, const int x = -1, const int y = -1);
+    // remember if our SetPosition() or Centre() (which requires special
+    // treatment) was called
+    bool m_bMovedWindow;
+    int m_centreDir;        // nothing to do if 0
 
 
-// Generic file load dialog
-char* WXDLLEXPORT wxLoadFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL);
+    DECLARE_DYNAMIC_CLASS(wxFileDialog)
+    wxDECLARE_NO_COPY_CLASS(wxFileDialog);
+};
 
 
-// Generic file save dialog
-char* WXDLLEXPORT wxSaveFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL);
+#endif // _WX_FILEDLG_H_
 
 
-#endif
-    // __FILEDLGH__