diff --git a/samples/dialogs/Makefile.in b/samples/dialogs/Makefile.in
index 2907192ed9..17e0f15e3e 100644
--- a/samples/dialogs/Makefile.in
+++ b/samples/dialogs/Makefile.in
@@ -79,10 +79,12 @@ COND_PLATFORM_OS2_1___dialogs___os2_emxbindcmd = $(NM) dialogs$(EXEEXT) | if \
@COND_TOOLKIT_MAC@ dialogs.app/Contents/PkgInfo
@COND_TOOLKIT_MSW_WXUNIV_0@__GENERIC_FILES_OBJECTS \
@COND_TOOLKIT_MSW_WXUNIV_0@ = dialogs_colrdlgg.o dialogs_dirdlgg.o \
-@COND_TOOLKIT_MSW_WXUNIV_0@ dialogs_fontdlgg.o
+@COND_TOOLKIT_MSW_WXUNIV_0@ dialogs_filedlgg.o dialogs_fontdlgg.o
@COND_TOOLKIT_MAC_WXUNIV_0@__GENERIC_FILES_OBJECTS \
-@COND_TOOLKIT_MAC_WXUNIV_0@ = dialogs_colrdlgg.o dialogs_dirdlgg.o
-@COND_TOOLKIT_PM_WXUNIV_0@__GENERIC_FILES_OBJECTS = dialogs_fontdlgg.o
+@COND_TOOLKIT_MAC_WXUNIV_0@ = dialogs_colrdlgg.o dialogs_dirdlgg.o \
+@COND_TOOLKIT_MAC_WXUNIV_0@ dialogs_filedlgg.o
+@COND_TOOLKIT_PM_WXUNIV_0@__GENERIC_FILES_OBJECTS \
+@COND_TOOLKIT_PM_WXUNIV_0@ = dialogs_fontdlgg.o dialogs_filedlgg.o
COND_MONOLITHIC_0___WXLIB_ADV_p = \
-lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)_adv-2.5$(HOST_SUFFIX)
@COND_MONOLITHIC_0@__WXLIB_ADV_p = $(COND_MONOLITHIC_0___WXLIB_ADV_p)
@@ -190,6 +192,15 @@ dialogs_dialogs.o: $(srcdir)/dialogs.cpp
@COND_TOOLKIT_MAC_WXUNIV_0@dialogs_dirdlgg.o: $(srcdir)/../../src/generic/dirdlgg.cpp
@COND_TOOLKIT_MAC_WXUNIV_0@ $(CXXC) -c -o $@ $(DIALOGS_CXXFLAGS) $<
+@COND_TOOLKIT_MSW_WXUNIV_0@dialogs_filedlgg.o: $(srcdir)/../../src/generic/filedlgg.cpp
+@COND_TOOLKIT_MSW_WXUNIV_0@ $(CXXC) -c -o $@ $(DIALOGS_CXXFLAGS) $<
+
+@COND_TOOLKIT_MAC_WXUNIV_0@dialogs_filedlgg.o: $(srcdir)/../../src/generic/filedlgg.cpp
+@COND_TOOLKIT_MAC_WXUNIV_0@ $(CXXC) -c -o $@ $(DIALOGS_CXXFLAGS) $<
+
+@COND_TOOLKIT_PM_WXUNIV_0@dialogs_filedlgg.o: $(srcdir)/../../src/generic/filedlgg.cpp
+@COND_TOOLKIT_PM_WXUNIV_0@ $(CXXC) -c -o $@ $(DIALOGS_CXXFLAGS) $<
+
@COND_TOOLKIT_MSW_WXUNIV_0@dialogs_fontdlgg.o: $(srcdir)/../../src/generic/fontdlgg.cpp
@COND_TOOLKIT_MSW_WXUNIV_0@ $(CXXC) -c -o $@ $(DIALOGS_CXXFLAGS) $<
diff --git a/samples/dialogs/dialogs.bkl b/samples/dialogs/dialogs.bkl
index 042f10561c..2685c8095a 100644
--- a/samples/dialogs/dialogs.bkl
+++ b/samples/dialogs/dialogs.bkl
@@ -7,14 +7,17 @@
../../src/generic/colrdlgg.cpp
../../src/generic/dirdlgg.cpp
+ ../../src/generic/filedlgg.cpp
../../src/generic/fontdlgg.cpp
../../src/generic/colrdlgg.cpp
../../src/generic/dirdlgg.cpp
+ ../../src/generic/filedlgg.cpp
../../src/generic/fontdlgg.cpp
+ ../../src/generic/filedlgg.cpp
diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp
index f2508efb3d..07192e6846 100644
--- a/samples/dialogs/dialogs.cpp
+++ b/samples/dialogs/dialogs.cpp
@@ -2,7 +2,7 @@
// Name: dialogs.cpp
// Purpose: Common dialogs demo
// Author: Julian Smart
-// Modified by: ABX (2004) - adjustementd for conditional building
+// Modified by: ABX (2004) - adjustements for conditional building + new menu
// Created: 04/01/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
@@ -74,14 +74,18 @@
#include "wx/generic/colrdlgg.h"
#endif // USE_COLOURDLG_GENERIC
-#if USE_FONTDLG_GENERIC
- #include "wx/generic/fontdlgg.h"
-#endif // USE_FONTDLG_GENERIC
-
#if USE_DIRDLG_GENERIC
#include "wx/generic/dirdlgg.h"
#endif // USE_DIRDLG_GENERIC
+#if USE_FILEDLG_GENERIC
+ #include "wx/generic/filedlgg.h"
+#endif // USE_FILEDLG_GENERIC
+
+#if USE_FONTDLG_GENERIC
+ #include "wx/generic/fontdlgg.h"
+#endif // USE_FONTDLG_GENERIC
+
IMPLEMENT_APP(MyApp)
BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
@@ -126,6 +130,12 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(DIALOGS_FILE_SAVE, MyFrame::FileSave)
#endif // wxUSE_FILEDLG
+#if USE_FILEDLG_GENERIC
+ EVT_MENU(DIALOGS_FILE_OPEN_GENERIC, MyFrame::FileOpenGeneric)
+ EVT_MENU(DIALOGS_FILES_OPEN_GENERIC, MyFrame::FilesOpenGeneric)
+ EVT_MENU(DIALOGS_FILE_SAVE_GENERIC, MyFrame::FileSaveGeneric)
+#endif // USE_FILEDLG_GENERIC
+
#if wxUSE_DIRDLG
EVT_MENU(DIALOGS_DIR_CHOOSE, MyFrame::DirChoose)
EVT_MENU(DIALOGS_DIRNEW_CHOOSE, MyFrame::DirChooseNew)
@@ -220,23 +230,27 @@ bool MyApp::OnInit()
choices_menu->Append(DIALOGS_CHOOSE_COLOUR, _T("&Choose colour"));
#endif // wxUSE_COLOURDLG
- #if USE_COLOURDLG_GENERIC
- choices_menu->Append(DIALOGS_CHOOSE_COLOUR_GENERIC, _T("&Choose colour (generic)"));
- #endif // USE_COLOURDLG_GENERIC
-
#if wxUSE_FONTDLG
choices_menu->Append(DIALOGS_CHOOSE_FONT, _T("Choose &font"));
#endif // wxUSE_FONTDLG
- #if USE_FONTDLG_GENERIC
- choices_menu->Append(DIALOGS_CHOOSE_FONT_GENERIC, _T("Choose &font (generic)"));
- #endif // USE_FONTDLG_GENERIC
-
#if wxUSE_CHOICEDLG
choices_menu->Append(DIALOGS_SINGLE_CHOICE, _T("&Single choice\tCtrl-C"));
choices_menu->Append(DIALOGS_MULTI_CHOICE, _T("M&ultiple choice\tCtrl-U"));
#endif // wxUSE_CHOICEDLG
+ #if USE_COLOURDLG_GENERIC || USE_FONTDLG_GENERIC
+ choices_menu->AppendSeparator();
+ #endif // USE_COLOURDLG_GENERIC || USE_FONTDLG_GENERIC
+
+ #if USE_COLOURDLG_GENERIC
+ choices_menu->Append(DIALOGS_CHOOSE_COLOUR_GENERIC, _T("&Choose colour (generic)"));
+ #endif // USE_COLOURDLG_GENERIC
+
+ #if USE_FONTDLG_GENERIC
+ choices_menu->Append(DIALOGS_CHOOSE_FONT_GENERIC, _T("Choose &font (generic)"));
+ #endif // USE_FONTDLG_GENERIC
+
file_menu->Append(wxID_ANY,_T("Choices and selectors"),choices_menu);
#endif // wxUSE_COLOURDLG || wxUSE_FONTDLG || wxUSE_CHOICEDLG
@@ -267,6 +281,14 @@ bool MyApp::OnInit()
filedlg_menu->Append(DIALOGS_FILE_OPEN2, _T("&Second open file\tCtrl-2"));
filedlg_menu->Append(DIALOGS_FILES_OPEN, _T("Open &files\tCtrl-Q"));
filedlg_menu->Append(DIALOGS_FILE_SAVE, _T("Sa&ve file\tCtrl-S"));
+
+ #if USE_FILEDLG_GENERIC
+ filedlg_menu->AppendSeparator();
+ filedlg_menu->Append(DIALOGS_FILE_OPEN_GENERIC, _T("&Open file (generic)"));
+ filedlg_menu->Append(DIALOGS_FILES_OPEN_GENERIC, _T("Open &files (generic)"));
+ filedlg_menu->Append(DIALOGS_FILE_SAVE_GENERIC, _T("Sa&ve file (generic)"));
+ #endif // USE_FILEDLG_GENERIC
+
file_menu->Append(wxID_ANY,_T("File operations"),filedlg_menu);
#endif // wxUSE_FILEDLG
@@ -275,14 +297,14 @@ bool MyApp::OnInit()
wxMenu *dir_menu = new wxMenu;
dir_menu->Append(DIALOGS_DIR_CHOOSE, _T("&Choose a directory\tCtrl-D"));
-
- #if USE_DIRDLG_GENERIC
- dir_menu->Append(DIALOGS_GENERIC_DIR_CHOOSE, _T("&Choose a directory (generic)"));
- #endif // USE_DIRDLG_GENERIC
-
dir_menu->Append(DIALOGS_DIRNEW_CHOOSE, _T("Choose a directory (with \"Ne&w\" button)\tShift-Ctrl-D"));
file_menu->Append(wxID_ANY,_T("Directory operations"),dir_menu);
+ #if USE_DIRDLG_GENERIC
+ dir_menu->AppendSeparator();
+ dir_menu->Append(DIALOGS_GENERIC_DIR_CHOOSE, _T("&Choose a directory (generic)"));
+ #endif // USE_DIRDLG_GENERIC
+
#endif // wxUSE_DIRDLG
@@ -728,6 +750,84 @@ void MyFrame::FileSave(wxCommandEvent& WXUNUSED(event) )
}
#endif // wxUSE_FILEDLG
+#if USE_FILEDLG_GENERIC
+void MyFrame::FileOpenGeneric(wxCommandEvent& WXUNUSED(event) )
+{
+ wxGenericFileDialog dialog
+ (
+ this,
+ _T("Testing open file dialog"),
+ wxEmptyString,
+ wxEmptyString,
+ _T("C++ files (*.h;*.cpp)|*.h;*.cpp")
+ );
+
+ dialog.SetDirectory(wxGetHomeDir());
+
+ if (dialog.ShowModal() == wxID_OK)
+ {
+ wxString info;
+ info.Printf(_T("Full file name: %s\n")
+ _T("Path: %s\n")
+ _T("Name: %s"),
+ dialog.GetPath().c_str(),
+ dialog.GetDirectory().c_str(),
+ dialog.GetFilename().c_str());
+ wxMessageDialog dialog2(this, info, _T("Selected file"));
+ dialog2.ShowModal();
+ }
+}
+
+void MyFrame::FilesOpenGeneric(wxCommandEvent& WXUNUSED(event) )
+{
+ wxString wildcards = _T("All files (*.*)|*.*|C++ files (*.h;*.cpp)|*.h;*.cpp");
+ wxGenericFileDialog dialog(this, _T("Testing open multiple file dialog"),
+ wxEmptyString, wxEmptyString, wildcards,
+ wxMULTIPLE);
+
+ if (dialog.ShowModal() == wxID_OK)
+ {
+ wxArrayString paths, filenames;
+
+ dialog.GetPaths(paths);
+ dialog.GetFilenames(filenames);
+
+ wxString msg, s;
+ size_t count = paths.GetCount();
+ for ( size_t n = 0; n < count; n++ )
+ {
+ s.Printf(_T("File %d: %s (%s)\n"),
+ (int)n, paths[n].c_str(), filenames[n].c_str());
+
+ msg += s;
+ }
+ s.Printf(_T("Filter index: %d"), dialog.GetFilterIndex());
+ msg += s;
+
+ wxMessageDialog dialog2(this, msg, _T("Selected files"));
+ dialog2.ShowModal();
+ }
+}
+
+void MyFrame::FileSaveGeneric(wxCommandEvent& WXUNUSED(event) )
+{
+ wxGenericFileDialog dialog(this,
+ _T("Testing save file dialog"),
+ wxEmptyString,
+ _T("myletter.doc"),
+ _T("Text files (*.txt)|*.txt|Document files (*.doc)|*.doc"),
+ wxSAVE|wxOVERWRITE_PROMPT);
+
+ dialog.SetFilterIndex(1);
+
+ if (dialog.ShowModal() == wxID_OK)
+ {
+ wxLogMessage(_T("%s, filter %d"),
+ dialog.GetPath().c_str(), dialog.GetFilterIndex());
+ }
+}
+#endif // USE_FILEDLG_GENERIC
+
#if wxUSE_DIRDLG
void MyFrame::DoDirChoose(int style)
{
diff --git a/samples/dialogs/dialogs.dsp b/samples/dialogs/dialogs.dsp
index 8b1e9e2f38..7fa040ab23 100644
--- a/samples/dialogs/dialogs.dsp
+++ b/samples/dialogs/dialogs.dsp
@@ -597,6 +597,69 @@ SOURCE=.\..\..\src\generic\dirdlgg.cpp
!ELSEIF "$(CFG)" == "dialogs - Win32 Debug"
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\..\..\src\generic\filedlgg.cpp
+
+!IF "$(CFG)" == "dialogs - Win32 DLL Universal Unicode Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 DLL Universal Unicode Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 DLL Universal Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 DLL Universal Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 DLL Unicode Release"
+
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 DLL Unicode Debug"
+
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 DLL Release"
+
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 DLL Debug"
+
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 Universal Unicode Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 Universal Unicode Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 Universal Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 Universal Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 Unicode Release"
+
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 Unicode Debug"
+
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 Release"
+
+
+!ELSEIF "$(CFG)" == "dialogs - Win32 Debug"
+
+
!ENDIF
# End Source File
diff --git a/samples/dialogs/dialogs.h b/samples/dialogs/dialogs.h
index 2c373264c9..91bef905f1 100644
--- a/samples/dialogs/dialogs.h
+++ b/samples/dialogs/dialogs.h
@@ -20,13 +20,6 @@
)
-#define USE_FONTDLG_GENERIC \
- ( \
- wxUSE_FONTDLG && \
- ( defined(__WXMSW__) || defined(__WXPM__) ) && \
- !defined(__WXUNIVERSAL__) \
- )
-
#define USE_DIRDLG_GENERIC \
( \
wxUSE_DIRDLG && \
@@ -34,6 +27,20 @@
!defined(__WXUNIVERSAL__) \
)
+#define USE_FILEDLG_GENERIC \
+ ( \
+ wxUSE_FILEDLG && \
+ ( defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXPM__) ) && \
+ !defined(__WXUNIVERSAL__) \
+ )
+
+#define USE_FONTDLG_GENERIC \
+ ( \
+ wxUSE_FONTDLG && \
+ ( defined(__WXMSW__) || defined(__WXPM__) ) && \
+ !defined(__WXUNIVERSAL__) \
+ )
+
#define USE_MODAL_PRESENTATION 1
@@ -117,6 +124,12 @@ public:
void FileSave(wxCommandEvent& event);
#endif // wxUSE_FILEDLG
+#if USE_FILEDLG_GENERIC
+ void FileOpenGeneric(wxCommandEvent& event);
+ void FilesOpenGeneric(wxCommandEvent& event);
+ void FileSaveGeneric(wxCommandEvent& event);
+#endif // USE_FILEDLG_GENERIC
+
#if wxUSE_DIRDLG
void DirChoose(wxCommandEvent& event);
void DirChooseNew(wxCommandEvent& event);
@@ -208,6 +221,9 @@ enum
DIALOGS_FILE_OPEN2,
DIALOGS_FILES_OPEN,
DIALOGS_FILE_SAVE,
+ DIALOGS_FILE_OPEN_GENERIC,
+ DIALOGS_FILES_OPEN_GENERIC,
+ DIALOGS_FILE_SAVE_GENERIC,
DIALOGS_DIR_CHOOSE,
DIALOGS_DIRNEW_CHOOSE,
DIALOGS_GENERIC_DIR_CHOOSE,
diff --git a/samples/dialogs/makefile.bcc b/samples/dialogs/makefile.bcc
index 3bbd128a7d..d3c2ccfda1 100644
--- a/samples/dialogs/makefile.bcc
+++ b/samples/dialogs/makefile.bcc
@@ -108,6 +108,7 @@ __DLLFLAG_p_1 = -dWXUSINGDLL
____GENERIC_FILES_FILENAMES_OBJECTS = \
$(OBJS)\dialogs_colrdlgg.obj \
$(OBJS)\dialogs_dirdlgg.obj \
+ $(OBJS)\dialogs_filedlgg.obj \
$(OBJS)\dialogs_fontdlgg.obj
!endif
!if "$(MONOLITHIC)" == "0"
@@ -193,6 +194,9 @@ $(OBJS)\dialogs_colrdlgg.obj: .\..\..\src\generic\colrdlgg.cpp
$(OBJS)\dialogs_dirdlgg.obj: .\..\..\src\generic\dirdlgg.cpp
$(CXX) -q -c -P -o$@ $(DIALOGS_CXXFLAGS) $**
+$(OBJS)\dialogs_filedlgg.obj: .\..\..\src\generic\filedlgg.cpp
+ $(CXX) -q -c -P -o$@ $(DIALOGS_CXXFLAGS) $**
+
$(OBJS)\dialogs_fontdlgg.obj: .\..\..\src\generic\fontdlgg.cpp
$(CXX) -q -c -P -o$@ $(DIALOGS_CXXFLAGS) $**
diff --git a/samples/dialogs/makefile.gcc b/samples/dialogs/makefile.gcc
index e0e3d55e25..c9751c1010 100644
--- a/samples/dialogs/makefile.gcc
+++ b/samples/dialogs/makefile.gcc
@@ -110,6 +110,7 @@ ifeq ($(WXUNIV),0)
____GENERIC_FILES_FILENAMES_OBJECTS = \
$(OBJS)\dialogs_colrdlgg.o \
$(OBJS)\dialogs_dirdlgg.o \
+ $(OBJS)\dialogs_filedlgg.o \
$(OBJS)\dialogs_fontdlgg.o
endif
ifeq ($(MONOLITHIC),0)
@@ -191,6 +192,9 @@ $(OBJS)\dialogs_colrdlgg.o: ./../../src/generic/colrdlgg.cpp
$(OBJS)\dialogs_dirdlgg.o: ./../../src/generic/dirdlgg.cpp
$(CXX) -c -o $@ $(DIALOGS_CXXFLAGS) $<
+$(OBJS)\dialogs_filedlgg.o: ./../../src/generic/filedlgg.cpp
+ $(CXX) -c -o $@ $(DIALOGS_CXXFLAGS) $<
+
$(OBJS)\dialogs_fontdlgg.o: ./../../src/generic/fontdlgg.cpp
$(CXX) -c -o $@ $(DIALOGS_CXXFLAGS) $<
diff --git a/samples/dialogs/makefile.vc b/samples/dialogs/makefile.vc
index 9769487feb..6c905c6c14 100644
--- a/samples/dialogs/makefile.vc
+++ b/samples/dialogs/makefile.vc
@@ -207,6 +207,7 @@ __DLLFLAG_p_1 = /d WXUSINGDLL
____GENERIC_FILES_FILENAMES_OBJECTS = \
$(OBJS)\dialogs_colrdlgg.obj \
$(OBJS)\dialogs_dirdlgg.obj \
+ $(OBJS)\dialogs_filedlgg.obj \
$(OBJS)\dialogs_fontdlgg.obj
!endif
!if "$(MONOLITHIC)" == "0"
@@ -277,6 +278,9 @@ $(OBJS)\dialogs_colrdlgg.obj: .\..\..\src\generic\colrdlgg.cpp
$(OBJS)\dialogs_dirdlgg.obj: .\..\..\src\generic\dirdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(DIALOGS_CXXFLAGS) $**
+$(OBJS)\dialogs_filedlgg.obj: .\..\..\src\generic\filedlgg.cpp
+ $(CXX) /c /nologo /TP /Fo$@ $(DIALOGS_CXXFLAGS) $**
+
$(OBJS)\dialogs_fontdlgg.obj: .\..\..\src\generic\fontdlgg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(DIALOGS_CXXFLAGS) $**
diff --git a/samples/dialogs/makefile.wat b/samples/dialogs/makefile.wat
index 2e0f37fc0b..152eceb55f 100644
--- a/samples/dialogs/makefile.wat
+++ b/samples/dialogs/makefile.wat
@@ -115,6 +115,7 @@ ____GENERIC_FILES_FILENAMES_OBJECTS =
____GENERIC_FILES_FILENAMES_OBJECTS = &
$(OBJS)\dialogs_colrdlgg.obj &
$(OBJS)\dialogs_dirdlgg.obj &
+ $(OBJS)\dialogs_filedlgg.obj &
$(OBJS)\dialogs_fontdlgg.obj
!endif
__WXLIB_ADV_p =
@@ -231,6 +232,9 @@ $(OBJS)\dialogs_colrdlgg.obj : .AUTODEPEND .\..\..\src\generic\colrdlgg.cpp
$(OBJS)\dialogs_dirdlgg.obj : .AUTODEPEND .\..\..\src\generic\dirdlgg.cpp
$(CXX) -zq -fo=$^@ $(DIALOGS_CXXFLAGS) $<
+$(OBJS)\dialogs_filedlgg.obj : .AUTODEPEND .\..\..\src\generic\filedlgg.cpp
+ $(CXX) -zq -fo=$^@ $(DIALOGS_CXXFLAGS) $<
+
$(OBJS)\dialogs_fontdlgg.obj : .AUTODEPEND .\..\..\src\generic\fontdlgg.cpp
$(CXX) -zq -fo=$^@ $(DIALOGS_CXXFLAGS) $<