Extend the generic Settings classes to support float and rect settings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43081 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -34,6 +34,23 @@ BoolSetting::DefaultValue() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - FloatSetting
|
||||||
|
|
||||||
|
|
||||||
|
setting_type
|
||||||
|
FloatSetting::Type() const
|
||||||
|
{
|
||||||
|
return SETTING_TYPE_FLOAT;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BVariant
|
||||||
|
FloatSetting::DefaultValue() const
|
||||||
|
{
|
||||||
|
return DefaultFloatValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - SettingsOption
|
// #pragma mark - SettingsOption
|
||||||
|
|
||||||
|
|
||||||
@@ -71,6 +88,22 @@ RangeSetting::Type() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - RectSetting
|
||||||
|
|
||||||
|
setting_type
|
||||||
|
RectSetting::Type() const
|
||||||
|
{
|
||||||
|
return SETTING_TYPE_RECT;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BVariant
|
||||||
|
RectSetting::DefaultValue() const
|
||||||
|
{
|
||||||
|
return DefaultRectValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - AbstractSetting
|
// #pragma mark - AbstractSetting
|
||||||
|
|
||||||
|
|
||||||
@@ -115,6 +148,25 @@ BoolSettingImpl::DefaultBoolValue() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - FloatSettingImpl
|
||||||
|
|
||||||
|
|
||||||
|
FloatSettingImpl::FloatSettingImpl(const BString& id, const BString& name,
|
||||||
|
float defaultValue)
|
||||||
|
:
|
||||||
|
AbstractSetting(id, name),
|
||||||
|
fDefaultValue(defaultValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float
|
||||||
|
FloatSettingImpl::DefaultFloatValue() const
|
||||||
|
{
|
||||||
|
return fDefaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - OptionsSettingImpl
|
// #pragma mark - OptionsSettingImpl
|
||||||
|
|
||||||
|
|
||||||
@@ -263,3 +315,22 @@ RangeSettingImpl::UpperBound() const
|
|||||||
{
|
{
|
||||||
return fUpperBound;
|
return fUpperBound;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - RectSettingImpl
|
||||||
|
|
||||||
|
|
||||||
|
RectSettingImpl::RectSettingImpl(const BString& id, const BString& name,
|
||||||
|
const BRect& defaultValue)
|
||||||
|
:
|
||||||
|
AbstractSetting(id, name),
|
||||||
|
fDefaultValue(defaultValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BRect
|
||||||
|
RectSettingImpl::DefaultRectValue() const
|
||||||
|
{
|
||||||
|
return fDefaultValue;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2009, Ingo Weinhold, [email protected].
|
* Copyright 2009, Ingo Weinhold, [email protected].
|
||||||
|
* Copyright 2011, Rene Gollent, [email protected].
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
#ifndef SETTING_H
|
#ifndef SETTING_H
|
||||||
@@ -15,8 +16,10 @@
|
|||||||
|
|
||||||
enum setting_type {
|
enum setting_type {
|
||||||
SETTING_TYPE_BOOL,
|
SETTING_TYPE_BOOL,
|
||||||
|
SETTING_TYPE_FLOAT,
|
||||||
SETTING_TYPE_OPTIONS,
|
SETTING_TYPE_OPTIONS,
|
||||||
SETTING_TYPE_RANGE
|
SETTING_TYPE_RANGE,
|
||||||
|
SETTING_TYPE_RECT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -42,6 +45,16 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class FloatSetting : public virtual Setting {
|
||||||
|
public:
|
||||||
|
virtual setting_type Type() const;
|
||||||
|
|
||||||
|
virtual BVariant DefaultValue() const;
|
||||||
|
|
||||||
|
virtual float DefaultFloatValue() const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class SettingsOption : public BReferenceable {
|
class SettingsOption : public BReferenceable {
|
||||||
public:
|
public:
|
||||||
virtual ~SettingsOption();
|
virtual ~SettingsOption();
|
||||||
@@ -74,6 +87,16 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class RectSetting : public virtual Setting {
|
||||||
|
public:
|
||||||
|
virtual setting_type Type() const;
|
||||||
|
|
||||||
|
virtual BVariant DefaultValue() const;
|
||||||
|
|
||||||
|
virtual BRect DefaultRectValue() const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class AbstractSetting : public virtual Setting {
|
class AbstractSetting : public virtual Setting {
|
||||||
public:
|
public:
|
||||||
AbstractSetting(const BString& id,
|
AbstractSetting(const BString& id,
|
||||||
@@ -100,6 +123,18 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class FloatSettingImpl : public AbstractSetting, public FloatSetting {
|
||||||
|
public:
|
||||||
|
FloatSettingImpl(const BString& id,
|
||||||
|
const BString& name, float defaultValue);
|
||||||
|
|
||||||
|
virtual float DefaultFloatValue() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
float fDefaultValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class OptionsSettingImpl : public AbstractSetting, public OptionsSetting {
|
class OptionsSettingImpl : public AbstractSetting, public OptionsSetting {
|
||||||
public:
|
public:
|
||||||
OptionsSettingImpl(const BString& id,
|
OptionsSettingImpl(const BString& id,
|
||||||
@@ -149,4 +184,17 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class RectSettingImpl : public AbstractSetting, public RectSetting {
|
||||||
|
public:
|
||||||
|
RectSettingImpl(const BString& id,
|
||||||
|
const BString& name,
|
||||||
|
const BRect& defaultValue);
|
||||||
|
|
||||||
|
virtual BRect DefaultRectValue() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
BRect fDefaultValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif // SETTING_H
|
#endif // SETTING_H
|
||||||
|
|||||||
Reference in New Issue
Block a user