Commit Graph

62 Commits

Author SHA1 Message Date
Francesco Montorsi
a0e9a5dfde Implement wx-prefixed macros versions of DECLARE_EVENT_TABLE, BEGIN_EVENT_TABLE* and END_EVENT_TABLE macros.
Implement compatibility aliases for non-prefixed macro names.
Require a final semicolon where possible.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-09 14:28:08 +00:00
Vadim Zeitlin
7f4f5e8c24 Correct wxEVT_AUXn_XXX event types names.
They had a wrong "MOUSE" part in them while "MOUSE" is only used for the event
table macros but not the event types themselves for some reason.

Closes #12095.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64414 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-27 17:07:35 +00:00
Vadim Zeitlin
512220b67b Replace public wxEvtHandler::ProcessEventHere() with private TryHere().
ProcessEventHere() doesn't have to be public any more now that we have
ProcessEventLocally() which is safe to call from the outside (i.e. doesn't
forget about the chained event handlers and validators).

Still keep this function because it makes the code more modular and also
because we might want to make it virtual for consistency with TryBefore() and
TryAfter() later. Also rename it to TryHere() to make the symmetry with these
functions more manifest.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-09 14:55:46 +00:00
Vadim Zeitlin
3cbb9df817 Refactor the event processing code to add ProcessEventLocally().
This new method can be used to only process the event in this handler or any
handlers connected to it (unlike ProcessEventHere() which doesn't follow the
chain at all), without propagating the event upwards (unlike ProcessEvent()).

Unfortunately implementing this required a field to wxEvent but there doesn't
seem to be any other way to do what we need.

There should be no user-visible changes after this commit, it just paves the
way for the upcoming fixes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64261 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-09 14:55:28 +00:00
Vadim Zeitlin
255ea4a702 Call wxEvtHandler::TryBefore() only once from ProcessEvent().
The event pre-processing hooks associated with the window should be called
only once during the event processing, we don't need to call TryBefore() for
each and every event handler associated with the window too.

