]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/toplevel.cpp
correct access for virtual
[wxWidgets.git] / src / msw / toplevel.cpp
index 4b1301b55fe577904d4cfcb277636d1395a602b8..97fec59a6a216a314abd1029e0696ce7a56d3382 100644 (file)
@@ -27,6 +27,7 @@
 #include "wx/toplevel.h"
 
 #ifndef WX_PRECOMP
 #include "wx/toplevel.h"
 
 #ifndef WX_PRECOMP
+    #include "wx/msw/missing.h"
     #include "wx/app.h"
     #include "wx/dialog.h"
     #include "wx/string.h"
     #include "wx/app.h"
     #include "wx/dialog.h"
     #include "wx/string.h"
@@ -50,7 +51,6 @@
     #include "wx/msw/wince/missing.h"
 #endif
 
     #include "wx/msw/wince/missing.h"
 #endif
 
-#include "wx/msw/missing.h"
 #include "wx/msw/winundef.h"
 
 #include "wx/display.h"
 #include "wx/msw/winundef.h"
 
 #include "wx/display.h"
@@ -503,6 +503,11 @@ bool wxTopLevelWindowMSW::CreateFrame(const wxString& title,
 
     const wxSize sz = IsAlwaysMaximized() ? wxDefaultSize : size;
 
 
     const wxSize sz = IsAlwaysMaximized() ? wxDefaultSize : size;
 
+#ifndef __WXWINCE__
+    if ( wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft )
+        exflags |= WS_EX_LAYOUTRTL;
+#endif
+
     return MSWCreate(wxCanvasClassName, title, pos, sz, flags, exflags);
 }
 
     return MSWCreate(wxCanvasClassName, title, pos, sz, flags, exflags);
 }
 
@@ -563,6 +568,11 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
         dlgTemplate->style |= WS_POPUP;
 
 #ifndef __WXWINCE__
         dlgTemplate->style |= WS_POPUP;
 
 #ifndef __WXWINCE__
+        if ( wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft )
+        {
+            dlgTemplate->dwExtendedStyle |= WS_EX_LAYOUTRTL;
+        }
+
         // force 3D-look if necessary, it looks impossibly ugly otherwise
         if ( style & (wxRESIZE_BORDER | wxCAPTION) )
             dlgTemplate->style |= DS_MODALFRAME;
         // force 3D-look if necessary, it looks impossibly ugly otherwise
         if ( style & (wxRESIZE_BORDER | wxCAPTION) )
             dlgTemplate->style |= DS_MODALFRAME;
@@ -761,6 +771,15 @@ void wxTopLevelWindowMSW::Restore()
     DoShowWindow(SW_RESTORE);
 }
 
     DoShowWindow(SW_RESTORE);
 }
 
+void wxTopLevelWindowMSW::SetLayoutDirection(wxLayoutDirection dir)
+{
+    if ( dir == wxLayout_Default )
+        dir = wxTheApp->GetLayoutDirection();
+
+    if ( dir != wxLayout_Default )
+        wxTopLevelWindowBase::SetLayoutDirection(dir);
+}
+
 // ----------------------------------------------------------------------------
 // wxTopLevelWindowMSW fullscreen
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxTopLevelWindowMSW fullscreen
 // ----------------------------------------------------------------------------