summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterparcel.cpp
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-08-24 18:44:39 +0100
committerTofu Linden <tofu.linden@lindenlab.com>2010-08-24 18:44:39 +0100
commit98cc2365034a93c69704daa69efb389799cc9627 (patch)
tree4c3ec75b78a26a736f18a2153af025040ae05a4b /indra/newview/llfloaterparcel.cpp
parent6ba23344c95157793af9e4154933ae8df61630e8 (diff)
Backed out changeset a62bf7c0af21
Backing out this merge that I pushed (prematurely) to the wrong place.
Diffstat (limited to 'indra/newview/llfloaterparcel.cpp')
-rw-r--r--indra/newview/llfloaterparcel.cpp122
1 files changed, 122 insertions, 0 deletions
diff --git a/indra/newview/llfloaterparcel.cpp b/indra/newview/llfloaterparcel.cpp
new file mode 100644
index 0000000000..c4a51e8e7f
--- /dev/null
+++ b/indra/newview/llfloaterparcel.cpp
@@ -0,0 +1,122 @@
+/**
+ * @file llfloaterparcel.cpp
+ * @brief LLFloaterParcel class implementation
+ * Parcel information as shown in a floating window from secondlife:// command
+ * handler.
+ *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, 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 "llfloaterparcel.h"
+
+#include "llfloaterreg.h"
+
+// viewer project includes
+#include "llcommandhandler.h"
+#include "llpanelplace.h"
+#include "llsidetray.h"
+
+// linden library includes
+#include "lluuid.h"
+#include "lluictrlfactory.h"
+
+//-----------------------------------------------------------------------------
+// Globals
+//-----------------------------------------------------------------------------
+
+class LLParcelHandler : public LLCommandHandler
+{
+public:
+ // requires trusted browser to trigger
+ LLParcelHandler() : LLCommandHandler("parcel", UNTRUSTED_THROTTLE) { }
+ bool handle(const LLSD& params, const LLSD& query_map,
+ LLMediaCtrl* web)
+ {
+ if (params.size() < 2)
+ {
+ return false;
+ }
+ LLUUID parcel_id;
+ if (!parcel_id.set(params[0], FALSE))
+ {
+ return false;
+ }
+ if (params[1].asString() == "about")
+ {
+ if (parcel_id.notNull())
+ {
+ LLSD key;
+ key["type"] = "remote_place";
+ key["id"] = parcel_id;
+ LLSideTray::getInstance()->showPanel("panel_places", key);
+ return true;
+ }
+ }
+ return false;
+ }
+};
+LLParcelHandler gParcelHandler;
+
+//-----------------------------------------------------------------------------
+// Member functions
+//-----------------------------------------------------------------------------
+
+//----------------------------------------------------------------------------
+
+void* LLFloaterParcelInfo::createPanelPlace(void* data)
+{
+ LLFloaterParcelInfo* self = (LLFloaterParcelInfo*)data;
+ self->mPanelParcelp = new LLPanelPlace(); // allow edit self
+ LLUICtrlFactory::getInstance()->buildPanel(self->mPanelParcelp, "panel_place.xml");
+ return self->mPanelParcelp;
+}
+
+//----------------------------------------------------------------------------
+
+
+LLFloaterParcelInfo::LLFloaterParcelInfo(const LLSD& parcel_id)
+: LLFloater(parcel_id),
+ mParcelID( parcel_id.asUUID() ),
+ mPanelParcelp(NULL)
+{
+ mFactoryMap["place_details_panel"] = LLCallbackMap(LLFloaterParcelInfo::createPanelPlace, this);
+// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_url.xml");
+}
+
+// virtual
+LLFloaterParcelInfo::~LLFloaterParcelInfo()
+{
+
+}
+
+BOOL LLFloaterParcelInfo::postBuild()
+{
+ if (mPanelParcelp)
+ {
+ mPanelParcelp->setParcelID(mParcelID);
+ }
+ center();
+ return LLFloater::postBuild();
+}
+
+