summaryrefslogtreecommitdiff
path: root/src/gui/setup_colors.cpp
diff options
context:
space:
mode:
authorIra Rice <irarice@gmail.com>2009-04-15 19:42:07 +0200
committerBjørn Lindeijer <bjorn@lindeijer.nl>2009-04-15 19:43:35 +0200
commitef13037435c671b76c75c3ecefbad83dbdc578f2 (patch)
tree18f75b4e1a72d0453e9d9ae621ced87066123d7c /src/gui/setup_colors.cpp
parentfc4a12470adde2502f37f22b86f58560e416f3e4 (diff)
downloadMana-ef13037435c671b76c75c3ecefbad83dbdc578f2.tar.gz
Mana-ef13037435c671b76c75c3ecefbad83dbdc578f2.tar.bz2
Mana-ef13037435c671b76c75c3ecefbad83dbdc578f2.tar.xz
Mana-ef13037435c671b76c75c3ecefbad83dbdc578f2.zip
Exposed delay values to the user, but made it so that the delay is color
based, instead of global, so that the user can specify different delays for different types of actions. Signed-off-by: Ira Rice <irarice@gmail.com> Signed-off-by: Bjørn Lindeijer <bjorn@lindeijer.nl>
Diffstat (limited to 'src/gui/setup_colors.cpp')
-rw-r--r--src/gui/setup_colors.cpp89
1 files changed, 59 insertions, 30 deletions
diff --git a/src/gui/setup_colors.cpp b/src/gui/setup_colors.cpp
index 4d8c1e1d..80c425e5 100644
--- a/src/gui/setup_colors.cpp
+++ b/src/gui/setup_colors.cpp
@@ -71,7 +71,7 @@ Setup_Colors::Setup_Colors() :
mGradTypeLabel = new Label(_("Type: "));
mGradTypeSlider = new Slider(0, 3);
- mGradTypeSlider->setWidth(160);
+ mGradTypeSlider->setWidth(200);
mGradTypeSlider->setActionEventId("slider_grad");
mGradTypeSlider->setValue(0);
mGradTypeSlider->addActionListener(this);
@@ -79,6 +79,22 @@ Setup_Colors::Setup_Colors() :
mGradTypeText = new Label;
+ mGradDelayLabel = new Label(_("Delay: "));
+
+ mGradDelayText = new TextField();
+ mGradDelayText->setWidth(40);
+ mGradDelayText->setRange(20, 400);
+ mGradDelayText->setNumeric(true);
+ mGradDelayText->addListener(this);
+ mGradDelayText->setEnabled(false);
+
+ mGradDelaySlider = new Slider(20, 400);
+ mGradDelaySlider->setWidth(200);
+ mGradDelaySlider->setValue(mGradDelayText->getValue());
+ mGradDelaySlider->setActionEventId("slider_graddelay");
+ mGradDelaySlider->addActionListener(this);
+ mGradDelaySlider->setEnabled(false);
+
mRedLabel = new Label(_("Red: "));
mRedText = new TextField;
@@ -89,7 +105,7 @@ Setup_Colors::Setup_Colors() :
mRedText->setEnabled(false);
mRedSlider = new Slider(0, 255);
- mRedSlider->setWidth(160);
+ mRedSlider->setWidth(200);
mRedSlider->setValue(mRedText->getValue());
mRedSlider->setActionEventId("slider_red");
mRedSlider->addActionListener(this);
@@ -105,7 +121,7 @@ Setup_Colors::Setup_Colors() :
mGreenText->setEnabled(false);
mGreenSlider = new Slider(0, 255);
- mGreenSlider->setWidth(160);
+ mGreenSlider->setWidth(200);
mGreenSlider->setValue(mGreenText->getValue());
mGreenSlider->setActionEventId("slider_green");
mGreenSlider->addActionListener(this);
@@ -121,7 +137,7 @@ Setup_Colors::Setup_Colors() :
mBlueText->setEnabled(false);
mBlueSlider = new Slider(0, 255);
- mBlueSlider->setWidth(160);
+ mBlueSlider->setWidth(200);
mBlueSlider->setValue(mBlueText->getValue());
mBlueSlider->setActionEventId("slider_blue");
mBlueSlider->addActionListener(this);
@@ -138,15 +154,18 @@ Setup_Colors::Setup_Colors() :
place(0, 7, mGradTypeLabel, 2);
place(2, 7, mGradTypeSlider);
place(3, 7, mGradTypeText);
- place(0, 8, mRedLabel, 2);
- place(2, 8, mRedSlider);
- place(3, 8, mRedText).setPadding(1);
- place(0, 9, mGreenLabel, 2);
- place(2, 9, mGreenSlider);
- place(3, 9, mGreenText).setPadding(1);
- place(0, 10, mBlueLabel, 2);
- place(2, 10, mBlueSlider);
- place(3, 10, mBlueText).setPadding(1);
+ place(0, 8, mGradDelayLabel, 2);
+ place(2, 8, mGradDelaySlider);
+ place(3, 8, mGradDelayText);
+ place(0, 9, mRedLabel, 2);
+ place(2, 9, mRedSlider);
+ place(3, 9, mRedText).setPadding(1);
+ place(0, 10, mGreenLabel, 2);
+ place(2, 10, mGreenSlider);
+ place(3, 10, mGreenText).setPadding(1);
+ place(0, 11, mBlueLabel, 2);
+ place(2, 11, mBlueSlider);
+ place(3, 11, mBlueText).setPadding(1);
setDimension(gcn::Rectangle(0, 0, 325, 280));
}
@@ -167,9 +186,10 @@ void Setup_Colors::action(const gcn::ActionEvent &event)
Palette::ColorType type = guiPalette->getColorTypeAt(mSelected);
const gcn::Color *col = &guiPalette->getColor(type);
Palette::GradientType grad = guiPalette->getGradientType(type);
+ const int delay = guiPalette->getGradientDelay(type);
std::string msg;
- char ch = guiPalette->getColorChar(type);
+ const char ch = guiPalette->getColorChar(type);
mPreview->clearRows();
mPreviewBox->setContent(mTextPreview);
@@ -300,6 +320,7 @@ void Setup_Colors::action(const gcn::ActionEvent &event)
col = &guiPalette->getTestColor(type);
}
+ setEntry(mGradDelaySlider, mGradDelayText, delay);
setEntry(mRedSlider, mRedText, col->r);
setEntry(mGreenSlider, mGreenText, col->g);
setEntry(mBlueSlider, mBlueText, col->b);
@@ -318,6 +339,13 @@ void Setup_Colors::action(const gcn::ActionEvent &event)
return;
}
+ if (event.getId() == "slider_graddelay")
+ {
+ mGradDelayText->setText(toString(std::floor(mGradDelaySlider->getValue())));
+ updateColor();
+ return;
+ }
+
if (event.getId() == "slider_red")
{
mRedText->setText(toString(std::floor(mRedSlider->getValue())));
@@ -359,6 +387,8 @@ void Setup_Colors::cancel()
Palette::ColorType type = guiPalette->getColorTypeAt(mSelected);
const gcn::Color *col = &guiPalette->getColor(type);
mGradTypeSlider->setValue(guiPalette->getGradientType(type));
+ const int delay = guiPalette->getGradientDelay(type);
+ setEntry(mGradDelaySlider, mGradDelayText, delay);
setEntry(mRedSlider, mRedText, col->r);
setEntry(mGreenSlider, mGreenText, col->g);
setEntry(mBlueSlider, mBlueText, col->b);
@@ -366,24 +396,16 @@ void Setup_Colors::cancel()
void Setup_Colors::listen(const TextField *tf)
{
- if (tf == mRedText)
- {
+ if (tf == mGradDelayText)
+ mGradDelaySlider->setValue(tf->getValue());
+ else if (tf == mRedText)
mRedSlider->setValue(tf->getValue());
- updateColor();
- return;
- }
- if (tf == mGreenText)
- {
+ else if (tf == mGreenText)
mGreenSlider->setValue(tf->getValue());
- updateColor();
- return;
- }
- if (tf == mBlueText)
- {
+ else if (tf == mBlueText)
mBlueSlider->setValue(tf->getValue());
- updateColor();
- return;
- }
+
+ updateColor();
}
void Setup_Colors::updateGradType()
@@ -400,7 +422,12 @@ void Setup_Colors::updateGradType()
(grad == Palette::PULSE) ? _("Pulse") :
(grad == Palette::RAINBOW) ? _("Rainbow") : _("Spectrum"));
- bool enable = (grad == Palette::STATIC || grad == Palette::PULSE);
+ const bool enable = (grad == Palette::STATIC || grad == Palette::PULSE);
+ const bool delayEnable = (grad != Palette::STATIC);
+
+ mGradDelayText->setEnabled(delayEnable);
+ mGradDelaySlider->setEnabled(delayEnable);
+
mRedText->setEnabled(enable);
mRedSlider->setEnabled(enable);
mGreenText->setEnabled(enable);
@@ -417,7 +444,9 @@ void Setup_Colors::updateColor()
Palette::ColorType type = guiPalette->getColorTypeAt(mSelected);
Palette::GradientType grad =
static_cast<Palette::GradientType>((int)mGradTypeSlider->getValue());
+ int delay = (int) mGradDelaySlider->getValue();
guiPalette->setGradient(type, grad);
+ guiPalette->setGradientDelay(type, delay);
if (grad == Palette::STATIC)
{