X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fb896a322a2ed53d393ee738765ddd3f72cee004..9c805dec6caf3c98a3797898cffe795b5b56e606:/include/wx/cocoa/toplevel.h?ds=sidebyside diff --git a/include/wx/cocoa/toplevel.h b/include/wx/cocoa/toplevel.h index cb45fd5ca5..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,18 +15,22 @@ #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_CLASS(wxTopLevelWindowCocoa); DECLARE_EVENT_TABLE(); + DECLARE_NO_COPY_CLASS(wxTopLevelWindowCocoa); // ------------------------------------------------------------------------ // 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,18 +64,30 @@ protected: // ------------------------------------------------------------------------ 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 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; @@ -83,18 +100,21 @@ public: virtual bool Show( bool show = true ); virtual bool Close( bool force = false ); virtual void OnCloseWindow(wxCloseEvent& event); + virtual void CocoaSetWxWindowSize(int width, int height); 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; @@ -106,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__