X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3bf7524f394af039efe196a186f7969cbabcc19..fef5c55604e20e2a90843a2278b1f5c8c817dcee:/src/mac/control.cpp?ds=sidebyside diff --git a/src/mac/control.cpp b/src/mac/control.cpp index b4cd648a48..31e38de31a 100644 --- a/src/mac/control.cpp +++ b/src/mac/control.cpp @@ -290,7 +290,8 @@ void wxAssociateControlWithMacControl(ControlHandle inControl, wxControl *contro void wxRemoveMacControlAssociation(wxControl *control) { - wxWinMacControlList->DeleteObject(control); + if ( wxWinMacControlList ) + wxWinMacControlList->DeleteObject(control); } void wxControl::MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString label , @@ -300,23 +301,8 @@ void wxControl::MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString l const wxString& name , WXRECTPTR outBounds , unsigned char* maclabel ) { m_label = label ; - SetName(name); - if ( &validator ) - SetValidator(validator); - - m_windowStyle = style; - parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - // These sizes will be adjusted in MacPostControlCreate + // These sizes will be adjusted in MacPostControlCreate m_width = size.x ; m_height = size.y ; m_x = pos.x ; @@ -361,7 +347,7 @@ void wxControl::MacPostControlCreate() ControlHandle container = (ControlHandle) GetParent()->MacGetContainerForEmbedding() ; wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ; ::EmbedControl( (ControlHandle) m_macControl , container ) ; - m_macControlIsShown = true ; + m_macControlIsShown = MacIsReallyShown() ; wxAssociateControlWithMacControl( (ControlHandle) m_macControl , this ) ; if ( wxMacSetupControlBackgroundUPP == NULL ) @@ -417,7 +403,8 @@ void wxControl::MacPostControlCreate() UMASetControlTitle( (ControlHandle) m_macControl , wxStripMenuCodes(m_label) ) ; #endif - UMAShowControl( (ControlHandle) m_macControl ) ; + if ( m_macControlIsShown ) + UMAShowControl( (ControlHandle) m_macControl ) ; SetCursor( *wxSTANDARD_CURSOR ) ; @@ -588,123 +575,6 @@ void wxControl::DoSetSize(int x, int y, } #endif return ; -/* - - if ( (ControlHandle) m_macControl == NULL ) - { - wxWindow::DoSetSize( x , y ,width , height ,sizeFlags ) ; - return ; - } - - Rect oldbounds; - int new_x, new_y, new_width, new_height; - int mac_x, mac_y; - - new_x = m_x; - new_y = m_y; - new_width = m_width; - new_height = m_height; - - if (sizeFlags & wxSIZE_ALLOW_MINUS_ONE) - { - new_x = x; - new_y = y; - new_width = width; - new_height = height; - } - else - { - if (x != -1) new_x = x; - if (y != -1) new_y = y; - if (width != -1) new_width = width; - if (height != -1) new_height = height; - } - - if(sizeFlags & wxSIZE_AUTO) - { - wxSize size = GetBestSize(); - if (sizeFlags & wxSIZE_AUTO_WIDTH) - { - if (width == -1) new_width = size.x; - } - if (sizeFlags & wxSIZE_AUTO_HEIGHT) - { - if (height == -1) new_height = size.y; - } - } - AdjustForParentClientOrigin(new_x, new_y, sizeFlags); - - mac_x = new_x; - mac_y = new_y; - if(GetParent()) { - GetParent()->MacWindowToRootWindow(&mac_x, &mac_y); - } - GetControlBounds( (ControlHandle) m_macControl, &oldbounds); - oldbounds.right = oldbounds.left + m_width; - oldbounds.bottom = oldbounds.top + m_height; - - bool doMove = false; - bool doResize = false; - - if ( mac_x != (oldbounds.left - m_macHorizontalBorder) || - mac_y != (oldbounds.top - m_macVerticalBorder) ) - { - doMove = true ; - } - if ( new_width != oldbounds.right - oldbounds.left - 2 * m_macHorizontalBorder || - new_height != oldbounds.bottom - oldbounds.top - 2 * m_macVerticalBorder) - { - doResize = true ; - } - - if ( doMove || doResize ) - { - Refresh() ; - - // Ensure resize is within constraints - if ((m_minWidth != -1) && (new_width < m_minWidth)) { - new_width = m_minWidth; - } - if ((m_minHeight != -1) && (new_height < m_minHeight)) { - new_height = m_minHeight; - } - if ((m_maxWidth != -1) && (new_width > m_maxWidth)) { - new_width = m_maxWidth; - } - if ((m_maxHeight != -1) && (new_height > m_maxHeight)) { - new_height = m_maxHeight; - } - - if ( doMove ) - { - m_x = new_x; - m_y = new_y; - - UMAMoveControl( (ControlHandle) m_macControl, - mac_x + m_macHorizontalBorder, mac_y + m_macVerticalBorder); - - wxMoveEvent event(wxPoint(m_x, m_y), m_windowId); - event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event) ; - } - if ( doResize ) - { - m_width = new_width; - m_height = new_height; - - UMASizeControl( (ControlHandle) m_macControl, - m_width - 2 * m_macHorizontalBorder, - m_height - 2 * m_macVerticalBorder ) ; - - - wxSizeEvent event(wxSize(m_width, m_height), m_windowId); - event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); - } - - Refresh() ; - } -*/ } bool wxControl::Show(bool show)