mirror of https://github.com/PCSX2/pcsx2.git
Updated wxWidgets Coding Strategies (markdown)
parent
954ca419c9
commit
6c88411e9b
|
@ -61,27 +61,27 @@ There are several ways to send events between windows in wxWidgets, and only one
|
||||||
```C++
|
```C++
|
||||||
// This method ensures cross-platform consistency and thread safety, but cannot be
|
// This method ensures cross-platform consistency and thread safety, but cannot be
|
||||||
// used to get a return code.
|
// used to get a return code.
|
||||||
myWidget->GetEventHandler()->AddPendingEvent( evt );
|
myWidget->GetEventHandler()->AddPendingEvent( evt );
|
||||||
|
|
||||||
// This one performs an immediate handling of the event, and should only be used
|
// This one performs an immediate handling of the event, and should only be used
|
||||||
// if you need a return code, or know for sure the caller is on the Main/GUI thread
|
// if you need a return code, or know for sure the caller is on the Main/GUI thread
|
||||||
myWidget->GetEventHandler()->ProcessEvent( evt );
|
myWidget->GetEventHandler()->ProcessEvent( evt );
|
||||||
|
|
||||||
// The wxApp class does not have a GetEventHandler() so for it you use this:
|
// The wxApp class does not have a GetEventHandler() so for it you use this:
|
||||||
wxGetApp()->AddPendingEvent( evt ); // safe from any thread
|
wxGetApp()->AddPendingEvent( evt ); // safe from any thread
|
||||||
wxGetApp()->PocessEvent( evt ); // safe form GUI thread only
|
wxGetApp()->PocessEvent( evt ); // safe form GUI thread only
|
||||||
```
|
```
|
||||||
This can be a bit confusing because wx has several other options for sending events, and most of them have caveats as noted below:
|
This can be a bit confusing because wx has several other options for sending events, and most of them have caveats as noted below:
|
||||||
```C++
|
```C++
|
||||||
// This one works but is depreciated, and can lead to cross-platform inconsistencies:
|
// This one works but is depreciated, and can lead to cross-platform inconsistencies:
|
||||||
myWidget->AddPendingEvent( evt );
|
myWidget->AddPendingEvent( evt );
|
||||||
|
|
||||||
// This one has the same problem as above.
|
// This one has the same problem as above.
|
||||||
wxPostEvent( myWidget, evt );
|
wxPostEvent( myWidget, evt );
|
||||||
|
|
||||||
// This one actually works correctly, but might as well just use the more direct
|
// This one actually works correctly, but might as well just use the more direct
|
||||||
// example of myWidget->GetEventHandler()->AddPendingEvent( evt );
|
// example of myWidget->GetEventHandler()->AddPendingEvent( evt );
|
||||||
wxPostEvent( myWidget->GetEventHandler(), evt );
|
wxPostEvent( myWidget->GetEventHandler(), evt );
|
||||||
```
|
```
|
||||||
... So the moral of the story is: Use `GetEventHandler()` when possible (basically anything except the `wxApp` object), and use `AddPendingEvent()` unless you need a return code _and_ know you're on the main GUI thread.
|
... So the moral of the story is: Use `GetEventHandler()` when possible (basically anything except the `wxApp` object), and use `AddPendingEvent()` unless you need a return code _and_ know you're on the main GUI thread.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue