Commit Graph

129 Commits

Author SHA1 Message Date
Vadim Zeitlin
3e4f133a43 Initialize wxGenericProgressDialog button members in Init() too.
wxGenericProgressDialog::m_btn{Abort,Skip} were not initialized neither which
resulted in crashes inside EnableAbort() which was called if the "Cancel"
button was pressed in a native MSW dialog but the dialog wasn't cancelled (and
hence the button needed to be reenabled).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-10 17:26:11 +00:00
Vadim Zeitlin
2de77c6a54 Fix errors in handling of maximum field in wxGenericProgressDialog.
Provide a SetMaximum() function for setting just m_maximum and return its
value from GetRange() instead of using m_gauge->GetRange() which doesn't work
when the native MSW version is used nor when the range is > USHRT_MAX under
MSW in any case.

More generally, this should fix a lot of bugs for progress dialogs using such
range as the values were not interpreted correctly in many places.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65506 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-10 17:25:58 +00:00
Vadim Zeitlin
e77570de2e Don't use wxGenericProgressDialog::m_windowStyle for wxPD_XXX styles.
Storing progress dialog styles in the normal window style didn't work because
they clashed with the TLW styles. The original progress dialog implementation
worked around this by using separate m_has{Abort,Skip}Button variables instead
of relying on wxPD_CAN_{ABORT,SKIP} style bits but this didn't work for the
other styles and was unclear so the new native MSW implementation blithely
used m_windowStyle to test or them and other bits which didn't work at all,
see #12416.

Solve this by using a separate m_pdStyle variable for storing the progress
dialog styles and use it for all wxPD_XXX tests in both the generic and MSW
code. This fixes some bugs (although not all of them yet) and allows to get
rid of m_has{Abort,Skip}Button.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-10 17:25:28 +00:00
Vadim Zeitlin
7ad8a38ae5 Create temporary wxEventLoop in wxGenericProgressDialog if needed.
wxGenericProgressDialog needs to have an active event loop in order to repaint
itself and process clicks on its buttons but it's more helpful to create a
temporary event loop if there is no currently active one instead of just
asserting. In particular, this allows to use wxProgressDialog from overridden
wxApp::OnInit().

Add temporary event loop creation and remove the now unnecessary asserts
verifying that there is an active event loop as there always will be one.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65499 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-10 11:44:46 +00:00
Vadim Zeitlin
79e58a409e Initialize wxGenericProgressDialog::m_winDisabler properly.
This field wasn't initialized by Init() which might have been harmless
considering the current code structure but still untidy, do set it to NULL
there.

Also move the forward declaration of wxWindowDisabler class in
wx/generic/progdlgg.h to the top of the file for consistency with the other
forward declarations.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65498 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-10 11:44:40 +00:00
Vadim Zeitlin
c31d9c7f60 Use task dialog for wxProgressDialog implementation in wxMSW.
If available, the task dialog is now used for the wxProgressDialog under
Windows. This provides a much more native looking dialog which doesn't look
out of place under modern Windows versions, unlike the generic implementation.

The internals of the code had to be significantly changed as the task dialog
can only be shown modally so, to emulate wxProgressDialog modeless nature, a
separate thread is used for the progress dialog management.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65352 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-18 22:49:02 +00:00
Francesco Montorsi
6333ffcca0 add a spacer in case the progress dialog is built without labels (elapsed/estimated/remaining) time nor buttons
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65114 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-26 10:28:36 +00:00
Vadim Zeitlin
5276b0a53c Use wxDELETE() and wxDELETEA() when possible.
Use wxDELETE[A]() functions which automatically NULL out their arguments after
deleting them instead of doing it manually.

Closes #9685.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 18:18:23 +00:00
Vadim Zeitlin
80d7019761 Remove unused GetTextExtent() call from wxProgressDialog.
This seems to be a left-over from the old, manual positioning code. As we use
sizers now, it's not needed any more.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-02 11:58:16 +00:00
Vadim Zeitlin
86417abf07 Fix for user input processing in wxProgressDialog.
Yield for input event processing before updating the dialog instead of doing
it after this as the latter apparently doesn't always work.

