1 #pragma once 2 3 #include "gui/objects/Palette.h" 4 #include "objects/containers/UnorderedMap.h" 5 #include "objects/wrappers/Function.h" 6 #include <wx/frame.h> 7 #include <wx/panel.h> 8 9 NAMESPACE_SPH_BEGIN 10 11 class ComboBox; 12 class FloatTextCtrl; 13 class PaletteCanvas; 14 15 class PalettePanel : public wxPanel { 16 private: 17 ComboBox* paletteBox; 18 19 PaletteCanvas* canvas; 20 FloatTextCtrl* lowerCtrl; 21 FloatTextCtrl* upperCtrl; 22 23 UnorderedMap<String, Palette> paletteMap; 24 25 Palette initial; 26 Palette selected; 27 28 public: 29 PalettePanel(wxWindow* parent, wxSize size, const Palette palette); 30 31 void setPalette(const Palette& palette); 32 33 Function<void(Palette)> onPaletteChanged; 34 35 private: 36 void setDefaultPaletteList(); 37 38 void loadPalettes(const Path& path); 39 40 void update(); 41 }; 42 43 NAMESPACE_SPH_END 44