X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef7823016897c0c04c88019e14f48837764e50be..172541f64be8fcddb08f1c121da256d08c24a70b:/src/msw/dialog.cpp diff --git a/src/msw/dialog.cpp b/src/msw/dialog.cpp index 8ecdaa9680..cda785f0b3 100644 --- a/src/msw/dialog.cpp +++ b/src/msw/dialog.cpp @@ -43,14 +43,16 @@ #include "wx/evtloop.h" #include "wx/ptr_scpd.h" -#if wxUSE_COMMON_DIALOGS && !defined(__WXMICROWIN__) - #include -#endif +#include "wx/msw/wrapcdlg.h" #if defined(__SMARTPHONE__) && defined(__WXWINCE__) #include "wx/msw/wince/resources.h" #endif // __SMARTPHONE__ && __WXWINCE__ +#if wxUSE_TOOLBAR && defined(__POCKETPC__) +#include "wx/toolbar.h" +#endif + // ---------------------------------------------------------------------------- // wxWin macros // ---------------------------------------------------------------------------- @@ -160,6 +162,9 @@ void wxDialog::Init() m_isShown = false; m_modalData = NULL; m_endModalCalled = false; +#if wxUSE_TOOLBAR && defined(__POCKETPC__) + m_dialogToolBar = NULL; +#endif } bool wxDialog::Create(wxWindow *parent, @@ -187,6 +192,9 @@ bool wxDialog::Create(wxWindow *parent, #if defined(__SMARTPHONE__) && defined(__WXWINCE__) SetLeftMenu(wxID_OK, _("OK")); #endif +#if wxUSE_TOOLBAR && defined(__POCKETPC__) + CreateToolBar(); +#endif return true; } @@ -433,6 +441,50 @@ void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& WXUNUSED(event)) Refresh(); } +#ifdef __POCKETPC__ +// Responds to the OK button in a PocketPC titlebar. This +// can be overridden, or you can change the id used for +// sending the event, by calling SetAffirmativeId. +bool wxDialog::DoOK() +{ + wxButton *btn = wxDynamicCast(FindWindow(GetAffirmativeId()), wxButton); + + if ( btn && btn->IsEnabled() ) + { + // If we have this button, press it + btn->MSWCommand(BN_CLICKED, 0 /* unused */); + return true; + } + else + { + wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, GetAffirmativeId()); + event.SetEventObject(this); + + return GetEventHandler()->ProcessEvent(event); + } +} +#endif + +#if wxUSE_TOOLBAR && defined(__POCKETPC__) +// create main toolbar by calling OnCreateToolBar() +wxToolBar* wxDialog::CreateToolBar(long style, wxWindowID winid, const wxString& name) +{ + m_dialogToolBar = OnCreateToolBar(style, winid, name); + + return m_dialogToolBar; +} + +// return a new toolbar +wxToolBar *wxDialog::OnCreateToolBar(long style, + wxWindowID winid, + const wxString& name) +{ + return new wxToolMenuBar(this, winid, + wxDefaultPosition, wxDefaultSize, + style, name); +} +#endif + // --------------------------------------------------------------------------- // dialog window proc // --------------------------------------------------------------------------- @@ -450,17 +502,13 @@ WXLRESULT wxDialog::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lPar { switch ( LOWORD(wParam) ) { -#ifndef __SMARTPHONE__ +#ifdef __POCKETPC__ case IDOK: - wxButton *btn = wxDynamicCast(FindWindow(wxID_CANCEL), wxButton); - if ( btn && btn->IsEnabled() ) - { - // if we do have a cancel button, do press it - btn->MSWCommand(BN_CLICKED, 0 /* unused */); - processed = true; - break; - } -#else // ifdef __SMARTPHONE__ + processed = DoOK(); + if (!processed) + processed = !Close(); +#endif +#ifdef __SMARTPHONE__ case IDM_LEFT: case IDM_RIGHT: processed = HandleCommand( LOWORD(wParam) , 0 , NULL );