]> git.saurik.com Git - wxWidgets.git/blame - include/wx/cocoa/dialog.h
[ 1519202 ] wxComboCtrl::SetButtonPosition() to support -1 width/height
[wxWidgets.git] / include / wx / cocoa / dialog.h
CommitLineData
fb896a32
DE
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/cocoa/dialog.h
3// Purpose: wxDialog class
4// Author: David Elliott
5// Modified by:
6// Created: 2002/12/15
1c067fe3 7// RCS-ID: $Id$
fb896a32 8// Copyright: David Elliott
555f645a 9// Licence: wxWindows licence
fb896a32
DE
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_COCOA_DIALOG_H_
13#define _WX_COCOA_DIALOG_H_
14
15#include "wx/defs.h"
16// NOTE: we don't need panel.h, but other things expect it to be included
17#include "wx/panel.h"
18#include "wx/cocoa/NSPanel.h"
19
63ec432b 20WXDLLEXPORT_DATA(extern const wxChar) wxDialogNameStr[];
fb896a32
DE
21
22// ========================================================================
23// wxDialog
24// ========================================================================
25class WXDLLEXPORT wxDialog : public wxDialogBase, protected wxCocoaNSPanel
26{
27 DECLARE_DYNAMIC_CLASS(wxDialog)
28 DECLARE_EVENT_TABLE()
29 WX_DECLARE_COCOA_OWNER(NSPanel,NSWindow,NSWindow)
30// ------------------------------------------------------------------------
31// initialization
32// ------------------------------------------------------------------------
33public:
34 wxDialog() { Init(); }
35
1c067fe3 36#if WXWIN_COMPATIBILITY_2_6
fb896a32
DE
37 // Constructor with a modal flag, but no window id - the old convention
38 wxDialog(wxWindow *parent,
1c067fe3
WS
39 const wxString& title, bool WXUNUSED(modal),
40 int x = wxDefaultCoord, int y= wxDefaultCoord, int width = 500, int height = 500,
fb896a32
DE
41 long style = wxDEFAULT_DIALOG_STYLE,
42 const wxString& name = wxDialogNameStr)
43 {
44 Init();
1c067fe3
WS
45 Create(parent, wxID_ANY, title, wxPoint(x, y), wxSize(width, height),
46 style, name);
fb896a32 47 }
1c067fe3 48#endif // WXWIN_COMPATIBILITY_2_6
fb896a32
DE
49
50 // Constructor with no modal flag - the new convention.
51 wxDialog(wxWindow *parent, wxWindowID winid,
52 const wxString& title,
53 const wxPoint& pos = wxDefaultPosition,
54 const wxSize& size = wxDefaultSize,
55 long style = wxDEFAULT_DIALOG_STYLE,
56 const wxString& name = wxDialogNameStr)
57 {
58 Init();
59 Create(parent, winid, title, pos, size, style, name);
60 }
61
62 bool Create(wxWindow *parent, wxWindowID winid,
63 const wxString& title,
64 const wxPoint& pos = wxDefaultPosition,
65 const wxSize& size = wxDefaultSize,
66 long style = wxDEFAULT_DIALOG_STYLE,
67 const wxString& name = wxDialogNameStr);
68
69 ~wxDialog();
70protected:
71 void Init();
72
73// ------------------------------------------------------------------------
74// Cocoa specifics
75// ------------------------------------------------------------------------
76protected:
9692f42b 77 virtual void CocoaDelegate_windowWillClose(void);
456fef85
DE
78 virtual bool Cocoa_canBecomeMainWindow(bool &canBecome)
79 { canBecome = true; return true; }
fb896a32
DE
80
81// ------------------------------------------------------------------------
82// Implementation
83// ------------------------------------------------------------------------
84public:
555f645a 85 virtual bool Show(bool show = true);
fb896a32
DE
86
87 void SetModal(bool flag);
90c10896
DE
88 virtual bool IsModal() const { return m_isModal; }
89 bool m_isModal;
fb896a32 90
1c067fe3 91 // For now, same as Show(true) but returns return code
fb896a32
DE
92 virtual int ShowModal();
93
94 // may be called to terminate the dialog with the given return code
95 virtual void EndModal(int retCode);
96
97// ------------------------------------------------------------------------
98// Event handlers
99// ------------------------------------------------------------------------
100protected:
101 void OnCloseWindow(wxCloseEvent& event);
102 // Standard buttons
103 void OnOK(wxCommandEvent& event);
104 void OnApply(wxCommandEvent& event);
105 void OnCancel(wxCommandEvent& event);
acb96ac2
DE
106
107 // end either modal or modeless dialog
108 void EndDialog(int rc);
109
fb896a32
DE
110};
111
112#endif // _WX_COCOA_DIALOG_H_