diff options
author | Ira Rice <irarice@gmail.com> | 2009-04-15 19:42:07 +0200 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2009-04-15 19:43:35 +0200 |
commit | ef13037435c671b76c75c3ecefbad83dbdc578f2 (patch) | |
tree | 18f75b4e1a72d0453e9d9ae621ced87066123d7c /src/gui/setup_colors.cpp | |
parent | fc4a12470adde2502f37f22b86f58560e416f3e4 (diff) | |
download | Mana-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.cpp | 89 |
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) { |