コード例 #1
0
ファイル: textcommandeditor.cpp プロジェクト: Rawng/ManaPlus
void TextCommandEditor::action(const ActionEvent &event)
{
    const std::string &eventId = event.getId();
    if (eventId == "magic")
    {
        mIsMagicCommand = true;
        showControls(Visible_true);
    }
    else if (eventId == "other")
    {
        mIsMagicCommand = false;
        showControls(Visible_false);
    }
    else if (eventId == "save")
    {
        save();
        scheduleDelete();
    }
    else if (eventId == "cancel")
    {
        scheduleDelete();
    }
    else if (eventId == "delete")
    {
        deleteCommand();
        scheduleDelete();
    }
}
コード例 #2
0
void MailViewWindow::action(const ActionEvent &event)
{
    const std::string &eventId = event.getId();
    if (eventId == "close")
    {
        scheduleDelete();
    }
    else if (eventId == "attach")
    {
        if (mGetAttachButton)
            mailHandler->getAttach(mMessage->id);
    }
    else if (eventId == "next")
    {
        if (mMessage)
            mailWindow->viewNext(mMessage->id);
    }
    else if (eventId == "prev")
    {
        if (mMessage)
            mailWindow->viewPrev(mMessage->id);
    }
    else if (eventId == "reply")
    {
        if (!mMessage)
            return;
        if (mailEditWindow)
            mailEditWindow->scheduleDelete();
        CREATEWIDGETV0(mailEditWindow, MailEditWindow);
        mailEditWindow->setTo(mMessage->sender);
        mailEditWindow->setSubject("Re:" + mMessage->title);
        mailEditWindow->setMessage(">" + mMessage->text);
        scheduleDelete();
    }
}
コード例 #3
0
ファイル: wellcome.cpp プロジェクト: mekolat/elektrogamesvn
void
Wellcome::action(const gcn::ActionEvent &event)
{
    //ResourceManager *resman = ResourceManager::getInstance();
    if (event.getId() == "close")
    {
        if (mAgain->isSelected())
        {
            config.setValue("Wellcome", 1);
            logger->log("Wellcome : 1");
        }
        else
        {
            config.setValue("Wellcome", 0);
            logger->log("Wellcome : 0");
        }
        scheduleDelete();
    }
    else if (event.getId() == "next")
    {
        if (mCurrentSlide< mList.size()-1)
        {
            mCurrentSlide++;
            load();
        }
    }    else if (event.getId() == "prev")
    {
        if (mCurrentSlide> 0)
        {
            mCurrentSlide--;
            load();
        }
    }
}
コード例 #4
0
void NpcPostDialog::setVisible(bool visible)
{
    Window::setVisible(visible);

    if (!visible)
        scheduleDelete();
}
コード例 #5
0
ファイル: charselect.cpp プロジェクト: stevecotton/Aethyra
void CharCreateDialog::action(const gcn::ActionEvent &event)
{
    const int numberOfColors = ColorDB::size();
    const int numberOfHair = mPlayer->getNumOfHairstyles();
    if (event.getId() == "create")
    {
        if (getName().length() >= 4)
        {
            // Attempt to create the character
            mCreateButton->setEnabled(false);
            attemptCharCreate();
        }
        else
        {
            new OkDialog("Error",
                    "Your name needs to be at least 4 characters.", this);
        }
    }
    else if (event.getId() == "cancel")
        scheduleDelete();
    else if (event.getId() == "nextcolor")
        mPlayer->setHairStyle(mPlayer->getHairStyle(),
                             (mPlayer->getHairColor() + 1) % numberOfColors);
    else if (event.getId() == "prevcolor")
        mPlayer->setHairStyle(mPlayer->getHairStyle(), (mPlayer->getHairColor() +
                              numberOfColors - 1) % numberOfColors);
    else if (event.getId() == "nextstyle")
        mPlayer->setHairStyle((mPlayer->getHairStyle() + 1) % numberOfHair,
                              mPlayer->getHairColor());
    else if (event.getId() == "prevstyle")
        mPlayer->setHairStyle((mPlayer->getHairStyle() + numberOfHair - 1) %
                               numberOfHair, mPlayer->getHairColor());
}
コード例 #6
0
ファイル: itemamount.cpp プロジェクト: kai62656/manabot
void ItemAmountWindow::action(const gcn::ActionEvent &event)
{
    int amount = mItemAmountTextField->getValue();

    if (event.getId() == "cancel")
    {
        close();
    }
    else if (event.getId() == "plus" && amount < mMax)
    {
        amount++;
    }
    else if (event.getId() == "minus" && amount > 1)
    {
        amount--;
    }
    else if (event.getId() == "all")
    {
        amount = mMax;
    }
    else if (event.getId() == "slide")
    {
        amount = static_cast<int>(mItemAmountSlide->getValue());
    }
    else if (event.getId() == "ok")
    {
        finish(mItem, amount, mUsage);
        scheduleDelete();
        return;
    }
    mItemAmountTextField->setValue(amount);
    mItemAmountSlide->setValue(amount);
}
コード例 #7
0
ファイル: quitdialog.cpp プロジェクト: Ablu/invertika
void QuitDialog::action(const gcn::ActionEvent &event)
{
    if (event.getId() == "ok")
    {
        if (mForceQuit->isSelected())
        {
            Client::setState(STATE_FORCE_QUIT);
        }
        else if (mLogoutQuit->isSelected())
        {
            Client::setState(STATE_EXIT);
        }
        else if (mSwitchAccountServer->isSelected())
        {
            Client::setState(STATE_SWITCH_SERVER);
        }
        else if (mSwitchCharacter->isSelected())
        {
            assert(Client::getState() == STATE_GAME);

            Net::getCharHandler()->switchCharacter();
        }
    }
    scheduleDelete();
}
コード例 #8
0
ファイル: editdialog.cpp プロジェクト: koo5/manaplus
void EditDialog::action(const gcn::ActionEvent &event)
{
    // Proxy button events to our listeners
    FOR_EACH (ActionListenerIterator, i, mActionListeners)
        (*i)->action(event);

    if (event.getId() == mEventOk)
        scheduleDelete();
}
コード例 #9
0
ファイル: quitdialog.cpp プロジェクト: KaneHart/Elmlor-Client
void QuitDialog::action(const ActionEvent &event)
{
    soundManager.playGuiSound(SOUND_HIDE_WINDOW);
    if (event.getId() == "ok")
    {
        if (viewport)
        {
            const Map *const map = viewport->getMap();
            if (map)
                map->saveExtraLayer();
        }

        if (mForceQuit->isSelected())
        {
            client->setState(STATE_FORCE_QUIT);
        }
        else if (mLogoutQuit->isSelected())
        {
            DialogsManager::closeDialogs();
            client->setState(STATE_EXIT);
        }
        else if (mRate && mRate->isSelected())
        {
            openBrowser("https://play.google.com/store/apps/details?"
                "id=org.evolonline.beta.manaplus");
            config.setValue("rated", true);
            if (mNeedForceQuit)
            {
                client->setState(STATE_FORCE_QUIT);
            }
            else
            {
                DialogsManager::closeDialogs();
                client->setState(STATE_EXIT);
            }
        }
        else if (Net::getGameHandler()->isConnected()
                 && mSwitchAccountServer->isSelected())
        {
            DialogsManager::closeDialogs();
            client->setState(STATE_SWITCH_SERVER);
        }
        else if (mSwitchCharacter->isSelected())
        {
            if (client->getState() == STATE_GAME)
            {
                Net::getCharServerHandler()->switchCharacter();
                DialogsManager::closeDialogs();
                serverConfig.write();
            }
        }
    }
    scheduleDelete();
}
コード例 #10
0
ファイル: inventorywindow.cpp プロジェクト: Ablu/invertika
void InventoryWindow::close()
{
    if (this == inventoryWindow)
    {
        setVisible(false);
    }
    else
    {
        Net::getInventoryHandler()->closeStorage(Inventory::STORAGE);
        scheduleDelete();
    }
}
コード例 #11
0
ファイル: okdialog.cpp プロジェクト: stevecotton/Aethyra
void OkDialog::action(const gcn::ActionEvent &event)
{
    // Proxy button events to our listeners
    ActionListenerIterator i;
    for (i = mActionListeners.begin(); i != mActionListeners.end(); ++i)
    {
        (*i)->action(event);
    }

    // Can we receive anything else anyway?
    if (event.getId() == "ok")
        scheduleDelete();
}
コード例 #12
0
ファイル: sell.cpp プロジェクト: Ablu/invertika
void SellDialog::setVisible(bool visible)
{
    Window::setVisible(visible);

    if (visible)
    {
        mShopItemList->requestFocus();
    }
    else
    {
        scheduleDelete();
    }
}
コード例 #13
0
void BuySellDialog::setVisible(bool visible)
{
    Window::setVisible(visible);

    if (visible)
    {
        if (mBuyButton)
            mBuyButton->requestFocus();
    }
    else
    {
        scheduleDelete();
    }
}
コード例 #14
0
void EditServerDialog::keyPressed(gcn::KeyEvent &keyEvent)
{
    int actionId = static_cast<KeyEvent*>(&keyEvent)->getActionId();

    if (actionId == Input::KEY_GUI_CANCEL)
    {
        scheduleDelete();
    }
    else if (actionId == Input::KEY_GUI_SELECT
             || actionId == Input::KEY_GUI_SELECT2)
    {
        action(gcn::ActionEvent(nullptr, mOkButton->getActionEventId()));
    }
}
コード例 #15
0
ファイル: maileditwindow.cpp プロジェクト: ManaPlus/ManaPlus
void MailEditWindow::action(const ActionEvent &event)
{
    const std::string &eventId = event.getId();
    if (eventId == "close")
    {
        scheduleDelete();
    }
    else if (eventId == "send")
    {
        const int money = mMoneyField->getValue();
        if (money)
            mailHandler->setAttachMoney(money);
        const Item *const tempItem = mInventory->getItem(0);
        if (tempItem)
        {
            const Inventory *const inv = PlayerInfo::getInventory();
            if (inv)
            {
                const Item *const item = inv->findItem(
                                             tempItem->getId(), ItemColor_one);
                if (item)
                {
                    mailHandler->setAttach(item->getInvIndex(),
                                           tempItem->getQuantity());
                }
            }
        }

        std::string subject = mSubjectField->getText();
        if (subject.empty())
        {
            // TRANSLATORS: empty mail message subject
            subject.append(_("empty subject"));
        }
        mailHandler->send(mToField->getText(),
                          subject,
                          mMessageField->getText());
    }
    else if (eventId == "add")
    {
        Item *const item = inventoryWindow->getSelectedItem();

        if (!item)
            return;

        ItemAmountWindow::showWindow(ItemAmountWindowUsage::MailAdd,
                                     this, item);
    }
}
コード例 #16
0
void EditServerDialog::keyPressed(KeyEvent &event)
{
    if (event.isConsumed())
        return;

    const InputActionT actionId = event.getActionId();

    if (actionId == InputAction::GUI_CANCEL)
    {
        scheduleDelete();
    }
    else if (actionId == InputAction::GUI_SELECT ||
             actionId == InputAction::GUI_SELECT2)
    {
        action(ActionEvent(nullptr, mOkButton->getActionEventId()));
    }
}
コード例 #17
0
	void CallChatWidget::handleStateChanged (IMediaCall::State state)
	{
		switch (state)
		{
		case IMediaCall::SConnecting:
			Ui_.StatusLabel_->setText (tr ("Connecting..."));
			break;
		case IMediaCall::SActive:
			Ui_.StatusLabel_->setText (tr ("Active"));
			break;
		case IMediaCall::SDisconnecting:
			Ui_.StatusLabel_->setText (tr ("Disconnecting"));
			break;
		case IMediaCall::SFinished:
			scheduleDelete ();
			break;
		}
	}
