]> git.saurik.com Git - wxWidgets.git/blame - include/wx/cocoa/toplevel.h
Open Watcom doesn't like typename, use class (patch 826812)
[wxWidgets.git] / include / wx / cocoa / toplevel.h
CommitLineData
fb896a32
DE
1///////////////////////////////////////////////////////////////////////////////
2// Name: wx/cocoa/toplevel.h
3// Purpose: wxTopLevelWindowCocoa is the Cocoa implementation of wxTLW
4// Author: David Elliott
5// Modified by:
6// Created: 2002/12/08
7// RCS-ID: $Id:
8// Copyright: (c) 2002 David Elliott
9// Licence: wxWindows license
10///////////////////////////////////////////////////////////////////////////////
11
12#ifndef __WX_COCOA_TOPLEVEL_H__
13#define __WX_COCOA_TOPLEVEL_H__
14
15#include "wx/hashmap.h"
16#include "wx/cocoa/NSWindow.h"
17
33faea0a
DE
18class WXDLLEXPORT wxMenuBar;
19
fb896a32
DE
20// ========================================================================
21// wxTopLevelWindowCocoa
22// ========================================================================
23class WXDLLEXPORT wxTopLevelWindowCocoa : public wxTopLevelWindowBase, protected wxCocoaNSWindow
24{
fb896a32 25 DECLARE_EVENT_TABLE();
acbf9534 26 DECLARE_NO_COPY_CLASS(wxTopLevelWindowCocoa);
fb896a32
DE
27// ------------------------------------------------------------------------
28// initialization
29// ------------------------------------------------------------------------
30public:
31 inline wxTopLevelWindowCocoa() { Init(); }
32
33 inline wxTopLevelWindowCocoa(wxWindow *parent,
34 wxWindowID winid,
35 const wxString& title,
36 const wxPoint& pos = wxDefaultPosition,
37 const wxSize& size = wxDefaultSize,
38 long style = wxDEFAULT_FRAME_STYLE,
39 const wxString& name = wxFrameNameStr)
40 {
41 Init();
42 Create(parent, winid, title, pos, size, style, name);
43 }
44
45 bool Create(wxWindow *parent,
46 wxWindowID winid,
47 const wxString& title,
48 const wxPoint& pos = wxDefaultPosition,
49 const wxSize& size = wxDefaultSize,
50 long style = wxDEFAULT_FRAME_STYLE,
51 const wxString& name = wxFrameNameStr);
52
53 virtual ~wxTopLevelWindowCocoa();
54
55protected:
56 // common part of all ctors
57 void Init();
58
59// ------------------------------------------------------------------------
60// Cocoa specifics
61// ------------------------------------------------------------------------
62public:
63 inline WX_NSWindow GetNSWindow() { return m_cocoaNSWindow; }
9692f42b 64 virtual void CocoaDelegate_windowWillClose(void);
aa992c59
DE
65 virtual bool CocoaDelegate_windowShouldClose(void);
66 virtual void CocoaDelegate_windowDidBecomeKey(void);
67 virtual void CocoaDelegate_windowDidResignKey(void);
33faea0a
DE
68 virtual void CocoaDelegate_windowDidBecomeMain(void);
69 virtual void CocoaDelegate_windowDidResignMain(void);
70 virtual wxMenuBar* GetAppMenuBar() { return NULL; }
fb896a32
DE
71protected:
72 void SetNSWindow(WX_NSWindow cocoaNSWindow);
73 WX_NSWindow m_cocoaNSWindow;
74 static wxCocoaNSWindowHash sm_cocoaHash;
448cbf1d 75 virtual void CocoaReplaceView(WX_NSView oldView, WX_NSView newView);
080c7d56 76 static unsigned int NSWindowStyleForWxStyle(long style);
fb896a32
DE
77
78// ------------------------------------------------------------------------
79// Implementation
80// ------------------------------------------------------------------------
81public:
82 // Pure virtuals
83 virtual void Maximize(bool maximize = true);
84 virtual bool IsMaximized() const;
85 virtual void Iconize(bool iconize = true);
86 virtual bool IsIconized() const;
87 virtual void Restore();
88 virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL);
89 virtual bool IsFullScreen() const;
90 // other
91 virtual bool Show( bool show = true );
92 virtual bool Close( bool force = false );
93 virtual void OnCloseWindow(wxCloseEvent& event);
e08efb8d 94 virtual void CocoaSetWxWindowSize(int width, int height);
fb896a32
DE
95 virtual void DoMoveWindow(int x, int y, int width, int height);
96 virtual void DoGetSize(int *width, int *height) const;
97 virtual void DoGetPosition(int *x, int *y) const;
98
99
100// Things I may/may not do
101// virtual void SetIcon(const wxIcon& icon);
102// virtual void SetIcons(const wxIconBundle& icons) { SetIcon( icons.GetIcon( -1 ) ); }
103// virtual void Clear() ;
104// virtual void Raise();
105// virtual void Lower();
106// virtual void SetTitle( const wxString& title);
107protected:
108 // is the frame currently iconized?
109 bool m_iconized;
110 // has the frame been closed
111 bool m_closed;
112 // should the frame be maximized when it will be shown? set by Maximize()
113 // when it is called while the frame is hidden
114 bool m_maximizeOnShow;
115};
116
117// list of all frames and modeless dialogs
118extern WXDLLEXPORT_DATA(wxWindowList) wxModelessWindows;
119
120#endif // __WX_COCOA_TOPLEVEL_H__