237    if( 
hasFlag( wxCONTROL_CHECKABLE ) )
 
  243            GetEventHandler()->CallAfter(
 
  246                        wxCommandEvent evt( wxEVT_BUTTON, GetId() );
 
  247                        evt.SetEventObject( 
this );
 
  249                        GetEventHandler()->ProcessEvent( evt );
 
  256            GetEventHandler()->CallAfter(
 
  259                        wxCommandEvent evt( wxEVT_BUTTON, GetId() );
 
  260                        evt.SetEventObject( 
this );
 
  262                        GetEventHandler()->ProcessEvent( evt );
 
 
  294    wxColor highlightColor = wxSystemSettings::GetColour( wxSYS_COLOUR_HIGHLIGHT );
 
  297    wxRect    rect( wxPoint( 0, 0 ), GetSize() );
 
  298    wxPaintDC dc( 
this );
 
  302        dc.SetPen( wxPen( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) ) );
 
  303        dc.DrawLine( wxPoint( GetSize().x / 2, 0 ), wxPoint( GetSize().x / 2, GetSize().y ) );
 
  308    if( !
hasFlag( wxCONTROL_DISABLED ) )
 
  310        if( 
hasFlag( wxCONTROL_PRESSED ) )
 
  312            dc.SetPen( wxPen( highlightColor ) );
 
  313            dc.SetBrush( wxBrush( highlightColor.ChangeLightness( darkMode ? 20 : 150 ) ) );
 
  314            dc.DrawRectangle( rect );
 
  316        else if( 
hasFlag( wxCONTROL_CURRENT | wxCONTROL_FOCUSED ) )
 
  318            dc.SetPen( wxPen( highlightColor ) );
 
  319            dc.SetBrush( wxBrush( highlightColor.ChangeLightness( darkMode ? 40 : 170 ) ) );
 
  322            if( 
hasFlag( wxCONTROL_CHECKED ) )
 
  323                dc.SetBrush( wxBrush( highlightColor.ChangeLightness( darkMode ? 50 : 180 ) ) );
 
  325            dc.DrawRectangle( rect );
 
  327        else if( 
hasFlag( wxCONTROL_CHECKED ) )
 
  329            dc.SetPen( wxPen( highlightColor ) );
 
  330            dc.SetBrush( wxBrush( highlightColor.ChangeLightness( darkMode  ? 40 : 170 ) ) );
 
  331            dc.DrawRectangle( rect );
 
  344        bmSize = bmpImg.GetLogicalSize();
 
  349        drawBmpPos.x = ( rect.width - bmSize.x ) / 2;
 
  350        drawBmpPos.y = ( rect.height - bmSize.y ) / 2;
 
  355        dc.DrawBitmap( bmpImg, drawBmpPos, 
true );
 
  362        wxSize text_padding( 3, 1 );
 
  367        wxSize box_size = dc.GetTextExtent( 
m_badgeText ) + text_padding;
 
  368        wxSize box_offset = box_size;
 
  375        dc.DrawRoundedRectangle( rect.GetRightBottom() - box_offset, box_size, -0.25 );
 
  378        dc.DrawText( 
m_badgeText, rect.GetRightBottom() - box_offset + ( text_padding / 2 ) );