]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/combocmn.cpp
Update header control when wxPropertyGridManager is resized.
[wxWidgets.git] / src / common / combocmn.cpp
index abb162921e85c79aa1fcb9cbaadbe75a2edb6f01..438a3e27908f7731749cf243e8bea4669f7e8dd1 100644 (file)
@@ -489,9 +489,8 @@ bool wxComboPopupWindow::Show( bool show )
 
     m_inShow++;
 
-    wxASSERT( IsKindOf(CLASSINFO(wxPopupTransientWindow)) );
-
-    wxPopupTransientWindow* ptw = (wxPopupTransientWindow*) this;
+    wxPopupTransientWindow* const
+        ptw = static_cast<wxPopupTransientWindow*>(this);
 
     if ( show != ptw->IsShown() )
     {
@@ -518,7 +517,7 @@ bool wxComboPopupWindow::ProcessLeftDown(wxMouseEvent& event)
 void wxComboPopupWindow::OnDismiss()
 {
     wxComboCtrlBase* combo = (wxComboCtrlBase*) GetParent();
-    wxASSERT_MSG( combo->IsKindOf(CLASSINFO(wxComboCtrlBase)),
+    wxASSERT_MSG( wxDynamicCast(combo, wxComboCtrlBase),
                   wxT("parent might not be wxComboCtrl, but check IMPLEMENT_DYNAMIC_CLASS(2) macro for correctness") );
 
     combo->OnPopupDismiss(true);
@@ -766,7 +765,7 @@ void wxComboBoxExtraInputHandler::OnFocus(wxFocusEvent& event)
         if ( m_combo->GetTextCtrl() )
             m_combo->GetTextCtrl()->SelectAll();
         else
-            m_combo->SetSelection(-1,-1);
+            m_combo->SelectAll();
     }
 
     // Send focus indication to parent.
@@ -1044,10 +1043,11 @@ bool wxComboCtrlBase::Create(wxWindow *parent,
     m_iFlags |= wxCC_IFLAG_CREATED;
 
     // If x and y indicate valid size, wxSizeEvent won't be
-    // emitted automatically, so we need to add artifical one.
+    // emitted automatically, so we need to add artificial one.
     if ( size.x > 0 && size.y > 0 )
     {
         wxSizeEvent evt(size,GetId());
+        evt.SetEventObject(this);
         GetEventHandler()->AddPendingEvent(evt);
     }
 
@@ -1171,7 +1171,7 @@ void wxComboCtrlBase::CalculateAreas( int btnWidth )
     // its platform default or bitmap+pushbutton background is used, but not if
     // there is vertical size adjustment or horizontal spacing.
     if ( ( (m_iFlags & wxCC_BUTTON_OUTSIDE_BORDER) ||
-                (m_bmpNormal.Ok() && m_blankButtonBg) ) &&
+                (m_bmpNormal.IsOk() && m_blankButtonBg) ) &&
          m_btnSpacingX == 0 &&
          m_btnHei <= 0 )
     {
@@ -1179,7 +1179,7 @@ void wxComboCtrlBase::CalculateAreas( int btnWidth )
         btnBorder = 0;
     }
     else if ( (m_iFlags & wxCC_BUTTON_COVERS_BORDER) &&
-              m_btnSpacingX == 0 && !m_bmpNormal.Ok() )
+              m_btnSpacingX == 0 && !m_bmpNormal.IsOk() )
     {
         m_iFlags &= ~(wxCC_IFLAG_BUTTON_OUTSIDE);
         btnBorder = 0;
@@ -1236,7 +1236,7 @@ void wxComboCtrlBase::CalculateAreas( int btnWidth )
     //   It is larger
     //   OR
     //   button width is set to default and blank button bg is not drawn
-    if ( m_bmpNormal.Ok() )
+    if ( m_bmpNormal.IsOk() )
     {
         int bmpReqWidth = m_bmpNormal.GetWidth();
         int bmpReqHeight = m_bmpNormal.GetHeight();
@@ -1258,7 +1258,7 @@ void wxComboCtrlBase::CalculateAreas( int btnWidth )
         {
             int newY = butHeight+(customBorder*2);
             SetClientSize(wxDefaultCoord,newY);
-            if ( m_bmpNormal.Ok() || m_btnArea.width != butWidth || m_btnArea.height != butHeight )
+            if ( m_bmpNormal.IsOk() || m_btnArea.width != butWidth || m_btnArea.height != butHeight )
                 m_iFlags |= wxCC_IFLAG_HAS_NONSTANDARD_BUTTON;
             else
                 m_iFlags &= ~wxCC_IFLAG_HAS_NONSTANDARD_BUTTON;
@@ -1367,16 +1367,16 @@ wxSize wxComboCtrlBase::DoGetBestSize() const
     // TODO: Better method to calculate close-to-native control height.
 
     int fhei;
-    if ( m_font.Ok() )
+    if ( m_font.IsOk() )
         fhei = (m_font.GetPointSize()*2) + 5;
-    else if ( wxNORMAL_FONT->Ok() )
+    else if ( wxNORMAL_FONT->IsOk() )
         fhei = (wxNORMAL_FONT->GetPointSize()*2) + 5;
     else
         fhei = sizeText.y + 4;
 
-    // Need to force height to accomodate bitmap?
+    // Need to force height to accommodate bitmap?
     int btnSizeY = m_btnSize.y;
-    if ( m_bmpNormal.Ok() && fhei < btnSizeY )
+    if ( m_bmpNormal.IsOk() && fhei < btnSizeY )
         fhei = btnSizeY;
 
     // Control height doesn't depend on border
@@ -1701,7 +1701,7 @@ void wxComboCtrlBase::DrawButton( wxDC& dc, const wxRect& rect, int flags )
         dc.DrawRectangle(rect);
     }
 
-    if ( !m_bmpNormal.Ok() )
+    if ( !m_bmpNormal.IsOk() )
     {
         if ( flags & Button_BitmapOnly )
             return;
@@ -1751,6 +1751,7 @@ void wxComboCtrlBase::RecalcAndRefresh()
     if ( IsCreated() )
     {
         wxSizeEvent evt(GetSize(),GetId());
+        evt.SetEventObject(this);
         GetEventHandler()->ProcessEvent(evt);
         Refresh();
     }
@@ -2032,6 +2033,8 @@ void wxComboCtrlBase::OnCharEvent(wxKeyEvent& event)
 
 void wxComboCtrlBase::OnFocusEvent( wxFocusEvent& event )
 {
+// On Mac, this leads to infinite recursion and eventually a crash 
+#ifndef __WXMAC__
     if ( event.GetEventType() == wxEVT_SET_FOCUS )
     {
         wxWindow* tc = GetTextCtrl();
@@ -2042,6 +2045,7 @@ void wxComboCtrlBase::OnFocusEvent( wxFocusEvent& event )
     }
 
     Refresh();
+#endif
 }
 
 void wxComboCtrlBase::OnIdleEvent( wxIdleEvent& WXUNUSED(event) )
@@ -2562,17 +2566,17 @@ void wxComboCtrlBase::SetButtonBitmaps( const wxBitmap& bmpNormal,
     m_bmpNormal = bmpNormal;
     m_blankButtonBg = blankButtonBg;
 
-    if ( bmpPressed.Ok() )
+    if ( bmpPressed.IsOk() )
         m_bmpPressed = bmpPressed;
     else
         m_bmpPressed = bmpNormal;
 
-    if ( bmpHover.Ok() )
+    if ( bmpHover.IsOk() )
         m_bmpHover = bmpHover;
     else
         m_bmpHover = bmpNormal;
 
-    if ( bmpDisabled.Ok() )
+    if ( bmpDisabled.IsOk() )
         m_bmpDisabled = bmpDisabled;
     else
         m_bmpDisabled = bmpNormal;