Closes #10645.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-22 16:14:11 +00:00
Vadim Zeitlin
f994a8ac8d Add wxProgressDialog::Was{Cancelled,Skipped}() convenience methods.
Although the information about "Cancel" and "Skip" buttons presses is returned
from Update(), sometimes it may be more convenient to ask the dialog about
whether it was cancelled or skipped instead of storing it in the program
itself.

Add the methods which allow to check for this.

Closes #10903.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-20 11:10:33 +00:00
Vadim Zeitlin
cdc48273b4 Fix bug with using uninitialized flags in GetParentForModalDialog().
GetParentForModalDialog() was called from the ctor initialized list before
m_windowStyle could be initialized by the base class ctor in several different
places, meaning that the check for wxDIALOG_NO_PARENT in this function was
using uninitialized variable.

Fix this by passing the style parameter explicitly to this function to allow
using it from derived class ctors. Still keep an overload which uses the
actual window parent and flags which is simpler to use for later calls to this
function.

Thanks valgrind for finding this one.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-18 00:05:37 +00:00
Francesco Montorsi
ed1288eef0 add wxProgressDialog::SetRange() function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-01 23:19:25 +00:00
Vadim Zeitlin
3b2fb7a165 don't change the dialog size when updating the message; document that this is intentional (see #10624)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-23 12:31:26 +00:00
Francesco Montorsi
8f13981070 document wxProgressDialog::Update(maximumValue) behaviour and warn the user that it may generate unwanted re-entrancies because of wxDialog::ShowModal()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-08 12:08:39 +00:00
Francesco Montorsi
33957ef519 wxCHECK that there is an active event loop before using wxEventLoopBase::GetActive() pointer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-19 23:45:23 +00:00
Francesco Montorsi
977a41ec3e use YieldFor() in wxTopLevelWindowGTK::RequestUserAttention; comment on the use of YieldFor() in wxProgressDialog; add some TODOs near wxYieldIfNeeded()/wxSafeYield() calls in wxListCtrl, wxDataViewCtrl, wxTreeCtrl (closes #10320)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-15 15:42:15 +00:00
Francesco Montorsi
dde19c2180 second part of #10320: move wxApp event handling functions to wxEventLoopBase (in particular move Yield() functions); add backward compatible redirections to wxApp; update docs; remove global lists wxPendingEvents and wxPendingEventsLocker
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-15 14:25:08 +00:00
Francesco Montorsi
731bcffc6a fix no-PCH builds for wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-04 21:17:02 +00:00
Francesco Montorsi
d48b06bd90 check in the 'selective yield' patch (see ticket #10320):
- implements YieldFor() with event filtering for wxMSW and wxGTK,
  adds TODO markers in other ports;
- replaces wxYield() in GTK's clipboard code with a wxTheApp->YieldFor() call, thus fixing possible reentrancies 
(and modifies clipboard sample to test synchronous IsSupported calls)
- replaces wxYieldIfNeeded() calls in wxProgressDialog with wxTheApp->YieldFor() calls, so that it processes only 
UI/user-input events, thus fixing the race condition visible in the "thread" sample
- documents the new functions


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-04 17:42:28 +00:00
Vadim Zeitlin
d3b9f782ef don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Francesco Montorsi
f62c55815f use HasFlag(wxXX) instead of GetWindowStyle() & wxXX; it's more readable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 10:15:28 +00:00
Francesco Montorsi
c0b25bb258 call Fit() when updating the message label to adapt to longer (or much shorter) labels
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57108 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-04 15:37:20 +00:00
Francesco Montorsi
af237ae405 add GetValue,GetRange and GetMessage helpers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57075 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-02 18:35:24 +00:00
Vadim Zeitlin
5c69ef61f3 fix some of icc 11.0 warnings and disable a few others
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-16 14:24:13 +00:00
Vadim Zeitlin
e54266add7 fix some unused variables warnings reported by Borland
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-08 14:48:59 +00:00
Vadim Zeitlin
695f550bfa use wxFlexGridSizer for layout of the labels in the progress dialog (patch 1829312); minor cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51038 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-06 15:05:57 +00:00
Vadim Zeitlin
9d55bfef2c don't use 8 bit characters in sources, this results in level 1 warning with VC8 (patch 1841741)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-03 22:09:26 +00:00
Vadim Zeitlin
6f457a7735 don't make the dialog 3 times as wide as the length of the label string, this is excessive (bug 1824673)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-02 16:11:08 +00:00
Vadim Zeitlin
c4c6ada953 remove the unneeded +1 from wxGauge::SetValue() call in Update()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-06 12:11:08 +00:00
Paul Cornett
e8a301af2e build fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-05 17:54:57 +00:00
Vadim Zeitlin
2229243bdf added wxDialog::GetParentForModalDialog() and use it to try to always create modal dialogs with a parent (slightly modified patch 1702962)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-22 20:34:41 +00:00
Julian Smart
6714afd94c Correct too-small size when the progress dialog is very simple
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-06 10:06:56 +00:00
Vadim Zeitlin
f4aa7ec32b small refactoring to avoid code duplication; renamed wxProgressDialog::UpdatePulse() to just Pulse(); added test for it in the dialogs sample (part of the patch 1551409 which somehow wasn't applied before)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-22 21:08:11 +00:00
Robert Roebling
fe8635a7e7 Applied wxGauge:Pulse() patch.
[ 1551409 ] Support for indeterminate mode gauges


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-09 13:36:54 +00:00
Włodzimierz Skiba
9eddec696f Include wx/settings.h according to precompiled headers of wx/wx.h (with other minor cleaning).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39310 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-24 07:16:32 +00:00
Michael Wetherell
8d7eaf9140 Warning fixes for VC5 (Igor Korot)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-02-12 12:16:56 +00:00
Mart Raudsepp
8907154c1a Nuke #pragma implementation/interface's
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Włodzimierz Skiba
60ad766eb5 [1178593] Outdated exclamation mark.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33413 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-04-07 14:52:22 +00:00
Julian Smart
94f5392355 Standard dialogs becoming useable on WinCE.
Make standard button sizer horizontal on WinCE since
vertically it looks atrocious (app will need to reduce
number of buttons if they don't fit)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32095 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-16 15:37:09 +00:00
Włodzimierz Skiba
9a2256da18 Use stock labels for Smartphone.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-01-06 12:22:06 +00:00
Włodzimierz Skiba
69c695466d Removed all duplicated and complicated #ifdefs for enabling Skip and Abort in progress dialog (Smartphone fixes).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-01-05 18:37:42 +00:00
Włodzimierz Skiba
3786ce5ad8 GCC warning fix.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-01-03 14:20:53 +00:00
Włodzimierz Skiba
ecda94753a wxPD_CAN_SKIP for skipping parts of progress and reintroduced wxPD_SMOOTH after removal of modal dialog flag.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31193 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-30 15:07:28 +00:00
Włodzimierz Skiba
9a35701127 Hardware defines spec.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-28 17:29:37 +00:00
Włodzimierz Skiba
d2cdad17e3 Smartphone native look and feel.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-23 08:39:47 +00:00
Jouk Jansen
ce07cd8a75 Committing in .
Changes to make compilations on OpenVMS work:
    displayx11.h : one semicolon removed, since it is not needed
    progdlgg.cpp : On some systems (like OpenVMS) unsigned types are realy
                   unsigned. So a comparison unsigned_var < 0 is always
                   false and causes unreacheable code, which is flagged
                   by the compiler. In this case a change from unsigned long
                   to long was more what was intended here.
 Modified Files:
 	wxWidgets/include/wx/unix/displayx11.h
 	wxWidgets/src/generic/progdlgg.cpp
 ----------------------------------------------------------------------


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-22 06:29:21 +00:00
Vadim Zeitlin
837adaa922 don't assert if Update(m_maximum) is called twice (replaces patch 995186)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29163 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-16 22:06:55 +00:00
Vadim Zeitlin
2c5ef4e2cb smoother time estimation updates in wxProgressDialog (patch 992813)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29162 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-16 22:04:38 +00:00
Václav Slavík
5f7bcb48fd new stock buttons API
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-08-30 14:42:51 +00:00