1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/cocoa/dialog.h 3// Purpose: wxDialog class 4// Author: David Elliott 5// Modified by: 6// Created: 2002/12/15 7// RCS-ID: $Id: dialog.h 41020 2006-09-05 20:47:48Z VZ $ 8// Copyright: David Elliott 9// Licence: wxWindows licence 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 20WXDLLEXPORT_DATA(extern const wxChar) wxDialogNameStr[]; 21 22// ======================================================================== 23// wxDialog 24// ======================================================================== 25class WXDLLEXPORT wxDialog : public wxDialogBase, protected wxCocoaNSPanel 26{ 27 DECLARE_DYNAMIC_CLASS(wxDialog) 28 WX_DECLARE_COCOA_OWNER(NSPanel,NSWindow,NSWindow) 29// ------------------------------------------------------------------------ 30// initialization 31// ------------------------------------------------------------------------ 32public: 33 wxDialog() { Init(); } 34 35#if WXWIN_COMPATIBILITY_2_6 36 // Constructor with a modal flag, but no window id - the old convention 37 wxDialog(wxWindow *parent, 38 const wxString& title, bool WXUNUSED(modal), 39 int x = wxDefaultCoord, int y= wxDefaultCoord, int width = 500, int height = 500, 40 long style = wxDEFAULT_DIALOG_STYLE, 41 const wxString& name = wxDialogNameStr) 42 { 43 Init(); 44 Create(parent, wxID_ANY, title, wxPoint(x, y), wxSize(width, height), 45 style, name); 46 } 47#endif // WXWIN_COMPATIBILITY_2_6 48 49 // Constructor with no modal flag - the new convention. 50 wxDialog(wxWindow *parent, wxWindowID winid, 51 const wxString& title, 52 const wxPoint& pos = wxDefaultPosition, 53 const wxSize& size = wxDefaultSize, 54 long style = wxDEFAULT_DIALOG_STYLE, 55 const wxString& name = wxDialogNameStr) 56 { 57 Init(); 58 Create(parent, winid, title, pos, size, style, name); 59 } 60 61 bool Create(wxWindow *parent, wxWindowID winid, 62 const wxString& title, 63 const wxPoint& pos = wxDefaultPosition, 64 const wxSize& size = wxDefaultSize, 65 long style = wxDEFAULT_DIALOG_STYLE, 66 const wxString& name = wxDialogNameStr); 67 68 virtual ~wxDialog(); 69protected: 70 void Init(); 71 72// ------------------------------------------------------------------------ 73// Cocoa specifics 74// ------------------------------------------------------------------------ 75protected: 76 virtual void CocoaDelegate_windowWillClose(void); 77 virtual bool Cocoa_canBecomeMainWindow(bool &canBecome) 78 { canBecome = true; return true; } 79 80// ------------------------------------------------------------------------ 81// Implementation 82// ------------------------------------------------------------------------ 83public: 84 virtual bool Show(bool show = true); 85 86 void SetModal(bool flag); 87 virtual bool IsModal() const { return m_isModal; } 88 bool m_isModal; 89 90 // For now, same as Show(true) but returns return code 91 virtual int ShowModal(); 92 93 // may be called to terminate the dialog with the given return code 94 virtual void EndModal(int retCode); 95}; 96 97#endif // _WX_COCOA_DIALOG_H_ 98