ENH: support nozzle info, support new popup style

jira: [STUDIO-11974]
Change-Id: I8d80338d5b90bcca824ea46be2066f1bfb7aa10a
(cherry picked from commit 8c8b8d63b97e8f6a8423456f88e9a5e0e3d9f7ab)
This commit is contained in:
xin.zhang
2025-05-07 12:00:07 +08:00
committed by Noisyfox
parent 45936b6de8
commit 54c402aec6
15 changed files with 175 additions and 58 deletions

View File

@@ -87,10 +87,17 @@ void ComboBox::SetSelection(int n)
return;
drop.SetSelection(n);
SetLabel(drop.GetValue());
if (drop.selection >= 0 && drop.iconSize.y > 0 && items[drop.selection].icon.IsOk())
SetIcon(items[drop.selection].icon);
if (drop.selection >= 0 && drop.iconSize.y > 0 && items[drop.selection].icon_textctrl.IsOk())
SetIcon(items[drop.selection].icon_textctrl);
else
SetIcon("drop_down");
if (drop.selection >= 0) {
SetStaticTips(items[drop.selection].text_static_tips, wxNullBitmap);
} else {
SetStaticTips(wxEmptyString, wxNullBitmap);
}
}
void ComboBox::SelectAndNotify(int n) {
@@ -113,10 +120,16 @@ void ComboBox::SetValue(const wxString &value)
{
drop.SetValue(value);
SetLabel(value);
if (drop.selection >= 0 && drop.iconSize.y > 0 && items[drop.selection].icon.IsOk())
SetIcon(items[drop.selection].icon);
if (drop.selection >= 0 && drop.iconSize.y > 0 && items[drop.selection].icon_textctrl.IsOk())
SetIcon(items[drop.selection].icon_textctrl);
else
SetIcon("drop_down");
if (drop.selection >= 0) {
SetStaticTips(items[drop.selection].text_static_tips, wxNullBitmap);
} else {
SetStaticTips(wxEmptyString, wxNullBitmap);
}
}
void ComboBox::SetLabel(const wxString &value)
@@ -191,13 +204,20 @@ int ComboBox::Append(const wxString &text,
int ComboBox::Append(const wxString &text, const wxBitmap &bitmap, const wxString &group, void *clientData)
{
Item item{text, bitmap, clientData, group};
Item item{text, wxEmptyString, bitmap, bitmap, clientData, group};
items.push_back(item);
SetClientDataType(wxClientData_Void);
drop.Invalidate();
return items.size() - 1;
}
int ComboBox::SetItems(const std::vector<DropDown::Item>& the_items)
{
items = the_items;
drop.Invalidate();
return items.size() - 1;
}
void ComboBox::DoClear()
{
SetIcon("drop_down");
@@ -260,7 +280,7 @@ int ComboBox::DoInsertItems(const wxArrayStringsAdapter &items,
{
if (pos > this->items.size()) return -1;
for (int i = 0; i < items.GetCount(); ++i) {
Item item { items[i], wxNullBitmap, clientData ? clientData[i] : NULL };
Item item { items[i], wxEmptyString, wxNullBitmap, wxNullBitmap, clientData ? clientData[i] : NULL };
this->items.insert(this->items.begin() + pos, item);
++pos;
}