/////////////////////////////////////////////////////////////////////////////
-// Name: combo.cpp
+// Name: src/msw/combo.cpp
// Purpose: wxMSW wxComboCtrl
// Author: Jaakko Salli
// Modified by:
// create main window
if ( !wxComboCtrlBase::Create(parent,
- id,
- value,
- wxDefaultPosition,
- wxDefaultSize,
- style | wxFULL_REPAINT_ON_RESIZE,
- wxDefaultValidator,
- name) )
+ id,
+ value,
+ pos,
+ size,
+ style | wxFULL_REPAINT_ON_RESIZE,
+ wxDefaultValidator,
+ name) )
return false;
if ( style & wxCC_STD_BUTTON )
// Prepare background for double-buffering
SetBackgroundStyle( wxBG_STYLE_CUSTOM );
- // SetSize should be called last
- SetSize(pos.x,pos.y,size.x,size.y);
+ // SetBestSize should be called last
+ SetBestSize(size);
return true;
}
}
// draw focus background on area in a way typical on platform
-void wxComboCtrl::DrawFocusBackground( wxDC& dc, const wxRect& rect, int flags )
+void wxComboCtrl::DrawFocusBackground( wxDC& dc, const wxRect& rect, int flags ) const
{
wxUxThemeEngine* theme = (wxUxThemeEngine*) NULL;
+
+ // Constructor only calls GetHWND() const, so it should be safe
+ // to cast "this" to const.
wxUxThemeHandle hTheme(this, L"COMBOBOX");
//COLORREF cref;
wxRect selRect(rect);
selRect.y += focusSpacingY;
selRect.height -= (focusSpacingY*2);
- selRect.x += m_widthCustomPaint + focusSpacingX;
- selRect.width -= m_widthCustomPaint + (focusSpacingX*2);
+
+ int wcp = 0;
+
+ if ( !(flags & wxCONTROL_ISSUBMENU) )
+ wcp += m_widthCustomPaint;
+
+ selRect.x += wcp + focusSpacingX;
+ selRect.width -= wcp + (focusSpacingX*2);
if ( hTheme )
theme = wxUxThemeEngine::GetIfActive();
&r);
drawButBg = false;
- }
+ }
// Standard button rendering
DrawButton(dc,rectb,drawButBg);