Francesco Montorsi
8bd9fa338e
PCH-less build fix by Tim S
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-15 19:34:58 +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
Vadim Zeitlin
9b11752c4f
require semicolon after wxDECLARE/DEFINE_EVENT() ( closes #10456 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-07 18:59:25 +00:00
Francesco Montorsi
43c8c1f310
fix wxThreadEvent linking in shared builds
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58659 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-04 18:35:18 +00:00
Francesco Montorsi
f6a3e0bad5
fix the new wxThreadEvent class adopting the new type-safe conventions for event classes
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-04 17:49:22 +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
664e13143e
renamed wx/ptr_shrd.h to wx/sharedptr.h; split wx/ptr_scpd.h in wx/scopedptr.h and wx/scopedarray.h; extracted common parts into new wx/checkeddelete.h
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-03 12:01:46 +00:00
Vadim Zeitlin
f3ff831f3b
Changes to template Connect() to make it compile with MSVC7 and possible other
...
not quite up-to-date compilers, to reduce repetitions and to allow using
methods of non-wxEvtHandler-derived classes as event callbacks:
1. Don't rely on compiler ability to deduce template parameter from the type
of a parameter of a function used as another template parameter, at least
MSVC7 can't do this and it's probably not the only one.
2. Do rely on compiler support for partial specialization to make
wxEventFunctorMethod compile for non-wxEvtHandler-derived handlers while
still keeping the old functionality for the wxEvtHandler-derived ones.
3. Don't make any difference between functions and functors, both are callable
objects so use them as such, this allows to fold code for both cases.
4. Avoid the use of dynamic_cast<>.
5. Several naming changes:
a) wxTypedEventType -> wxEventTypeTag (because this is what it is)
b) Subscribe/Unsubscribe -> DoConnect/Disconnect (to follow the usual
convention of public Foo calling private DoFoo and to avoid using up
another name)
c) Derived -> ObjClass (because it's not clear what does Derived mean)
6. Extend the unit test to cover more cases.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-02 20:38:56 +00:00
Vadim Zeitlin
dca9410337
fix wxEVT_SPIN_XXX definitions in a nicer (compatible with new events) way
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58313 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-23 00:30:41 +00:00
Francesco Montorsi
7f853dd046
fix wxWindow::PushEventHandler and related wxWindow functions for the stack management; currently they don't work well when passing event handlers which are part of an event handler chain (see wx-dev thread 'wxWindow event handler stack'); implement wxEvtHandler Unlink() and IsUnlinked() functions and document them; revise docs of all involved functions of both wxEvtHandler and wxWindow, adding images for better explanations
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58291 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-22 11:53:09 +00:00
Vadim Zeitlin
29de6f400c
ensure that ProcessEvent() is called for all the event handlers, not just the first one in event handlers list
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-16 16:07:16 +00:00
Vadim Zeitlin
03f3617bf3
fix VC6 ICE; don't call the function which doesn't compare the objects operator==() (see #10000 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 16:51:14 +00:00
Vadim Zeitlin
3c77890141
add more flexible and safer template Connect() overloads ( #10000 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 14:26:13 +00:00
Francesco Montorsi
079f4130b8
no real change: rename wxPendingEvents to wxHandlersWithPendingEvents since its current name is misleading; that's not a list of events but a list of event handlers
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-28 19:30:43 +00:00
Francesco Montorsi
c9c1faa490
use wxEventType coherently with the docs
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-09 16:44:56 +00:00
Vadim Zeitlin
a715b99070
fix race condition which could result in assert failures in debug builds and infinite loops in release ( #9094 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-08 22:41:10 +00:00
Vadim Zeitlin
5c33522fca
replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Vadim Zeitlin
e822d1bd5f
fix more Borland release build warnings about unused variable/code without effect
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-20 10:30:49 +00:00
Vadim Zeitlin
3232da9d90
work around Borland compilation errors
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-20 09:00:19 +00:00
Vadim Zeitlin
7ce2fb7139
reverted r55167, see #9854
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55832 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-24 13:38:53 +00:00
Vadim Zeitlin
358e9f2f72
fix the event handling in presence of pushed event handlers broken by r55784 ( closes #9992 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55795 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-22 14:11:40 +00:00
Vadim Zeitlin
25250d335f
extracted the part of ProcessEvent() which is repeated multiple times during the handling of a single event in the new ProcessEventHere() method; this ensures that wxApp::FilterEvent() is not called multiple times for the same event unnecessarily
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-22 00:08:28 +00:00
Vadim Zeitlin
0e0977894a
make wxKeyEvent and wxMouseEvent derive from the same wxKeyboardState object (indirectly via wxMouseState in the case of the latter) to make Get/HasModifiers() available in wxMouseEvent as well while avoiding code duplication
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55745 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-19 18:41:41 +00:00
Robert Roebling
de2fcf0332
#9854 (AddPendingEvent - protect during wxEvtHandler destruction)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55167 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-22 09:18:30 +00:00
Robert Roebling
ae8eee38f4
Disable disabling wxWeakRef<T>
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-02 18:07:06 +00:00
Vadim Zeitlin
c3f941621e
added wxQueueEvent() avoiding the bug of wxPostEvent() with the events having wxString fields
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-28 18:49:42 +00:00
Vadim Zeitlin
1512f0f7d8
lock wxPendingEventsLocker when deleting the handler from wxPendingEvents (patch 1925946)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52860 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-27 19:13:58 +00:00
Vadim Zeitlin
8cd6a9ad50
added wxSpinCtrlDouble (slightly modified patch 1835864)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52612 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-18 14:04:19 +00:00
Vadim Zeitlin
886274c6f9
don't track handlers connected to this object itself (patch 1899730)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-27 17:54:44 +00:00
Vadim Zeitlin
4732e2dca9
add wxUSE_WEAKREF (modified partially applied patch 1870445)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-09 14:40:26 +00:00
Vadim Zeitlin
d102b02a88
only define wxEventPtr in wxBase, not wxCore
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-27 12:57:04 +00:00
Vadim Zeitlin
47b6fabc7d
delete the event object in ProcessPendingEvents() even if the handler throws an exception (bug 1836010)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-26 23:18:30 +00:00
Vadim Zeitlin
cc6ceca789
improvements to wxWeakRef and related classes
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-13 01:12:13 +00:00
Paul Cornett
364ab6cc8a
build fix for !wxUSE_THREADS
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-10 06:00:22 +00:00
Robert Roebling
2ef989c972
Last part from weak ref patch for event sink disconnection
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-08 17:57:27 +00:00
Vadim Zeitlin
8ebec7dcd8
clean up wxEvtHandler::m_eventsLocker weirdness: there is no need to allocate it dynamically (as it's always done anyhow), this removes the need for ClearEventLocker() and OS/2 #ifdefs
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-05 19:07:52 +00:00
Vadim Zeitlin
19c4d91638
process one event at once in wxEvtHandler::ProcessPendingEvents() to prevent crashes when a (pending) event handler destroys the event handler object itself; only add the event handler to wxPendingEvents list if it's not already there (and explicitly mention that an object can be present in this list only once in the comment) (replaces patch 1837719)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-05 17:29:20 +00:00
Robert Roebling
ad684023c5
Remove old event type compatibility
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50857 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-20 11:24:44 +00:00
Paul Cornett
204abcd474
remove unneccessary header dependencies on wx/thread.h
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50443 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-03 02:55:14 +00:00
Václav Slavík
937013e0fd
1. added wxEvtHandler::SafelyProcessEvent() and wxWindow::HandleWindowEvent() to correctly handle exceptions in even handlers in wxGTK
...
2. use HandleWindowEvent() everywhere as more obvious and convenient shortcut for GetEventHandler()->ProcessEvent(); also for consistency with wxGTK where it's required
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-29 17:00:58 +00:00
Vadim Zeitlin
8866abbb17
add wxMouseEvent::GetClickCount() and implement it for wxMac
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49528 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-29 22:31:18 +00:00
Vadim Zeitlin
caf12a7917
removed wxEVT_POWER which wasn't declared nor used anywhere anyhow
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48858 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-21 11:22:02 +00:00
Julian Smart
aa767a4521
Added EVT_MOVE_START, EVT_MOVE_END (wxMSW only for now)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-01 15:34:48 +00:00
Vadim Zeitlin
01101e2da6
added support for 2 extra mouse buttons (patch 1757630)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-29 01:04:33 +00:00
Vadim Zeitlin
a8ff046ba9
fixes for building wxMSW with --disbale-all-features
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-21 02:05:03 +00:00
Vadim Zeitlin
21dffed2f6
don't bubble up the events upwards the window hierarchy in non-last event handler in the event handlers chain as this results in passing the event more than once to the parent (and, indirectly, to wxApp)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-09 14:48:48 +00:00
Vadim Zeitlin
76bfdc9ad9
changed AddPendingEvent() to take const wxEvent reference, it doesn't need to modify it
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-21 21:56:50 +00:00
Vadim Zeitlin
a0826b119e
disable clearing event tables by default, only do it if wxUSE_MEMORY_TRACING is used: this fixes the problems with events not being dispatched correctly when the library is reinitialized
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46201 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-24 23:53:05 +00:00
Vadim Zeitlin
b46b1d59d6
implement event loop for console applications (heavily modified patch 1715735)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-14 23:43:39 +00:00
Vadim Zeitlin
3c448b2e88
fix for wxUSE_STL=1 build with MSVC8 with _HAS_ITERATOR_DEBUGGING==0 (patch 1712215)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-12 18:17:08 +00:00