+
+ m_impl = Factory().CreateDisplay(n);
+}
+
+wxDisplay::~wxDisplay()
+{
+ delete m_impl;
+}
+
+// ----------------------------------------------------------------------------
+// static functions forwarded to wxDisplayFactory
+// ----------------------------------------------------------------------------
+
+/* static */ unsigned wxDisplay::GetCount()
+{
+ return Factory().GetCount();
+}
+
+/* static */ int wxDisplay::GetFromPoint(const wxPoint& pt)
+{
+ return Factory().GetFromPoint(pt);
+}
+
+/* static */ int wxDisplay::GetFromWindow(const wxWindow *window)
+{
+ wxCHECK_MSG( window, wxNOT_FOUND, _T("invalid window") );
+
+ return Factory().GetFromWindow(window);
+}
+
+// ----------------------------------------------------------------------------
+// functions forwarded to wxDisplayImpl
+// ----------------------------------------------------------------------------
+
+wxRect wxDisplay::GetGeometry() const
+{
+ wxCHECK_MSG( IsOk(), wxRect(), _T("invalid wxDisplay object") );
+
+ return m_impl->GetGeometry();
+}
+
+wxRect wxDisplay::GetClientArea() const
+{
+ wxCHECK_MSG( IsOk(), wxRect(), _T("invalid wxDisplay object") );
+
+ return m_impl->GetClientArea();
+}
+
+wxString wxDisplay::GetName() const
+{
+ wxCHECK_MSG( IsOk(), wxString(), _T("invalid wxDisplay object") );
+
+ return m_impl->GetName();
+}
+
+bool wxDisplay::IsPrimary() const
+{
+ return m_impl && m_impl->GetIndex() == 0;
+}
+
+#if wxUSE_DISPLAY
+
+wxArrayVideoModes wxDisplay::GetModes(const wxVideoMode& mode) const
+{
+ wxCHECK_MSG( IsOk(), wxArrayVideoModes(), _T("invalid wxDisplay object") );
+
+ return m_impl->GetModes(mode);
+}
+
+wxVideoMode wxDisplay::GetCurrentMode() const
+{
+ wxCHECK_MSG( IsOk(), wxVideoMode(), _T("invalid wxDisplay object") );
+
+ return m_impl->GetCurrentMode();
+}
+
+bool wxDisplay::ChangeMode(const wxVideoMode& mode)
+{
+ wxCHECK_MSG( IsOk(), false, _T("invalid wxDisplay object") );
+
+ return m_impl->ChangeMode(mode);