/**	@file	DkWxProcessingIdleController.h	Avoid concurent idle handlers.
	Use code like this to avoid concurrent execution of idle handlers:
	@code
	class MyClass
	{
	  protected:
	    DkWxProcessingIdleController	pcIdle;

	    bool	OnIdleNotConcurrent(wxIdleEvent & event);
	};

	bool MyClass::OnIdleNotConcurrent(wxIdleEvent & event)
	{
	  bool back = false;
	  /* ... real idle processing here ... */
	  /* ... set back if you want to have further idle events ... */
	  return back;
	}

	void MyClass::OnIdle(wxIdleEvent & event)
	{
	  bool	wantMore = false;
	  if(pcIdle.canBeginProcessing()) {
	    wantMore = OnIdleNotConcurrent(event);
	    endProcessing();
	  } else {
	    wantMore = pcIdle.wantMore();
	  }
	  if(wantMore) {
	    event.RequestMore();
	  }
	  event.Skip();
	}
	@endcode

	Use the setWantMore() and resetWantMore() methods to indicate
	general interest in further idle events (i.e. a background thread
	is running and you want to update the window after the thread
	was finished).
*/

