GUI parts for DISCO-F746NG. GuiBase, Button, ButtonGroup, Label, BlinkLabel, NumericLabel, SeekBar, SeekbarGroup

Dependents:   F746_SD_GraphicEqualizer_ren0620

Fork of F746_GUI by 不韋 呂

Revision:
11:7debdaa7b503
Child:
12:687ec6183385
diff -r 5a2068884fd9 -r 7debdaa7b503 SeekbarGroup.hpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SeekbarGroup.hpp	Wed Apr 27 07:28:04 2016 +0000
@@ -0,0 +1,76 @@
+//-----------------------------------------------------------
+//  SeekbarGroup class -- Header
+//
+//  2016/04/27, Copyright (c) 2016 MIKAMI, Naoki
+//-----------------------------------------------------------
+
+#ifndef F746_SEEKBAR_GROUP_HPP
+#define F746_SEEKBAR_GROUP_HPP
+
+#include "SeekBar.hpp"
+
+namespace Mikami
+{
+    class SeekbarGroup : public GuiBase
+    {
+    public:
+        SeekbarGroup(uint16_t x0, uint16_t y0,  uint16_t length,
+                     uint16_t number, uint16_t space,
+                     float min, float max, float initialValue,
+                     SeekBar::Orientation hv = SeekBar::Holizontal,
+                     uint32_t thumbColor = LCD_COLOR_WHITE,
+                     uint16_t thumbSize = 30, uint16_t width = 4,
+                     uint32_t colorL = LCD_COLOR_LIGHTGRAY,
+                     uint32_t colorH = 0xFFB0B0B0,
+                     uint32_t backColor = GuiBase::ENUM_BACK);
+
+        ~SeekbarGroup();
+        
+        bool Slide(int num) { return seekBars_[num]->Slide(); }
+        float GetValue(int num) { return seekBars_[num]->GetValue(); }
+        int GetIntValue(int num) { return seekBars_[num]->Round(seekBars_[num]->GetIntValue()); }
+
+        // Get slided number
+        bool GetSlidedNumber(int &num);
+        
+        void Draw(int num, float value, bool fill = false)
+        {   seekBars_[num]->Draw(value, fill); }
+
+        // Draw all thumbs with same value
+        void DrawAll(float value, bool fill = false)
+        {   for (int n=0; n<numberOfSeekBar_; n++) Draw(n, value, fill); }
+
+        void Redraw(int num, bool fill = false)
+        {   seekBars_[num]->Draw(seekBars_[num]->GetValue(), fill); }
+
+        void RedrawAll(bool fill = false)
+        {   for (int n=0; n<numberOfSeekBar_; n++) Redraw(n, fill); }
+
+        // Activate and inactivate
+        void Activate(int num) { seekBars_[num]->Activate(); }
+        void Inactivate(int num) { seekBars_[num]->Inactivate(); }
+        void ActivateAll()
+        {   
+            for (int n=0; n<numberOfSeekBar_; n++)
+                seekBars_[n]->Activate();
+        }
+        void InactivateAll()
+        {
+            for (int n=0; n<numberOfSeekBar_; n++)
+                seekBars_[n]->Inactivate();
+        }
+
+    private:
+        SeekBar **seekBars_;
+        int numberOfSeekBar_;
+
+        // Check range of argument
+        bool Range(int n)
+        { return ((n >= 0) && (n < numberOfSeekBar_)); }
+
+        // disallow copy constructor and assignment operator
+        SeekbarGroup(const SeekbarGroup&);
+        SeekbarGroup& operator=(const SeekbarGroup&);
+    };
+}
+#endif  //  F746_SEEKBAR_GROUP_HPP