Redone (generic) wxComboCtrl background painting and handling. The 'actual' wxWindow background colour is now largely ignored and overridden to refer the text-area's background colour instead (as is usually the case with controls like this). Base 'transparent' background is now only painted when double-buffered rendering is required, and otherwise delegated to the system, as appropriate. This should significantly improve control's appearance and compliancy with GTK+ and OS X themes and custom backgrounds.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -31,6 +31,8 @@
|
||||
|
||||
#endif
|
||||
|
||||
#include "wx/dcbuffer.h"
|
||||
|
||||
extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[];
|
||||
|
||||
class WXDLLIMPEXP_CORE wxGenericComboCtrl : public wxComboCtrlBase
|
||||
@@ -96,6 +98,21 @@ protected:
|
||||
virtual WXHWND GetEditHWND() const { return NULL; }
|
||||
#endif
|
||||
|
||||
// For better transparent background rendering
|
||||
virtual bool HasTransparentBackground()
|
||||
{
|
||||
#if wxALWAYS_NATIVE_DOUBLE_BUFFER
|
||||
#ifdef __WXGTK__
|
||||
// Sanity check for GTK+
|
||||
return IsDoubleBuffered();
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Mandatory virtuals
|
||||
virtual void OnResize();
|
||||
|
||||
|
Reference in New Issue
Block a user