Ejemplo n.º 1
0
    void EditEffectDialog::onRangeButtonClicked (MyGUI::Widget* sender)
    {
        mEffect.mRange = (mEffect.mRange+1)%3;

        if (mEffect.mRange == ESM::RT_Self)
            mRangeButton->setCaptionWithReplacing ("#{sRangeSelf}");
        else if (mEffect.mRange == ESM::RT_Target)
            mRangeButton->setCaptionWithReplacing ("#{sRangeTarget}");
        else if (mEffect.mRange == ESM::RT_Touch)
            mRangeButton->setCaptionWithReplacing ("#{sRangeTouch}");

        // cycle through range types until we find something that's allowed
        if (mEffect.mRange == ESM::RT_Target && !(mMagicEffect->mData.mFlags & ESM::MagicEffect::CastTarget))
            onRangeButtonClicked(sender);
        if (mEffect.mRange == ESM::RT_Self && !(mMagicEffect->mData.mFlags & ESM::MagicEffect::CastSelf))
            onRangeButtonClicked(sender);
        if (mEffect.mRange == ESM::RT_Touch && !(mMagicEffect->mData.mFlags & ESM::MagicEffect::CastTouch))
            onRangeButtonClicked(sender);

        if(mEffect.mRange == ESM::RT_Self)
        {
            mAreaSlider->setScrollPosition(0);
            onAreaChanged(mAreaSlider,0);
        }
        updateBoxes();
        eventEffectModified(mEffect);
    }
Ejemplo n.º 2
0
    void EditEffectDialog::onRangeButtonClicked (MyGUI::Widget* sender)
    {
        mEffect.mRange = (mEffect.mRange+1)%3;

        // cycle through range types until we find something that's allowed
        // does not handle the case where nothing is allowed (this should be prevented before opening the Add Effect dialog)
        bool allowSelf = (mMagicEffect->mData.mFlags & ESM::MagicEffect::CastSelf) != 0;
        bool allowTouch = (mMagicEffect->mData.mFlags & ESM::MagicEffect::CastTouch) && !mConstantEffect;
        bool allowTarget = (mMagicEffect->mData.mFlags & ESM::MagicEffect::CastTarget) && !mConstantEffect;
        if (mEffect.mRange == ESM::RT_Self && !allowSelf)
            mEffect.mRange = (mEffect.mRange+1)%3;
        if (mEffect.mRange == ESM::RT_Touch && !allowTouch)
            mEffect.mRange = (mEffect.mRange+1)%3;
        if (mEffect.mRange == ESM::RT_Target && !allowTarget)
            mEffect.mRange = (mEffect.mRange+1)%3;

        if(mEffect.mRange == ESM::RT_Self)
        {
            mAreaSlider->setScrollPosition(0);
            onAreaChanged(mAreaSlider,0);
        }

        if (mEffect.mRange == ESM::RT_Self)
            mRangeButton->setCaptionWithReplacing ("#{sRangeSelf}");
        else if (mEffect.mRange == ESM::RT_Target)
            mRangeButton->setCaptionWithReplacing ("#{sRangeTarget}");
        else if (mEffect.mRange == ESM::RT_Touch)
            mRangeButton->setCaptionWithReplacing ("#{sRangeTouch}");

        updateBoxes();
        eventEffectModified(mEffect);
    }
Ejemplo n.º 3
0
void Layout::addedToParent(Widget& parent)
{
    if (expanding)
    {
        parentAreaSlot = parent.getAreaChangedSignal().connect(*this, &Layout::onAreaChanged);
        onAreaChanged(parent);
    }
}
Ejemplo n.º 4
0
void Widget::setArea(const Rect& newArea)
{
  if (newArea != m_area)
  {
    m_area = newArea;
    onAreaChanged();

    invalidate();
  }
}
Ejemplo n.º 5
0
    void EditEffectDialog::editEffect (ESM::ENAMstruct effect)
    {
        const ESM::MagicEffect* magicEffect =
            MWBase::Environment::get().getWorld()->getStore().get<ESM::MagicEffect>().find(effect.mEffectID);

        setMagicEffect(magicEffect);

        mEffect = effect;
        mEditing = true;

        mDeleteButton->setVisible (true);

        mMagnitudeMinSlider->setScrollPosition (effect.mMagnMin-1);
        mMagnitudeMaxSlider->setScrollPosition (effect.mMagnMax-1);
        mAreaSlider->setScrollPosition (effect.mArea);
        mDurationSlider->setScrollPosition (effect.mDuration-1);

        onMagnitudeMinChanged (mMagnitudeMinSlider, effect.mMagnMin-1);
        onMagnitudeMaxChanged (mMagnitudeMinSlider, effect.mMagnMax-1);
        onAreaChanged (mAreaSlider, effect.mArea);
        onDurationChanged (mDurationSlider, effect.mDuration-1);
    }
Ejemplo n.º 6
0
List::List(Layer& layer):
  Widget(layer),
  m_editable(false),
  m_editing(false),
  m_offset(0),
  m_maxOffset(0),
  m_selection(NO_ITEM),
  m_scroller(nullptr),
  m_entry(nullptr)
{
  areaChangedSignal().connect(*this, &List::onAreaChanged);
  buttonClickedSignal().connect(*this, &List::onMouseButton);
  keyPressedSignal().connect(*this, &List::onKey);
  scrolledSignal().connect(*this, &List::onScroll);

  m_scroller = new Scroller(layer, VERTICAL);
  m_scroller->setValueRange(0.f, 1.f);
  m_scroller->setPercentage(1.f);
  m_scroller->valueChangedSignal().connect(*this, &List::onValueChanged);
  addChild(*m_scroller);

  onAreaChanged(*this);
}