Merge branch 'editlbox-fixes'

Cosmetic fixes to wxEditableListBox buttons appearance and some code
modernization.

See https://github.com/wxWidgets/wxWidgets/pull/1012
This commit is contained in:
Vadim Zeitlin
2018-11-04 17:56:10 +01:00

View File

@@ -121,61 +121,53 @@ bool wxEditableListBox::Create(wxWindow *parent, wxWindowID id,
wxPanel *subp = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxPanel *subp = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize,
wxSUNKEN_BORDER | wxTAB_TRAVERSAL); wxSUNKEN_BORDER | wxTAB_TRAVERSAL);
wxSizer *subsizer = new wxBoxSizer(wxHORIZONTAL); wxSizer *subsizer = new wxBoxSizer(wxHORIZONTAL);
subsizer->Add(new wxStaticText(subp, wxID_ANY, label), 1, wxALIGN_CENTRE_VERTICAL | wxLEFT, 4);
#ifdef __WXMSW__ subsizer->Add(new wxStaticText(subp, wxID_ANY, label),
#define BTN_BORDER 4 wxSizerFlags(1).Center().Border(wxLEFT));
// FIXME - why is this needed? There's some reason why sunken border is
// ignored by sizers in wxMSW but not in wxGTK that I can't const wxSizerFlags flagsCentered = wxSizerFlags().Center();
// figure out...
#else
#define BTN_BORDER 0
#endif
if ( m_style & wxEL_ALLOW_EDIT ) if ( m_style & wxEL_ALLOW_EDIT )
{ {
m_bEdit = new wxBitmapButton(subp, wxID_ELB_EDIT, m_bEdit = new wxBitmapButton(subp, wxID_ELB_EDIT,
wxArtProvider::GetBitmap(wxART_EDIT, wxART_BUTTON)); wxArtProvider::GetBitmap(wxART_EDIT, wxART_BUTTON));
subsizer->Add(m_bEdit, 0, wxALIGN_CENTRE_VERTICAL | wxTOP | wxBOTTOM, BTN_BORDER); m_bEdit->SetToolTip(_("Edit item"));
subsizer->Add(m_bEdit, flagsCentered);
} }
if ( m_style & wxEL_ALLOW_NEW ) if ( m_style & wxEL_ALLOW_NEW )
{ {
m_bNew = new wxBitmapButton(subp, wxID_ELB_NEW, m_bNew = new wxBitmapButton(subp, wxID_ELB_NEW,
wxArtProvider::GetBitmap(wxART_NEW, wxART_BUTTON)); wxArtProvider::GetBitmap(wxART_NEW, wxART_BUTTON));
subsizer->Add(m_bNew, 0, wxALIGN_CENTRE_VERTICAL | wxTOP | wxBOTTOM, BTN_BORDER); m_bNew->SetToolTip(_("New item"));
subsizer->Add(m_bNew, flagsCentered);
} }
if ( m_style & wxEL_ALLOW_DELETE ) if ( m_style & wxEL_ALLOW_DELETE )
{ {
m_bDel = new wxBitmapButton(subp, wxID_ELB_DELETE, m_bDel = new wxBitmapButton(subp, wxID_ELB_DELETE,
wxArtProvider::GetBitmap(wxART_DELETE, wxART_BUTTON)); wxArtProvider::GetBitmap(wxART_DELETE, wxART_BUTTON));
subsizer->Add(m_bDel, 0, wxALIGN_CENTRE_VERTICAL | wxTOP | wxBOTTOM, BTN_BORDER); m_bDel->SetToolTip(_("Delete item"));
subsizer->Add(m_bDel, flagsCentered);
} }
if (!(m_style & wxEL_NO_REORDER)) if (!(m_style & wxEL_NO_REORDER))
{ {
m_bUp = new wxBitmapButton(subp, wxID_ELB_UP, m_bUp = new wxBitmapButton(subp, wxID_ELB_UP,
wxArtProvider::GetBitmap(wxART_GO_UP, wxART_BUTTON)); wxArtProvider::GetBitmap(wxART_GO_UP, wxART_BUTTON));
subsizer->Add(m_bUp, 0, wxALIGN_CENTRE_VERTICAL | wxTOP | wxBOTTOM, BTN_BORDER); m_bUp->SetToolTip(_("Move up"));
subsizer->Add(m_bUp, flagsCentered);
m_bDown = new wxBitmapButton(subp, wxID_ELB_DOWN, m_bDown = new wxBitmapButton(subp, wxID_ELB_DOWN,
wxArtProvider::GetBitmap(wxART_GO_DOWN, wxART_BUTTON)); wxArtProvider::GetBitmap(wxART_GO_DOWN, wxART_BUTTON));
subsizer->Add(m_bDown, 0, wxALIGN_CENTRE_VERTICAL | wxTOP | wxBOTTOM, BTN_BORDER); m_bDown->SetToolTip(_("Move down"));
subsizer->Add(m_bDown, flagsCentered);
} }
#if wxUSE_TOOLTIPS
if ( m_bEdit ) m_bEdit->SetToolTip(_("Edit item"));
if ( m_bNew ) m_bNew->SetToolTip(_("New item"));
if ( m_bDel ) m_bDel->SetToolTip(_("Delete item"));
if ( m_bUp ) m_bUp->SetToolTip(_("Move up"));
if ( m_bDown ) m_bDown->SetToolTip(_("Move down"));
#endif
subp->SetSizer(subsizer); subp->SetSizer(subsizer);
subsizer->Fit(subp); subsizer->Fit(subp);
sizer->Add(subp, 0, wxEXPAND); sizer->Add(subp, wxSizerFlags().Expand());
long st = wxLC_REPORT | wxLC_NO_HEADER | wxLC_SINGLE_SEL | wxSUNKEN_BORDER; long st = wxLC_REPORT | wxLC_NO_HEADER | wxLC_SINGLE_SEL | wxSUNKEN_BORDER;
if ( style & wxEL_ALLOW_EDIT ) if ( style & wxEL_ALLOW_EDIT )
@@ -185,7 +177,7 @@ bool wxEditableListBox::Create(wxWindow *parent, wxWindowID id,
wxArrayString empty_ar; wxArrayString empty_ar;
SetStrings(empty_ar); SetStrings(empty_ar);
sizer->Add(m_listCtrl, 1, wxEXPAND); sizer->Add(m_listCtrl, wxSizerFlags(1).Expand());
SetSizer(sizer); SetSizer(sizer);
Layout(); Layout();