FIX: ComboBox set icon

Change-Id: If74ccca3649913d8cf6664347d082f75e4425b00
Jira: STUDIO-8640
(cherry picked from commit 7ce090d2b5308650d5cb10f0dac021efa181214d)
This commit is contained in:
chunmao.guo 2024-11-06 12:32:10 +08:00 committed by Noisyfox
parent 038dd56006
commit d3a164251c
2 changed files with 12 additions and 6 deletions

View file

@ -85,10 +85,13 @@ void ComboBox::SetSelection(int n)
return;
drop.SetSelection(n);
SetLabel(drop.GetValue());
if (drop.selection >= 0 && drop.iconSize.y > 0)
SetIcon(icons[drop.selection].IsNull() ? create_scaled_bitmap("drop_down", nullptr, 16): icons[drop.selection]); // ORCA fix combo boxes without arrows
if (drop.selection >= 0 && drop.iconSize.y > 0 && icons[drop.selection].IsOk())
SetIcon(icons[drop.selection]);
else
SetIcon("drop_down");
}
void ComboBox::SelectAndNotify(int n) {
void ComboBox::SelectAndNotify(int n) {
SetSelection(n);
sendComboBoxEvent();
}
@ -108,8 +111,10 @@ void ComboBox::SetValue(const wxString &value)
{
drop.SetValue(value);
SetLabel(value);
if (drop.selection >= 0 && drop.iconSize.y > 0)
SetIcon(icons[drop.selection].IsNull() ? create_scaled_bitmap("drop_down", nullptr, 16): icons[drop.selection]); // ORCA fix combo boxes without arrows
if (drop.selection >= 0 && drop.iconSize.y > 0 && icons[drop.selection].IsOk())
SetIcon(icons[drop.selection]);
else
SetIcon("drop_down");
}
void ComboBox::SetLabel(const wxString &value)

View file

@ -332,7 +332,8 @@ void DropDown::messureSize()
wxSize size1 = text_off ? wxSize() : dc.GetMultiLineTextExtent(texts[i]);
if (icons[i].IsOk()) {
wxSize size2 = GetBmpSize(icons[i]);
if (size2.x > iconSize.x) iconSize = size2;
if (size2.x > iconSize.x)
iconSize = size2;
if (!align_icon) {
size1.x += size2.x + (text_off ? 0 : 5);
}