Add a radioButton mode to IMAGE_BUTTON.
Fixes https://gitlab.com/kicad/code/kicad/issues/11797
This commit is contained in:
parent
c6604e3576
commit
52bc2511cd
|
@ -35,6 +35,7 @@
|
||||||
BITMAP_BUTTON::BITMAP_BUTTON( wxWindow* aParent, wxWindowID aId, const wxPoint& aPos,
|
BITMAP_BUTTON::BITMAP_BUTTON( wxWindow* aParent, wxWindowID aId, const wxPoint& aPos,
|
||||||
const wxSize& aSize, int aStyles ) :
|
const wxSize& aSize, int aStyles ) :
|
||||||
wxPanel( aParent, aId, aPos, aSize, aStyles ),
|
wxPanel( aParent, aId, aPos, aSize, aStyles ),
|
||||||
|
m_isRadioButton( false ),
|
||||||
m_buttonState( 0 ),
|
m_buttonState( 0 ),
|
||||||
m_padding( 0 ),
|
m_padding( 0 ),
|
||||||
m_acceptDraggedInClicks( false )
|
m_acceptDraggedInClicks( false )
|
||||||
|
@ -49,6 +50,7 @@ BITMAP_BUTTON::BITMAP_BUTTON( wxWindow* aParent, wxWindowID aId, const wxPoint&
|
||||||
BITMAP_BUTTON::BITMAP_BUTTON( wxWindow* aParent, wxWindowID aId, const wxBitmap& aDummyBitmap,
|
BITMAP_BUTTON::BITMAP_BUTTON( wxWindow* aParent, wxWindowID aId, const wxBitmap& aDummyBitmap,
|
||||||
const wxPoint& aPos, const wxSize& aSize, int aStyles ) :
|
const wxPoint& aPos, const wxSize& aSize, int aStyles ) :
|
||||||
wxPanel( aParent, aId, aPos, aSize, aStyles ),
|
wxPanel( aParent, aId, aPos, aSize, aStyles ),
|
||||||
|
m_isRadioButton( false ),
|
||||||
m_buttonState( 0 ),
|
m_buttonState( 0 ),
|
||||||
m_padding( 5 ),
|
m_padding( 5 ),
|
||||||
m_acceptDraggedInClicks( false )
|
m_acceptDraggedInClicks( false )
|
||||||
|
@ -165,7 +167,7 @@ void BITMAP_BUTTON::OnLeftButtonDown( wxMouseEvent& aEvent )
|
||||||
{
|
{
|
||||||
if( hasFlag( wxCONTROL_CHECKABLE ) )
|
if( hasFlag( wxCONTROL_CHECKABLE ) )
|
||||||
{
|
{
|
||||||
if( hasFlag( wxCONTROL_CHECKED ) )
|
if( hasFlag( wxCONTROL_CHECKED ) && !m_isRadioButton )
|
||||||
{
|
{
|
||||||
clearFlag( wxCONTROL_CHECKED );
|
clearFlag( wxCONTROL_CHECKED );
|
||||||
|
|
||||||
|
@ -280,6 +282,13 @@ void BITMAP_BUTTON::SetIsCheckButton()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BITMAP_BUTTON::SetIsRadioButton()
|
||||||
|
{
|
||||||
|
setFlag( wxCONTROL_CHECKABLE );
|
||||||
|
m_isRadioButton = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void BITMAP_BUTTON::SetIsSeparator()
|
void BITMAP_BUTTON::SetIsSeparator()
|
||||||
{
|
{
|
||||||
setFlag( wxCONTROL_SEPARATOR | wxCONTROL_DISABLED );
|
setFlag( wxCONTROL_SEPARATOR | wxCONTROL_DISABLED );
|
||||||
|
|
|
@ -80,9 +80,9 @@ DIALOG_FIELD_PROPERTIES::DIALOG_FIELD_PROPERTIES( SCH_BASE_FRAME* aParent, const
|
||||||
|
|
||||||
m_separator1->SetIsSeparator();
|
m_separator1->SetIsSeparator();
|
||||||
|
|
||||||
m_horizontal->SetIsCheckButton();
|
m_horizontal->SetIsRadioButton();
|
||||||
m_horizontal->SetBitmap( KiBitmap( BITMAPS::text_horizontal ) );
|
m_horizontal->SetBitmap( KiBitmap( BITMAPS::text_horizontal ) );
|
||||||
m_vertical->SetIsCheckButton();
|
m_vertical->SetIsRadioButton();
|
||||||
m_vertical->SetBitmap( KiBitmap( BITMAPS::text_vertical ) );
|
m_vertical->SetBitmap( KiBitmap( BITMAPS::text_vertical ) );
|
||||||
|
|
||||||
m_separator2->SetIsSeparator();
|
m_separator2->SetIsSeparator();
|
||||||
|
@ -94,20 +94,20 @@ DIALOG_FIELD_PROPERTIES::DIALOG_FIELD_PROPERTIES( SCH_BASE_FRAME* aParent, const
|
||||||
|
|
||||||
m_separator3->SetIsSeparator();
|
m_separator3->SetIsSeparator();
|
||||||
|
|
||||||
m_hAlignLeft->SetIsCheckButton();
|
m_hAlignLeft->SetIsRadioButton();
|
||||||
m_hAlignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
m_hAlignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
||||||
m_hAlignCenter->SetIsCheckButton();
|
m_hAlignCenter->SetIsRadioButton();
|
||||||
m_hAlignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
m_hAlignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
||||||
m_hAlignRight->SetIsCheckButton();
|
m_hAlignRight->SetIsRadioButton();
|
||||||
m_hAlignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
m_hAlignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
||||||
|
|
||||||
m_separator4->SetIsSeparator();
|
m_separator4->SetIsSeparator();
|
||||||
|
|
||||||
m_vAlignTop->SetIsCheckButton();
|
m_vAlignTop->SetIsRadioButton();
|
||||||
m_vAlignTop->SetBitmap( KiBitmap( BITMAPS::text_valign_top ) );
|
m_vAlignTop->SetBitmap( KiBitmap( BITMAPS::text_valign_top ) );
|
||||||
m_vAlignCenter->SetIsCheckButton();
|
m_vAlignCenter->SetIsRadioButton();
|
||||||
m_vAlignCenter->SetBitmap( KiBitmap( BITMAPS::text_valign_center ) );
|
m_vAlignCenter->SetBitmap( KiBitmap( BITMAPS::text_valign_center ) );
|
||||||
m_vAlignBottom->SetIsCheckButton();
|
m_vAlignBottom->SetIsRadioButton();
|
||||||
m_vAlignBottom->SetBitmap( KiBitmap( BITMAPS::text_valign_bottom ) );
|
m_vAlignBottom->SetBitmap( KiBitmap( BITMAPS::text_valign_bottom ) );
|
||||||
|
|
||||||
m_separator5->SetIsSeparator();
|
m_separator5->SetIsSeparator();
|
||||||
|
|
|
@ -139,10 +139,10 @@ DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES( SCH_EDIT_FRAME* aParent, SCH_L
|
||||||
|
|
||||||
m_separator2->SetIsSeparator();
|
m_separator2->SetIsSeparator();
|
||||||
|
|
||||||
m_spin0->SetIsCheckButton();
|
m_spin0->SetIsRadioButton();
|
||||||
m_spin1->SetIsCheckButton();
|
m_spin1->SetIsRadioButton();
|
||||||
m_spin2->SetIsCheckButton();
|
m_spin2->SetIsRadioButton();
|
||||||
m_spin3->SetIsCheckButton();
|
m_spin3->SetIsRadioButton();
|
||||||
|
|
||||||
m_separator3->SetIsSeparator();
|
m_separator3->SetIsSeparator();
|
||||||
|
|
||||||
|
|
|
@ -54,9 +54,9 @@ DIALOG_LIB_TEXT_PROPERTIES::DIALOG_LIB_TEXT_PROPERTIES( SYMBOL_EDIT_FRAME* aPare
|
||||||
|
|
||||||
m_separator1->SetIsSeparator();
|
m_separator1->SetIsSeparator();
|
||||||
|
|
||||||
m_horizontal->SetIsCheckButton();
|
m_horizontal->SetIsRadioButton();
|
||||||
m_horizontal->SetBitmap( KiBitmap( BITMAPS::text_horizontal ) );
|
m_horizontal->SetBitmap( KiBitmap( BITMAPS::text_horizontal ) );
|
||||||
m_vertical->SetIsCheckButton();
|
m_vertical->SetIsRadioButton();
|
||||||
m_vertical->SetBitmap( KiBitmap( BITMAPS::text_vertical ) );
|
m_vertical->SetBitmap( KiBitmap( BITMAPS::text_vertical ) );
|
||||||
|
|
||||||
m_separator2->SetIsSeparator();
|
m_separator2->SetIsSeparator();
|
||||||
|
@ -68,20 +68,20 @@ DIALOG_LIB_TEXT_PROPERTIES::DIALOG_LIB_TEXT_PROPERTIES( SYMBOL_EDIT_FRAME* aPare
|
||||||
|
|
||||||
m_separator3->SetIsSeparator();
|
m_separator3->SetIsSeparator();
|
||||||
|
|
||||||
m_hAlignLeft->SetIsCheckButton();
|
m_hAlignLeft->SetIsRadioButton();
|
||||||
m_hAlignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
m_hAlignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
||||||
m_hAlignCenter->SetIsCheckButton();
|
m_hAlignCenter->SetIsRadioButton();
|
||||||
m_hAlignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
m_hAlignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
||||||
m_hAlignRight->SetIsCheckButton();
|
m_hAlignRight->SetIsRadioButton();
|
||||||
m_hAlignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
m_hAlignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
||||||
|
|
||||||
m_separator4->SetIsSeparator();
|
m_separator4->SetIsSeparator();
|
||||||
|
|
||||||
m_vAlignTop->SetIsCheckButton();
|
m_vAlignTop->SetIsRadioButton();
|
||||||
m_vAlignTop->SetBitmap( KiBitmap( BITMAPS::text_valign_top ) );
|
m_vAlignTop->SetBitmap( KiBitmap( BITMAPS::text_valign_top ) );
|
||||||
m_vAlignCenter->SetIsCheckButton();
|
m_vAlignCenter->SetIsRadioButton();
|
||||||
m_vAlignCenter->SetBitmap( KiBitmap( BITMAPS::text_valign_center ) );
|
m_vAlignCenter->SetBitmap( KiBitmap( BITMAPS::text_valign_center ) );
|
||||||
m_vAlignBottom->SetIsCheckButton();
|
m_vAlignBottom->SetIsRadioButton();
|
||||||
m_vAlignBottom->SetBitmap( KiBitmap( BITMAPS::text_valign_bottom ) );
|
m_vAlignBottom->SetBitmap( KiBitmap( BITMAPS::text_valign_bottom ) );
|
||||||
|
|
||||||
m_separator5->SetIsSeparator();
|
m_separator5->SetIsSeparator();
|
||||||
|
|
|
@ -85,17 +85,17 @@ DIALOG_LIB_TEXTBOX_PROPERTIES::DIALOG_LIB_TEXTBOX_PROPERTIES( SYMBOL_EDIT_FRAME*
|
||||||
|
|
||||||
m_separator2->SetIsSeparator();
|
m_separator2->SetIsSeparator();
|
||||||
|
|
||||||
m_spin0->SetIsCheckButton();
|
m_spin0->SetIsRadioButton();
|
||||||
m_spin0->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
m_spin0->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
||||||
m_spin1->SetIsCheckButton();
|
m_spin1->SetIsRadioButton();
|
||||||
m_spin1->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
m_spin1->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
||||||
m_spin2->SetIsCheckButton();
|
m_spin2->SetIsRadioButton();
|
||||||
m_spin2->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
m_spin2->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
||||||
m_spin3->SetIsCheckButton();
|
m_spin3->SetIsRadioButton();
|
||||||
m_spin3->SetBitmap( KiBitmap( BITMAPS::text_align_bottom ) );
|
m_spin3->SetBitmap( KiBitmap( BITMAPS::text_align_bottom ) );
|
||||||
m_spin4->SetIsCheckButton();
|
m_spin4->SetIsRadioButton();
|
||||||
m_spin4->SetBitmap( KiBitmap( BITMAPS::text_align_middle ) );
|
m_spin4->SetBitmap( KiBitmap( BITMAPS::text_align_middle ) );
|
||||||
m_spin5->SetIsCheckButton();
|
m_spin5->SetIsRadioButton();
|
||||||
m_spin5->SetBitmap( KiBitmap( BITMAPS::text_align_top ) );
|
m_spin5->SetBitmap( KiBitmap( BITMAPS::text_align_top ) );
|
||||||
|
|
||||||
m_separator3->SetIsSeparator();
|
m_separator3->SetIsSeparator();
|
||||||
|
|
|
@ -111,17 +111,17 @@ DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES( SCH_EDIT_FRAME* aParent, SCH_ITE
|
||||||
|
|
||||||
m_separator2->SetIsSeparator();
|
m_separator2->SetIsSeparator();
|
||||||
|
|
||||||
m_spin0->SetIsCheckButton();
|
m_spin0->SetIsRadioButton();
|
||||||
m_spin0->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
m_spin0->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
||||||
m_spin1->SetIsCheckButton();
|
m_spin1->SetIsRadioButton();
|
||||||
m_spin1->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
m_spin1->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
||||||
m_spin2->SetIsCheckButton();
|
m_spin2->SetIsRadioButton();
|
||||||
m_spin2->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
m_spin2->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
||||||
m_spin3->SetIsCheckButton();
|
m_spin3->SetIsRadioButton();
|
||||||
m_spin3->SetBitmap( KiBitmap( BITMAPS::text_align_bottom ) );
|
m_spin3->SetBitmap( KiBitmap( BITMAPS::text_align_bottom ) );
|
||||||
m_spin4->SetIsCheckButton();
|
m_spin4->SetIsRadioButton();
|
||||||
m_spin4->SetBitmap( KiBitmap( BITMAPS::text_align_middle ) );
|
m_spin4->SetBitmap( KiBitmap( BITMAPS::text_align_middle ) );
|
||||||
m_spin5->SetIsCheckButton();
|
m_spin5->SetIsRadioButton();
|
||||||
m_spin5->SetBitmap( KiBitmap( BITMAPS::text_align_top ) );
|
m_spin5->SetBitmap( KiBitmap( BITMAPS::text_align_top ) );
|
||||||
|
|
||||||
m_separator3->SetIsSeparator();
|
m_separator3->SetIsSeparator();
|
||||||
|
|
|
@ -81,6 +81,8 @@ public:
|
||||||
*/
|
*/
|
||||||
void SetIsCheckButton();
|
void SetIsCheckButton();
|
||||||
|
|
||||||
|
void SetIsRadioButton();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check the control. This is the equivalent to toggling a toolbar button.
|
* Check the control. This is the equivalent to toggling a toolbar button.
|
||||||
*/
|
*/
|
||||||
|
@ -132,6 +134,7 @@ private:
|
||||||
wxBitmap m_normalBitmap;
|
wxBitmap m_normalBitmap;
|
||||||
wxBitmap m_disabledBitmap;
|
wxBitmap m_disabledBitmap;
|
||||||
|
|
||||||
|
bool m_isRadioButton;
|
||||||
int m_buttonState;
|
int m_buttonState;
|
||||||
int m_padding;
|
int m_padding;
|
||||||
wxSize m_unadjustedMinSize;
|
wxSize m_unadjustedMinSize;
|
||||||
|
|
|
@ -81,20 +81,20 @@ PROPERTIES_FRAME::PROPERTIES_FRAME( PL_EDITOR_FRAME* aParent ) :
|
||||||
|
|
||||||
m_separator2->SetIsSeparator();
|
m_separator2->SetIsSeparator();
|
||||||
|
|
||||||
m_alignLeft->SetIsCheckButton();
|
m_alignLeft->SetIsRadioButton();
|
||||||
m_alignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
m_alignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
||||||
m_alignCenter->SetIsCheckButton();
|
m_alignCenter->SetIsRadioButton();
|
||||||
m_alignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
m_alignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
||||||
m_alignRight->SetIsCheckButton();
|
m_alignRight->SetIsRadioButton();
|
||||||
m_alignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
m_alignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
||||||
|
|
||||||
m_separator3->SetIsSeparator();
|
m_separator3->SetIsSeparator();
|
||||||
|
|
||||||
m_vAlignTop->SetIsCheckButton();
|
m_vAlignTop->SetIsRadioButton();
|
||||||
m_vAlignTop->SetBitmap( KiBitmap( BITMAPS::text_valign_top ) );
|
m_vAlignTop->SetBitmap( KiBitmap( BITMAPS::text_valign_top ) );
|
||||||
m_vAlignMiddle->SetIsCheckButton();
|
m_vAlignMiddle->SetIsRadioButton();
|
||||||
m_vAlignMiddle->SetBitmap( KiBitmap( BITMAPS::text_valign_center ) );
|
m_vAlignMiddle->SetBitmap( KiBitmap( BITMAPS::text_valign_center ) );
|
||||||
m_vAlignBottom->SetIsCheckButton();
|
m_vAlignBottom->SetIsRadioButton();
|
||||||
m_vAlignBottom->SetBitmap( KiBitmap( BITMAPS::text_valign_bottom ) );
|
m_vAlignBottom->SetBitmap( KiBitmap( BITMAPS::text_valign_bottom ) );
|
||||||
|
|
||||||
m_separator4->SetIsSeparator();
|
m_separator4->SetIsSeparator();
|
||||||
|
|
|
@ -101,11 +101,11 @@ DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES( PCB_BASE_EDIT_FRAME* a
|
||||||
|
|
||||||
m_separator1->SetIsSeparator();
|
m_separator1->SetIsSeparator();
|
||||||
|
|
||||||
m_alignLeft->SetIsCheckButton();
|
m_alignLeft->SetIsRadioButton();
|
||||||
m_alignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
m_alignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
||||||
m_alignCenter->SetIsCheckButton();
|
m_alignCenter->SetIsRadioButton();
|
||||||
m_alignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
m_alignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
||||||
m_alignRight->SetIsCheckButton();
|
m_alignRight->SetIsRadioButton();
|
||||||
m_alignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
m_alignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
||||||
|
|
||||||
m_separator2->SetIsSeparator();
|
m_separator2->SetIsSeparator();
|
||||||
|
|
|
@ -126,11 +126,11 @@ DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES( PCB_BASE_EDIT_FRAME* aParent, BO
|
||||||
|
|
||||||
m_separator1->SetIsSeparator();
|
m_separator1->SetIsSeparator();
|
||||||
|
|
||||||
m_alignLeft->SetIsCheckButton();
|
m_alignLeft->SetIsRadioButton();
|
||||||
m_alignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
m_alignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
||||||
m_alignCenter->SetIsCheckButton();
|
m_alignCenter->SetIsRadioButton();
|
||||||
m_alignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
m_alignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
||||||
m_alignRight->SetIsCheckButton();
|
m_alignRight->SetIsRadioButton();
|
||||||
m_alignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
m_alignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
||||||
|
|
||||||
m_separator2->SetIsSeparator();
|
m_separator2->SetIsSeparator();
|
||||||
|
|
|
@ -96,11 +96,11 @@ DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES( PCB_BASE_EDIT_FRAME* aPare
|
||||||
|
|
||||||
m_separator1->SetIsSeparator();
|
m_separator1->SetIsSeparator();
|
||||||
|
|
||||||
m_alignLeft->SetIsCheckButton();
|
m_alignLeft->SetIsRadioButton();
|
||||||
m_alignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
m_alignLeft->SetBitmap( KiBitmap( BITMAPS::text_align_left ) );
|
||||||
m_alignCenter->SetIsCheckButton();
|
m_alignCenter->SetIsRadioButton();
|
||||||
m_alignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
m_alignCenter->SetBitmap( KiBitmap( BITMAPS::text_align_center ) );
|
||||||
m_alignRight->SetIsCheckButton();
|
m_alignRight->SetIsRadioButton();
|
||||||
m_alignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
m_alignRight->SetBitmap( KiBitmap( BITMAPS::text_align_right ) );
|
||||||
|
|
||||||
m_separator2->SetIsSeparator();
|
m_separator2->SetIsSeparator();
|
||||||
|
|
Loading…
Reference in New Issue