X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9c72ebec9010dccf66f84fdb4346f241e86a4f4f..6aa33060cd9132116fa3431b4889342e2f655853:/src/msw/frame.cpp diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 2885c3ed50..4b7181dd03 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -134,8 +134,8 @@ wxBEGIN_PROPERTIES_TABLE(wxFrame) wxEVENT_PROPERTY( Menu , wxEVT_COMMAND_MENU_SELECTED , wxCommandEvent) wxPROPERTY( Title,wxString, SetTitle, GetTitle, wxString() , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) - wxPROPERTY_FLAGS( WindowStyle , wxFrameStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style - wxPROPERTY( MenuBar , wxMenuBar * , SetMenuBar , GetMenuBar , , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) + wxPROPERTY_FLAGS( WindowStyle , wxFrameStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style + wxPROPERTY( MenuBar , wxMenuBar * , SetMenuBar , GetMenuBar , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) wxEND_PROPERTIES_TABLE() wxBEGIN_HANDLERS_TABLE(wxFrame) @@ -194,8 +194,6 @@ bool wxFrame::Create(wxWindow *parent, SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE)); - wxModelessWindows.Append(this); - return TRUE; } @@ -320,6 +318,32 @@ void wxFrame::PositionStatusBar() void wxFrame::AttachMenuBar(wxMenuBar *menubar) { +#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)) + if (!GetToolBar()) + { + wxToolBar* toolBar = new wxToolBar(this, -1, + wxDefaultPosition, wxDefaultSize, + wxBORDER_NONE | wxTB_HORIZONTAL, + wxToolBarNameStr, menubar); + SetToolBar(toolBar); + menubar->SetToolBar(toolBar); + } + // Now adjust size for menu bar + int menuHeight = 26; + + //When the main window is created using CW_USEDEFAULT the height of the + // is created is not taken into account). So we resize the window after + // if a menubar is present + { + RECT rc; + ::GetWindowRect((HWND) GetHWND(), &rc); + // adjust for menu / titlebar height + rc.bottom -= (2*menuHeight-1); + + MoveWindow((HWND) GetHWND(), rc.left, rc.top, rc.right, rc.bottom, FALSE); + } +#endif + wxFrameBase::AttachMenuBar(menubar); if ( !menubar ) @@ -330,7 +354,7 @@ void wxFrame::AttachMenuBar(wxMenuBar *menubar) } else // set new non NULL menu bar { -#ifndef __WXWINCE__ +#if !defined(__WXWINCE__) || (_WIN32_WCE >= 400 && !defined(WIN32_PLATFORM_PSPC) && !defined(WIN32_PLATFORM_WFSP)) // Can set a menubar several times. if ( menubar->GetHMenu() ) { @@ -353,18 +377,8 @@ void wxFrame::AttachMenuBar(wxMenuBar *menubar) void wxFrame::InternalSetMenuBar() { -#ifdef __WXMICROWIN__ +#if defined(__WXMICROWIN__) || defined(__WXWINCE__) // Nothing -#elif defined(__WXWINCE__) - - if (!GetToolBar()) - { - wxToolBar* toolBar = new wxToolBar(this, -1, - wxDefaultPosition, wxDefaultSize, - wxBORDER_NONE | wxTB_HORIZONTAL, - wxToolBarNameStr, GetMenuBar()); - SetToolBar(toolBar); - } #else if ( !::SetMenu(GetHwnd(), (HMENU)m_hMenu) ) { @@ -403,7 +417,7 @@ bool wxFrame::ShowFullScreen(bool show, long style) if (show) { #if wxUSE_TOOLBAR -#ifdef __WXWINCE__ +#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)) // TODO: hide commandbar #else wxToolBar *theToolBar = GetToolBar(); @@ -420,8 +434,10 @@ bool wxFrame::ShowFullScreen(bool show, long style) #endif // __WXWINCE__ #endif // wxUSE_TOOLBAR +#if defined(__WXMICROWIN__) +#elif defined(__WXWINCE__) // TODO: make it work for WinCE -#if !defined(__WXMICROWIN__) && !defined(__WXWINCE__) +#else if (style & wxFULLSCREEN_NOMENUBAR) SetMenu((HWND)GetHWND(), (HMENU) NULL); #endif @@ -446,7 +462,7 @@ bool wxFrame::ShowFullScreen(bool show, long style) else { #if wxUSE_TOOLBAR -#ifdef __WXWINCE__ +#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)) // TODO: show commandbar #else wxToolBar *theToolBar = GetToolBar(); @@ -472,8 +488,10 @@ bool wxFrame::ShowFullScreen(bool show, long style) } #endif // wxUSE_STATUSBAR +#if defined(__WXMICROWIN__) +#elif defined(__WXWINCE__) // TODO: make it work for WinCE -#if !defined(__WXMICROWIN__) && !defined(__WXWINCE__) +#else if ((m_fsStyle & wxFULLSCREEN_NOMENUBAR) && (m_hMenu != 0)) SetMenu((HWND)GetHWND(), (HMENU)m_hMenu); #endif @@ -490,7 +508,7 @@ bool wxFrame::ShowFullScreen(bool show, long style) wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) { -#ifdef __WXWINCE__ +#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)) // We may already have a toolbar from calling SetMenuBar. if (GetToolBar()) return GetToolBar(); @@ -508,7 +526,7 @@ void wxFrame::PositionToolBar() wxToolBar *toolbar = GetToolBar(); if ( toolbar && toolbar->IsShown() ) { -#ifdef __WXWINCE__ +#if defined(__WXWINCE__) && (_WIN32_WCE < 400 || defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)) // We want to do something different in WinCE, because // the toolbar should be associated with the commandbar, // and not an independent window. @@ -858,9 +876,9 @@ bool wxFrame::HandleMenuLoop(const wxEventType& evtType, WXWORD isPopup) // the window proc for wxFrame // --------------------------------------------------------------------------- -long wxFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) +WXLRESULT wxFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) { - long rc = 0; + WXLRESULT rc = 0; bool processed = FALSE; switch ( message )