コード例 #18
0
ファイル: callchatwidget.cpp プロジェクト: AlexWMF/leechcraft
	CallChatWidget::CallChatWidget (QObject *call, QWidget *parent)
	: QWidget (parent)
	, CallObject_ (call)
	, Call_ (qobject_cast<IMediaCall*> (call))
	{
		Ui_.setupUi (this);
		
		Ui_.StatusLabel_->setText (tr ("Initializing..."));
		
		connect (call,
				SIGNAL (destroyed ()),
				this,
				SLOT (scheduleDelete ()));
		
		connect (call,
				SIGNAL (stateChanged (LeechCraft::Azoth::IMediaCall::State)),
				this,
				SLOT (handleStateChanged (LeechCraft::Azoth::IMediaCall::State)));
	}
コード例 #19
0
ファイル: Server.cpp プロジェクト: ajacksified/breeze
    void Connection::deref( bool threadsafe )
    {
        TRACE_ENTERLEAVE( );

        unsigned int count = sys::General::interlockedDecrement( &m_ref );

        if ( count == 1 )
        {
            //
            //  schedule deletion
            //  
            if ( threadsafe )
            {
                scheduleDelete( );
            }
            else
            {
                delete this;
            }
        }
    }
コード例 #20
0
	CallChatWidget::CallChatWidget (QObject *call, QWidget *parent)
	: QWidget { parent }
	, CallObject_ { call }
	, Call_ { qobject_cast<IMediaCall*> (call) }
	{
		Ui_.setupUi (this);

		Ui_.StatusLabel_->setText (tr ("Initializing..."));

		if (Call_->GetDirection () == IMediaCall::DOut)
			Ui_.AcceptButton_->hide ();

		connect (call,
				SIGNAL (destroyed ()),
				this,
				SLOT (scheduleDelete ()));

		connect (call,
				SIGNAL (stateChanged (LeechCraft::Azoth::IMediaCall::State)),
				this,
				SLOT (handleStateChanged (LeechCraft::Azoth::IMediaCall::State)));
	}
