diff options
author | Steven Bennetts <steve@lindenlab.com> | 2009-06-21 08:04:56 +0000 |
---|---|---|
committer | Steven Bennetts <steve@lindenlab.com> | 2009-06-21 08:04:56 +0000 |
commit | 9ec432034dc3c45d7ce763eb02dae4cc7f6b8da8 (patch) | |
tree | 4a505c1e0919af52800b3ffb3eaf135e7d6f9ce6 /indra/newview/llfloaterchatterbox.h | |
parent | 351ebe9fcb76f3b99c2957004bb8493a904869ee (diff) |
merge -r 122421-124917 viewer-2.0.0-2 -> viewer-2.0.0-3
ignore-dead-branch
Diffstat (limited to 'indra/newview/llfloaterchatterbox.h')
-rw-r--r-- | indra/newview/llfloaterchatterbox.h | 101 |
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 |