#if wxUSE_SYSTEM_OPTIONS
// FIXME_MGL -- so what is The Proper Way?
- width=800, height=600;
if ( wxSystemOptions::HasOption(wxT("mgl.screen-width") )
width = wxSystemOptions::GetOptionInt(wxT("mgl.screen-width"));
if ( wxSystemOptions::HasOption(wxT("mgl.screen-height") )
return p;
}
+#ifdef __WXDEBUG__
+// Add an easy way to capture screenshots:
+static void CaptureScreenshot()
+{
+ wxBusyCursor bcur;
+
+ static int screenshot_num = 0;
+ char screenshot[128];
+ sprintf(screenshot, "screenshot-%03i.png", screenshot_num++);
+ g_displayDC->savePNGFromDC(screenshot, 0, 0,
+ g_displayDC->sizex(),
+ g_displayDC->sizey());
+}
+#endif
+
// ---------------------------------------------------------------------------
// MGL_WM hooks:
// ---------------------------------------------------------------------------
MGL_wmCoordGlobalToLocal(win->GetHandle(),
e->where_x, e->where_y, &where.x, &where.y);
- if ( !win->IsEnabled() ) return FALSE;
+ for (wxWindowMGL *w = win; w; w = w->GetParent())
+ {
+ if ( !w->IsEnabled() )
+ return FALSE;
+ if ( w->IsTopLevel() )
+ break;
+ }
wxEventType type = wxEVT_NULL;
wxMouseEvent event;
ret = win->GetEventHandler()->ProcessEvent(event);
+
+#ifdef __WXDEBUG__
+ // Add an easy way to capture screenshots:
+ if ( event.m_keyCode == WXK_F1 &&
+ event.m_shiftDown && event.m_controlDown )
+ CaptureScreenshot();
+#endif
+
#if wxUSE_ACCEL
if ( !ret )
{
void wxWindowMGL::SetFocus()
{
+ if ( gs_focusedWindow == this ) return;
+
if ( gs_focusedWindow )
gs_focusedWindow->KillFocus();
wxFocusEvent event(wxEVT_SET_FOCUS, GetId());
event.SetEventObject(this);
- AddPendingEvent(event);
+ GetEventHandler()->ProcessEvent(event);
}
void wxWindowMGL::KillFocus()
wxFocusEvent event(wxEVT_KILL_FOCUS, GetId());
event.SetEventObject(this);
- AddPendingEvent(event);
+ GetEventHandler()->ProcessEvent(event);
}
// ----------------------------------------------------------------------------
return;
}
+#if 0 // FIXME_MGL -- debugging stuff!
+ dc->setColorRGB(255,0,255);
+ dc->fillRect(-1000,-1000,2000,2000);
+ wxUsleep(100);
+#endif
+
MGLRegion clip;
dc->getClipRegion(clip);
m_updateRegion = wxRegion(clip);