From 449110cd746414d5f77db428babe20b84720c73a Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Sat, 19 Jul 2003 17:46:33 +0000 Subject: [PATCH] Added minimal file dialog for SmartPhone Use wxSYSTEM_MENU to get X symbol on PocketPC git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22114 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/features.h | 12 ++++ include/wx/msw/setup0.h | 3 + include/wx/msw/wince/setup.h | 3 + samples/minimal/minimal.cpp | 2 +- src/common/cmndata.cpp | 2 +- src/msw/colordlg.cpp | 2 +- src/msw/filedlg.cpp | 2 +- src/msw/wince/filedlgwce.cpp | 134 +++++++++++++++++++++++++++++++++++ 8 files changed, 156 insertions(+), 4 deletions(-) create mode 100644 src/msw/wince/filedlgwce.cpp diff --git a/include/wx/features.h b/include/wx/features.h index 49deed180e..4324e61fde 100644 --- a/include/wx/features.h +++ b/include/wx/features.h @@ -46,5 +46,17 @@ #undef wxHAS_CRASH_REPORT #endif +// Hopefully we can emulate these dialogs in due +// course +#if wxUSE_SMARTPHONE + +# ifdef wxUSE_COLOURDLG +# undef wxUSE_COLOURDLG +# define wxUSE_COLOURDLG 0 +# endif + +#endif + + #endif // _WX_FEATURES_H_ diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h index d130d0ca25..860e7d94ab 100644 --- a/include/wx/msw/setup0.h +++ b/include/wx/msw/setup0.h @@ -1043,6 +1043,9 @@ // (notably, wxNotebook pages) #define wxUSE_UXTHEME_AUTO 1 +// Set to 1 to if you're developing for MS SmartPhone +#define wxUSE_SMARTPHONE 0 + // ---------------------------------------------------------------------------- // obsolete settings // ---------------------------------------------------------------------------- diff --git a/include/wx/msw/wince/setup.h b/include/wx/msw/wince/setup.h index d28de5227b..5371f84408 100644 --- a/include/wx/msw/wince/setup.h +++ b/include/wx/msw/wince/setup.h @@ -1047,6 +1047,9 @@ // (notably, wxNotebook pages) #define wxUSE_UXTHEME_AUTO 0 +// Set to 1 to if you're developing for MS SmartPhone +#define wxUSE_SMARTPHONE 0 + // ---------------------------------------------------------------------------- // obsolete settings // ---------------------------------------------------------------------------- diff --git a/samples/minimal/minimal.cpp b/samples/minimal/minimal.cpp index d6ab0abbfe..21de2655b9 100644 --- a/samples/minimal/minimal.cpp +++ b/samples/minimal/minimal.cpp @@ -122,7 +122,7 @@ bool MyApp::OnInit() // create the main application window MyFrame *frame = new MyFrame(_T("Minimal wxWindows App"), #ifdef __WXWINCE__ - wxPoint(0, 0), wxDefaultSize, wxNO_BORDER); + wxPoint(0, 0), wxDefaultSize, wxNO_BORDER|wxSYSTEM_MENU); #else wxPoint(50, 50), wxSize(450, 340)); #endif diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp index 6e09c357b5..f9ecd46ff9 100644 --- a/src/common/cmndata.cpp +++ b/src/common/cmndata.cpp @@ -51,7 +51,7 @@ #include #include "wx/msw/private.h" - #ifdef __WXWINCE__ + #if defined(__WXWINCE__) && !wxUSE_SMARTPHONE #include #endif diff --git a/src/msw/colordlg.cpp b/src/msw/colordlg.cpp index 3e9571bc9e..e3a124210c 100644 --- a/src/msw/colordlg.cpp +++ b/src/msw/colordlg.cpp @@ -42,7 +42,7 @@ #include "wx/msgdlg.h" #endif -#if wxUSE_COLOURDLG +#if wxUSE_COLOURDLG && !wxUSE_SMARTPHONE #include "wx/msw/private.h" #include "wx/colordlg.h" diff --git a/src/msw/filedlg.cpp b/src/msw/filedlg.cpp index bca53ff1a5..017b3fc981 100644 --- a/src/msw/filedlg.cpp +++ b/src/msw/filedlg.cpp @@ -28,7 +28,7 @@ #pragma hdrstop #endif -#if wxUSE_FILEDLG +#if wxUSE_FILEDLG && !wxUSE_SMARTPHONE #ifndef WX_PRECOMP #include "wx/utils.h" diff --git a/src/msw/wince/filedlgwce.cpp b/src/msw/wince/filedlgwce.cpp new file mode 100644 index 0000000000..218f15e5dc --- /dev/null +++ b/src/msw/wince/filedlgwce.cpp @@ -0,0 +1,134 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: src/msw/wince/filedlgwce.cpp +// Purpose: wxFileDialog for WinCE (SmartPhone) +// Author: Julian Smart +// Modified by: +// Created: 01/02/97 +// RCS-ID: $Id$ +// Copyright: (c) Julian Smart +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +#ifdef __GNUG__ + #pragma implementation "filedlg.h" +#endif + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// Only use this for MS SmartPhone. Use standard file dialog +// for Pocket PC. + +#if wxUSE_FILEDLG && wxUSE_SMARTPHONE + +#ifndef WX_PRECOMP + #include "wx/utils.h" + #include "wx/msgdlg.h" + #include "wx/dialog.h" + #include "wx/filedlg.h" + #include "wx/filefn.h" + #include "wx/intl.h" + #include "wx/log.h" + #include "wx/app.h" +#endif + +#include "wx/msw/private.h" + +#include +#include + +#include "wx/filename.h" + +// ============================================================================ +// implementation +// ============================================================================ + +// ---------------------------------------------------------------------------- +// wxWin macros +// ---------------------------------------------------------------------------- + +IMPLEMENT_CLASS(wxFileDialog, wxDialog) + +// ---------------------------------------------------------------------------- +// wxFileDialog +// ---------------------------------------------------------------------------- + +wxFileDialog::wxFileDialog(wxWindow *parent, + const wxString& message, + const wxString& defaultDir, + const wxString& defaultFileName, + const wxString& wildCard, + long style, + const wxPoint& WXUNUSED(pos)) +{ + m_message = message; + m_dialogStyle = style; + if ( ( m_dialogStyle & wxMULTIPLE ) && ( m_dialogStyle & wxSAVE ) ) + m_dialogStyle &= ~wxMULTIPLE; + m_parent = parent; + m_path = wxEmptyString; + m_fileName = defaultFileName; + m_dir = defaultDir; + m_wildCard = wildCard; + m_filterIndex = 0; +} + +void wxFileDialog::GetPaths(wxArrayString& paths) const +{ + paths.Empty(); + + wxString dir(m_dir); + if ( m_dir.Last() != _T('\\') ) + dir += _T('\\'); + + size_t count = m_fileNames.GetCount(); + for ( size_t n = 0; n < count; n++ ) + { + if (wxFileName(m_fileNames[n]).IsAbsolute()) + paths.Add(m_fileNames[n]); + else + paths.Add(dir + m_fileNames[n]); + } +} + +void wxFileDialog::SetPath(const wxString& path) +{ + wxString ext; + wxSplitPath(path, &m_dir, &m_fileName, &ext); + if ( !ext.empty() ) + m_fileName << _T('.') << ext; +} + +int wxFileDialog::ShowModal() +{ + wxWindow* parentWindow = GetParent(); + if (!parentWindow) + parentWindow = wxTheApp->GetTopWindow(); + + wxString str = wxGetTextFromUser(m_message, _("File"), m_fileName, parentWindow); + if (str) + { + m_fileName = str; + m_fileNames.Add(str); + return wxID_OK; + } + else + { + return wxID_CANCEL; + } +} + +#endif // wxUSE_FILEDLG + -- 2.45.2