// Author: David Elliott
// Modified by:
// Created: 2002/12/08
-// RCS-ID: $Id:
+// RCS-ID: $Id$
// Copyright: (c) 2002 David Elliott
-// Licence: wxWindows license
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef __WX_COCOA_TOPLEVEL_H__
#include "wx/hashmap.h"
#include "wx/cocoa/NSWindow.h"
+class WXDLLIMPEXP_FWD_CORE wxMenuBar;
+
// ========================================================================
// wxTopLevelWindowCocoa
// ========================================================================
-class WXDLLEXPORT wxTopLevelWindowCocoa : public wxTopLevelWindowBase, protected wxCocoaNSWindow
+class WXDLLIMPEXP_CORE wxTopLevelWindowCocoa : public wxTopLevelWindowBase, protected wxCocoaNSWindow
{
DECLARE_EVENT_TABLE();
DECLARE_NO_COPY_CLASS(wxTopLevelWindowCocoa);
// initialization
// ------------------------------------------------------------------------
public:
- inline wxTopLevelWindowCocoa() { Init(); }
+ inline wxTopLevelWindowCocoa()
+ : wxCocoaNSWindow(this)
+ { Init(); }
inline wxTopLevelWindowCocoa(wxWindow *parent,
wxWindowID winid,
const wxSize& size = wxDefaultSize,
long style = wxDEFAULT_FRAME_STYLE,
const wxString& name = wxFrameNameStr)
+ : wxCocoaNSWindow(this)
{
Init();
Create(parent, winid, title, pos, size, style, name);
// ------------------------------------------------------------------------
public:
inline WX_NSWindow GetNSWindow() { return m_cocoaNSWindow; }
- virtual void Cocoa_close(void);
- virtual bool Cocoa_windowShouldClose(void);
- virtual void Cocoa_wxMenuItemAction(wxMenuItem& item);
- virtual void CocoaNotification_DidBecomeKey(void);
- virtual void CocoaNotification_DidResignKey(void);
+ virtual void CocoaDelegate_windowWillClose(void);
+ virtual bool CocoaDelegate_windowShouldClose(void);
+ virtual void CocoaDelegate_windowDidBecomeKey(void);
+ virtual void CocoaDelegate_windowDidResignKey(void);
+ virtual void CocoaDelegate_windowDidBecomeMain(void);
+ virtual void CocoaDelegate_windowDidResignMain(void);
+ virtual void CocoaDelegate_wxMenuItemAction(WX_NSMenuItem sender);
+ virtual bool CocoaDelegate_validateMenuItem(WX_NSMenuItem sender);
+ virtual wxMenuBar* GetAppMenuBar(wxCocoaNSWindow *win);
+ static void DeactivatePendingWindow();
protected:
void SetNSWindow(WX_NSWindow cocoaNSWindow);
WX_NSWindow m_cocoaNSWindow;
static wxCocoaNSWindowHash sm_cocoaHash;
virtual void CocoaReplaceView(WX_NSView oldView, WX_NSView newView);
+ static unsigned int NSWindowStyleForWxStyle(long style);
+ static NSRect MakeInitialNSWindowContentRect(const wxPoint& pos, const wxSize& size, unsigned int cocoaStyleMask);
+ static wxTopLevelWindowCocoa *sm_cocoaDeactivateWindow;
// ------------------------------------------------------------------------
// Implementation
// ------------------------------------------------------------------------
public:
+ virtual bool Destroy();
// Pure virtuals
virtual void Maximize(bool maximize = true);
virtual bool IsMaximized() const;
virtual void DoMoveWindow(int x, int y, int width, int height);
virtual void DoGetSize(int *width, int *height) const;
virtual void DoGetPosition(int *x, int *y) const;
+ virtual void SetTitle( const wxString& title);
+ virtual wxString GetTitle() const;
+ // Default button (item)
+ wxWindow *SetDefaultItem(wxWindow *win);
// Things I may/may not do
-// virtual void SetIcon(const wxIcon& icon);
-// virtual void SetIcons(const wxIconBundle& icons) { SetIcon( icons.GetIcon( -1 ) ); }
+// virtual void SetIcons(const wxIconBundle& icons);
// virtual void Clear() ;
// virtual void Raise();
// virtual void Lower();
-// virtual void SetTitle( const wxString& title);
protected:
// is the frame currently iconized?
bool m_iconized;
};
// list of all frames and modeless dialogs
-extern WXDLLEXPORT_DATA(wxWindowList) wxModelessWindows;
+extern WXDLLIMPEXP_DATA_CORE(wxWindowList) wxModelessWindows;
#endif // __WX_COCOA_TOPLEVEL_H__