diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index f3cc6d444..643d3f17b 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -227,7 +227,6 @@ set(viewer_SOURCE_FILES llfloatermodeluploadbase.cpp llfloatermute.cpp llfloaternamedesc.cpp - llfloaternewim.cpp llfloaternotificationsconsole.cpp llfloaterobjectiminfo.cpp llfloateropenobject.cpp @@ -731,7 +730,6 @@ set(viewer_HEADER_FILES llfloatermodeluploadbase.h llfloatermute.h llfloaternamedesc.h - llfloaternewim.h llfloaternotificationsconsole.h llfloaterobjectiminfo.h llfloateropenobject.h diff --git a/indra/newview/llfloaternewim.cpp b/indra/newview/llfloaternewim.cpp deleted file mode 100644 index 3acca6e38..000000000 --- a/indra/newview/llfloaternewim.cpp +++ /dev/null @@ -1,250 +0,0 @@ -/** - * @file llfloaternewim.cpp - * @brief Panel allowing the user to create a new IM session. - * - * $LicenseInfo:firstyear=2001&license=viewergpl$ - * - * Copyright (c) 2001-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" -#include "llfloaternewim.h" -#include "lluictrlfactory.h" -#include "llnamelistctrl.h" -#include "llresmgr.h" -#include "lltabcontainer.h" -#include "llimview.h" - -S32 COL_1_WIDTH = 200; - -static std::string sOnlineDescriptor = "*"; - -LLFloaterNewIM::LLFloaterNewIM() -{ - LLUICtrlFactory::getInstance()->buildFloater(this, "floater_new_im.xml"); -} - -BOOL LLFloaterNewIM::postBuild() -{ - requires("start_btn"); - requires("close_btn"); - requires("user_list"); - - if (checkRequirements()) - { - childSetAction("start_btn", &LLFloaterNewIM::onStart, this); - childSetAction("close_btn", &LLFloaterNewIM::onClickClose, this); - mSelectionList = getChild("user_list"); - if (mSelectionList) - { - mSelectionList->setDoubleClickCallback(boost::bind(&LLFloaterNewIM::onStart,this)); - } - else - { - llwarns << "LLUICtrlFactory::getNameListByName() returned NULL for 'user_list'" << llendl; - } - sOnlineDescriptor = getString("online_descriptor"); - setDefaultBtn("start_btn"); - return TRUE; - } - - return FALSE; -} - - -LLFloaterNewIM::~LLFloaterNewIM() -{ - clearAllTargets(); -} - - -void LLFloaterNewIM::clearAllTargets() -{ - mSelectionList->deleteAllItems(); -} - -void LLFloaterNewIM::addSpecial(const LLUUID& uuid, const std::string& name, - void* data, BOOL bold, BOOL online) -{ - LLSD row; - row["id"] = uuid; - row["name"] = name; - row["target"] = LLNameListCtrl::SPECIAL; - row["columns"][0]["value"] = name; - row["columns"][0]["width"] = COL_1_WIDTH; - row["columns"][0]["font"] = "SANSSERIF"; - row["columns"][0]["font-style"] = bold ? "BOLD" : "NORMAL"; - row["columns"][1]["value"] = online ? sOnlineDescriptor : ""; - row["columns"][1]["font"] = "SANSSERIF"; - row["columns"][1]["font-style"] = "BOLD"; - LLScrollListItem* itemp = mSelectionList->addElement(row); - itemp->setUserdata(data); - - if (mSelectionList->getFirstSelectedIndex() == -1) - { - mSelectionList->selectFirstItem(); - } -} - -void LLFloaterNewIM::addGroup(const LLUUID& uuid, void* data, BOOL bold, BOOL online) -{ - LLSD row; - row["id"] = uuid; - row["target"] = LLNameListCtrl::GROUP; - row["columns"][0]["value"] = ""; // name will be looked up - row["columns"][0]["width"] = COL_1_WIDTH; - row["columns"][0]["font"] = "SANSSERIF"; - row["columns"][0]["font-style"] = bold ? "BOLD" : "NORMAL"; - row["columns"][1]["value"] = online ? sOnlineDescriptor : ""; - row["columns"][1]["font"] = "SANSSERIF"; - row["columns"][1]["font-style"] = "BOLD"; - LLScrollListItem* itemp = mSelectionList->addElement(row); - itemp->setUserdata(data); - - if (mSelectionList->getFirstSelectedIndex() == -1) - { - mSelectionList->selectFirstItem(); - } -} - -void LLFloaterNewIM::addAgent(const LLUUID& uuid, void* data, BOOL online) -{ - LLSD row; - row["id"] = uuid; - row["target"] = LLNameListCtrl::INDIVIDUAL; - row["columns"][0]["value"] = ""; - row["columns"][0]["width"] = COL_1_WIDTH; - row["columns"][0]["font"] = "SANSSERIF"; - row["columns"][0]["font-style"] = online ? "BOLD" : "NORMAL"; - row["columns"][1]["value"] = online ? sOnlineDescriptor : ""; - row["columns"][1]["font"] = "SANSSERIF"; - row["columns"][1]["font-style"] = "BOLD"; - LLScrollListItem* itemp = mSelectionList->addElement(row); - itemp->setUserdata(data); - - if (mSelectionList->getFirstSelectedIndex() == -1) - { - mSelectionList->selectFirstItem(); - } -} - -BOOL LLFloaterNewIM::isUUIDAvailable(const LLUUID& uuid) -{ - std::vector data_list = mSelectionList->getAllData(); - std::vector::iterator data_itor; - for (data_itor = data_list.begin(); data_itor != data_list.end(); ++data_itor) - { - LLScrollListItem* item = *data_itor; - if(item->getUUID() == uuid) - { - return TRUE; - } - } - return FALSE; -} - -void LLFloaterNewIM::onStart(void* userdata) -{ - LLFloaterNewIM* self = (LLFloaterNewIM*) userdata; - - LLScrollListItem* item = self->mSelectionList->getFirstSelected(); - if(item) - { - const LLScrollListCell* cell = item->getColumn(0); - std::string name(cell->getValue()); - - // *NOTE: Do a live detrmination of what type of session it - // should be. If we restrict the new im panel to online users, - // then we can remove some of this code. - EInstantMessage type; - EInstantMessage* t = (EInstantMessage*)item->getUserdata(); - if(t) type = (*t); - else type = LLIMMgr::defaultIMTypeForAgent(item->getUUID()); - gIMMgr->addSession(name, type, item->getUUID()); - - make_ui_sound("UISndStartIM"); - } - else - { - make_ui_sound("UISndInvalidOp"); - } -} - - -// static -void LLFloaterNewIM::onClickClose(void *userdata) -{ - gIMMgr->setFloaterOpen(FALSE); -} - - -BOOL LLFloaterNewIM::handleKeyHere(KEY key, MASK mask) -{ - BOOL handled = LLFloater::handleKeyHere(key, mask); - if (KEY_ESCAPE == key && mask == MASK_NONE) - { - handled = TRUE; - // Close talk panel on escape - gIMMgr->toggle(NULL); - } - - // Might need to call base class here if not handled - return handled; -} - -BOOL LLFloaterNewIM::canClose() -{ - if (getHost()) - { - LLMultiFloater* hostp = (LLMultiFloater*)getHost(); - // if we are the only tab in the im view, go ahead and close - return hostp->getFloaterCount() == 1; - } - return TRUE; -} - -void LLFloaterNewIM::close(bool app_quitting) -{ - if (getHost()) - { - LLMultiFloater* hostp = (LLMultiFloater*)getHost(); - hostp->close(); - } - else - { - LLFloater::close(app_quitting); - } -} - -S32 LLFloaterNewIM::getScrollPos() -{ - return mSelectionList->getScrollPos(); -} - -void LLFloaterNewIM::setScrollPos( S32 pos ) -{ - mSelectionList->setScrollPos( pos ); -} diff --git a/indra/newview/llfloaternewim.h b/indra/newview/llfloaternewim.h deleted file mode 100644 index 9aff36c94..000000000 --- a/indra/newview/llfloaternewim.h +++ /dev/null @@ -1,77 +0,0 @@ -/** - * @file llfloaternewim.h - * @brief Panel allowing the user to create a new IM session. - * - * $LicenseInfo:firstyear=2001&license=viewergpl$ - * - * Copyright (c) 2001-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#ifndef LL_FLOATER_NEW_IM_H -#define LL_FLOATER_NEW_IM_H - -#include "llfloater.h" - -class LLNameListCtrl; - -class LLFloaterNewIM : public LLFloater -{ -public: - LLFloaterNewIM(); - /*virtual*/ ~LLFloaterNewIM(); - - /*virtual*/ BOOL postBuild(); - - /*virtual*/ BOOL handleKeyHere(KEY key, MASK mask); - virtual BOOL canClose(); - virtual void close(bool app_quitting); - - static void onStart(void* userdata); - static void onClickClose(void* userdata); - - void clearAllTargets(); - - // add a scroll list item which has everything specified - useful - // for special IM targets like everyone. - void addSpecial(const LLUUID& uuid, const std::string& name, - void* data, BOOL bold, BOOL online); - - // add a scroll list item for an agent - the name will be autoupdated - // as it appears - void addAgent(const LLUUID& uuid, void* data, BOOL online); - void addGroup(const LLUUID& uuid, void* data, BOOL bold, BOOL online); - - void addDefaultTargets(); - BOOL isUUIDAvailable(const LLUUID& uuid); - - S32 getScrollPos(); - void setScrollPos( S32 pos ); - -protected: - LLNameListCtrl* mSelectionList; -}; - -#endif // LL_NEWIMPANEL_H diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index f87b29525..64be462f7 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -51,7 +51,6 @@ #include "llresmgr.h" #include "llfloaterchat.h" #include "llfloaterchatterbox.h" -#include "llfloaternewim.h" #include "llhttpnode.h" #include "llimpanel.h" #include "llresizebar.h" diff --git a/indra/newview/skins/default/xui/en-us/floater_new_im.xml b/indra/newview/skins/default/xui/en-us/floater_new_im.xml deleted file mode 100644 index bde670d7d..000000000 --- a/indra/newview/skins/default/xui/en-us/floater_new_im.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - -