gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

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 }