list.cpp (2319B)
1 #include "list.h" 2 3 #include "defaultskin.h" 4 #include "patchmanager.h" 5 6 #include "juceUiLib/uiObject.h" 7 8 #include "../pluginEditor.h" 9 10 namespace jucePluginEditorLib::patchManager 11 { 12 List::List(PatchManager& _pm) : ListModel(_pm) 13 { 14 setColour(backgroundColourId, juce::Colour(defaultSkin::colors::background)); 15 setColour(textColourId, juce::Colour(defaultSkin::colors::itemText)); 16 17 setRowHeight(18); 18 19 getViewport()->setScrollBarsShown(true, false); 20 setModel(this); 21 setMultipleSelectionEnabled(true); 22 23 if (const auto& t = _pm.getTemplate("pm_listbox")) 24 t->apply(_pm.getEditor(), *this); 25 26 applyStyleToViewport(_pm, *getViewport()); 27 28 setRowSelectedOnMouseDown(false); 29 } 30 31 void List::applyStyleToViewport(const PatchManager& _pm, juce::Viewport& _viewport) 32 { 33 if(const auto t = _pm.getTemplate("pm_scrollbar")) 34 { 35 t->apply(_pm.getEditor(), _viewport.getVerticalScrollBar()); 36 t->apply(_pm.getEditor(), _viewport.getHorizontalScrollBar()); 37 } 38 else 39 { 40 _viewport.getVerticalScrollBar().setColour(juce::ScrollBar::thumbColourId, juce::Colour(defaultSkin::colors::scrollbar)); 41 _viewport.getVerticalScrollBar().setColour(juce::ScrollBar::trackColourId, juce::Colour(defaultSkin::colors::scrollbar)); 42 _viewport.getHorizontalScrollBar().setColour(juce::ScrollBar::thumbColourId, juce::Colour(defaultSkin::colors::scrollbar)); 43 _viewport.getHorizontalScrollBar().setColour(juce::ScrollBar::trackColourId, juce::Colour(defaultSkin::colors::scrollbar)); 44 } 45 } 46 47 juce::Colour List::findColor(const int _colorId) 48 { 49 return findColour(_colorId); 50 } 51 52 const juce::LookAndFeel& List::getStyle() const 53 { 54 return getLookAndFeel(); 55 } 56 57 void List::onModelChanged() 58 { 59 updateContent(); 60 } 61 62 void List::redraw() 63 { 64 repaint(); 65 } 66 67 void List::ensureVisible(const int _row) 68 { 69 scrollToEnsureRowIsOnscreen(_row); 70 } 71 72 int List::getSelectedEntry() const 73 { 74 return getSelectedRow(); 75 } 76 77 juce::SparseSet<int> List::getSelectedEntries() const 78 { 79 return getSelectedRows(); 80 } 81 82 void List::deselectAll() 83 { 84 deselectAllRows(); 85 } 86 87 void List::setSelectedEntries(const juce::SparseSet<int>& _rows) 88 { 89 setSelectedRows(_rows); 90 } 91 92 juce::Rectangle<int> List::getEntryPosition(int _row, const bool _relativeToComponentTopLeft) 93 { 94 return getRowPosition(_row, _relativeToComponentTopLeft); 95 } 96 }