314{
316 return nullptr;
317
319 if (icons.empty())
320 return nullptr;
321
322 DataViewBitmapText data;
323 data << value;
324
325 ::ComboBox *c_editor = new ::ComboBox(parent, wxID_ANY, wxEmptyString,
326 labelRect.GetTopLeft(), wxSize(labelRect.GetWidth(), -1),
329
332
333 for (size_t i = 0; i < icons.size(); i++)
334 c_editor->
Append(wxString::Format(
"%d", i+1), *icons[i]);
335
338 else
340
341 c_editor->Bind(wxEVT_SET_FOCUS, [c_editor](wxFocusEvent& evt) {
342#ifdef __WXGTK__
343
344
345
346 c_editor->CallAfter([c_editor]() {
347 if (c_editor->IsShownOnScreen())
349 });
350#else
352#endif
353 evt.Skip();
354 });
355
356
357 c_editor->Bind(wxEVT_COMBOBOX, [this](wxCommandEvent& evt) {
358 evt.StopPropagation();
359
360
361 this->FinishEditing();
362 });
363
364 return c_editor;
365}
#define CB_NO_TEXT
Definition ComboBox.hpp:18
#define CB_NO_DROP_ICON
Definition ComboBox.hpp:17
#define _L(s)
Definition OBJ.cpp:34
std::function< bool()> can_create_editor_ctrl
Definition ExtraRenderers.hpp:174
std::function< bool()> has_default_extruder
Definition ExtraRenderers.hpp:176
void SetSelection(int n) override
Definition ComboBox.cpp:102
void ForceDropdownOpen()
Definition ComboBox.cpp:288
int Append(const wxString &item, const wxBitmap &bitmap=wxNullBitmap, int item_style=0)
Definition ComboBox.cpp:227
DropDown & GetDropDown()
Definition ComboBox.hpp:43
wxString GetText() const
Definition ExtraRenderers.hpp:50
void SetUseContentWidth(bool use, bool limit_max_content_width=false)
Definition DropDown.cpp:165
wxBitmap * get_default_extruder_color_icon(bool thin_icon)
Definition wxExtensions.cpp:527
std::vector< wxBitmap * > get_extruder_color_icons(bool thin_icon)
Definition wxExtensions.cpp:572