// Author: Francesco Montorsi (readapted code written by Vadim Zeitlin)
// Modified by:
// Created: 15/04/2006
-// RCS-ID: $Id$
// Copyright: (c) Vadim Zeitlin, Francesco Montorsi
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#if wxUSE_COLOURPICKERCTRL
#include "wx/clrpicker.h"
-
#include "wx/colordlg.h"
+#include "wx/dcmemory.h"
// ============================================================================
// create this button
if (!wxBitmapButton::Create( parent, id, m_bitmap, pos,
- size, style, validator, name ))
+ size, style | wxBU_AUTODRAW, validator, name ))
{
wxFAIL_MSG( wxT("wxGenericColourButton creation failed") );
return false;
}
// and handle user clicks on it
- Connect(wxEVT_COMMAND_BUTTON_CLICKED,
+ Connect(GetId(), wxEVT_BUTTON,
wxCommandEventHandler(wxGenericColourButton::OnButtonClick),
NULL, this);
void wxGenericColourButton::OnButtonClick(wxCommandEvent& WXUNUSED(ev))
{
- // update the wxColouData to be shown in the the dialog
+ // update the wxColouData to be shown in the dialog
ms_data.SetColour(m_colour);
// create the colour dialog and display it
dc.SetPen( *wxTRANSPARENT_PEN );
dc.SetBrush( wxBrush(m_colour) );
dc.DrawRectangle( 0,0,m_bitmap.GetWidth(),m_bitmap.GetHeight() );
+
+ if ( HasFlag(wxCLRP_SHOW_LABEL) )
+ {
+ wxColour col( ~m_colour.Red(), ~m_colour.Green(), ~m_colour.Blue() );
+ dc.SetTextForeground( col );
+ dc.SetFont( GetFont() );
+ dc.DrawText( m_colour.GetAsString(wxC2S_HTML_SYNTAX), 0, 0 );
+ }
+
dc.SelectObject( wxNullBitmap );
SetBitmapLabel( m_bitmap );
-
-#if 0
- if ( HasFlag(wxCLRP_SHOW_LABEL) )
- SetLabel(m_colour.GetAsString(wxC2S_HTML_SYNTAX));
-#endif
}
wxSize wxGenericColourButton::DoGetBestSize() const
{
wxSize sz(wxBitmapButton::DoGetBestSize());
+#ifdef __WXMAC__
sz.y += 6;
+#else
+ sz.y += 2;
+#endif
sz.x += 30;
if ( HasFlag(wxCLRP_SHOW_LABEL) )
return sz;