2003-09-04 15:19:03 -04:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: wx/cocoa/mbarman.h
|
|
|
|
// Purpose: wxMenuBarManager class
|
|
|
|
// Author: David Elliott
|
|
|
|
// Modified by:
|
|
|
|
// Created: 2003/09/04
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Copyright: (c) 2003 David Elliott
|
|
|
|
// Licence: wxWindows licence
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef __WX_COCOA_MBARMAN_H__
|
|
|
|
#define __WX_COCOA_MBARMAN_H__
|
|
|
|
|
|
|
|
#if wxUSE_MENUS
|
|
|
|
|
|
|
|
#include "wx/toplevel.h"
|
|
|
|
|
2003-11-06 15:12:11 -05:00
|
|
|
DECLARE_WXCOCOA_OBJC_CLASS(wxMenuBarManagerObserver);
|
|
|
|
|
2003-09-04 15:19:03 -04:00
|
|
|
// ========================================================================
|
|
|
|
// wxMenuBarManager
|
|
|
|
// ========================================================================
|
|
|
|
class WXDLLEXPORT wxMenuBarManager : public wxObject
|
|
|
|
{
|
|
|
|
// ------------------------------------------------------------------------
|
|
|
|
// initialization/destruction
|
|
|
|
// ------------------------------------------------------------------------
|
|
|
|
public:
|
|
|
|
wxMenuBarManager();
|
|
|
|
virtual ~wxMenuBarManager();
|
|
|
|
// ------------------------------------------------------------------------
|
|
|
|
// Single instance
|
|
|
|
// ------------------------------------------------------------------------
|
|
|
|
public:
|
|
|
|
static wxMenuBarManager *GetInstance() { return sm_mbarmanInstance; }
|
|
|
|
static void CreateInstance();
|
|
|
|
static void DestroyInstance();
|
|
|
|
protected:
|
|
|
|
static wxMenuBarManager *sm_mbarmanInstance;
|
|
|
|
// ------------------------------------------------------------------------
|
|
|
|
// Implementation
|
|
|
|
// ------------------------------------------------------------------------
|
|
|
|
public:
|
|
|
|
void SetMainMenuBar(wxMenuBar* menubar);
|
2003-11-06 15:12:11 -05:00
|
|
|
void WindowDidBecomeKey(NSNotification *notification);
|
|
|
|
#if 0
|
|
|
|
void WindowDidResignKey(NSNotification *notification);
|
|
|
|
void WindowDidBecomeMain(NSNotification *notification);
|
|
|
|
void WindowDidResignMain(NSNotification *notification);
|
|
|
|
void WindowWillClose(NSNotification *notification);
|
|
|
|
#endif // 0
|
2003-09-04 15:19:03 -04:00
|
|
|
void UpdateWindowMenuBar(wxTopLevelWindowNative *win);
|
|
|
|
protected:
|
|
|
|
void SetMenuBar(wxMenuBar* menubar);
|
2003-11-06 15:12:11 -05:00
|
|
|
void InstallMenuBarForWindow(wxCocoaNSWindow *win);
|
2003-09-04 15:19:03 -04:00
|
|
|
void InstallMainMenu();
|
|
|
|
WX_NSMenu m_menuApp;
|
|
|
|
WX_NSMenu m_menuServices;
|
|
|
|
WX_NSMenu m_menuWindows;
|
|
|
|
WX_NSMenu m_menuMain;
|
|
|
|
// Is main menu bar the current one
|
|
|
|
bool m_mainMenuBarInstalled;
|
|
|
|
// Main menu (if app provides one)
|
|
|
|
wxMenuBar *m_mainMenuBar;
|
2003-11-06 15:12:11 -05:00
|
|
|
wxMenuBarManagerObserver *m_observer;
|
|
|
|
wxCocoaNSWindow *m_windowCurrent;
|
2003-09-04 15:19:03 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // wxUSE_MENUS
|
|
|
|
#endif // _WX_COCOA_MBARMAN_H_
|