/////////////////////////////////////////////////////////////////////////////
-// Name: menu.cpp
+// Name: src/mac/classic/menu.cpp
// Purpose: wxMenu, wxMenuBar, wxMenuItem
// Author: Stefan Csomor
// Modified by:
// Created: 1998-01-01
// RCS-ID: $Id$
// Copyright: (c) Stefan Csomor
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "menu.h"
-#pragma implementation "menuitem.h"
-#endif
-
// ============================================================================
// headers & declarations
// ============================================================================
-// wxWindows headers
+// wxWidgets headers
// -----------------
-#include "wx/app.h"
+#include "wx/wxprec.h"
+
#include "wx/menu.h"
-#include "wx/menuitem.h"
-#include "wx/window.h"
-#include "wx/log.h"
-#include "wx/utils.h"
-#include "wx/frame.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/log.h"
+ #include "wx/app.h"
+ #include "wx/utils.h"
+ #include "wx/window.h"
+ #include "wx/frame.h"
+ #include "wx/menuitem.h"
+#endif
#include "wx/mac/uma.h"
// ----------------------
#include <string.h>
-#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler)
IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler)
-#endif
// the (popup) menu title has this special id
static const int idMenuTitle = -2;
void wxMenu::Init()
{
- m_doBreak = FALSE;
+ m_doBreak = false;
m_startRadioGroup = -1;
// create the menu
}
// if we have a title, insert it in the beginning of the menu
- if ( !!m_title )
+ if ( !m_title.empty() )
{
Append(idMenuTitle, m_title) ;
AppendSeparator() ;
wxASSERT_MSG( pSubMenu->m_hMenu != NULL , wxT("invalid submenu added"));
pSubMenu->m_menuParent = this ;
- if (wxMenuBar::MacGetInstalledMenuBar() == m_menuBar)
+ if (wxMenuBar::MacGetInstalledMenuBar() == GetMenuBar())
{
pSubMenu->MacBeforeDisplay( true ) ;
}
// if we're already attached to the menubar, we must update it
if ( IsAttached() )
{
- m_menuBar->Refresh();
+ GetMenuBar()->Refresh();
}
- return TRUE ;
+ return true ;
}
void wxMenu::EndRadioGroup()
{
wxCHECK_MSG( item, NULL, _T("NULL item in wxMenu::DoAppend") );
- bool check = FALSE;
+ bool check = false;
if ( item->GetKind() == wxITEM_RADIO )
{
item->SetRadioGroupEnd(m_startRadioGroup);
// ensure that we have a checked item in the radio group
- check = TRUE;
+ check = true;
}
else // extend the current radio group
{
if ( check )
{
// check the item initially
- item->Check(TRUE);
+ item->Check(true);
}
return item;
if ( IsAttached() )
{
// otherwise, the change won't be visible
- m_menuBar->Refresh();
+ GetMenuBar()->Refresh();
}
// and from internal data structures
}
bool wxMenu::ProcessCommand(wxCommandEvent & event)
{
- bool processed = FALSE;
+ bool processed = false;
// Try the menu's event handler
if ( !processed && GetEventHandler())
{
if ( m_invokingWindow != NULL )
return m_invokingWindow;
- else if ( m_menuBar != NULL)
- return (wxWindow *) m_menuBar->GetFrame();
+ else if ( GetMenuBar() != NULL)
+ return (wxWindow *) GetMenuBar()->GetFrame();
return NULL;
}
}
-wxMenuBar::wxMenuBar(int count, wxMenu *menus[], const wxString titles[])
+wxMenuBar::wxMenuBar(size_t count, wxMenu *menus[], const wxString titles[], long WXUNUSED(style))
{
Init();
m_titles.Alloc(count);
- for ( int i = 0; i < count; i++ )
+ for ( size_t i = 0; i < count; i++ )
{
m_menus.Append(menus[i]);
m_titles.Add(titles[i]);
}
else
{
- wxAcceleratorEntry* entry = wxGetAccelFromString( item->GetText() ) ;
+ wxAcceleratorEntry* entry = wxAcceleratorEntry::Create( item->GetText() ) ;
if ( item->GetId() == wxApp::s_macAboutMenuItemId )
{
{
wxMenu *menuOld = wxMenuBarBase::Replace(pos, menu, title);
if ( !menuOld )
- return FALSE;
+ return NULL;
m_titles[pos] = title;
if ( IsAttached() )
bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
{
if ( !wxMenuBarBase::Insert(pos, menu, title) )
- return FALSE;
+ return false;
m_titles.Insert(title, pos);
Refresh();
}
- return TRUE;
+ return true;
}
wxMenu *wxMenuBar::Remove(size_t pos)
bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
{
WXHMENU submenu = menu ? menu->GetHMenu() : 0;
- wxCHECK_MSG( submenu, FALSE, wxT("can't append invalid menu to menubar") );
+ wxCHECK_MSG( submenu, false, wxT("can't append invalid menu to menubar") );
if ( !wxMenuBarBase::Append(menu, title) )
- return FALSE;
+ return false;
m_titles.Add(title);
if (m_invokingWindow)
wxMenubarSetInvokingWindow( menu, m_invokingWindow );
- return TRUE;
+ return true;
}
static void wxMenubarUnsetInvokingWindow( wxMenu *menu )
return item;
}
-
-