This makes the code slightly simpler and faster and shouldn't change the
behaviour of any existing code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-09 14:55:21 +00:00
Vadim Zeitlin
7ca106e860 Allow to not create wxPaintDC in EVT_PAINT handler in wxMSW.
Failure to create a wxPaintDC in EVT_PAINT handler resulted in many serious
and difficult to debug problems under wxMSW. We used to document that the user
shouldn't do it but this wasn't enough (see #11648). We could also assert if
we detected that a handler didn't create a wxPaintDC but it seems better to
just handle this case gracefully for consistency with the other platforms.

Add wxDidCreatePaintDC global variable which is reset before generating
wxPaintEvent and set to true when ::BeginPaint() is called from wxPaintDC
ctor and validate the update region of the window ourselves if it wasn't set
(meaning that wxPaintDC wasn't created).

Update the documentation to emphasize the link between EVT_PAINT handlers and
wxPaintDC but without saying that wxPaintDC object must always be created in
the handler as this is not true any more.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-23 13:22:25 +00:00
Václav Slavík
dae60aeebb Add wxThreadEvent::SetPayload<T>().
This makes it possible to easily pass custom data between threads, in
type-safe way (thanks to internal use of wxAny). This adds
sizeof(wxAny)==16+sizeof(void*) overhead to wxThreadEvent, but I think
it's cheaper than doing malloc/free on copying.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63187 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-19 13:01:40 +00:00
Jaakko Salli
eb23d11e00 Added a new documentation overview section 'Caveats When Not Using C++ RTTI', describing possible problems with Bind() and wxAny when C++ RTTI is disabled.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62694 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-21 11:39:32 +00:00
Vadim Zeitlin
fde702ea51 Fix typo in Bind() documentation: s/binded/bound/
Closes #11450.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62672 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-17 14:47:56 +00:00
Vadim Zeitlin
869aa92d4d Explicitly document event types for EVT_CLOSE().
Closes #11445.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-17 14:47:44 +00:00
Vadim Zeitlin
0ddf0ac696 Make wxSizeEvent::GetSize() description more precise.
Mention that it returns the new total (and not client) size of the window.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62620 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-12 13:13:09 +00:00
Mattia Barbon
1058f65203 Copy wxPerl notes from the LaTeX documentation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-18 17:47:01 +00:00
Stefan Csomor
e431dd05ae documenting events that are not available on OSX, closes #10776
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 09:41:39 +00:00
Vadim Zeitlin
4f742042b8 Make WXK_NUMPAD_TAB member of WXK_CATEGORY_TAB.
See #10268.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-23 21:39:32 +00:00
Vadim Zeitlin
7a34307e24 Added wxKeyEvent::IsKeyInCategory() method.
This allows to test whether a given key belongs to the category of e.g. arrow
keys or navigation keys in a more concise and more readable manner.

Closes #10268.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-23 00:32:17 +00:00
Vadim Zeitlin
ab826fd86f don't duplicate wxMouseState in wxMouseEvent but reuse its methods and variables (somehow this was never done when wxMouseState was introduced)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-29 21:42:30 +00:00
Vadim Zeitlin
ff3fd98a08 remove semicolon from wxDECLARE_EVENT; having it there was inconsistent with other wxXXX_EVENT macros and generally unexpected
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60137 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-14 12:47:46 +00:00
Vadim Zeitlin
04a7eed137 update documentation for Bind() (closes #10594)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-29 12:53:54 +00:00
Francesco Montorsi
9de71074ec wxEvtHandler derives from wxTrackable, too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-23 00:26:17 +00:00
Francesco Montorsi
cae9e7b169 add wxAppConsoleBase::DeletePendingEvents and wxEvtHandler::DeletePendingEvents.
Fix wxAppConsoleBase::Suspend/ResumeProcessingOfPendingEvents: locking the mutex does not prevent wxAppConsoleBase::ProcessPendingEvents from running if the mutex was locked from the main thread!

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-08 12:58:24 +00:00
Francesco Montorsi
8e40ed8535 move pending event processing back to wxApp (these methods were moved into wxEventLoopBase during YieldFor() refactoring - see #10320): we need to be able to queue events even when there's no event loop running (e.g. wxApp::OnInit)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-02 20:45:22 +00:00
Francesco Montorsi
d455444a8b fix doxygen warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59188 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-27 14:48:27 +00:00
Vadim Zeitlin
8cc208e39f deprecate the old TryValidator/Parent() and replace them with the new and documented TryBefore/After()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59164 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-26 16:16:31 +00:00
Francesco Montorsi
3c99e2fd1b recategorize many misplaced classes; move lots of classes from miscellaneous [window] category to more specific categories; add the 'Book controls' and the 'Application and system configuration' class groups
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-20 11:34:52 +00:00
Francesco Montorsi
22d17afa80 mention wxThreadEvent in wxEVT_CATEGORY_THREAD and in wxEvtHandler::QueueEvent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-19 22:48:43 +00:00
Francesco Montorsi
3a5677401f name wxThreadEvent and YieldFor in wxProgressDialog and in thread overview; update the sample code to use new event macros; minor other changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-18 19:32:00 +00:00
Francesco Montorsi
3051a44a73 make distinction between classes which send events (use @beginEventEmissionTable for them) from event classes (use @beginEventTable for them); add event tables for wxWindow, wxFrame, wxTopLevelWindow, wxApp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-18 17:58:51 +00:00
Bryan Petty
830b7aa7b2 Fix manual references to the events overview after it's page ID was changed in r58712 (VZ).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58978 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-18 00:19:22 +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
4475b41041 update custom event definition documentation; document wxDEFINE/DECLARE_EVENT()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-07 16:07:59 +00:00
Vadim Zeitlin
3e083d652d update/reorganize events overview and changed links to it to reflect the fact that it speaks about events in general and not just about handling them
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-07 15:22:14 +00:00
Francesco Montorsi
74d60f66ee add a wxEventType argument to wxThreadEvent for coherency with other event classes; rewrite its Clone() function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58661 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-04 19:44:55 +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
Robert Roebling
51fbe4cc1d Make wxCheckListBox call event.SetString() on all platforms, not just wxMSW. Mention again, that wxCommandEvent::IsChecked() cannot be used for it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-01 23:43:59 +00:00
Vadim Zeitlin
6c5e1aa764 emphasize that you need to specify eventSink when connecting to a different object method
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58607 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-01 21:15:50 +00:00
Francesco Montorsi
d4624460ec fix doxygen warnings
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-28 00:51:55 +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
a79a6671e4 send destroy events for children before they're fully destroyed; document SendDestroyEvent() and explain when to call it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-21 00:14:30 +00:00
Francesco Montorsi
db82d78bc9 no real change: divide in groups the wxEvtHandler methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58216 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-18 23:28:18 +00:00
Bryan Petty
b21126db7a Replaced @ingroup with @addtogroup for all global func/macros for use with Doxygen 1.5.7+.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-05 20:48:06 +00:00
Francesco Montorsi
c0c5bfad17 document wxEVT_NULL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57679 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-30 23:56:04 +00:00
Francesco Montorsi
cf2918d40e name also QueueEvent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 13:46:31 +00:00
Vadim Zeitlin
92dbce737d mention that mouse events carry position in window coordinates of the window which generated the event (#10274)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57368 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-16 14:52:29 +00:00
Francesco Montorsi
b476cde6d5 formatting change; added @c in front of wxEVT_ constants
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-08 23:21:58 +00:00
Francesco Montorsi
ec6278a141 document GetWheelAxis
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-02 20:51:45 +00:00
Francesco Montorsi
6496345c33 document the main event table macros, wxEventType, wxNewEventType; create a new group_funcmacro_events group
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57070 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-02 16:34:09 +00:00
Vadim Zeitlin
707aaf17c0 better documentation for wxEvent ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-02 12:00:55 +00:00
Francesco Montorsi
3c52ef9423 added note about GetTimestamp() (fixes #1986)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-26 16:13:51 +00:00
Francesco Montorsi
195be56dca provide an example implementation of wxCloseEvent handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-24 00:01:37 +00:00
Francesco Montorsi
bb69632a56 minor fixes; replace references to Windows95 with references to wxMSW where possible
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56885 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-22 00:21:10 +00:00