void WinListe::showMod() { int Id = selectedId(); if (Id < 0) return; _frm[_opt.mediaType()]->setVals(Id); showAdd(); }
void WinListe::showAddTo() { const int Id = selectedId(); if (Id < 0) return; _frm[_opt.mediaType()]->addTo(Id); showAdd(); }
void WinListe::delMedia() { int Id = selectedId(); if (Id >= 0) { _listes.remove(Id); refreshLst(); } save(); }
bool ComboBox::onEvent(const Event &ev) { if(ev.type == Event::window_closed && ev.source == m_popup.get()) { m_dummy->selectEntry(m_popup->selectedId()); m_popup = nullptr; updateButton(); if(ev.value) sendEvent(this, Event::element_selected, m_dummy->selectedId()); } else if(ev.type == Event::button_clicked && ev.source == m_button.get()) { DASSERT(!m_popup); if(m_drop_size > 0 && size()) { int popup_size = min(m_drop_size, m_dummy->size() * m_dummy->lineHeight()); IRect clip_rect = clippedRect(); IRect rect(clip_rect.min, int2(clip_rect.max.x, clip_rect.min.y + popup_size)); m_popup = make_shared<ListBox>(rect, WindowStyle::gui_popup); for(int n = 0; n < size(); n++) { const ListBox::Entry &entry = (*m_dummy)[n]; m_popup->addEntry(entry.text.c_str(), entry.color); } m_popup->selectEntry(m_dummy->selectedId()); m_popup->setInnerOffset(int2(0, m_dummy->selectedId() * m_dummy->lineHeight())); mainWindow()->attach(m_popup, true); } else if(size() > 1) { int next_id = (selectedId() + 1) % size(); selectEntry(next_id); sendEvent(this, Event::element_selected, next_id); } } else return false; return true; }
bool WinListe::canAddToItem() const { if (selectedId() < 0 || selectedId() >= _listes.size()) return false; return ((1<<_listes[selectedId()]->type()) & ((1<<Media::eMTZik) | (1<<Media::eMTBook))); }