// Windows/Control/DialogImpl.h #ifndef __WINDOWS_CONTROL_DIALOGIMPL_H #define __WINDOWS_CONTROL_DIALOGIMPL_H #include "Windows/Window.h" #include "Windows/Control/Dialog.h" void myCreateHandle(int n); // FIXME - duplicate enum { WORKER_EVENT=100 // this one gets sent from the worker thread }; namespace NWindows { namespace NControl { #define TIMER_ID_IMPL (1234) class CModalDialogImpl : public wxDialog { wxTimer _timer; CDialog *_dialog; public: CModalDialogImpl(CDialog *dialog, wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); CDialog * Detach() { CDialog * oldDialog = _dialog; _dialog = NULL; return oldDialog; } void OnInit() { if (_dialog) _dialog->OnInit(this); } void OnAnyButton(wxCommandEvent& event); void OnAnyChoice(wxCommandEvent &event); void OnAnyTimer(wxTimerEvent &event); /* FIXME virtual void SetLabel(const wxString &title) { // Why we must do this "alias" ? this->SetTitle(title); } */ ////////////////// UINT_PTR SetTimer(UINT_PTR /* FIXME idEvent */, unsigned milliseconds) { _timer.Start(milliseconds); return TIMER_ID_IMPL; } void KillTimer(UINT_PTR idEvent) { if (idEvent == TIMER_ID_IMPL) _timer.Stop(); } void OnWorkerEvent(wxCommandEvent& event) { int n = event.GetInt(); // printf("CModalDialogImpl::OnWorkerEvent(n=%d)\n",n); myCreateHandle(n); } }; } } #endif