![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
2018年3月16日に開催されるCQ出版社インターフェース誌オフ会で紹介するプログラム
Dependencies: mbed Array_Matrix BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG
Diff: F746_Gui_New/SeekbarGroup.hpp
- Revision:
- 0:f00cf31ae154
diff -r 000000000000 -r f00cf31ae154 F746_Gui_New/SeekbarGroup.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/F746_Gui_New/SeekbarGroup.hpp Sat Mar 10 11:37:33 2018 +0000 @@ -0,0 +1,79 @@ +//----------------------------------------------------------- +// SeekbarGroup class -- Header +// +// 2017/01/25, Copyright (c) 2017 MIKAMI, Naoki +//----------------------------------------------------------- + +#ifndef F746_SEEKBAR_GROUP_HPP +#define F746_SEEKBAR_GROUP_HPP + +#include "SeekBar.hpp" +#include "Array.hpp" + +namespace Mikami +{ + class SeekbarGroup + { + 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 = 0xFFB0B0FF, + uint16_t thumbSize = 30, uint16_t width = 4, + uint32_t colorL = LCD_COLOR_LIGHTGRAY, + uint32_t colorH = 0xFFB0B0B0, + uint32_t backColor = GuiBase::ENUM_BACK); + + virtual ~SeekbarGroup() + { for (int n=0; n<NUMBER_; n++) delete seekBars_[n]; } + + bool Slide(int num) { return seekBars_[num]->Slide(); } + float GetValue(int num) { return seekBars_[num]->GetValue(); } + int GetIntValue(int num) { return 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<NUMBER_; 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<NUMBER_; 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<NUMBER_; n++) + seekBars_[n]->Activate(); + } + void InactivateAll() + { + for (int n=0; n<NUMBER_; n++) + seekBars_[n]->Inactivate(); + } + + private: + const int NUMBER_; + Array<SeekBar *> seekBars_; + + // Check range of argument + bool Range(int n) + { return ((n >= 0) && (n < NUMBER_)); } + + // disallow copy constructor and assignment operator + SeekbarGroup(const SeekbarGroup&); + SeekbarGroup& operator=(const SeekbarGroup&); + }; +} +#endif // F746_SEEKBAR_GROUP_HPP +