summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterchatterbox.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloaterchatterbox.h')
-rw-r--r--indra/newview/llfloaterchatterbox.h101
1 files changed, 11 insertions, 90 deletions
diff --git a/indra/newview/llfloaterchatterbox.h b/indra/newview/llfloaterchatterbox.h
index 3adbd14370..e6a2e30ba6 100644
--- a/indra/newview/llfloaterchatterbox.h
+++ b/indra/newview/llfloaterchatterbox.h
@@ -42,15 +42,16 @@
class LLTabContainer;
-class LLFloaterChatterBox : public LLMultiFloater, public LLUISingleton<LLFloaterChatterBox, LLFloaterChatterBox>
+class LLFloaterChatterBox : public LLMultiFloater
{
public:
LLFloaterChatterBox(const LLSD& seed);
virtual ~LLFloaterChatterBox();
-
+
+ /*virtual*/ BOOL postBuild();
/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask);
/*virtual*/ void draw();
- /*virtual*/ void onOpen();
+ /*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void onClose(bool app_quitting);
/*virtual*/ void setMinimized(BOOL minimized);
@@ -59,108 +60,28 @@ public:
BOOL select_added_floater,
LLTabContainer::eInsertionPoint insertion_point = LLTabContainer::END);
+ static LLFloaterChatterBox* getInstance(); // *TODO:Skinning Deprecate
static LLFloater* getCurrentVoiceFloater();
- // visibility policy for LLUISingleton
- static bool visible(LLFloater* instance, const LLSD& key)
- {
- LLFloater* floater_to_check = ((LLFloaterChatterBox*)instance)->getFloater(key);
-
- if (floater_to_check)
- {
- return floater_to_check->isInVisibleChain();
- }
-
- // otherwise use default visibility rule for chatterbox
- return VisibilityPolicy<LLFloater>::visible(instance, key);
- }
-
- static void show(LLFloater* instance, const LLSD& key)
- {
- LLFloater* floater_to_show = ((LLFloaterChatterBox*)instance)->getFloater(key);
- VisibilityPolicy<LLFloater>::show(instance, key);
-
- if (floater_to_show)
- {
- floater_to_show->open();
- }
- }
-
- static void hide(LLFloater* instance, const LLSD& key)
- {
- VisibilityPolicy<LLFloater>::hide(instance, key);
- }
-
-private:
- LLFloater* getFloater(const LLSD& key)
- {
- LLFloater* floater = NULL;
-
- //try to show requested session
- LLUUID session_id = key.asUUID();
- if (session_id.notNull())
- {
- floater = LLIMMgr::getInstance()->findFloaterBySession(session_id);
- }
-
- // if TRUE, show tab for active voice channel, otherwise, just show last tab
- if (key.asBoolean())
- {
- floater = getCurrentVoiceFloater();
- }
-
- return floater;
- }
-
protected:
LLFloater* mActiveVoiceFloater;
};
-class LLFloaterMyFriends : public LLFloater, public LLUISingleton<LLFloaterMyFriends, LLFloaterMyFriends>
+class LLFloaterMyFriends : public LLFloater
{
public:
LLFloaterMyFriends(const LLSD& seed);
virtual ~LLFloaterMyFriends();
- virtual BOOL postBuild();
-
- void onClose(bool app_quitting);
+ /*virtual*/ BOOL postBuild();
+ /*virtual*/ void onOpen(const LLSD& key);
+ /*virtual*/ void onClose(bool app_quitting);
+ static LLFloaterMyFriends* getInstance(); // *TODO:Skinning Deprecate
+
static void* createFriendsPanel(void* data);
static void* createGroupsPanel(void* data);
-
- // visibility policy for LLUISingleton
- static bool visible(LLFloater* instance, const LLSD& key)
- {
- LLFloaterMyFriends* floaterp = (LLFloaterMyFriends*)instance;
- return floaterp->isInVisibleChain() && floaterp->mTabs->getCurrentPanelIndex() == key.asInteger();
- }
-
- static void show(LLFloater* instance, const LLSD& key)
- {
- VisibilityPolicy<LLFloater>::show(instance, key);
- // garbage values in id will be interpreted as 0, or the friends tab
- ((LLFloaterMyFriends*)instance)->mTabs->selectTab(key);
- }
-
- static void hide(LLFloater* instance, const LLSD& key)
- {
- if (visible(instance, key))
- {
- if(instance->getHost())
- {
- LLFloaterChatterBox::hideInstance();
- }
- else
- {
- VisibilityPolicy<LLFloater>::hide(instance, key);
- }
- }
- }
-
-protected:
- LLTabContainer* mTabs;
};
#endif // LL_LLFLOATERCHATTERBOX_H