Work on normal task EXT-2640 (Create a tabbed IM multifloater)
- initial commit: added xml file and base implementation of the tabbed IM multifloater --HG-- branch : product-enginemeow-7.2.2
parent
0876df6eef
commit
3c4a98ff3c
|
|
@ -239,6 +239,7 @@ set(viewer_SOURCE_FILES
|
|||
llhudtext.cpp
|
||||
llhudview.cpp
|
||||
llimfloater.cpp
|
||||
llimfloatercontainer.cpp
|
||||
llimhandler.cpp
|
||||
llimpanel.cpp
|
||||
llimview.cpp
|
||||
|
|
@ -737,6 +738,7 @@ set(viewer_HEADER_FILES
|
|||
llhudtext.h
|
||||
llhudview.h
|
||||
llimfloater.h
|
||||
llimfloatercontainer.h
|
||||
llimpanel.h
|
||||
llimview.h
|
||||
llinspect.h
|
||||
|
|
|
|||
|
|
@ -0,0 +1,97 @@
|
|||
/**
|
||||
* @file llimfloatercontainer.cpp
|
||||
* @brief Multifloater containing active IM sessions in separate tab container tabs
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 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 "llimfloatercontainer.h"
|
||||
|
||||
// TODO: mantipov: replace with floater_im_session
|
||||
#include "llimpanel.h"
|
||||
|
||||
//
|
||||
// LLIMFloaterContainer
|
||||
//
|
||||
LLIMFloaterContainer::LLIMFloaterContainer(const LLSD& seed)
|
||||
: LLMultiFloater(seed),
|
||||
mActiveVoiceFloater(NULL)
|
||||
{
|
||||
mAutoResize = FALSE;
|
||||
}
|
||||
|
||||
LLIMFloaterContainer::~LLIMFloaterContainer()
|
||||
{
|
||||
}
|
||||
|
||||
BOOL LLIMFloaterContainer::postBuild()
|
||||
{
|
||||
// TODO: mantipov: verify if it is needed
|
||||
mTabContainer->lockTabs();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LLIMFloaterContainer::onOpen(const LLSD& key)
|
||||
{
|
||||
// TODO: mantipov: verify if it is needed
|
||||
if (key.isDefined())
|
||||
{
|
||||
LLFloaterIMPanel* impanel = gIMMgr->findFloaterBySession(key.asUUID());
|
||||
if (impanel)
|
||||
{
|
||||
impanel->openFloater();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLIMFloaterContainer::addFloater(LLFloater* floaterp,
|
||||
BOOL select_added_floater,
|
||||
LLTabContainer::eInsertionPoint insertion_point)
|
||||
{
|
||||
if(!floaterp) return;
|
||||
|
||||
// already here
|
||||
if (floaterp->getHost() == this)
|
||||
{
|
||||
openFloater(floaterp->getKey());
|
||||
return;
|
||||
}
|
||||
|
||||
LLMultiFloater::addFloater(floaterp, select_added_floater, insertion_point);
|
||||
|
||||
// make sure active voice icon shows up for new tab
|
||||
if (floaterp == mActiveVoiceFloater)
|
||||
{
|
||||
mTabContainer->setTabImage(floaterp, "active_voice_tab.tga");
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
/**
|
||||
* @file llimfloatercontainer.h
|
||||
* @brief Multifloater containing active IM sessions in separate tab container tabs
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 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_LLIMFLOATERCONTAINER_H
|
||||
#define LL_LLIMFLOATERCONTAINER_H
|
||||
|
||||
#include "llfloater.h"
|
||||
#include "llmultifloater.h"
|
||||
|
||||
class LLTabContainer;
|
||||
|
||||
class LLIMFloaterContainer : public LLMultiFloater
|
||||
{
|
||||
public:
|
||||
LLIMFloaterContainer(const LLSD& seed);
|
||||
virtual ~LLIMFloaterContainer();
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
/*virtual*/ void addFloater(LLFloater* floaterp,
|
||||
BOOL select_added_floater,
|
||||
LLTabContainer::eInsertionPoint insertion_point = LLTabContainer::END);
|
||||
|
||||
static LLFloater* getCurrentVoiceFloater();
|
||||
|
||||
protected:
|
||||
|
||||
LLFloater* mActiveVoiceFloater;
|
||||
};
|
||||
|
||||
#endif // LL_LLIMFLOATERCONTAINER_H
|
||||
|
|
@ -109,6 +109,7 @@
|
|||
#include "llfloaterwhitelistentry.h"
|
||||
#include "llfloaterwindlight.h"
|
||||
#include "llfloaterworldmap.h"
|
||||
#include "llimfloatercontainer.h"
|
||||
#include "llinspectavatar.h"
|
||||
#include "llinspectgroup.h"
|
||||
#include "llinspectobject.h"
|
||||
|
|
@ -171,6 +172,7 @@ void LLViewerFloaterReg::registerFloaters()
|
|||
LLFloaterReg::add("hud", "floater_hud.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHUD>);
|
||||
|
||||
LLFloaterReg::add("impanel", "floater_im_session.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIMFloater>);
|
||||
LLFloaterReg::add("im_container", "floater_im_container.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIMFloaterContainer>);
|
||||
LLFloaterReg::add("incoming_call", "floater_incoming_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIncomingCallDialog>);
|
||||
LLFloaterReg::add("inventory", "floater_inventory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterInventory>);
|
||||
LLFloaterReg::add("inspect", "floater_inspect.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterInspect>);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<multi_floater
|
||||
background_visible="true"
|
||||
bg_color="yellow"
|
||||
can_resize="true"
|
||||
height="390"
|
||||
layout="topleft"
|
||||
name="floater_im_box"
|
||||
help_topic="floater_im_box"
|
||||
save_rect="true"
|
||||
save_visibility="true"
|
||||
single_instance="true"
|
||||
title="Instant Messages"
|
||||
width="392">
|
||||
<tab_container
|
||||
background_visible="true"
|
||||
bg_alpha_color="green"
|
||||
follows="left|right|top|bottom"
|
||||
height="390"
|
||||
layout="topleft"
|
||||
left="1"
|
||||
name="im_box_tab_container"
|
||||
tab_position="bottom"
|
||||
tab_width="80"
|
||||
top="0"
|
||||
width="390" />
|
||||
<icon
|
||||
color="red"
|
||||
enabled="false"
|
||||
follows="left|right|bottom"
|
||||
height="17"
|
||||
image_name="tabarea.tga"
|
||||
layout="bottomleft"
|
||||
left="1"
|
||||
name="im_box_tab_container_icon"
|
||||
bottom="0"
|
||||
width="390" />
|
||||
</multi_floater>
|
||||
Loading…
Reference in New Issue