demotool/syncoverrides.hh
Emmanuel BENOîT 422ab564f3 Overrides - Started work
+ Basic structures
+ Partial implementation in the sync manager
+ Partial implementation of the single float override
+ Silly hardcoded tests in the demo/main files
2017-11-16 12:20:21 +01:00

40 lines
1.1 KiB
C++

#pragma once
#include "sync.hh"
namespace sov {
/*= FLOATING POINT SLIDERS =====================================================*/
// Single float value
class T_Float : public A_SyncOverride
{
private:
T_String title_;
T_Optional< float > min_;
T_Optional< float > max_;
T_Optional< float > step_;
T_Optional< ebcl::T_StaticArray< char , 12 > > decimals_;
T_Optional< float > power_;
protected:
void makeEditWidgets( ) noexcept override;
public:
T_Float( T_String const& input ,
T_String const& title ) noexcept;
bool setMin( const float v ) noexcept;
bool setMax( const float v ) noexcept;
bool setStep( const float v ) noexcept;
bool setDecimals( const uint32_t n ) noexcept;
bool setPower( const float v ) noexcept;
float min( ) const noexcept { return min_ ? *min_ : 0.0f; }
float max( ) const noexcept { return max_ ? *max_ : 0.0f; }
float step( ) const noexcept { return step_ ? *step_ : .001f; }
char const* decimals( ) const noexcept { return decimals_ ? &(*decimals_)[ 0 ] : "%.3f"; }
float power( ) const noexcept { return power_ ? *power_ : 1.0f; }
};
} // namespace