コード例 #21
0
void EditServerDialog::action(const gcn::ActionEvent &event)
{
    if (event.getId() == "ok")
    {
        // Give focus back to the server dialog.
        mServerAddressField->requestFocus();
    }
    if (event.getId() == "addServer")
    {
        // Check the given information
        if (mServerAddressField->getText().empty()
            || mPortField->getText().empty())
        {
            OkDialog *dlg = new OkDialog(_("Error"),
                _("Please at least type both the address and the port "
                  "of the server."), DIALOG_ERROR);
            dlg->addActionListener(this);
        }
        else
        {
            mCancelButton->setEnabled(false);
            mOkButton->setEnabled(false);

            mServer.name = mNameField->getText();
            mServer.description = mDescriptionField->getText();
            mServer.hostname = mServerAddressField->getText();
            mServer.port = static_cast<short>(atoi(
                mPortField->getText().c_str()));

            if (mTypeField)
            {
                switch (mTypeField->getSelected())
                {
                    case 0:
                        mServer.type = ServerInfo::TMWATHENA;
                        break;
                    case 1:
                        mServer.type = ServerInfo::EVOL;
                        break;
#ifdef EATHENA_SUPPORT
                    case 2:
                        mServer.type = ServerInfo::EATHENA;
                        break;
#ifdef MANASERV_SUPPORT
                    case 3:
                        mServer.type = ServerInfo::MANASERV;
                        break;
#endif
#else
#ifdef MANASERV_SUPPORT
                    case 2:
                        mServer.type = ServerInfo::MANASERV;
                        break;
#endif
#endif
                    default:
                        mServer.type = ServerInfo::UNKNOWN;
                }
            }
            else
            {
                mServer.type = ServerInfo::TMWATHENA;
            }

            // Tell the server has to be saved
            mServer.save = true;

            //Add server
            mServerDialog->updateServer(mServer, mIndex);
            scheduleDelete();
        }
    }
    else if (event.getId() == "cancel")
    {
        scheduleDelete();
    }
}
コード例 #22
0
ファイル: itemamount.cpp プロジェクト: kai62656/manabot
void ItemAmountWindow::close()
{
    delete mItemPopup;
    scheduleDelete();
}
コード例 #23
0
void CharCreateDialog::action(const ActionEvent &event)
{
    const std::string &id = event.getId();
    if (id == "create")
    {
        if (getName().length() >= 4)
        {
            // Attempt to create the character
            mCreateButton->setEnabled(false);

            std::vector<int> atts;
            for (size_t i = 0, sz = mAttributeSlider.size(); i < sz; i++)
            {
                atts.push_back(static_cast<int>(
                    mAttributeSlider[i]->getValue()));
            }

            const int characterSlot = mSlot;

            charServerHandler->newCharacter(getName(),
                characterSlot,
                mGender,
                mHairStyle,
                mHairColor,
                static_cast<unsigned char>(mRace),
                static_cast<unsigned char>(mLook),
                atts);
        }
        else
        {
            CREATEWIDGET(OkDialog,
                // TRANSLATORS: char creation error
                _("Error"),
                // TRANSLATORS: char creation error
                _("Your name needs to be at least 4 characters."),
                // TRANSLATORS: ok dialog button
                _("OK"),
                DialogType::ERROR,
                Modal_true,
                ShowCenter_true,
                nullptr,
                260);
        }
    }
    else if (id == "cancel")
    {
        scheduleDelete();
    }
    else if (id == "nextcolor")
    {
        mHairColor ++;
        updateHair();
    }
    else if (id == "prevcolor")
    {
        mHairColor --;
        updateHair();
    }
    else if (id == "nextstyle")
    {
        mHairStyle ++;
        updateHair();
    }
    else if (id == "prevstyle")
    {
        mHairStyle --;
        updateHair();
    }
    else if (id == "nextrace")
    {
        mRace ++;
        updateRace();
    }
    else if (id == "prevrace")
    {
        mRace --;
        updateRace();
    }
    else if (id == "nextlook")
    {
        mLook ++;
        updateLook();
    }
    else if (id == "prevlook")
    {
        mLook --;
        updateLook();
    }
    else if (id == "statslider")
    {
        updateSliders();
    }
    else if (id == "action")
    {
        mAction ++;
        if (mAction >= 5)
            mAction = 0;
        updatePlayer();
    }
    else if (id == "rotate")
    {
        mDirection ++;
        if (mDirection >= 4)
            mDirection = 0;
        updatePlayer();
    }
    else if (id == "gender_m")
    {
        mGender = Gender::MALE;
        mPlayer->setGender(Gender::MALE);
    }
    else if (id == "gender_f")
    {
        mGender = Gender::FEMALE;
        mPlayer->setGender(Gender::FEMALE);
    }
    else if (id == "gender_u")
    {
        mGender = Gender::UNSPECIFIED;
        mPlayer->setGender(mDefaultGender);
    }
}
コード例 #24
0
void EditServerDialog::action(const ActionEvent &event)
{
    const std::string &eventId = event.getId();

    if (eventId == "ok")
    {
        // Give focus back to the server dialog.
        mServerAddressField->requestFocus();
    }
    if (eventId == "addServer" || eventId == "connect")
    {
        // Check the given information
        if (mServerAddressField->getText().empty()
            || mPortField->getText().empty())
        {
            OkDialog *const dlg = CREATEWIDGETR(OkDialog,
                // TRANSLATORS: edit server dialog error header
                _("Error"),
                // TRANSLATORS: edit server dialog error message
                _("Please at least type both the address and the port "
                  "of the server."),
                // TRANSLATORS: ok dialog button
                _("OK"),
                DialogType::ERROR,
                Modal_true,
                ShowCenter_true,
                nullptr,
                260);
            dlg->addActionListener(this);
        }
        else
        {
            mCancelButton->setEnabled(false);
            mOkButton->setEnabled(false);

            mServer.name = mNameField->getText();
            mServer.description = mDescriptionField->getText();
            mServer.onlineListUrl = mOnlineListUrlField->getText();
            mServer.hostname = mServerAddressField->getText();
            mServer.packetVersion = mPacketVersionField->getValue();
            mServer.port = CAST_S16(atoi(
                mPortField->getText().c_str()));
            mServer.persistentIp = mPersistentIp->isSelected();

            if (mTypeField)
            {
                switch (mTypeField->getSelected())
                {
#ifdef TMWA_SUPPORT
                    case 0:
                        mServer.type = ServerType::TMWATHENA;
                        break;
                    case 1:
                        mServer.type = ServerType::EATHENA;
                        break;
                    case 2:
                        mServer.type = ServerType::EVOL2;
                        break;
#else  // TMWA_SUPPORT

                    case 0:
                        mServer.type = ServerType::EATHENA;
                        break;
                    case 1:
                        mServer.type = ServerType::EVOL2;
                        break;
#endif  // TMWA_SUPPORT

                    default:
                        mServer.type = ServerType::UNKNOWN;
                        break;
                }
            }
            else
            {
                mServer.type = ServerType::TMWATHENA;
            }

            // Tell the server has to be saved
            mServer.save = true;

            // Add server
            mServerDialog->updateServer(mServer, mIndex);
            if (eventId == "connect")
                mServerDialog->connectToSelectedServer();
            scheduleDelete();
        }
    }
    else if (eventId == "cancel")
    {
        scheduleDelete();
    }
}
コード例 #25
0
ファイル: charcreatedialog.cpp プロジェクト: TonyRice/mana
void CharCreateDialog::action(const gcn::ActionEvent &event)
{
    if (event.getId() == "create")
    {
        if (Net::getNetworkType() == ServerInfo::MANASERV
            || getName().length() >= 4)
        {
            // Attempt to create the character
            mCreateButton->setEnabled(false);

            std::vector<int> atts;
            for (unsigned i = 0; i < mAttributeSlider.size(); i++)
            {
                atts.push_back((int) mAttributeSlider[i]->getValue());
            }

            int characterSlot = mSlot;
            // On Manaserv, the slots start at 1, so we offset them.
            if (Net::getNetworkType() == ServerInfo::MANASERV)
                ++characterSlot;

            // Should avoid the most common crash case
            int hairStyle = mHairStylesIds.empty() ?
                0 : mHairStylesIds.at(mHairStyleId);
            int hairColor = mHairColorsIds.empty() ?
                0 : mHairColorsIds.at(mHairColorId);
            Net::getCharHandler()->newCharacter(getName(), characterSlot,
                                                mFemale->isSelected(),
                                                hairStyle, hairColor, atts);
        }
        else
        {
            new OkDialog(_("Error"),
                         _("Your name needs to be at least 4 characters."),
                         true,  this);
        }
    }
    else if (event.getId() == "cancel")
        scheduleDelete();
    else if (event.getId() == "nextcolor")
    {
        ++mHairColorId;
        updateHair();
    }
    else if (event.getId() == "prevcolor")
    {
        --mHairColorId;
        updateHair();
    }
    else if (event.getId() == "nextstyle")
    {
        ++mHairStyleId;
        updateHair();
    }
    else if (event.getId() == "prevstyle")
    {
        --mHairStyleId;
        updateHair();
    }
    else if (event.getId() == "statslider")
    {
        updateSliders();
    }
    else if (event.getId() == "gender")
    {
        if (mMale->isSelected())
            mPlayer->setGender(GENDER_MALE);
        else
            mPlayer->setGender(GENDER_FEMALE);
    }
}
コード例 #26
0
void CharCreateDialog::action(const gcn::ActionEvent &event)
{
    const std::string id = event.getId();
    if (id == "create")
    {
        if (
#ifdef MANASERV_SUPPORT
            Net::getNetworkType() == ServerInfo::MANASERV ||
#endif
            getName().length() >= 4)
        {
            // Attempt to create the character
            mCreateButton->setEnabled(false);

            std::vector<int> atts;
            for (unsigned i = 0; i < mAttributeSlider.size(); i++)
            {
                atts.push_back(static_cast<int>(
                    mAttributeSlider[i]->getValue()));
            }

            int characterSlot = mSlot;
#ifdef MANASERV_SUPPORT
            // On Manaserv, the slots start at 1, so we offset them.
            if (Net::getNetworkType() == ServerInfo::MANASERV)
                ++characterSlot;
#endif

            Net::getCharHandler()->newCharacter(getName(), characterSlot,
                mFemale->isSelected(), mHairStyle, mHairColor, mRace, atts);
        }
        else
        {
            new OkDialog(_("Error"),
                _("Your name needs to be at least 4 characters."),
                DIALOG_ERROR, true,  this);
        }
    }
    else if (id == "cancel")
    {
        scheduleDelete();
    }
    else if (id == "nextcolor")
    {
        mHairColor ++;
        updateHair();
    }
    else if (id == "prevcolor")
    {
        mHairColor --;
        updateHair();
    }
    else if (id == "nextstyle")
    {
        mHairStyle ++;
        updateHair();
    }
    else if (id == "prevstyle")
    {
        mHairStyle --;
        updateHair();
    }
    else if (id == "nextrace")
    {
        mRace ++;
        updateRace();
    }
    else if (id == "prevrace")
    {
        mRace --;
        updateRace();
    }
    else if (id == "statslider")
    {
        updateSliders();
    }
    else if (id == "gender")
    {
        if (mMale->isSelected())
            mPlayer->setGender(GENDER_MALE);
        else
            mPlayer->setGender(GENDER_FEMALE);
    }
    else if (id == "action")
    {
        mAction ++;
        if (mAction >= 5)
            mAction = 0;
        updatePlayer();
    }
    else if (id == "rotate")
    {
        mDirection ++;
        if (mDirection >= 4)
            mDirection = 0;
        updatePlayer();
    }
}
コード例 #27
0
void ChangePasswordDialog::action(const gcn::ActionEvent &event)
{
    if (event.getId() == "cancel")
    {
        scheduleDelete();
    }
    else if (event.getId() == "change_password")
    {

        const std::string username = mLoginData->username.c_str();
        const std::string oldPassword = mOldPassField->getText();
        const std::string newFirstPass = mFirstPassField->getText();
        const std::string newSecondPass = mSecondPassField->getText();
        logger->log("ChangePasswordDialog::Password change, Username is %s",
                     username.c_str());

        std::stringstream errorMessage;
        int error = 0;

        // Check old Password
        if (oldPassword.empty())
        {
            // No old password
            errorMessage << _("Enter the old password first.");
            error = 1;
        }
        else if (newFirstPass.length() < LEN_MIN_PASSWORD)
        {
            // First password too short
            errorMessage << strprintf(_("The new password needs to be at least "
                                      "%d characters long."), LEN_MIN_PASSWORD);
            error = 2;
        }
        else if (newFirstPass.length() > LEN_MAX_PASSWORD - 1 )
        {
            // First password too long
            errorMessage << strprintf(_("The new password needs to be less "
                                        "than %d characters long."),
                                      LEN_MAX_PASSWORD);
            error = 2;
        }
        else if (newFirstPass != newSecondPass)
        {
            // Second Pass mismatch
            errorMessage << _("The new password entries mismatch.");
            error = 3;
        }

        if (error > 0)
        {
            if (error == 1)
            {
                mWrongDataNoticeListener->setTarget(this->mOldPassField);
            }
            else if (error == 2)
            {
                mWrongDataNoticeListener->setTarget(this->mFirstPassField);
            }
            else if (error == 3)
            {
                mWrongDataNoticeListener->setTarget(this->mSecondPassField);
            }

            OkDialog *dlg = new OkDialog(_("Error"), errorMessage.str());
            dlg->addActionListener(mWrongDataNoticeListener);
        }
        else
        {
            // No errors detected, change account password.
            mChangePassButton->setEnabled(false);
            // Set the new password
            mLoginData->password = oldPassword;
            mLoginData->newPassword = newFirstPass;
            state = STATE_CHANGEPASSWORD_ATTEMPT;
            scheduleDelete();
        }

    }
}
コード例 #28
0
ファイル: itemamount.cpp プロジェクト: Ablu/invertika
void ItemAmountWindow::close()
{
    keyboard.setEnabled(mEnabledKeyboard);
    scheduleDelete();
}
コード例 #29
0
ファイル: maileditwindow.cpp プロジェクト: ManaPlus/ManaPlus
void MailEditWindow::close()
{
    scheduleDelete();
}
コード例 #30
0
void OkDialog::action(const gcn::ActionEvent &event)
{
    setActionEventId(event.getId());
    distributeActionEvent();
    scheduleDelete();
}