X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/aa992c594e2bc490ff2ccd34bd8b4963150c33ff..aaf5f98682223a5ceb3496e7a25865ad791e8ab7:/include/wx/cocoa/toplevel.h diff --git a/include/wx/cocoa/toplevel.h b/include/wx/cocoa/toplevel.h index 8fb7a4623a..0e850d6343 100644 --- a/include/wx/cocoa/toplevel.h +++ b/include/wx/cocoa/toplevel.h @@ -4,9 +4,9 @@ // 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__ @@ -15,10 +15,12 @@ #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); @@ -26,7 +28,9 @@ class WXDLLEXPORT wxTopLevelWindowCocoa : public wxTopLevelWindowBase, protected // initialization // ------------------------------------------------------------------------ public: - inline wxTopLevelWindowCocoa() { Init(); } + inline wxTopLevelWindowCocoa() + : wxCocoaNSWindow(this) + { Init(); } inline wxTopLevelWindowCocoa(wxWindow *parent, wxWindowID winid, @@ -35,6 +39,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr) + : wxCocoaNSWindow(this) { Init(); Create(parent, winid, title, pos, size, style, name); @@ -59,20 +64,30 @@ protected: // ------------------------------------------------------------------------ public: inline WX_NSWindow GetNSWindow() { return m_cocoaNSWindow; } - virtual void Cocoa_close(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; @@ -89,15 +104,17 @@ public: 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; @@ -109,6 +126,6 @@ protected: }; // list of all frames and modeless dialogs -extern WXDLLEXPORT_DATA(wxWindowList) wxModelessWindows; +extern WXDLLIMPEXP_DATA_CORE(wxWindowList) wxModelessWindows; #endif // __WX_COCOA_TOPLEVEL_H__