summaryrefslogtreecommitdiff
path: root/src/gui/palette.cpp
diff options
context:
space:
mode:
authorIra Rice <irarice@gmail.com>2009-03-14 20:54:35 -0600
committerIra Rice <irarice@gmail.com>2009-03-14 20:54:35 -0600
commit6d6fd0cec10601a51cab67e623a579a14af775fc (patch)
treebbe8182819b363f0ae22e6422d8a802eeac3f250 /src/gui/palette.cpp
parent8fb5276dcc5c527a3daf99c18826d6d9bf9802be (diff)
downloadmana-6d6fd0cec10601a51cab67e623a579a14af775fc.tar.gz
mana-6d6fd0cec10601a51cab67e623a579a14af775fc.tar.bz2
mana-6d6fd0cec10601a51cab67e623a579a14af775fc.tar.xz
mana-6d6fd0cec10601a51cab67e623a579a14af775fc.zip
Made the slider editable when pulse gradient is selected.
Signed-off-by: Ira Rice <irarice@gmail.com>
Diffstat (limited to 'src/gui/palette.cpp')
-rw-r--r--src/gui/palette.cpp34
1 files changed, 23 insertions, 11 deletions
diff --git a/src/gui/palette.cpp b/src/gui/palette.cpp
index 412550c7..5b98f403 100644
--- a/src/gui/palette.cpp
+++ b/src/gui/palette.cpp
@@ -52,12 +52,11 @@ std::string Palette::getConfigName(const std::string& typeName)
int pos = 5;
for (unsigned int i = 0; i < typeName.length(); i++)
{
- if (i==0 || typeName[i] == '_')
+ if (i == 0 || typeName[i] == '_')
{
if (i > 0)
- {
i++;
- }
+
res[pos] = typeName[i];
}
else
@@ -144,7 +143,7 @@ Palette::~Palette()
{
configName = &ColorTypeNames[col->type];
config.setValue(*configName + "Gradient", col->committedGrad);
- if (col->grad == STATIC)
+ if (col->grad == STATIC || col->grad == PULSE)
{
config.setValue(*configName, toString(col->getRGB()));
}
@@ -154,7 +153,7 @@ Palette::~Palette()
const gcn::Color& Palette::getColor(char c, bool &valid)
{
for (ColVector::const_iterator col = mColVector.begin(),
- colEnd = mColVector.end(); col != colEnd; ++col)
+ colEnd = mColVector.end(); col != colEnd; ++col)
{
if (col->ch == c)
{
@@ -222,10 +221,14 @@ void Palette::commit(bool commitNonStatic)
i != iEnd; ++i)
{
i->committedGrad = i->grad;
- if (commitNonStatic || i->grad == STATIC || i->grad == PULSE)
+ if (commitNonStatic || i->grad == STATIC)
{
i->committedColor = i->color;
}
+ else if (i->grad == PULSE)
+ {
+ i->committedColor = i->testColor;
+ }
}
}
@@ -240,7 +243,13 @@ void Palette::rollback()
setGradient(i->type, i->committedGrad);
}
setColor(i->type, i->committedColor.r, i->committedColor.g,
- i->committedColor.b);
+ i->committedColor.b);
+ if (i->grad == PULSE)
+ {
+ i->testColor.r = i->committedColor.r;
+ i->testColor.g = i->committedColor.g;
+ i->testColor.b = i->committedColor.b;
+ }
}
}
@@ -282,9 +291,10 @@ void Palette::advanceGradient ()
if (mGradVector[i]->grad == PULSE)
{
- colVal = (int) (255.0 * (sin(M_PI * (mGradVector[i]->gradientIndex) / 255) + 1) / 2);
+ colVal = (int) (255.0 * (sin(M_PI *
+ (mGradVector[i]->gradientIndex) / 255) + 1) / 2);
- const gcn::Color* col = &mGradVector[i]->committedColor;
+ const gcn::Color* col = &mGradVector[i]->testColor;
mGradVector[i]->color.r = (colVal) % (col->r + 1);
mGradVector[i]->color.g = (colVal) % (col->g + 1);
@@ -294,11 +304,13 @@ void Palette::advanceGradient ()
{
if (colIndex % 2)
{ // falling curve
- colVal = (int)(255.0 * (cos(M_PI * pos / GRADIENT_DELAY) + 1) / 2);
+ colVal = (int)(255.0 * (cos(M_PI * pos / GRADIENT_DELAY) +
+ 1) / 2);
}
else
{ // ascending curve
- colVal = (int)(255.0 * (cos(M_PI * (GRADIENT_DELAY-pos) / GRADIENT_DELAY) + 1) / 2);
+ colVal = (int)(255.0 * (cos(M_PI * (GRADIENT_DELAY-pos) /
+ GRADIENT_DELAY) + 1) / 2);
}
mGradVector[i]->color.r =