X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/02761f6cd478e3c2c97cf6f93442747f7b029833..50679f941ec64c417c39582b276068fef8ca59cb:/src/msw/toplevel.cpp diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp index 4b1301b55f..97fec59a6a 100644 --- a/src/msw/toplevel.cpp +++ b/src/msw/toplevel.cpp @@ -27,6 +27,7 @@ #include "wx/toplevel.h" #ifndef WX_PRECOMP + #include "wx/msw/missing.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/missing.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; +#ifndef __WXWINCE__ + if ( wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft ) + exflags |= WS_EX_LAYOUTRTL; +#endif + return MSWCreate(wxCanvasClassName, title, pos, sz, flags, exflags); } @@ -563,6 +568,11 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent, 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; @@ -761,6 +771,15 @@ void wxTopLevelWindowMSW::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 // ----------------------------------------------------------------------------