]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/toplevel.h
Allow using wxDEFAULT as font size in wxOSX.
[wxWidgets.git] / include / wx / cocoa / toplevel.h
index e09873628d4a01e8dbb606c6bccfae0d16bcc062..0e850d63434f8f3c303d375129604a4a1d5a92de 100644 (file)
@@ -4,9 +4,9 @@
 // Author:      David Elliott
 // Modified by:
 // Created:     2002/12/08
 // Author:      David Elliott
 // Modified by:
 // Created:     2002/12/08
-// RCS-ID:      $Id
+// RCS-ID:      $Id$
 // Copyright:   (c) 2002 David Elliott
 // Copyright:   (c) 2002 David Elliott
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef __WX_COCOA_TOPLEVEL_H__
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef __WX_COCOA_TOPLEVEL_H__
 #include "wx/hashmap.h"
 #include "wx/cocoa/NSWindow.h"
 
 #include "wx/hashmap.h"
 #include "wx/cocoa/NSWindow.h"
 
-class WXDLLEXPORT wxMenuBar;
+class WXDLLIMPEXP_FWD_CORE wxMenuBar;
 
 // ========================================================================
 // wxTopLevelWindowCocoa
 // ========================================================================
 
 // ========================================================================
 // wxTopLevelWindowCocoa
 // ========================================================================
-class WXDLLEXPORT wxTopLevelWindowCocoa : public wxTopLevelWindowBase, protected wxCocoaNSWindow
+class WXDLLIMPEXP_CORE wxTopLevelWindowCocoa : public wxTopLevelWindowBase, protected wxCocoaNSWindow
 {
     DECLARE_EVENT_TABLE();
     DECLARE_NO_COPY_CLASS(wxTopLevelWindowCocoa);
 {
     DECLARE_EVENT_TABLE();
     DECLARE_NO_COPY_CLASS(wxTopLevelWindowCocoa);
@@ -28,7 +28,9 @@ class WXDLLEXPORT wxTopLevelWindowCocoa : public wxTopLevelWindowBase, protected
 // initialization
 // ------------------------------------------------------------------------
 public:
 // initialization
 // ------------------------------------------------------------------------
 public:
-    inline wxTopLevelWindowCocoa() { Init(); }
+    inline wxTopLevelWindowCocoa()
+    :   wxCocoaNSWindow(this)
+    {   Init(); }
 
     inline wxTopLevelWindowCocoa(wxWindow *parent,
                         wxWindowID winid,
 
     inline wxTopLevelWindowCocoa(wxWindow *parent,
                         wxWindowID winid,
@@ -37,6 +39,7 @@ public:
                         const wxSize& size = wxDefaultSize,
                         long style = wxDEFAULT_FRAME_STYLE,
                         const wxString& name = wxFrameNameStr)
                         const wxSize& size = wxDefaultSize,
                         long style = wxDEFAULT_FRAME_STYLE,
                         const wxString& name = wxFrameNameStr)
+    :   wxCocoaNSWindow(this)
     {
         Init();
         Create(parent, winid, title, pos, size, style, name);
     {
         Init();
         Create(parent, winid, title, pos, size, style, name);
@@ -67,18 +70,24 @@ public:
     virtual void CocoaDelegate_windowDidResignKey(void);
     virtual void CocoaDelegate_windowDidBecomeMain(void);
     virtual void CocoaDelegate_windowDidResignMain(void);
     virtual void CocoaDelegate_windowDidResignKey(void);
     virtual void CocoaDelegate_windowDidBecomeMain(void);
     virtual void CocoaDelegate_windowDidResignMain(void);
-    virtual wxMenuBar* GetAppMenuBar() { return NULL; }
+    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);
 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:
 // ------------------------------------------------------------------------
 // Implementation
 // ------------------------------------------------------------------------
 public:
+    virtual bool Destroy();
     // Pure virtuals
     virtual void Maximize(bool maximize = true);
     virtual bool IsMaximized() const;
     // Pure virtuals
     virtual void Maximize(bool maximize = true);
     virtual bool IsMaximized() const;
@@ -95,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 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
 
 // 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 Clear() ;
 //    virtual void Raise();
 //    virtual void Lower();
-//    virtual void SetTitle( const wxString& title);
 protected:
     // is the frame currently iconized?
     bool m_iconized;
 protected:
     // is the frame currently iconized?
     bool m_iconized;
@@ -115,6 +126,6 @@ protected:
 };
 
 // list of all frames and modeless dialogs
 };
 
 // list of all frames and modeless dialogs
-extern WXDLLEXPORT_DATA(wxWindowList) wxModelessWindows;
+extern WXDLLIMPEXP_DATA_CORE(wxWindowList) wxModelessWindows;
 
 #endif // __WX_COCOA_TOPLEVEL_H__
 
 #endif // __WX_COCOA_TOPLEVEL_H__