- m_windowStyle = style;
-
- SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE));
- SetName(name);
-
- if (!parent)
- wxTopLevelWindows.Append(this);
-
- if (parent) parent->AddChild(this);
-
- if ( id == -1 )
- m_windowId = (int)NewControlId();
- else
- m_windowId = id;
-
- Rect theBoundsRect;
-
- m_x = (int)pos.x;
- m_y = (int)pos.y;
- if ( m_y < 50 )
- m_y = 50 ;
- if ( m_x < 20 )
- m_x = 20 ;
-
- m_width = size.x;
- if (m_width == -1)
- m_width = 20;
- m_height = size.y;
- if (m_height == -1)
- m_height = 20;
-
- ::SetRect(&theBoundsRect, m_x, m_y, m_x + m_width, m_y + m_height);
- m_macWindowData = new MacWindowData() ;
-
- WindowClass wclass = kMovableModalWindowClass ;
- WindowAttributes attr = kWindowNoAttributes ;
-
- if ( ( m_windowStyle & wxMINIMIZE_BOX ) || ( m_windowStyle & wxMAXIMIZE_BOX ) )
- {
- attr |= kWindowFullZoomAttribute ;
- attr |= kWindowResizableAttribute ;
- }
-
- UMACreateNewWindow( wclass , attr , &theBoundsRect , &m_macWindowData->m_macWindow ) ;
- wxAssociateWinWithMacWindow( m_macWindowData->m_macWindow , this ) ;
- wxString label ;
- if( wxApp::s_macDefaultEncodingIsPC )
- label = wxMacMakeMacStringFromPC( title ) ;
- else
- label = title ;
- UMASetWTitleC( m_macWindowData->m_macWindow , label ) ;
- m_macWindowData->m_macWindowBackgroundTheme = kThemeBrushDialogBackgroundActive ;
- UMACreateRootControl( m_macWindowData->m_macWindow , &m_macWindowData->m_macRootControl ) ;
- m_macWindowData->m_macFocus = NULL ;
- return TRUE;
+ SetExtraStyle(GetExtraStyle() | wxTOPLEVEL_EX_DIALOG);
+
+ // All dialogs should really have this style
+ style |= wxTAB_TRAVERSAL;
+
+ if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style & ~(wxYES|wxOK|wxNO|wxCANCEL) , name) )
+ return FALSE;
+
+ return TRUE;