1. corrected problem with label updating in wxProgressDialog
2. optical fix in wxTipDlg: use wxTE_RICH control to avoid vert scrollbar 3. put wxProgressDialog demo into dialogs sample, seems more appropriate 4. fixed a serious bug in wxProgressDialog when its parent was not a top level window (as in controls sample) 5. fixes in BringWindowToTop() usage in msw/dialog.cpp 6. fixed another serious bug in wxProgressDialog::OnClose() 7. wxDialog restores focus to previously focused window once again 8. attempts at fixing wxBusyCursor with modal dialogs problem - unsuccessful git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -31,6 +31,7 @@
 | 
			
		||||
#include "wx/fontdlg.h"
 | 
			
		||||
#include "wx/choicdlg.h"
 | 
			
		||||
#include "wx/tipdlg.h"
 | 
			
		||||
#include "wx/progdlg.h"
 | 
			
		||||
 | 
			
		||||
#define wxTEST_GENERIC_DIALOGS_IN_MSW 0
 | 
			
		||||
 | 
			
		||||
@@ -65,11 +66,19 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
 | 
			
		||||
#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW
 | 
			
		||||
    EVT_MENU(DIALOGS_CHOOSE_COLOUR_GENERIC,         MyFrame::ChooseColourGeneric)
 | 
			
		||||
    EVT_MENU(DIALOGS_CHOOSE_FONT_GENERIC,           MyFrame::ChooseFontGeneric)
 | 
			
		||||
#endif
 | 
			
		||||
#if wxUSE_PROGRESSDLG
 | 
			
		||||
    EVT_MENU(DIALOGS_PROGRESS,                      MyFrame::ShowProgress)
 | 
			
		||||
#endif
 | 
			
		||||
    EVT_MENU(wxID_EXIT,                             MyFrame::OnExit)
 | 
			
		||||
 | 
			
		||||
    EVT_BUTTON(DIALOGS_MODELESS_BTN,                MyFrame::OnButton)
 | 
			
		||||
END_EVENT_TABLE()
 | 
			
		||||
 | 
			
		||||
BEGIN_EVENT_TABLE(MyModelessDialog, wxDialog)
 | 
			
		||||
    EVT_CLOSE(MyModelessDialog::OnClose)
 | 
			
		||||
END_EVENT_TABLE()
 | 
			
		||||
 | 
			
		||||
MyCanvas *myCanvas = (MyCanvas *) NULL;
 | 
			
		||||
 | 
			
		||||
// `Main program' equivalent, creating windows and returning main app frame
 | 
			
		||||
@@ -116,6 +125,9 @@ bool MyApp::OnInit()
 | 
			
		||||
  file_menu->Append(DIALOGS_FILE_SAVE,  "Sa&ve file\tCtrl-S");
 | 
			
		||||
  file_menu->Append(DIALOGS_DIR_CHOOSE,  "&Choose a directory\tCtrl-D");
 | 
			
		||||
  file_menu->AppendSeparator();
 | 
			
		||||
#if wxUSE_PROGRESSDLG
 | 
			
		||||
  file_menu->Append(DIALOGS_PROGRESS, "Pro&gress dialog\tCtrl-G");
 | 
			
		||||
#endif // wxUSE_PROGRESSDLG
 | 
			
		||||
  file_menu->Append(DIALOGS_MODELESS, "Modeless &dialog\tCtrl-Z", "", TRUE);
 | 
			
		||||
  file_menu->AppendSeparator();
 | 
			
		||||
  file_menu->Append(wxID_EXIT, "E&xit\tAlt-X");
 | 
			
		||||
@@ -453,6 +465,56 @@ void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event) )
 | 
			
		||||
    Close(TRUE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if wxUSE_PROGRESSDLG
 | 
			
		||||
 | 
			
		||||
void MyFrame::ShowProgress( wxCommandEvent& WXUNUSED(event) )
 | 
			
		||||
{
 | 
			
		||||
    static const int max = 10;
 | 
			
		||||
 | 
			
		||||
    wxProgressDialog dialog("Progress dialog example",
 | 
			
		||||
                            "An informative message",
 | 
			
		||||
                            max,    // range
 | 
			
		||||
                            this,   // parent
 | 
			
		||||
                            wxPD_CAN_ABORT |
 | 
			
		||||
                            wxPD_APP_MODAL |
 | 
			
		||||
                            wxPD_ELAPSED_TIME |
 | 
			
		||||
                            wxPD_ESTIMATED_TIME |
 | 
			
		||||
                            wxPD_REMAINING_TIME);
 | 
			
		||||
 | 
			
		||||
    bool cont = TRUE;
 | 
			
		||||
    for ( int i = 0; i <= max && cont; i++ )
 | 
			
		||||
    {
 | 
			
		||||
        wxSleep(1);
 | 
			
		||||
        if ( i == max )
 | 
			
		||||
        {
 | 
			
		||||
            cont = dialog.Update(i, "That's all, folks!");
 | 
			
		||||
        }
 | 
			
		||||
        else if ( i == max / 2 )
 | 
			
		||||
        {
 | 
			
		||||
            cont = dialog.Update(i, "Only a half left (very long message)!");
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            cont = dialog.Update(i);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ( !cont )
 | 
			
		||||
    {
 | 
			
		||||
        wxLogStatus("Progress dialog aborted!");
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        wxLogStatus("Countdown from %d finished", max);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // wxUSE_PROGRESSDLG
 | 
			
		||||
 | 
			
		||||
// ----------------------------------------------------------------------------
 | 
			
		||||
// MyCanvas
 | 
			
		||||
// ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event) )
 | 
			
		||||
{
 | 
			
		||||
    wxPaintDC dc(this);
 | 
			
		||||
@@ -473,3 +535,16 @@ MyModelessDialog::MyModelessDialog(wxWindow *parent)
 | 
			
		||||
    Fit();
 | 
			
		||||
    Centre();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MyModelessDialog::OnClose(wxCloseEvent& event)
 | 
			
		||||
{
 | 
			
		||||
    if ( event.CanVeto() )
 | 
			
		||||
    {
 | 
			
		||||
        wxMessageBox("Use the menu item to close this dialog",
 | 
			
		||||
                     "Modeless dialog",
 | 
			
		||||
                     wxOK | wxICON_INFORMATION, this);
 | 
			
		||||
 | 
			
		||||
        event.Veto();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user