summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterbanduration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloaterbanduration.cpp')
-rw-r--r--indra/newview/llfloaterbanduration.cpp92
1 files changed, 92 insertions, 0 deletions
diff --git a/indra/newview/llfloaterbanduration.cpp b/indra/newview/llfloaterbanduration.cpp
new file mode 100644
index 0000000000..6ba6c30cab
--- /dev/null
+++ b/indra/newview/llfloaterbanduration.cpp
@@ -0,0 +1,92 @@
+/**
+* @file llfloaterbanduration.cpp
+*
+* $LicenseInfo:firstyear=2004&license=viewerlgpl$
+* Second Life Viewer Source Code
+* Copyright (C) 2018, Linden Research, Inc.
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation;
+* version 2.1 of the License only.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+*
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+* $/LicenseInfo$
+*/
+
+#include "llviewerprecompiledheaders.h"
+#include "llfloaterbanduration.h"
+
+#include "llfloaterreg.h"
+#include "llspinctrl.h"
+#include "llradiogroup.h"
+
+LLFloaterBanDuration::LLFloaterBanDuration(const LLSD& target)
+ : LLFloater(target)
+{
+}
+
+BOOL LLFloaterBanDuration::postBuild()
+{
+ childSetAction("ok_btn", boost::bind(&LLFloaterBanDuration::onClickBan, this));
+ childSetAction("cancel_btn", boost::bind(&LLFloaterBanDuration::onClickCancel, this));
+
+ getChild<LLUICtrl>("ban_duration_radio")->setCommitCallback(boost::bind(&LLFloaterBanDuration::onClickRadio, this));
+ getChild<LLRadioGroup>("ban_duration_radio")->setSelectedIndex(0);
+ getChild<LLUICtrl>("ban_hours")->setEnabled(FALSE);
+
+ return TRUE;
+}
+
+LLFloaterBanDuration* LLFloaterBanDuration::show(select_callback_t callback, uuid_vec_t ids)
+{
+ LLFloaterBanDuration* floater = LLFloaterReg::showTypedInstance<LLFloaterBanDuration>("ban_duration");
+ if (!floater)
+ {
+ LL_WARNS() << "Cannot instantiate ban duration floater" << LL_ENDL;
+ return NULL;
+ }
+
+ floater->mSelectionCallback = callback;
+ floater->mAvatar_ids = ids;
+
+ return floater;
+}
+
+void LLFloaterBanDuration::onClickRadio()
+{
+ getChild<LLUICtrl>("ban_hours")->setEnabled(getChild<LLRadioGroup>("ban_duration_radio")->getSelectedIndex() != 0);
+}
+
+void LLFloaterBanDuration::onClickCancel()
+{
+ closeFloater();
+}
+
+void LLFloaterBanDuration::onClickBan()
+{
+ if (mSelectionCallback)
+ {
+ S32 time = 0;
+ if (getChild<LLRadioGroup>("ban_duration_radio")->getSelectedIndex() != 0)
+ {
+ LLSpinCtrl* hours_spin = getChild<LLSpinCtrl>("ban_hours");
+ if (hours_spin)
+ {
+ time = LLDate::now().secondsSinceEpoch() + (hours_spin->getValue().asInteger() * 3600);
+ }
+ }
+ mSelectionCallback(mAvatar_ids, time);
+ }
+ closeFloater();
+}
+