CHUI preparation phase 1: Move FS-specific communication parts into a separate domain and out of the way for CHUI merge to reduce conflicts
* LLChatHistory moved to FSChatHistory * LLFloaterNearbyChat moved to FSFloaterNearbyChat * LLIMFloater moved to FSFloaterIM * LLIMFloaterContainer moved to FSFloaterIMContainer * LLNearbyChatbarListener moved to FSNearbyChatbarListener * LLNearbyChatControl moved to FSNearbyChatControl * LLNearbyChatHub moved to FSNearbyChatHub * floater_im_container.xml moved to floater_fs_im_container.xml * floater_im_session.xml moved to floater_fs_im_session.xml * floater_nearby_chat.xml moved to floater_fs_nearby_chat.xml * widget chat_history.xml moved to fs_chat_history * widget nearby_chat_control.xml moved to fs_nearby_chat_control.xml
parent
1d6f7491d6
commit
63ef2950e9
|
|
@ -120,12 +120,16 @@ set(viewer_SOURCE_FILES
|
|||
exopostprocess.cpp
|
||||
floatermedialists.cpp
|
||||
fsareasearch.cpp
|
||||
fschathistory.cpp
|
||||
fscommon.cpp
|
||||
fsconsoleutils.cpp
|
||||
fscontactsfloater.cpp
|
||||
fsdata.cpp
|
||||
fsfloaterblocklist.cpp
|
||||
fsfloatergroup.cpp
|
||||
fsfloaterim.cpp
|
||||
fsfloaterimcontainer.cpp
|
||||
fsfloaternearbychat.cpp
|
||||
fsfloaterplacedetails.cpp
|
||||
fsfloaterprofile.cpp
|
||||
fsfloatersearch.cpp
|
||||
|
|
@ -138,6 +142,9 @@ set(viewer_SOURCE_FILES
|
|||
fslslbridgerequest.cpp
|
||||
fslslpreproc.cpp
|
||||
fsmoneytracker.cpp
|
||||
fsnearbychatbarlistener.cpp
|
||||
fsnearbychatcontrol.cpp
|
||||
fsnearbychathub.cpp
|
||||
fsnearbychatvoicemonitor.cpp
|
||||
fspanelclassified.cpp
|
||||
fspanelprefs.cpp
|
||||
|
|
@ -417,9 +424,7 @@ set(viewer_SOURCE_FILES
|
|||
llnameeditor.cpp
|
||||
llnamelistctrl.cpp
|
||||
llnavigationbar.cpp
|
||||
llnearbychatcontrol.cpp
|
||||
llnearbychathandler.cpp
|
||||
llnearbychathub.cpp
|
||||
llnearbychatbarlistener.cpp
|
||||
llnetmap.cpp
|
||||
llnotificationalerthandler.cpp
|
||||
|
|
@ -768,12 +773,16 @@ set(viewer_HEADER_FILES
|
|||
exopostprocess.h
|
||||
floatermedialists.h
|
||||
fsareasearch.h
|
||||
fschathistory.h
|
||||
fscommon.h
|
||||
fsconsoleutils.h
|
||||
fscontactsfloater.h
|
||||
fsdata.h
|
||||
fsfloaterblocklist.h
|
||||
fsfloatergroup.h
|
||||
fsfloaterim.h
|
||||
fsfloaterimcontainer.h
|
||||
fsfloaternearbychat.h
|
||||
fsfloaterplacedetails.h
|
||||
fsfloaterprofile.h
|
||||
fsfloatersearch.h
|
||||
|
|
@ -787,6 +796,9 @@ set(viewer_HEADER_FILES
|
|||
fslslbridgerequest.h
|
||||
fslslpreproc.h
|
||||
fsmoneytracker.h
|
||||
fsnearbychatbarlistener.h
|
||||
fsnearbychatcontrol.h
|
||||
fsnearbychathub.h
|
||||
fsnearbychatvoicemonitor.h
|
||||
fspanelclassified.h
|
||||
fspanelprefs.h
|
||||
|
|
@ -1068,9 +1080,7 @@ set(viewer_HEADER_FILES
|
|||
llnameeditor.h
|
||||
llnamelistctrl.h
|
||||
llnavigationbar.h
|
||||
llnearbychatcontrol.h
|
||||
llnearbychathandler.h
|
||||
llnearbychathub.h
|
||||
llnearbychatbarlistener.h
|
||||
llnetmap.h
|
||||
llnotificationhandler.h
|
||||
|
|
|
|||
|
|
@ -50,9 +50,9 @@
|
|||
label_ref="Command_Chat_Label"
|
||||
tooltip_ref="Command_Chat_Tooltip"
|
||||
execute_function="Floater.Toggle"
|
||||
execute_parameters="im_container"
|
||||
execute_parameters="fs_im_container"
|
||||
is_running_function="Floater.IsOpen"
|
||||
is_running_parameters="im_container"
|
||||
is_running_parameters="fs_im_container"
|
||||
/>
|
||||
<command name="compass"
|
||||
available_in_toybox="false"
|
||||
|
|
|
|||
|
|
@ -39,7 +39,10 @@
|
|||
#include "llagentcamera.h"
|
||||
#include "llavatarlist.h"
|
||||
#include "llcalc.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloatersidepanelcontainer.h"
|
||||
#include "llinventorymodel.h"
|
||||
|
|
@ -851,7 +854,10 @@ bool cmd_line_chat(std::string revised_text, EChatType type, bool from_gesture)
|
|||
|
||||
else if (command == std::string(sFSCmdLineClearChat))
|
||||
{
|
||||
LLFloaterNearbyChat* chat = LLFloaterReg::getTypedInstance<LLFloaterNearbyChat>("nearby_chat", LLSD());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* chat = LLFloaterReg::getTypedInstance<LLFloaterNearbyChat>("nearby_chat", LLSD());
|
||||
FSFloaterNearbyChat* chat = LLFloaterReg::getTypedInstance<FSFloaterNearbyChat>("fs_nearby_chat", LLSD());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (chat)
|
||||
{
|
||||
chat->clearChatHistory();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,167 @@
|
|||
/**
|
||||
* @file llchathistory.h
|
||||
* @brief LLTextEditor base class
|
||||
*
|
||||
* $LicenseInfo:firstyear=2001&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$
|
||||
*/
|
||||
|
||||
// Original file: llchathistory.h
|
||||
|
||||
#ifndef FS_CHATHISTORY_H
|
||||
#define FS_CHATHISTORY_H
|
||||
|
||||
#include "lltexteditor.h"
|
||||
#include "lltextbox.h"
|
||||
#include "llviewerchat.h"
|
||||
#include "llavatarname.h"
|
||||
|
||||
class LLLineEditor; // <FS_Zi> FIRE-8602: Typing in chat history focuses chat input line
|
||||
|
||||
//Chat log widget allowing addition of a message as a widget
|
||||
// class LLChatHistory : public LLUICtrl // <FS:Zi> FIRE-8600: TAB out of chat history
|
||||
class FSChatHistory : public LLTextEditor // <FS:Zi> FIRE-8600: TAB out of chat history
|
||||
{
|
||||
public:
|
||||
struct Params : public LLInitParam::Block<Params, LLTextEditor::Params>
|
||||
{
|
||||
//Message header filename
|
||||
Optional<std::string> message_header;
|
||||
//Message separator filename
|
||||
Optional<std::string> message_separator;
|
||||
//Text left padding from the scroll rect
|
||||
Optional<S32> left_text_pad;
|
||||
//Text right padding from the scroll rect
|
||||
Optional<S32> right_text_pad;
|
||||
//Widget left padding from the scroll rect
|
||||
Optional<S32> left_widget_pad;
|
||||
//Widget right padding from the scroll rect
|
||||
Optional<S32> right_widget_pad;
|
||||
//Separator top padding
|
||||
Optional<S32> top_separator_pad;
|
||||
//Separator bottom padding
|
||||
Optional<S32> bottom_separator_pad;
|
||||
//Header top padding
|
||||
Optional<S32> top_header_pad;
|
||||
//Header bottom padding
|
||||
Optional<S32> bottom_header_pad;
|
||||
|
||||
// Optional<LLTextBox::Params> more_chat_text; // <FS:Zi> FIRE-8600: TAB out of chat history
|
||||
|
||||
Params()
|
||||
: message_header("message_header"),
|
||||
message_separator("message_separator"),
|
||||
left_text_pad("left_text_pad"),
|
||||
right_text_pad("right_text_pad"),
|
||||
left_widget_pad("left_widget_pad"),
|
||||
right_widget_pad("right_widget_pad"),
|
||||
top_separator_pad("top_separator_pad"),
|
||||
bottom_separator_pad("bottom_separator_pad"),
|
||||
top_header_pad("top_header_pad"),
|
||||
bottom_header_pad("bottom_header_pad") // <FS:Zi> FIRE-8600: TAB out of chat history
|
||||
// more_chat_text("more_chat_text") // <FS:Zi> FIRE-8600: TAB out of chat history
|
||||
{}
|
||||
|
||||
};
|
||||
protected:
|
||||
FSChatHistory(const Params&);
|
||||
friend class LLUICtrlFactory;
|
||||
|
||||
// /*virtual*/ void draw(); // <FS:Zi> FIRE-8600: TAB out of chat history
|
||||
/**
|
||||
* Redefinition of LLTextEditor::updateTextRect() to considerate text
|
||||
* left/right padding params.
|
||||
*/
|
||||
//virtual void updateTextRect();
|
||||
/**
|
||||
* Builds a message separator.
|
||||
* @return pointer to LLView separator object.
|
||||
*/
|
||||
LLView* getSeparator();
|
||||
/**
|
||||
* Builds a message header.
|
||||
* @return pointer to LLView header object.
|
||||
*/
|
||||
|
||||
void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);
|
||||
LLView* getHeader(const LLChat& chat,const LLStyle::Params& style_params, const LLSD& args);
|
||||
|
||||
// void onClickMoreText(); // <FS:Zi> FIRE-8600: TAB out of chat history
|
||||
|
||||
public:
|
||||
~FSChatHistory();
|
||||
|
||||
void initFromParams(const Params&);
|
||||
|
||||
/**
|
||||
* Appends a widget message.
|
||||
* If last user appended message, concurs with current user,
|
||||
* separator is added before the message, otherwise header is added.
|
||||
* The args LLSD contains:
|
||||
* - use_plain_text_chat_history (bool) - whether to add message as plain text.
|
||||
* - owner_id (LLUUID) - the owner ID for object chat
|
||||
* @param chat - base chat message.
|
||||
* @param args - additional arguments
|
||||
* @param input_append_params - font style.
|
||||
*/
|
||||
void appendMessage(const LLChat& chat, const LLSD &args = LLSD(), const LLStyle::Params& input_append_params = LLStyle::Params());
|
||||
/*virtual*/ void clear();
|
||||
|
||||
private:
|
||||
std::string mLastFromName;
|
||||
LLUUID mLastFromID;
|
||||
LLDate mLastMessageTime;
|
||||
bool mIsLastMessageFromLog;
|
||||
//std::string mLastMessageTimeStr;
|
||||
|
||||
std::string mMessageHeaderFilename;
|
||||
std::string mMessageSeparatorFilename;
|
||||
|
||||
S32 mLeftTextPad;
|
||||
S32 mRightTextPad;
|
||||
|
||||
S32 mLeftWidgetPad;
|
||||
S32 mRightWidgetPad;
|
||||
|
||||
S32 mTopSeparatorPad;
|
||||
S32 mBottomSeparatorPad;
|
||||
S32 mTopHeaderPad;
|
||||
S32 mBottomHeaderPad;
|
||||
|
||||
std::string mDisplayName;
|
||||
std::string mDisplayName_Username;
|
||||
|
||||
// <FS:Zi> FIRE-8600: TAB out of chat history
|
||||
// class LLLayoutPanel* mMoreChatPanel;
|
||||
// LLTextBox* mMoreChatText;
|
||||
// LLTextEditor* mEditor;
|
||||
// typedef std::set<std::string> unread_chat_source_t;
|
||||
// unread_chat_source_t mUnreadChatSources;
|
||||
// </FS:Zi>
|
||||
|
||||
// <FS_Zi> FIRE-8602: Typing in chat history focuses chat input line
|
||||
public:
|
||||
virtual BOOL handleUnicodeCharHere(llwchar uni_char);
|
||||
|
||||
LLLineEditor* mChatInputLine;
|
||||
// </FS:Zi>
|
||||
};
|
||||
#endif // FS_CHATHISTORY_H
|
||||
|
|
@ -92,7 +92,7 @@ bool FSConsoleUtils::ProcessChatMessage(const LLChat& chat_msg, const LLSD &args
|
|||
LLColor4 chatcolor;
|
||||
LLViewerChat::getChatColor(chat_msg, chatcolor);
|
||||
gConsole->addConsoleLine(consoleChat, chatcolor);
|
||||
gConsole->setVisible(!LLFloaterReg::instanceVisible("nearby_chat", LLSD()));
|
||||
gConsole->setVisible(!LLFloaterReg::instanceVisible("fs_nearby_chat", LLSD()));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -115,7 +115,7 @@ bool FSConsoleUtils::ProcessChatMessage(const LLChat& chat_msg, const LLSD &args
|
|||
LLColor4 chatcolor;
|
||||
LLViewerChat::getChatColor(chat_msg, chatcolor);
|
||||
gConsole->addConsoleLine(consoleChat, chatcolor);
|
||||
gConsole->setVisible(!LLFloaterReg::instanceVisible("nearby_chat", LLSD()));
|
||||
gConsole->setVisible(!LLFloaterReg::instanceVisible("fs_nearby_chat", LLSD()));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -171,7 +171,7 @@ void FSConsoleUtils::onProcessChatAvatarNameLookup(const LLUUID& agent_id, const
|
|||
LLColor4 chatcolor;
|
||||
LLViewerChat::getChatColor(chat_msg, chatcolor);
|
||||
gConsole->addConsoleLine(consoleChat, chatcolor);
|
||||
gConsole->setVisible(!LLFloaterReg::instanceVisible("nearby_chat", LLSD()));
|
||||
gConsole->setVisible(!LLFloaterReg::instanceVisible("fs_nearby_chat", LLSD()));
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -268,5 +268,5 @@ void FSConsoleUtils::onProccessInstantMessageNameLookup(const LLUUID& agent_id,
|
|||
}
|
||||
|
||||
gConsole->addConsoleLine("IM: " + senderName + delimiter + message, textColor);
|
||||
gConsole->setVisible(!LLFloaterReg::instanceVisible("nearby_chat", LLSD()));
|
||||
gConsole->setVisible(!LLFloaterReg::instanceVisible("fs_nearby_chat", LLSD()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,10 @@
|
|||
#include "llfriendcard.h"
|
||||
#include "llgroupactions.h"
|
||||
#include "llgrouplist.h"
|
||||
#include "llimfloatercontainer.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloatercontainer.h"
|
||||
#include "fsfloaterimcontainer.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llfloatersidepanelcontainer.h"
|
||||
#include "llstartup.h"
|
||||
|
|
@ -184,7 +187,10 @@ void FSFloaterContacts::updateGroupButtons()
|
|||
|
||||
void FSFloaterContacts::onOpen(const LLSD& key)
|
||||
{
|
||||
LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* floater_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (gSavedSettings.getBOOL("ContactsTornOff"))
|
||||
{
|
||||
// first set the tear-off host to the conversations container
|
||||
|
|
@ -220,7 +226,10 @@ void FSFloaterContacts::openTab(const std::string& name)
|
|||
|
||||
if (visible)
|
||||
{
|
||||
LLIMFloaterContainer* floater_container = (LLIMFloaterContainer *) getHost();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* floater_container = (LLIMFloaterContainer *) getHost();
|
||||
FSFloaterIMContainer* floater_container = (FSFloaterIMContainer *) getHost();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (floater_container)
|
||||
{
|
||||
floater_container->setVisible(TRUE);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,225 @@
|
|||
/**
|
||||
* @file llimfloater.h
|
||||
* @brief LLIMFloater class definition
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&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$
|
||||
*/
|
||||
|
||||
// Original file: llimfloater.h
|
||||
|
||||
#ifndef FS_FLOATERIM_H
|
||||
#define FS_FLOATERIM_H
|
||||
|
||||
#include "llinstantmessage.h"
|
||||
#include "lllogchat.h"
|
||||
#include "lltooldraganddrop.h"
|
||||
#include "lltransientdockablefloater.h"
|
||||
#include "llvoicechannel.h"
|
||||
|
||||
class LLAvatarName;
|
||||
class LLButton; // support sysinfo button -Zi
|
||||
class LLLineEditor;
|
||||
class LLPanelChatControlPanel;
|
||||
class FSChatHistory;
|
||||
class LLInventoryItem;
|
||||
class LLInventoryCategory;
|
||||
|
||||
/**
|
||||
* Individual IM window that appears at the bottom of the screen,
|
||||
* optionally "docked" to the bottom tray.
|
||||
*/
|
||||
class FSFloaterIM : public LLTransientDockableFloater, LLVoiceClientStatusObserver, LLFriendObserver
|
||||
{
|
||||
LOG_CLASS(FSFloaterIM);
|
||||
public:
|
||||
FSFloaterIM(const LLUUID& session_id);
|
||||
|
||||
virtual ~FSFloaterIM();
|
||||
|
||||
// LLView overrides
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void setVisible(BOOL visible);
|
||||
/*virtual*/ BOOL getVisible();
|
||||
// Check typing timeout timer.
|
||||
/*virtual*/ void draw();
|
||||
|
||||
// LLFloater overrides
|
||||
/*virtual*/ void onClose(bool app_quitting);
|
||||
/*virtual*/ void setDocked(bool docked, bool pop_on_undock = true);
|
||||
|
||||
// Make IM conversion visible and update the message history
|
||||
static FSFloaterIM* show(const LLUUID& session_id);
|
||||
|
||||
// Toggle panel specified by session_id
|
||||
// Returns true iff panel became visible
|
||||
static bool toggle(const LLUUID& session_id);
|
||||
|
||||
static FSFloaterIM* findInstance(const LLUUID& session_id);
|
||||
|
||||
static FSFloaterIM* getInstance(const LLUUID& session_id);
|
||||
|
||||
void sessionInitReplyReceived(const LLUUID& im_session_id);
|
||||
|
||||
// get new messages from LLIMModel
|
||||
void updateMessages();
|
||||
void reloadMessages();
|
||||
static void onSendMsg( LLUICtrl*, void*);
|
||||
void sendMsg();
|
||||
|
||||
// callback for LLIMModel on new messages
|
||||
// route to specific floater if it is visible
|
||||
static void newIMCallback(const LLSD& data);
|
||||
|
||||
//AO: Callbacks for voice handling formerly in llPanelImControlPanel
|
||||
void onCallButtonClicked();
|
||||
void onEndCallButtonClicked();
|
||||
void onOpenVoiceControlsClicked();
|
||||
void onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state);
|
||||
void onChange(EStatusType status, const std::string &channelURI, bool proximal);
|
||||
void updateButtons(bool is_call_started);
|
||||
void updateCallButton();
|
||||
void changed(U32 mask);
|
||||
// ## Zi: overridden to fix the IM focus bug - FIRE-3989 etc.
|
||||
BOOL focusFirstItem(BOOL prefer_text_fields = FALSE, BOOL focus_flash = TRUE );
|
||||
|
||||
// called when docked floater's position has been set by chiclet
|
||||
void setPositioned(bool b) { mPositioned = b; };
|
||||
|
||||
void onVisibilityChange(const LLSD& new_visibility);
|
||||
void processIMTyping(const LLIMInfo* im_info, BOOL typing);
|
||||
void processAgentListUpdates(const LLSD& body);
|
||||
void processSessionUpdate(const LLSD& session_update);
|
||||
|
||||
void updateChatHistoryStyle();
|
||||
static void processChatHistoryStyleUpdate(const LLSD& newvalue);
|
||||
|
||||
BOOL handleDragAndDrop(S32 x, S32 y, MASK mask,
|
||||
BOOL drop, EDragAndDropType cargo_type,
|
||||
void *cargo_data, EAcceptance *accept,
|
||||
std::string& tooltip_msg);
|
||||
|
||||
/**
|
||||
* Returns true if chat is displayed in multi tabbed floater
|
||||
* false if chat is displayed in multiple windows
|
||||
*/
|
||||
static bool isChatMultiTab();
|
||||
|
||||
static void initIMFloater();
|
||||
|
||||
//used as a callback on receiving new IM message
|
||||
static void sRemoveTypingIndicator(const LLSD& data);
|
||||
|
||||
static void onIMChicletCreated(const LLUUID& session_id);
|
||||
|
||||
virtual LLTransientFloaterMgr::ETransientGroup getGroup() { return LLTransientFloaterMgr::IM; }
|
||||
|
||||
// <FS:Ansariel> FIRE-3248: Disable add friend button on IM floater if friendship request accepted
|
||||
void setEnableAddFriendButton(BOOL enabled);
|
||||
|
||||
protected:
|
||||
/* virtual */
|
||||
void onClickCloseBtn();
|
||||
|
||||
// support sysinfo button -Zi
|
||||
void onSysinfoButtonVisibilityChanged(const LLSD& yes);
|
||||
LLButton* mSysinfoButton;
|
||||
// support sysinfo button -Zi
|
||||
|
||||
BOOL enableViewerVersionCallback(const LLSD& notification,const LLSD& response); // <FS:Zi> Viewer version popup
|
||||
private:
|
||||
// process focus events to set a currently active session
|
||||
/* virtual */ void onFocusLost();
|
||||
/* virtual */ void onFocusReceived();
|
||||
|
||||
// Update the window title, input field help text, etc.
|
||||
void updateSessionName(const std::string& ui_title, const std::string& ui_label);
|
||||
|
||||
// For display name lookups for IM window titles
|
||||
void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name);
|
||||
|
||||
BOOL dropCallingCard(LLInventoryItem* item, BOOL drop);
|
||||
BOOL dropCategory(LLInventoryCategory* category, BOOL drop);
|
||||
|
||||
BOOL isInviteAllowed() const;
|
||||
BOOL inviteToSession(const uuid_vec_t& agent_ids);
|
||||
|
||||
static void onInputEditorFocusReceived( LLFocusableElement* caller, void* userdata );
|
||||
static void onInputEditorFocusLost(LLFocusableElement* caller, void* userdata);
|
||||
static void onInputEditorKeystroke(LLLineEditor* caller, void* userdata);
|
||||
|
||||
// AO, originally from llpaneChatControlPanel trees
|
||||
void onViewProfileButtonClicked();
|
||||
void onAddFriendButtonClicked();
|
||||
void onShareButtonClicked();
|
||||
void onTeleportButtonClicked();
|
||||
void onPayButtonClicked();
|
||||
void onGroupInfoButtonClicked();
|
||||
void onHistoryButtonClicked();
|
||||
|
||||
// support sysinfo button -Zi
|
||||
void onSysinfoButtonClicked();
|
||||
BOOL onSendSysinfo(const LLSD& notification,const LLSD& response);
|
||||
// support sysinfo button -Zi
|
||||
|
||||
// connection to voice channel state change signal
|
||||
boost::signals2::connection mVoiceChannelStateChangeConnection;
|
||||
|
||||
void setTyping(bool typing);
|
||||
void onSlide();
|
||||
static void* createPanelIMControl(void* userdata);
|
||||
static void* createPanelGroupControl(void* userdata);
|
||||
static void* createPanelAdHocControl(void* userdata);
|
||||
|
||||
// Add the "User is typing..." indicator.
|
||||
void addTypingIndicator(const LLIMInfo* im_info);
|
||||
|
||||
// Remove the "User is typing..." indicator.
|
||||
void removeTypingIndicator(const LLIMInfo* im_info = NULL);
|
||||
|
||||
static void closeHiddenIMToasts();
|
||||
|
||||
static void confirmLeaveCallCallback(const LLSD& notification, const LLSD& response);
|
||||
|
||||
LLPanelChatControlPanel* mControlPanel;
|
||||
LLUUID mSessionID;
|
||||
S32 mLastMessageIndex;
|
||||
|
||||
EInstantMessage mDialog;
|
||||
LLUUID mOtherParticipantUUID;
|
||||
FSChatHistory* mChatHistory;
|
||||
LLLineEditor* mInputEditor;
|
||||
bool mPositioned;
|
||||
|
||||
std::string mSavedTitle;
|
||||
LLUIString mTypingStart;
|
||||
bool mMeTyping;
|
||||
bool mOtherTyping;
|
||||
bool mShouldSendTypingState;
|
||||
LLFrameTimer mTypingTimer;
|
||||
LLFrameTimer mTypingTimeoutTimer;
|
||||
|
||||
bool mSessionInitialized;
|
||||
LLSD mQueuedMsgsForInit;
|
||||
};
|
||||
|
||||
|
||||
#endif // FS_FLOATERIM_H
|
||||
|
|
@ -0,0 +1,290 @@
|
|||
/**
|
||||
* @file fsfloaterimcontainer.cpp
|
||||
* @brief Multifloater containing active IM sessions in separate tab container tabs
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&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$
|
||||
*/
|
||||
|
||||
// Original file: llimfloatercontainer.cpp
|
||||
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "fsfloaterimcontainer.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llimview.h"
|
||||
#include "llavatariconctrl.h"
|
||||
#include "llgroupiconctrl.h"
|
||||
#include "llagent.h"
|
||||
#include "lltransientfloatermgr.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
#include "fscontactsfloater.h"
|
||||
#include "llfloater.h"
|
||||
#include "llviewercontrol.h"
|
||||
|
||||
//
|
||||
// FSFloaterIMContainer
|
||||
//
|
||||
FSFloaterIMContainer::FSFloaterIMContainer(const LLSD& seed)
|
||||
: LLMultiFloater(seed)
|
||||
{
|
||||
mAutoResize = FALSE;
|
||||
LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::IM, this);
|
||||
}
|
||||
|
||||
FSFloaterIMContainer::~FSFloaterIMContainer()
|
||||
{
|
||||
mNewMessageConnection.disconnect();
|
||||
LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::IM, this);
|
||||
}
|
||||
|
||||
BOOL FSFloaterIMContainer::postBuild()
|
||||
{
|
||||
|
||||
if (!gSavedSettings.getBOOL("ContactsTornOff"))
|
||||
{
|
||||
addFloater(FSFloaterContacts::getInstance(), TRUE);
|
||||
}
|
||||
|
||||
mNewMessageConnection = LLIMModel::instance().mNewMsgSignal.connect(boost::bind(&FSFloaterIMContainer::onNewMessageReceived, this, _1));
|
||||
// Do not call base postBuild to not connect to mCloseSignal to not close all floaters via Close button
|
||||
// mTabContainer will be initialized in LLMultiFloater::addChild()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void FSFloaterIMContainer::onOpen(const LLSD& key)
|
||||
{
|
||||
|
||||
LLMultiFloater::onOpen(key);
|
||||
|
||||
|
||||
// If we're using multitabs, and we open up for the first time
|
||||
// Add localchat by default if it's not already on the screen somewhere else. -AO
|
||||
// But only if it hasnt been already so we can reopen it to the same tab -KC
|
||||
// Improved handling to leave most of the work to the LL tear-off code -Zi
|
||||
|
||||
LLFloater* floater = FSFloaterNearbyChat::getInstance();
|
||||
if (! LLFloater::isVisible(floater) && (floater->getHost() != this))
|
||||
{
|
||||
if (gSavedSettings.getBOOL("ChatHistoryTornOff"))
|
||||
{
|
||||
// first set the tear-off host to this floater
|
||||
floater->setHost(this);
|
||||
// clear the tear-off host right after, the "last host used" will still stick
|
||||
floater->setHost(NULL);
|
||||
// reparent to floater view
|
||||
gFloaterView->addChild(floater);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLMultiFloater::showFloater(floater);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if (key.isDefined())
|
||||
{
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(key.asUUID());
|
||||
if (im_floater)
|
||||
{
|
||||
im_floater->openFloater();
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void FSFloaterIMContainer::addFloater(LLFloater* floaterp,
|
||||
BOOL select_added_floater,
|
||||
LLTabContainer::eInsertionPoint insertion_point)
|
||||
{
|
||||
if(!floaterp) return;
|
||||
|
||||
// already here
|
||||
if (floaterp->getHost() == this)
|
||||
{
|
||||
openFloater(floaterp->getKey());
|
||||
return;
|
||||
}
|
||||
|
||||
if (floaterp->getName() == "imcontacts" || floaterp->getName() == "nearby_chat")
|
||||
{
|
||||
S32 num_locked_tabs = mTabContainer->getNumLockedTabs();
|
||||
mTabContainer->unlockTabs();
|
||||
// add contacts window as first tab
|
||||
if (floaterp->getName() == "imcontacts")
|
||||
{
|
||||
LLMultiFloater::addFloater(floaterp, select_added_floater, LLTabContainer::START);
|
||||
gSavedSettings.setBOOL("ContactsTornOff", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
// add chat history as second tab if contact window is present, first tab otherwise
|
||||
if (getChildView("imcontacts"))
|
||||
{
|
||||
// assuming contacts window is first tab, select it
|
||||
mTabContainer->selectFirstTab();
|
||||
// and add ourselves after
|
||||
LLMultiFloater::addFloater(floaterp, select_added_floater, LLTabContainer::RIGHT_OF_CURRENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLMultiFloater::addFloater(floaterp, select_added_floater, LLTabContainer::START);
|
||||
}
|
||||
gSavedSettings.setBOOL("ChatHistoryTornOff", FALSE);
|
||||
}
|
||||
// make sure first two tabs are now locked
|
||||
mTabContainer->lockTabs(num_locked_tabs + 1);
|
||||
|
||||
floaterp->setCanClose(FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// [SL:KB] - Patch: Chat-NearbyChatBar | Checked: 2011-11-17 (Catznip-3.2.0a) | Added: Catznip-3.2.0a
|
||||
LLUUID session_id = floaterp->getKey();
|
||||
if (session_id.isNull())
|
||||
{
|
||||
// Re-insert the nearby chat floater at the start
|
||||
insertion_point = LLTabContainer::START;
|
||||
}
|
||||
// [/SL:KB]
|
||||
|
||||
LLMultiFloater::addFloater(floaterp, select_added_floater, insertion_point);
|
||||
|
||||
// LLUUID session_id = floaterp->getKey();
|
||||
|
||||
LLIconCtrl* icon = 0;
|
||||
|
||||
// [SL:KB] - Patch: Chat-NearbyChatBar | Checked: 2011-11-17 (Catznip-3.2.0a) | Added: Catznip-3.2.0a
|
||||
if (session_id.isNull())
|
||||
{
|
||||
// Don't allow the nearby chat tab to be drag-rearranged
|
||||
mTabContainer->lockTabs(1);
|
||||
|
||||
// Add an icon for the nearby chat floater
|
||||
LLIconCtrl::Params icon_params;
|
||||
icon_params.image = LLUI::getUIImage("Command_Chat_Icon");
|
||||
icon = LLUICtrlFactory::instance().create<LLIconCtrl>(icon_params);
|
||||
}
|
||||
else if (gAgent.isInGroup(session_id, TRUE))
|
||||
// [/SL:KB]
|
||||
// if(gAgent.isInGroup(session_id, TRUE))
|
||||
{
|
||||
LLGroupIconCtrl::Params icon_params;
|
||||
icon_params.group_id = session_id;
|
||||
icon = LLUICtrlFactory::instance().create<LLGroupIconCtrl>(icon_params);
|
||||
|
||||
mSessions[session_id] = floaterp;
|
||||
floaterp->mCloseSignal.connect(boost::bind(&FSFloaterIMContainer::onCloseFloater, this, session_id));
|
||||
}
|
||||
else
|
||||
{
|
||||
LLUUID avatar_id = LLIMModel::getInstance()->getOtherParticipantID(session_id);
|
||||
|
||||
LLAvatarIconCtrl::Params icon_params;
|
||||
icon_params.avatar_id = avatar_id;
|
||||
icon = LLUICtrlFactory::instance().create<LLAvatarIconCtrl>(icon_params);
|
||||
|
||||
mSessions[session_id] = floaterp;
|
||||
floaterp->mCloseSignal.connect(boost::bind(&FSFloaterIMContainer::onCloseFloater, this, session_id));
|
||||
}
|
||||
mTabContainer->setTabImage(floaterp, icon);
|
||||
}
|
||||
|
||||
// [SL:KB] - Patch: Chat-NearbyChatBar | Checked: 2011-12-11 (Catznip-3.2.0d) | Added: Catznip-3.2.0d
|
||||
void FSFloaterIMContainer::removeFloater(LLFloater* floaterp)
|
||||
{
|
||||
// <FS:ND> old code from FS
|
||||
if (floaterp->getName() == "nearby_chat")
|
||||
{
|
||||
// only my friends floater now locked
|
||||
mTabContainer->lockTabs(mTabContainer->getNumLockedTabs() - 1);
|
||||
gSavedSettings.setBOOL("ChatHistoryTornOff", TRUE);
|
||||
floaterp->setCanClose(TRUE);
|
||||
}
|
||||
else if (floaterp->getName() == "imcontacts")
|
||||
{
|
||||
// only chat floater now locked
|
||||
mTabContainer->lockTabs(mTabContainer->getNumLockedTabs() - 1);
|
||||
gSavedSettings.setBOOL("ContactsTornOff", TRUE);
|
||||
floaterp->setCanClose(TRUE);
|
||||
}
|
||||
// </FS:ND>
|
||||
|
||||
|
||||
LLUUID idSession = floaterp->getKey();
|
||||
if (idSession.isNull())
|
||||
{
|
||||
mTabContainer->unlockTabs();
|
||||
}
|
||||
LLMultiFloater::removeFloater(floaterp);
|
||||
}
|
||||
// [/SL:KB]
|
||||
|
||||
void FSFloaterIMContainer::onCloseFloater(LLUUID& id)
|
||||
{
|
||||
mSessions.erase(id);
|
||||
setFocus(TRUE);
|
||||
}
|
||||
|
||||
void FSFloaterIMContainer::onNewMessageReceived(const LLSD& data)
|
||||
{
|
||||
LLUUID session_id = data["session_id"].asUUID();
|
||||
LLFloater* floaterp = get_ptr_in_map(mSessions, session_id);
|
||||
LLFloater* current_floater = LLMultiFloater::getActiveFloater();
|
||||
|
||||
// KC: Don't flash tab on friend status changes per setting
|
||||
if (floaterp && current_floater && floaterp != current_floater
|
||||
&& (gSavedSettings.getBOOL("FSIMChatFlashOnFriendStatusChange") || data["from_id"].asUUID() != LLUUID::null))
|
||||
{
|
||||
if(LLMultiFloater::isFloaterFlashing(floaterp))
|
||||
LLMultiFloater::setFloaterFlashing(floaterp, FALSE);
|
||||
LLMultiFloater::setFloaterFlashing(floaterp, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
FSFloaterIMContainer* FSFloaterIMContainer::findInstance()
|
||||
{
|
||||
return LLFloaterReg::findTypedInstance<FSFloaterIMContainer>("fs_im_container");
|
||||
}
|
||||
|
||||
FSFloaterIMContainer* FSFloaterIMContainer::getInstance()
|
||||
{
|
||||
return LLFloaterReg::getTypedInstance<FSFloaterIMContainer>("fs_im_container");
|
||||
}
|
||||
|
||||
void FSFloaterIMContainer::setMinimized(BOOL b)
|
||||
{
|
||||
if (isMinimized() == b) return;
|
||||
|
||||
LLMultiFloater::setMinimized(b);
|
||||
// Hide minimized floater (see EXT-5315)
|
||||
setVisible(!b);
|
||||
|
||||
if (isMinimized()) return;
|
||||
|
||||
if (getActiveFloater())
|
||||
{
|
||||
getActiveFloater()->setVisible(TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
/**
|
||||
* @file fsfloaterimcontainer.h
|
||||
* @brief Multifloater containing active IM sessions in separate tab container tabs
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&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$
|
||||
*/
|
||||
|
||||
// Original file: llimfloatercontainer.h
|
||||
|
||||
|
||||
#ifndef FS_FLOATERIMCONTAINER_H
|
||||
#define FS_FLOATERIMCONTAINER_H
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
#include "llfloater.h"
|
||||
#include "llmultifloater.h"
|
||||
#include "llavatarpropertiesprocessor.h"
|
||||
#include "llgroupmgr.h"
|
||||
|
||||
class LLTabContainer;
|
||||
|
||||
class FSFloaterIMContainer : public LLMultiFloater
|
||||
{
|
||||
public:
|
||||
FSFloaterIMContainer(const LLSD& seed);
|
||||
virtual ~FSFloaterIMContainer();
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
void onCloseFloater(LLUUID& id);
|
||||
|
||||
/*virtual*/ void addFloater(LLFloater* floaterp,
|
||||
BOOL select_added_floater,
|
||||
LLTabContainer::eInsertionPoint insertion_point = LLTabContainer::END);
|
||||
// [SL:KB] - Patch: Chat-NearbyChatBar | Checked: 2011-12-11 (Catznip-3.2.0d) | Added: Catznip-3.2.0d
|
||||
/*virtual*/ void removeFloater(LLFloater* floaterp);
|
||||
// [/SL:KB]
|
||||
|
||||
static LLFloater* getCurrentVoiceFloater();
|
||||
|
||||
static FSFloaterIMContainer* findInstance();
|
||||
|
||||
static FSFloaterIMContainer* getInstance();
|
||||
|
||||
virtual void setMinimized(BOOL b);
|
||||
|
||||
void onNewMessageReceived(const LLSD& data); // public so nearbychat can call it directly. TODO: handle via callback. -AO
|
||||
|
||||
private:
|
||||
typedef std::map<LLUUID,LLFloater*> avatarID_panel_map_t;
|
||||
avatarID_panel_map_t mSessions;
|
||||
boost::signals2::connection mNewMessageConnection;
|
||||
};
|
||||
|
||||
#endif // FS_FLOATERIMCONTAINER_H
|
||||
|
|
@ -0,0 +1,651 @@
|
|||
/**
|
||||
* @file fsfloaternearbychat.cpp
|
||||
* @brief Nearby chat history scrolling panel implementation
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
* Copyright (C) 2012, Zi Ree @ Second Life
|
||||
*
|
||||
* 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$
|
||||
*/
|
||||
|
||||
// Original file: FSFloaterNearbyChat.cpp
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "fsfloaternearbychat.h"
|
||||
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llrootview.h"
|
||||
//#include "llchatitemscontainerctrl.h"
|
||||
#include "lliconctrl.h"
|
||||
#include "llspinctrl.h"
|
||||
#include "llfloatersidepanelcontainer.h"
|
||||
#include "llfocusmgr.h"
|
||||
#include "lllogchat.h"
|
||||
#include "llresizebar.h"
|
||||
#include "llresizehandle.h"
|
||||
#include "llmenugl.h"
|
||||
#include "llviewermenu.h"//for gMenuHolder
|
||||
|
||||
#include "llnearbychathandler.h"
|
||||
// #include "llnearbychatbar.h" // <FS:Zi> Remove floating chat bar
|
||||
#include "fsnearbychathub.h"
|
||||
#include "llchannelmanager.h"
|
||||
|
||||
#include "llagent.h" // gAgent
|
||||
#include "fschathistory.h"
|
||||
#include "llstylemap.h"
|
||||
|
||||
#include "llavatarnamecache.h"
|
||||
|
||||
#include "lldraghandle.h"
|
||||
|
||||
// #include "llnearbychatbar.h" // <FS:Zi> Remove floating chat bar
|
||||
#include "llfloaterreg.h"
|
||||
#include "lltrans.h"
|
||||
|
||||
// IM
|
||||
#include "llbutton.h"
|
||||
#include "lllayoutstack.h"
|
||||
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloatercontainer.h"
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
#include "fsfloaterimcontainer.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "lllineeditor.h"
|
||||
|
||||
//AO - includes for textentry
|
||||
#include "rlvhandler.h"
|
||||
#include "llcommandhandler.h"
|
||||
#include "llkeyboard.h"
|
||||
#include "llgesturemgr.h"
|
||||
#include "llmultigesture.h"
|
||||
|
||||
#include "llconsole.h"
|
||||
|
||||
// <FS:Zi> Moved nearby chat functionality here for now
|
||||
#include "chatbar_as_cmdline.h"
|
||||
#include "llanimationstates.h" // ANIM_AGENT_WHISPER, ANIM_AGENT_TALK, ANIM_AGENT_SHOUT
|
||||
#include "llviewerstats.h"
|
||||
// </FS:Zi>
|
||||
|
||||
static const S32 RESIZE_BAR_THICKNESS = 3;
|
||||
|
||||
// ## Zi // static LLRegisterPanelClassWrapper<LLNearbyChat> t_panel_nearby_chat("panel_nearby_chat");
|
||||
|
||||
FSFloaterNearbyChat::FSFloaterNearbyChat(const LLSD& key)
|
||||
: LLDockableFloater(NULL, false, false, key)
|
||||
,mChatHistory(NULL)
|
||||
,mInputEditor(NULL)
|
||||
// <FS:Ansariel> Optional muted chat history
|
||||
,mChatHistoryMuted(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
FSFloaterNearbyChat::~FSFloaterNearbyChat()
|
||||
{
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::updateFSUseNearbyChatConsole(const LLSD &data)
|
||||
{
|
||||
FSUseNearbyChatConsole = data.asBoolean();
|
||||
|
||||
if (FSUseNearbyChatConsole)
|
||||
{
|
||||
LLNotificationsUI::LLScreenChannelBase* chat_channel = LLNotificationsUI::LLChannelManager::getInstance()->findChannelByID(LLUUID(gSavedSettings.getString("NearByChatChannelUUID")));
|
||||
if(chat_channel)
|
||||
{
|
||||
chat_channel->removeToastsFromChannel();
|
||||
}
|
||||
gConsole->setVisible(!getVisible());
|
||||
}
|
||||
else
|
||||
{
|
||||
gConsole->setVisible(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BOOL FSFloaterNearbyChat::postBuild()
|
||||
{
|
||||
//menu
|
||||
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
|
||||
LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
|
||||
|
||||
enable_registrar.add("NearbyChat.Check", boost::bind(&FSFloaterNearbyChat::onNearbyChatCheckContextMenuItem, this, _2));
|
||||
registrar.add("NearbyChat.Action", boost::bind(&FSFloaterNearbyChat::onNearbyChatContextMenuItemClicked, this, _2));
|
||||
|
||||
|
||||
LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_nearby_chat.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
|
||||
if(menu)
|
||||
mPopupMenuHandle = menu->getHandle();
|
||||
|
||||
gSavedSettings.declareS32("nearbychat_showicons_and_names",2,"NearByChat header settings",true);
|
||||
|
||||
mInputEditor = getChild<LLLineEditor>("chat_box");
|
||||
|
||||
mInputEditor->setEnabled(TRUE);
|
||||
|
||||
gSavedSettings.getControl("FSNearbyChatbar")->getCommitSignal()->connect(boost::bind(&FSFloaterNearbyChat::onChatBarVisibilityChanged, this));
|
||||
gSavedSettings.getControl("FSShowChatChannel")->getCommitSignal()->connect(boost::bind(&FSFloaterNearbyChat::onChatChannelVisibilityChanged, this));
|
||||
|
||||
onChatBarVisibilityChanged();
|
||||
onChatChannelVisibilityChanged();
|
||||
|
||||
// extra icon controls -AO
|
||||
LLButton* transl = getChild<LLButton>("translate_btn");
|
||||
transl->setVisible(true);
|
||||
|
||||
childSetCommitCallback("chat_history_btn",onHistoryButtonClicked,this);
|
||||
|
||||
mChatHistory = getChild<FSChatHistory>("chat_history");
|
||||
|
||||
// <FS:Ansariel> Optional muted chat history
|
||||
mChatHistoryMuted = getChild<FSChatHistory>("chat_history_muted");
|
||||
|
||||
// <vertical tab docking> -AO
|
||||
if(isChatMultiTab())
|
||||
{
|
||||
LLButton* slide_left = getChild<LLButton>("slide_left_btn");
|
||||
slide_left->setVisible(false);
|
||||
LLButton* slide_right = getChild<LLButton>("slide_right_btn");
|
||||
slide_right->setVisible(false);
|
||||
|
||||
FSUseNearbyChatConsole = gSavedSettings.getBOOL("FSUseNearbyChatConsole");
|
||||
gSavedSettings.getControl("FSUseNearbyChatConsole")->getSignal()->connect(boost::bind(&FSFloaterNearbyChat::updateFSUseNearbyChatConsole, this, _2));
|
||||
|
||||
return LLDockableFloater::postBuild();
|
||||
}
|
||||
|
||||
if(!LLDockableFloater::postBuild())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string appendTime()
|
||||
{
|
||||
time_t utc_time;
|
||||
utc_time = time_corrected();
|
||||
std::string timeStr ="["+ LLTrans::getString("TimeHour")+"]:["
|
||||
+LLTrans::getString("TimeMin")+"]";
|
||||
if (gSavedSettings.getBOOL("FSSecondsinChatTimestamps"))
|
||||
{
|
||||
timeStr += ":["
|
||||
+LLTrans::getString("TimeSec")+"]";
|
||||
}
|
||||
|
||||
LLSD substitution;
|
||||
|
||||
substitution["datetime"] = (S32) utc_time;
|
||||
LLStringUtil::format (timeStr, substitution);
|
||||
|
||||
return timeStr;
|
||||
}
|
||||
|
||||
|
||||
void FSFloaterNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD &args)
|
||||
{
|
||||
LLChat& tmp_chat = const_cast<LLChat&>(chat);
|
||||
bool use_plain_text_chat_history = gSavedSettings.getBOOL("PlainTextChatHistory");
|
||||
bool hide_timestamps_nearby_chat = gSavedSettings.getBOOL("FSHideTimestampsNearbyChat");
|
||||
// [FIRE-1641 : SJ]: Option to hide timestamps in nearby chat - only add Timestamp when hide_timestamps_nearby_chat is not TRUE
|
||||
if (!hide_timestamps_nearby_chat)
|
||||
{
|
||||
if(tmp_chat.mTimeStr.empty())
|
||||
tmp_chat.mTimeStr = appendTime();
|
||||
}
|
||||
|
||||
|
||||
// <FS:Ansariel> Optional muted chat history
|
||||
tmp_chat.mFromName = chat.mFromName;
|
||||
LLSD chat_args = args;
|
||||
chat_args["use_plain_text_chat_history"] = use_plain_text_chat_history;
|
||||
chat_args["hide_timestamps_nearby_chat"] = hide_timestamps_nearby_chat;
|
||||
mChatHistoryMuted->appendMessage(chat, chat_args);
|
||||
// </FS:Ansariel> Optional muted chat history
|
||||
if (!chat.mMuted)
|
||||
{
|
||||
// <FS:Ansariel> Optional muted chat history
|
||||
//tmp_chat.mFromName = chat.mFromName;
|
||||
//LLSD chat_args = args;
|
||||
//chat_args["use_plain_text_chat_history"] = use_plain_text_chat_history;
|
||||
//chat_args["hide_timestamps_nearby_chat"] = hide_timestamps_nearby_chat;
|
||||
// <(FS:Ansariel> Optional muted chat history
|
||||
mChatHistory->appendMessage(chat, chat_args);
|
||||
}
|
||||
|
||||
if(archive)
|
||||
{
|
||||
mMessageArchive.push_back(chat);
|
||||
if(mMessageArchive.size()>200)
|
||||
mMessageArchive.erase(mMessageArchive.begin());
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Optional muted chat history
|
||||
//if (args["do_not_log"].asBoolean())
|
||||
if (args["do_not_log"].asBoolean() || chat.mMuted)
|
||||
// </FS:Ansariel> Optional muted chat history
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// AO: IF tab mode active, flash our tab
|
||||
if(isChatMultiTab())
|
||||
{
|
||||
LLMultiFloater* hostp = getHost();
|
||||
// KC: Don't flash tab on system messages
|
||||
if (!isInVisibleChain() && hostp
|
||||
&& (chat.mSourceType == CHAT_SOURCE_AGENT || chat.mSourceType == CHAT_SOURCE_OBJECT))
|
||||
{
|
||||
hostp->setFloaterFlashing(this, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
if (gSavedPerAccountSettings.getBOOL("LogNearbyChat"))
|
||||
{
|
||||
std::string from_name = chat.mFromName;
|
||||
|
||||
if (chat.mSourceType == CHAT_SOURCE_AGENT)
|
||||
{
|
||||
// if the chat is coming from an agent, log the complete name
|
||||
LLAvatarName av_name;
|
||||
LLAvatarNameCache::get(chat.mFromID, &av_name);
|
||||
|
||||
if (!av_name.mIsDisplayNameDefault)
|
||||
{
|
||||
from_name = av_name.getCompleteName();
|
||||
}
|
||||
|
||||
// Ansariel: Handle IMs in nearby chat
|
||||
// FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
//if (gSavedSettings.getBOOL("FSShowIMInChatHistory") && chat.mChatType == CHAT_TYPE_IM)
|
||||
if (gSavedSettings.getBOOL("FSShowIMInChatHistory") && (chat.mChatType == CHAT_TYPE_IM || chat.mChatType == CHAT_TYPE_IM_GROUP))
|
||||
{
|
||||
if (gSavedSettings.getBOOL("FSLogIMInChatHistory"))
|
||||
{
|
||||
//from_name = "IM: " + from_name;
|
||||
if(chat.mChatType == CHAT_TYPE_IM_GROUP && chat.mFromNameGroup != "")
|
||||
{
|
||||
from_name = "IM: " + chat.mFromNameGroup + from_name;
|
||||
}
|
||||
else
|
||||
{
|
||||
from_name = "IM: " + from_name;
|
||||
}
|
||||
// FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
}
|
||||
else return;
|
||||
}
|
||||
}
|
||||
|
||||
LLLogChat::saveHistory("chat", from_name, chat.mFromID, chat.mText);
|
||||
}
|
||||
}
|
||||
|
||||
// virtual
|
||||
BOOL FSFloaterNearbyChat::focusFirstItem(BOOL prefer_text_fields, BOOL focus_flash)
|
||||
{
|
||||
mInputEditor->setFocus(TRUE);
|
||||
onTabInto();
|
||||
if(focus_flash)
|
||||
{
|
||||
gFocusMgr.triggerFocusFlash();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::onNearbySpeakers()
|
||||
{
|
||||
LLSD param;
|
||||
param["people_panel_tab_name"] = "nearby_panel";
|
||||
LLFloaterSidePanelContainer::showPanel("people", "panel_people", param);
|
||||
}
|
||||
|
||||
// static
|
||||
void FSFloaterNearbyChat::onHistoryButtonClicked(LLUICtrl* ctrl, void* userdata)
|
||||
{
|
||||
gViewerWindow->getWindow()->openFile(LLLogChat::makeLogFileName("chat"));
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::onNearbyChatContextMenuItemClicked(const LLSD& userdata)
|
||||
{
|
||||
}
|
||||
|
||||
bool FSFloaterNearbyChat::onNearbyChatCheckContextMenuItem(const LLSD& userdata)
|
||||
{
|
||||
std::string str = userdata.asString();
|
||||
if(str == "nearby_people")
|
||||
onNearbySpeakers();
|
||||
return false;
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::onChatBarVisibilityChanged()
|
||||
{
|
||||
getChild<LLLayoutPanel>("chat_bar_visibility_panel")->setVisible(gSavedSettings.getBOOL("FSNearbyChatbar"));
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::onChatChannelVisibilityChanged()
|
||||
{
|
||||
getChild<LLLayoutPanel>("channel_spinner_visibility_panel")->setVisible(gSavedSettings.getBOOL("FSShowChatChannel"));
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::openFloater(const LLSD& key)
|
||||
{
|
||||
// We override this to put nearbychat in the IM floater. -AO
|
||||
if(isChatMultiTab())
|
||||
{
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* floater_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// only show the floater container if we are actually attached -Zi
|
||||
if (floater_container && !gSavedSettings.getBOOL("ChatHistoryTornOff"))
|
||||
{
|
||||
floater_container->showFloater(this, LLTabContainer::START);
|
||||
}
|
||||
setVisible(TRUE);
|
||||
LLFloater::openFloater(key);
|
||||
}
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::removeScreenChat()
|
||||
{
|
||||
LLNotificationsUI::LLScreenChannelBase* chat_channel = LLNotificationsUI::LLChannelManager::getInstance()->findChannelByID(LLUUID(gSavedSettings.getString("NearByChatChannelUUID")));
|
||||
if(chat_channel)
|
||||
{
|
||||
chat_channel->removeToastsFromChannel();
|
||||
}
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::setVisible(BOOL visible)
|
||||
{
|
||||
if(visible)
|
||||
{
|
||||
removeScreenChat();
|
||||
}
|
||||
LLDockableFloater::setVisible(visible);
|
||||
|
||||
// <Ansariel> Support for chat console
|
||||
static LLCachedControl<bool> chatHistoryTornOff(gSavedSettings, "ChatHistoryTornOff");
|
||||
if (FSUseNearbyChatConsole)
|
||||
{
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* floater_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (floater_container && !chatHistoryTornOff && !floater_container->getVisible())
|
||||
{
|
||||
// In case the nearby chat is docked into the IM floater and the
|
||||
// IM floater is invisible, always show the console.
|
||||
gConsole->setVisible(TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
// In case the nearby chat is undocked OR docked and the IM floater
|
||||
// is visible, show console only if nearby chat is not visible.
|
||||
gConsole->setVisible(!getVisible());
|
||||
}
|
||||
}
|
||||
// </Ansariel> Support for chat console
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::onFocusReceived()
|
||||
{
|
||||
// <FS:Ansariel> Give focus to input textbox
|
||||
mInputEditor->setFocus(TRUE);
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::onOpen(const LLSD& key )
|
||||
{
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* floater_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (floater_container)
|
||||
{
|
||||
if (gSavedSettings.getBOOL("ChatHistoryTornOff"))
|
||||
{
|
||||
// first set the tear-off host to this floater
|
||||
setHost(floater_container);
|
||||
// clear the tear-off host right after, the "last host used" will still stick
|
||||
setHost(NULL);
|
||||
// reparent the floater to the main view
|
||||
gFloaterView->addChild(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
floater_container->addFloater(this, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
// We override this to put nearbychat in the IM floater. -AO
|
||||
if(isChatMultiTab() && ! isVisible(this))
|
||||
{
|
||||
// only show the floater container if we are actually attached -Zi
|
||||
if (floater_container && !gSavedSettings.getBOOL("ChatHistoryTornOff"))
|
||||
{
|
||||
// make sure to show our parent floater, too
|
||||
floater_container->setVisible(TRUE);
|
||||
floater_container->showFloater(this, LLTabContainer::START);
|
||||
}
|
||||
setVisible(TRUE);
|
||||
}
|
||||
|
||||
LLDockableFloater::onOpen(key);
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::setRect (const LLRect &rect)
|
||||
{
|
||||
LLDockableFloater::setRect(rect);
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::getAllowedRect(LLRect& rect)
|
||||
{
|
||||
rect = gViewerWindow->getWorldViewRectScaled();
|
||||
}
|
||||
|
||||
// exported here for "clrchat" command line -Zi
|
||||
void FSFloaterNearbyChat::clearChatHistory()
|
||||
{
|
||||
mChatHistory->clear();
|
||||
// <FS:Ansariel> Optional muted chat history
|
||||
mChatHistoryMuted->clear();
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::updateChatHistoryStyle()
|
||||
{
|
||||
clearChatHistory();
|
||||
|
||||
LLSD do_not_log;
|
||||
do_not_log["do_not_log"] = true;
|
||||
for(std::vector<LLChat>::iterator it = mMessageArchive.begin();it!=mMessageArchive.end();++it)
|
||||
{
|
||||
// Update the messages without re-writing them to a log file.
|
||||
addMessage(*it,false, do_not_log);
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
void FSFloaterNearbyChat::processChatHistoryStyleUpdate(const LLSD& newvalue)
|
||||
{
|
||||
FSFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<FSFloaterNearbyChat>("fs_nearby_chat", LLSD());
|
||||
if(nearby_chat)
|
||||
nearby_chat->updateChatHistoryStyle();
|
||||
}
|
||||
|
||||
bool isWordsName(const std::string& name)
|
||||
{
|
||||
// checking to see if it's display name plus username in parentheses
|
||||
S32 open_paren = name.find(" (", 0);
|
||||
S32 close_paren = name.find(')', 0);
|
||||
|
||||
if (open_paren != std::string::npos &&
|
||||
close_paren == name.length()-1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
//checking for a single space
|
||||
S32 pos = name.find(' ', 0);
|
||||
return std::string::npos != pos && name.rfind(' ', name.length()) == pos && 0 != pos && name.length()-1 != pos;
|
||||
}
|
||||
}
|
||||
|
||||
void FSFloaterNearbyChat::loadHistory()
|
||||
{
|
||||
LLSD do_not_log;
|
||||
do_not_log["do_not_log"] = true;
|
||||
|
||||
std::list<LLSD> history;
|
||||
LLLogChat::loadAllHistory("chat", history);
|
||||
|
||||
std::list<LLSD>::const_iterator it = history.begin();
|
||||
// FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
typedef enum e_im_type
|
||||
{
|
||||
IM_TYPE_NONE = 0,
|
||||
IM_TYPE_NORMAL,
|
||||
IM_TYPE_GROUP
|
||||
} EIMType;
|
||||
// FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
while (it != history.end())
|
||||
{
|
||||
EIMType im_type = IM_TYPE_NONE; // FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
const LLSD& msg = *it;
|
||||
|
||||
std::string from = msg[IM_FROM];
|
||||
std::string fromGroup = ""; // FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
LLUUID from_id;
|
||||
if (msg[IM_FROM_ID].isDefined())
|
||||
{
|
||||
from_id = msg[IM_FROM_ID].asUUID();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Ansariel: Strip IM prefix so we can properly
|
||||
// retrieve the UUID in case we got a
|
||||
// saved IM in nearby chat history.
|
||||
std::string im_prefix = "IM: ";
|
||||
size_t im_prefix_found = from.find(im_prefix);
|
||||
if (im_prefix_found != std::string::npos)
|
||||
{
|
||||
from = from.substr(im_prefix.length());
|
||||
// FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
//im_type = true;
|
||||
size_t group_im_prefix_start = from.find("[");
|
||||
size_t group_im_prefix_end = from.find("] ");
|
||||
if((group_im_prefix_start != std::string::npos) && (group_im_prefix_end != std::string::npos))
|
||||
{
|
||||
fromGroup = from.substr(group_im_prefix_start,group_im_prefix_end+2);
|
||||
from = from.substr(fromGroup.length());
|
||||
im_type = IM_TYPE_GROUP;
|
||||
}
|
||||
else
|
||||
{
|
||||
im_type = IM_TYPE_NORMAL;
|
||||
}
|
||||
// FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
}
|
||||
|
||||
std::string legacy_name = gCacheName->buildLegacyName(from);
|
||||
gCacheName->getUUID(legacy_name, from_id);
|
||||
}
|
||||
|
||||
LLChat chat;
|
||||
chat.mFromName = from;
|
||||
chat.mFromID = from_id;
|
||||
chat.mText = msg[IM_TEXT].asString();
|
||||
chat.mTimeStr = msg[IM_TIME].asString();
|
||||
chat.mChatStyle = CHAT_STYLE_HISTORY;
|
||||
|
||||
// FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
//if (im_type) chat.mChatType = CHAT_TYPE_IM;
|
||||
if (im_type == IM_TYPE_NORMAL)
|
||||
{
|
||||
chat.mChatType = CHAT_TYPE_IM;
|
||||
}
|
||||
else if(im_type == IM_TYPE_GROUP)
|
||||
{
|
||||
chat.mChatType = CHAT_TYPE_IM_GROUP;
|
||||
chat.mFromNameGroup = fromGroup;
|
||||
}
|
||||
// FS:LO FIRE-5230 - Chat Console Improvement: Replacing the "IM" in front of group chat messages with the actual group name
|
||||
|
||||
chat.mSourceType = CHAT_SOURCE_AGENT;
|
||||
if (from_id.isNull() && SYSTEM_FROM == from)
|
||||
{
|
||||
chat.mSourceType = CHAT_SOURCE_SYSTEM;
|
||||
|
||||
}
|
||||
else if (from_id.isNull())
|
||||
{
|
||||
chat.mSourceType = isWordsName(from) ? CHAT_SOURCE_UNKNOWN : CHAT_SOURCE_OBJECT;
|
||||
}
|
||||
|
||||
addMessage(chat, true, do_not_log);
|
||||
|
||||
it++;
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
FSFloaterNearbyChat* FSFloaterNearbyChat::getInstance()
|
||||
{
|
||||
return LLFloaterReg::getTypedInstance<FSFloaterNearbyChat>("fs_nearby_chat", LLSD());
|
||||
}
|
||||
|
||||
bool FSFloaterNearbyChat::isChatMultiTab()
|
||||
{
|
||||
// Restart is required in order to change chat window type.
|
||||
static bool is_single_window = gSavedSettings.getS32("ChatWindow") == 1;
|
||||
return is_single_window;
|
||||
}
|
||||
|
||||
BOOL FSFloaterNearbyChat::getVisible()
|
||||
{
|
||||
if(isChatMultiTab())
|
||||
{
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* im_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* im_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
// Treat inactive floater as invisible.
|
||||
bool is_active = im_container->getActiveFloater() == this;
|
||||
|
||||
//torn off floater is always inactive
|
||||
if (!is_active && getHost() != im_container)
|
||||
{
|
||||
return LLDockableFloater::getVisible();
|
||||
}
|
||||
|
||||
// getVisible() returns TRUE when Tabbed IM window is minimized.
|
||||
return is_active && !im_container->isMinimized() && im_container->getVisible();
|
||||
}
|
||||
else
|
||||
{
|
||||
return LLDockableFloater::getVisible();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
/**
|
||||
* @file fsfloaternearbychat.h
|
||||
* @brief Nearby chat history scrolling panel implementation
|
||||
*
|
||||
* $LicenseInfo:firstyear=2004&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2010, Linden Research, Inc.
|
||||
* Copyright (C) 2012, Zi Ree @ Second Life
|
||||
*
|
||||
* 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$
|
||||
*/
|
||||
|
||||
// Original file: llfloaternearbychat.h
|
||||
|
||||
#ifndef FS_FLOATERNEARBYCHAT_H
|
||||
#define FS_FLOATERNEARBYCHAT_H
|
||||
|
||||
#include "lldockablefloater.h"
|
||||
#include "llscrollbar.h"
|
||||
#include "llviewerchat.h"
|
||||
|
||||
class LLResizeBar;
|
||||
class FSChatHistory;
|
||||
// <FS:Zi> Nearby chat bar class
|
||||
// class LLLineEditor;
|
||||
#include "lllineeditor.h"
|
||||
#include "llsingleton.h"
|
||||
// </FS:Zi>
|
||||
|
||||
class FSFloaterNearbyChat: public LLDockableFloater
|
||||
{
|
||||
public:
|
||||
FSFloaterNearbyChat(const LLSD& key);
|
||||
~FSFloaterNearbyChat();
|
||||
|
||||
BOOL postBuild ();
|
||||
|
||||
/** @param archive true - to save a message to the chat history log */
|
||||
void addMessage (const LLChat& message,bool archive = true, const LLSD &args = LLSD());
|
||||
void onNearbyChatContextMenuItemClicked(const LLSD& userdata);
|
||||
bool onNearbyChatCheckContextMenuItem(const LLSD& userdata);
|
||||
|
||||
void onChatBarVisibilityChanged();
|
||||
void onChatChannelVisibilityChanged();
|
||||
|
||||
// This doesn't seem to apply anymore? It makes the chat and spin box colors
|
||||
// appear wrong when focused and unfocused, so disable this. -Zi
|
||||
#if 0
|
||||
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
|
||||
virtual void draw();
|
||||
|
||||
// focus overrides
|
||||
/*virtual*/ void onFocusLost();
|
||||
#endif
|
||||
/*virtual*/ void onFocusReceived();
|
||||
/*virtual*/ void onOpen (const LLSD& key);
|
||||
|
||||
/*virtual*/ void setVisible(BOOL visible);
|
||||
void openFloater(const LLSD& key);
|
||||
|
||||
virtual void setRect (const LLRect &rect);
|
||||
|
||||
void clearChatHistory();
|
||||
virtual void updateChatHistoryStyle();
|
||||
|
||||
static void processChatHistoryStyleUpdate(const LLSD& newvalue);
|
||||
|
||||
void loadHistory();
|
||||
|
||||
static FSFloaterNearbyChat* getInstance();
|
||||
|
||||
void removeScreenChat();
|
||||
|
||||
static bool isChatMultiTab();
|
||||
|
||||
BOOL getVisible();
|
||||
|
||||
static void onHistoryButtonClicked(LLUICtrl* ctrl, void* userdata);
|
||||
|
||||
// overridden to fix the multitab focus bug -Zi
|
||||
BOOL focusFirstItem(BOOL prefer_text_fields = FALSE, BOOL focus_flash = TRUE );
|
||||
|
||||
void updateFSUseNearbyChatConsole(const LLSD &data);
|
||||
|
||||
private:
|
||||
void getAllowedRect (LLRect& rect);
|
||||
|
||||
void onNearbySpeakers ();
|
||||
|
||||
private:
|
||||
LLHandle<LLView> mPopupMenuHandle;
|
||||
FSChatHistory* mChatHistory;
|
||||
// <FS:Ansariel> Optional muted chat history
|
||||
FSChatHistory* mChatHistoryMuted;
|
||||
|
||||
std::vector<LLChat> mMessageArchive;
|
||||
LLLineEditor* mInputEditor;
|
||||
|
||||
BOOL FSUseNearbyChatConsole;
|
||||
};
|
||||
|
||||
#endif // FS_FLOATERNEARBYCHAT_H
|
||||
|
|
@ -24,7 +24,6 @@
|
|||
#include "fsmoneytracker.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llchathistory.h"
|
||||
#include "lllineeditor.h"
|
||||
#include "llnotificationmanager.h"
|
||||
#include "lltrans.h"
|
||||
|
|
@ -44,7 +43,10 @@ FSMoneyTracker::~FSMoneyTracker()
|
|||
|
||||
BOOL FSMoneyTracker::postBuild()
|
||||
{
|
||||
mTransactionHistory = getChild<LLChatHistory>("money_chat_history");
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//mTransactionHistory = getChild<LLChatHistory>("money_chat_history");
|
||||
mTransactionHistory = getChild<FSChatHistory>("money_chat_history");
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
mTransactionHistory->clear();
|
||||
|
||||
// Button Actions
|
||||
|
|
|
|||
|
|
@ -25,7 +25,10 @@
|
|||
|
||||
#include "llfloater.h"
|
||||
#include "llsingleton.h"
|
||||
#include "llchathistory.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llchathistory.h"
|
||||
#include "fschathistory.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "lllineeditor.h"
|
||||
#include "llchat.h"
|
||||
#include <string.h>
|
||||
|
|
@ -45,7 +48,10 @@ public:
|
|||
private:
|
||||
void clear();
|
||||
std::string appendTime();
|
||||
LLChatHistory* mTransactionHistory;
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLChatHistory* mTransactionHistory;
|
||||
FSChatHistory* mTransactionHistory;
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
};
|
||||
|
||||
#endif // FS_MONEYTRACKER_H
|
||||
|
|
|
|||
|
|
@ -0,0 +1,116 @@
|
|||
/**
|
||||
* @file fsnearbychatbarlistener.cpp
|
||||
* @author Dave Simmons
|
||||
* @date 2011-03-15
|
||||
* @brief Implementation for FSNearbyChatBarListener.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2011&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2011, 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$
|
||||
*/
|
||||
|
||||
// Original file: llnearbychatbarlistener.cpp
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "fsnearbychatbarlistener.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychatbar.h"
|
||||
#include "fsnearbychathub.h"
|
||||
// </FS:Zi>
|
||||
|
||||
#include "llagent.h"
|
||||
#include "llchat.h"
|
||||
#include "llviewercontrol.h"
|
||||
|
||||
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBarListener::LLNearbyChatBarListener(LLNearbyChatBar & chatbar)
|
||||
// : LLEventAPI("LLChatBar",
|
||||
// "LLChatBar listener to (e.g.) sendChat, etc."),
|
||||
// mChatbar(chatbar)
|
||||
FSNearbyChatBarListener::FSNearbyChatBarListener()
|
||||
: LLEventAPI("LLChatBar",
|
||||
"LLChatBar listener to (e.g.) sendChat, etc.")
|
||||
// </FS:Zi>
|
||||
{
|
||||
add("sendChat",
|
||||
"Send chat to the simulator:\n"
|
||||
"[\"message\"] chat message text [required]\n"
|
||||
"[\"channel\"] chat channel number [default = 0]\n"
|
||||
"[\"type\"] chat type \"whisper\", \"normal\", \"shout\" [default = \"normal\"]",
|
||||
&FSNearbyChatBarListener::sendChat);
|
||||
}
|
||||
|
||||
|
||||
// "sendChat" command
|
||||
void FSNearbyChatBarListener::sendChat(LLSD const & chat_data) const
|
||||
{
|
||||
// Extract the data
|
||||
std::string chat_text = chat_data["message"].asString();
|
||||
|
||||
S32 channel = 0;
|
||||
if (chat_data.has("channel"))
|
||||
{
|
||||
channel = chat_data["channel"].asInteger();
|
||||
if (channel < 0 || channel >= CHAT_CHANNEL_DEBUG)
|
||||
{ // Use 0 up to (but not including) CHAT_CHANNEL_DEBUG
|
||||
channel = 0;
|
||||
}
|
||||
}
|
||||
|
||||
EChatType type_o_chat = CHAT_TYPE_NORMAL;
|
||||
if (chat_data.has("type"))
|
||||
{
|
||||
std::string type_string = chat_data["type"].asString();
|
||||
if (type_string == "whisper")
|
||||
{
|
||||
type_o_chat = CHAT_TYPE_WHISPER;
|
||||
}
|
||||
else if (type_string == "shout")
|
||||
{
|
||||
type_o_chat = CHAT_TYPE_SHOUT;
|
||||
}
|
||||
}
|
||||
|
||||
// Have to prepend /42 style channel numbers
|
||||
std::string chat_to_send;
|
||||
if (channel == 0)
|
||||
{
|
||||
chat_to_send = chat_text;
|
||||
}
|
||||
else
|
||||
{
|
||||
chat_to_send += "/";
|
||||
chat_to_send += chat_data["channel"].asString();
|
||||
chat_to_send += " ";
|
||||
chat_to_send += chat_text;
|
||||
}
|
||||
|
||||
// Send it as if it was typed in
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// mChatbar.sendChatFromViewer(chat_to_send, type_o_chat, (BOOL)(channel == 0));
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLNearbyChat::instance().sendChatFromViewer(chat_to_send, type_o_chat, ((BOOL)(channel == 0)) && gSavedSettings.getBOOL("FSPlayChatAnimation"));
|
||||
FSNearbyChat::instance().sendChatFromViewer(chat_to_send, type_o_chat, ((BOOL)(channel == 0)) && gSavedSettings.getBOOL("FSPlayChatAnimation"));
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// <FS:Zi>
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
* @file fsnearbychatbarlistener.h
|
||||
* @author Dave Simmons
|
||||
* @date 2011-03-15
|
||||
* @brief Class definition for FSNearbyChatBarListener.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2011&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2011, 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$
|
||||
*/
|
||||
|
||||
// Original file: llnearbychatbarlistener.h
|
||||
|
||||
|
||||
#ifndef FS_NEARBYCHATBARLISTENER_H
|
||||
#define FS_NEARBYCHATBARLISTENER_H
|
||||
|
||||
#include "lleventapi.h"
|
||||
|
||||
class LLSD;
|
||||
// class LLNearbyChatBar; // <FS:Zi> Remove floating chat bar
|
||||
|
||||
class FSNearbyChatBarListener : public LLEventAPI
|
||||
{
|
||||
public:
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBarListener(LLNearbyChatBar & chatbar);
|
||||
FSNearbyChatBarListener();
|
||||
// </FS:Zi>
|
||||
|
||||
private:
|
||||
void sendChat(LLSD const & chat_data) const;
|
||||
|
||||
// LLNearbyChatBar & mChatbar;
|
||||
};
|
||||
|
||||
#endif // FS_NEARBYCHATBARLISTENER_H
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* @file llnearbychatcontrol.cpp
|
||||
* @file fsnearbychatcontrol.cpp
|
||||
* @brief Nearby chat input control implementation
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
|
||||
|
|
@ -27,9 +27,12 @@
|
|||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llnearbychatcontrol.h"
|
||||
#include "llnearbychathub.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
#include "fsnearbychatcontrol.h"
|
||||
#include "fsnearbychathub.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// #include "llviewercontrol.h"
|
||||
// #include "llviewerwindow.h"
|
||||
// #include "llrootview.h"
|
||||
|
|
@ -86,7 +89,7 @@
|
|||
// #include "llviewerstats.h"
|
||||
// </FS:Zi>
|
||||
|
||||
static LLDefaultChildRegistry::Register<LLNearbyChatControl> r("nearby_chat_control");
|
||||
static LLDefaultChildRegistry::Register<FSNearbyChatControl> r("fs_nearby_chat_control");
|
||||
|
||||
struct LLChatTypeTrigger {
|
||||
std::string name;
|
||||
|
|
@ -98,12 +101,12 @@ static LLChatTypeTrigger sChatTypeTriggers[] = {
|
|||
{ "/shout" , CHAT_TYPE_SHOUT}
|
||||
};
|
||||
|
||||
LLNearbyChatControl::LLNearbyChatControl(const LLNearbyChatControl::Params& p) :
|
||||
FSNearbyChatControl::FSNearbyChatControl(const FSNearbyChatControl::Params& p) :
|
||||
LLLineEditor(p)
|
||||
{
|
||||
setAutoreplaceCallback(boost::bind(&LLAutoReplace::autoreplaceCallback, LLAutoReplace::getInstance(), _1, _2));
|
||||
setKeystrokeCallback(onKeystroke,this);
|
||||
LLNearbyChat::instance().registerChatBar(this);
|
||||
FSNearbyChat::instance().registerChatBar(this);
|
||||
|
||||
setEnableLineHistory(TRUE);
|
||||
setIgnoreArrowKeys( FALSE );
|
||||
|
|
@ -115,14 +118,14 @@ LLNearbyChatControl::LLNearbyChatControl(const LLNearbyChatControl::Params& p) :
|
|||
setFont(LLViewerChat::getChatFont());
|
||||
|
||||
// Register for font change notifications
|
||||
LLViewerChat::setFontChangedCallback(boost::bind(&LLNearbyChatControl::setFont, this, _1));
|
||||
LLViewerChat::setFontChangedCallback(boost::bind(&FSNearbyChatControl::setFont, this, _1));
|
||||
}
|
||||
|
||||
LLNearbyChatControl::~LLNearbyChatControl()
|
||||
FSNearbyChatControl::~FSNearbyChatControl()
|
||||
{
|
||||
}
|
||||
|
||||
void LLNearbyChatControl::onKeystroke(LLLineEditor* caller,void* userdata)
|
||||
void FSNearbyChatControl::onKeystroke(LLLineEditor* caller,void* userdata)
|
||||
{
|
||||
LLWString raw_text = caller->getWText();
|
||||
|
||||
|
|
@ -142,7 +145,10 @@ void LLNearbyChatControl::onKeystroke(LLLineEditor* caller,void* userdata)
|
|||
if (gSavedSettings.getBOOL("FSNearbyChatbar") &&
|
||||
gSavedSettings.getBOOL("FSShowChatChannel"))
|
||||
{
|
||||
channel = (S32)(LLFloaterNearbyChat::getInstance()->getChild<LLSpinCtrl>("ChatChannel")->get());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//channel = (S32)(LLFloaterNearbyChat::getInstance()->getChild<LLSpinCtrl>("ChatChannel")->get());
|
||||
channel = (S32)(FSFloaterNearbyChat::getInstance()->getChild<LLSpinCtrl>("ChatChannel")->get());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
// -Zi
|
||||
|
||||
|
|
@ -195,7 +201,7 @@ void LLNearbyChatControl::onKeystroke(LLLineEditor* caller,void* userdata)
|
|||
}
|
||||
}
|
||||
|
||||
BOOL LLNearbyChatControl::matchChatTypeTrigger(const std::string& in_str, std::string* out_str)
|
||||
BOOL FSNearbyChatControl::matchChatTypeTrigger(const std::string& in_str, std::string* out_str)
|
||||
{
|
||||
U32 in_len = in_str.length();
|
||||
S32 cnt = sizeof(sChatTypeTriggers) / sizeof(*sChatTypeTriggers);
|
||||
|
|
@ -219,25 +225,25 @@ BOOL LLNearbyChatControl::matchChatTypeTrigger(const std::string& in_str, std::s
|
|||
}
|
||||
|
||||
// send our focus status to the LLNearbyChat hub
|
||||
void LLNearbyChatControl::onFocusReceived()
|
||||
void FSNearbyChatControl::onFocusReceived()
|
||||
{
|
||||
LLNearbyChat::instance().setFocusedInputEditor(this,TRUE);
|
||||
FSNearbyChat::instance().setFocusedInputEditor(this,TRUE);
|
||||
LLLineEditor::onFocusReceived();
|
||||
}
|
||||
|
||||
void LLNearbyChatControl::onFocusLost()
|
||||
void FSNearbyChatControl::onFocusLost()
|
||||
{
|
||||
LLNearbyChat::instance().setFocusedInputEditor(this,FALSE);
|
||||
FSNearbyChat::instance().setFocusedInputEditor(this,FALSE);
|
||||
LLLineEditor::onFocusLost();
|
||||
}
|
||||
|
||||
void LLNearbyChatControl::setFocus(BOOL focus)
|
||||
void FSNearbyChatControl::setFocus(BOOL focus)
|
||||
{
|
||||
LLNearbyChat::instance().setFocusedInputEditor(this,focus);
|
||||
FSNearbyChat::instance().setFocusedInputEditor(this,focus);
|
||||
LLLineEditor::setFocus(focus);
|
||||
}
|
||||
|
||||
void LLNearbyChatControl::autohide()
|
||||
void FSNearbyChatControl::autohide()
|
||||
{
|
||||
if(getName()=="default_chat_bar")
|
||||
{
|
||||
|
|
@ -248,13 +254,13 @@ void LLNearbyChatControl::autohide()
|
|||
|
||||
if(gAgentCamera.cameraMouselook() || gSavedSettings.getBOOL("AutohideChatBar"))
|
||||
{
|
||||
LLNearbyChat::instance().showDefaultChatBar(FALSE);
|
||||
FSNearbyChat::instance().showDefaultChatBar(FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// handle ESC key here
|
||||
BOOL LLNearbyChatControl::handleKeyHere(KEY key, MASK mask )
|
||||
BOOL FSNearbyChatControl::handleKeyHere(KEY key, MASK mask )
|
||||
{
|
||||
BOOL handled = FALSE;
|
||||
EChatType type = CHAT_TYPE_NORMAL;
|
||||
|
|
@ -301,7 +307,7 @@ BOOL LLNearbyChatControl::handleKeyHere(KEY key, MASK mask )
|
|||
LLLineEditor::onCommit();
|
||||
|
||||
// send chat to nearby chat hub
|
||||
LLNearbyChat::instance().sendChat(getConvertedText(),type);
|
||||
FSNearbyChat::instance().sendChat(getConvertedText(),type);
|
||||
|
||||
setText(LLStringExplicit(""));
|
||||
autohide();
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* @file llnearbychatcontrol.h
|
||||
* @file fsnearbychatcontrol.h
|
||||
* @brief Nearby chat input control implementation
|
||||
*
|
||||
* $LicenseInfo:firstyear=2004&license=viewerlgpl$
|
||||
|
|
@ -25,19 +25,19 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLNEARBYCHATCONTROL_H
|
||||
#define LL_LLNEARBYCHATCONTROL_H
|
||||
#ifndef FS_NEARBYCHATCONTROL_H
|
||||
#define FS_NEARBYCHATCONTROL_H
|
||||
|
||||
#include "llchat.h"
|
||||
#include "lllineeditor.h"
|
||||
|
||||
class LLNearbyChatControl : public LLLineEditor
|
||||
class FSNearbyChatControl : public LLLineEditor
|
||||
{
|
||||
public:
|
||||
struct Params : public LLInitParam::Block<Params, LLLineEditor::Params> {};
|
||||
|
||||
LLNearbyChatControl(const Params& p);
|
||||
~LLNearbyChatControl();
|
||||
FSNearbyChatControl(const Params& p);
|
||||
~FSNearbyChatControl();
|
||||
|
||||
virtual void onFocusReceived();
|
||||
virtual void onFocusLost();
|
||||
|
|
@ -55,4 +55,4 @@ private:
|
|||
void autohide();
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // FS_NEARBYCHATCONTROL_H
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* @file llnearbychat.cpp
|
||||
* @file fsnearbychat.cpp
|
||||
* @brief @brief Nearby chat central class for handling multiple chat input controls
|
||||
*
|
||||
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
|
||||
|
|
@ -27,9 +27,12 @@
|
|||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llnearbychathub.h"
|
||||
#include "llnearbychatcontrol.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
#include "fsnearbychathub.h"
|
||||
#include "fsnearbychatcontrol.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerwindow.h"
|
||||
|
|
@ -76,20 +79,20 @@ static LLChatTypeTrigger sChatTypeTriggers[] = {
|
|||
{ "/shout" , CHAT_TYPE_SHOUT}
|
||||
};
|
||||
|
||||
S32 LLNearbyChat::sLastSpecialChatChannel = 0;
|
||||
S32 FSNearbyChat::sLastSpecialChatChannel = 0;
|
||||
|
||||
LLNearbyChat::LLNearbyChat() :
|
||||
FSNearbyChat::FSNearbyChat() :
|
||||
mDefaultChatBar(NULL),
|
||||
mFocusedInputEditor(NULL)
|
||||
{
|
||||
gSavedSettings.getControl("MainChatbarVisible")->getSignal()->connect(boost::bind(&LLNearbyChat::onDefaultChatBarButtonClicked, this));
|
||||
gSavedSettings.getControl("MainChatbarVisible")->getSignal()->connect(boost::bind(&FSNearbyChat::onDefaultChatBarButtonClicked, this));
|
||||
}
|
||||
|
||||
LLNearbyChat::~LLNearbyChat()
|
||||
FSNearbyChat::~FSNearbyChat()
|
||||
{
|
||||
}
|
||||
|
||||
void LLNearbyChat::onDefaultChatBarButtonClicked()
|
||||
void FSNearbyChat::onDefaultChatBarButtonClicked()
|
||||
{
|
||||
showDefaultChatBar(gSavedSettings.getBOOL("MainChatbarVisible"));
|
||||
}
|
||||
|
|
@ -246,12 +249,12 @@ void really_send_chat_from_viewer(std::string utf8_out_text, EChatType type, S32
|
|||
}
|
||||
//</FS:TS> FIRE-787
|
||||
|
||||
void LLNearbyChat::sendChatFromViewer(const std::string& utf8text, EChatType type, BOOL animate)
|
||||
void FSNearbyChat::sendChatFromViewer(const std::string& utf8text, EChatType type, BOOL animate)
|
||||
{
|
||||
sendChatFromViewer(utf8str_to_wstring(utf8text), type, animate);
|
||||
}
|
||||
|
||||
void LLNearbyChat::sendChatFromViewer(const LLWString& wtext, EChatType type, BOOL animate)
|
||||
void FSNearbyChat::sendChatFromViewer(const LLWString& wtext, EChatType type, BOOL animate)
|
||||
{
|
||||
// Look for "/20 foo" channel chats.
|
||||
S32 channel = 0;
|
||||
|
|
@ -262,7 +265,10 @@ void LLNearbyChat::sendChatFromViewer(const LLWString& wtext, EChatType type, BO
|
|||
gSavedSettings.getBOOL("FSShowChatChannel") &&
|
||||
(channel == 0))
|
||||
{
|
||||
channel = (S32)(LLFloaterNearbyChat::getInstance()->getChild<LLSpinCtrl>("ChatChannel")->get());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//channel = (S32)(LLFloaterNearbyChat::getInstance()->getChild<LLSpinCtrl>("ChatChannel")->get());
|
||||
channel = (S32)(FSFloaterNearbyChat::getInstance()->getChild<LLSpinCtrl>("ChatChannel")->get());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
std::string utf8_out_text = wstring_to_utf8str(out_text);
|
||||
std::string utf8_text = wstring_to_utf8str(wtext);
|
||||
|
|
@ -323,7 +329,7 @@ void LLNearbyChat::sendChatFromViewer(const LLWString& wtext, EChatType type, BO
|
|||
send_chat_from_viewer(utf8_out_text, type, channel);
|
||||
}
|
||||
|
||||
EChatType LLNearbyChat::processChatTypeTriggers(EChatType type, std::string &str)
|
||||
EChatType FSNearbyChat::processChatTypeTriggers(EChatType type, std::string &str)
|
||||
{
|
||||
U32 length = str.length();
|
||||
S32 cnt = sizeof(sChatTypeTriggers) / sizeof(*sChatTypeTriggers);
|
||||
|
|
@ -357,7 +363,7 @@ EChatType LLNearbyChat::processChatTypeTriggers(EChatType type, std::string &str
|
|||
|
||||
// If input of the form "/20foo" or "/20 foo", returns "foo" and channel 20.
|
||||
// Otherwise returns input and channel 0.
|
||||
LLWString LLNearbyChat::stripChannelNumber(const LLWString &mesg, S32* channel)
|
||||
LLWString FSNearbyChat::stripChannelNumber(const LLWString &mesg, S32* channel)
|
||||
{
|
||||
if (mesg[0] == '/'
|
||||
&& mesg[1] == '/')
|
||||
|
|
@ -410,7 +416,7 @@ LLWString LLNearbyChat::stripChannelNumber(const LLWString &mesg, S32* channel)
|
|||
}
|
||||
}
|
||||
|
||||
void LLNearbyChat::sendChat(LLWString text,EChatType type)
|
||||
void FSNearbyChat::sendChat(LLWString text,EChatType type)
|
||||
{
|
||||
LLWStringUtil::trim(text);
|
||||
|
||||
|
|
@ -432,7 +438,10 @@ void LLNearbyChat::sendChat(LLWString text,EChatType type)
|
|||
gSavedSettings.getBOOL("FSShowChatChannel") &&
|
||||
(channel == 0))
|
||||
{
|
||||
channel = (S32)(LLFloaterNearbyChat::getInstance()->getChild<LLSpinCtrl>("ChatChannel")->get());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//channel = (S32)(LLFloaterNearbyChat::getInstance()->getChild<LLSpinCtrl>("ChatChannel")->get());
|
||||
channel = (S32)(FSFloaterNearbyChat::getInstance()->getChild<LLSpinCtrl>("ChatChannel")->get());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
|
||||
std::string utf8text = wstring_to_utf8str(text);
|
||||
|
|
@ -473,7 +482,7 @@ void LLNearbyChat::sendChat(LLWString text,EChatType type)
|
|||
}
|
||||
|
||||
// all chat bars call this function and we keep the first or one that's seen as the default
|
||||
void LLNearbyChat::registerChatBar(LLNearbyChatControl* chatBar)
|
||||
void FSNearbyChat::registerChatBar(FSNearbyChatControl* chatBar)
|
||||
{
|
||||
// TODO: make this a Param option "is_default"
|
||||
if(!mDefaultChatBar || chatBar->getName()=="default_chat_bar")
|
||||
|
|
@ -483,7 +492,7 @@ void LLNearbyChat::registerChatBar(LLNearbyChatControl* chatBar)
|
|||
}
|
||||
|
||||
// unhide the default nearby chat bar on request (pressing Enter or a letter key)
|
||||
void LLNearbyChat::showDefaultChatBar(BOOL visible,const char* text) const
|
||||
void FSNearbyChat::showDefaultChatBar(BOOL visible,const char* text) const
|
||||
{
|
||||
if(!mDefaultChatBar)
|
||||
return;
|
||||
|
|
@ -506,7 +515,7 @@ void LLNearbyChat::showDefaultChatBar(BOOL visible,const char* text) const
|
|||
}
|
||||
|
||||
// We want to know which nearby chat editor (if any) currently has focus
|
||||
void LLNearbyChat::setFocusedInputEditor(LLNearbyChatControl* inputEditor,BOOL focus)
|
||||
void FSNearbyChat::setFocusedInputEditor(FSNearbyChatControl* inputEditor,BOOL focus)
|
||||
{
|
||||
if(focus)
|
||||
mFocusedInputEditor=inputEditor;
|
||||
|
|
@ -519,7 +528,7 @@ void LLNearbyChat::setFocusedInputEditor(LLNearbyChatControl* inputEditor,BOOL f
|
|||
|
||||
// for the "arrow key moves avatar when chat is empty" hack in llviewerwindow.cpp
|
||||
// and the hide chat bar feature in mouselook in llagent.cpp
|
||||
BOOL LLNearbyChat::defaultChatBarIsIdle() const
|
||||
BOOL FSNearbyChat::defaultChatBarIsIdle() const
|
||||
{
|
||||
if(mFocusedInputEditor && mFocusedInputEditor->getName()=="default_chat_bar")
|
||||
return mFocusedInputEditor->getText().empty();
|
||||
|
|
@ -529,7 +538,7 @@ BOOL LLNearbyChat::defaultChatBarIsIdle() const
|
|||
}
|
||||
|
||||
// for the "arrow key moves avatar when chat is empty" hack in llviewerwindow.cpp
|
||||
BOOL LLNearbyChat::defaultChatBarHasFocus() const
|
||||
BOOL FSNearbyChat::defaultChatBarHasFocus() const
|
||||
{
|
||||
if(mFocusedInputEditor && mFocusedInputEditor->getName()=="default_chat_bar")
|
||||
return TRUE;
|
||||
|
|
@ -25,31 +25,31 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLNEARBYCHAT_H
|
||||
#define LL_LLNEARBYCHAT_H
|
||||
#ifndef FS_NEARBYCHAT_H
|
||||
#define FS_NEARBYCHAT_H
|
||||
|
||||
#include "llsingleton.h"
|
||||
#include "llviewerchat.h"
|
||||
|
||||
class LLNearbyChatControl;
|
||||
class FSNearbyChatControl;
|
||||
|
||||
class LLNearbyChat : public LLSingleton<LLNearbyChat>
|
||||
class FSNearbyChat : public LLSingleton<FSNearbyChat>
|
||||
{
|
||||
friend class LLSingleton<LLNearbyChat>;
|
||||
friend class LLSingleton<FSNearbyChat>;
|
||||
|
||||
private:
|
||||
LLNearbyChat();
|
||||
~LLNearbyChat();
|
||||
FSNearbyChat();
|
||||
~FSNearbyChat();
|
||||
|
||||
void sendMsg();
|
||||
|
||||
static S32 sLastSpecialChatChannel;
|
||||
LLNearbyChatControl* mDefaultChatBar;
|
||||
FSNearbyChatControl* mDefaultChatBar;
|
||||
|
||||
void onDefaultChatBarButtonClicked();
|
||||
|
||||
public:
|
||||
void registerChatBar(LLNearbyChatControl* chatBar);
|
||||
void registerChatBar(FSNearbyChatControl* chatBar);
|
||||
|
||||
// set the contents of the chat bar to "text" if it was empty, otherwise just show it
|
||||
void showDefaultChatBar(BOOL visible,const char* text=0) const;
|
||||
|
|
@ -60,12 +60,12 @@ public:
|
|||
void sendChatFromViewer(const std::string& utf8text, EChatType type, BOOL animate);
|
||||
void sendChatFromViewer(const LLWString& wtext, EChatType type, BOOL animate);
|
||||
|
||||
void setFocusedInputEditor(LLNearbyChatControl* inputEditor,BOOL focus);
|
||||
void setFocusedInputEditor(FSNearbyChatControl* inputEditor,BOOL focus);
|
||||
|
||||
BOOL defaultChatBarIsIdle() const;
|
||||
BOOL defaultChatBarHasFocus() const;
|
||||
|
||||
LLNearbyChatControl* mFocusedInputEditor;
|
||||
FSNearbyChatControl* mFocusedInputEditor;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // FS_NEARBYCHAT_H
|
||||
|
|
@ -33,7 +33,7 @@ FSNearbyChatVoiceControl::Params::Params() :
|
|||
{}
|
||||
|
||||
FSNearbyChatVoiceControl::FSNearbyChatVoiceControl(const FSNearbyChatVoiceControl::Params& p) :
|
||||
LLNearbyChatControl(p),
|
||||
FSNearbyChatControl(p),
|
||||
mVoiceMonitor(NULL),
|
||||
mOriginalTextpadLeft(p.text_pad_left),
|
||||
mOriginalTextpadRight(p.text_pad_right),
|
||||
|
|
@ -70,5 +70,5 @@ void FSNearbyChatVoiceControl::draw()
|
|||
mVoiceMonitor->setVisible(FALSE);
|
||||
}
|
||||
}
|
||||
LLNearbyChatControl::draw();
|
||||
FSNearbyChatControl::draw();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,16 +23,16 @@
|
|||
#ifndef FS_NEARBYCHATVOICEMONITOR_H
|
||||
#define FS_NEARBYCHATVOICEMONITOR_H
|
||||
|
||||
#include "llnearbychatcontrol.h"
|
||||
#include "fsnearbychatcontrol.h"
|
||||
#include "lloutputmonitorctrl.h"
|
||||
|
||||
class LLUICtrlFactory;
|
||||
|
||||
class FSNearbyChatVoiceControl : public LLNearbyChatControl
|
||||
class FSNearbyChatVoiceControl : public FSNearbyChatControl
|
||||
{
|
||||
|
||||
public:
|
||||
struct Params : public LLInitParam::Block<Params, LLNearbyChatControl::Params>
|
||||
struct Params : public LLInitParam::Block<Params, FSNearbyChatControl::Params>
|
||||
{
|
||||
Optional<S32> voice_monitor_padding;
|
||||
Optional<NearbyVoiceMonitor::Params> nearby_voice_monitor;
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
#include "llnavigationbar.h" // to show/hide navigation bar when changing mouse look state
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
//#include "llnearbychatbar.h"
|
||||
#include "llnearbychathub.h"
|
||||
#include "fsnearbychathub.h"
|
||||
// </FS:Zi>
|
||||
#include "llspeakers.h"
|
||||
// [/SL:KB]
|
||||
|
|
@ -2195,7 +2195,7 @@ void LLAgent::startTyping()
|
|||
}
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBar::getInstance()->sendChatFromViewer("", CHAT_TYPE_START, FALSE);
|
||||
LLNearbyChat::instance().sendChatFromViewer("", CHAT_TYPE_START, FALSE);
|
||||
FSNearbyChat::instance().sendChatFromViewer("", CHAT_TYPE_START, FALSE);
|
||||
// </FS:Zi>
|
||||
}
|
||||
|
||||
|
|
@ -2210,7 +2210,7 @@ void LLAgent::stopTyping()
|
|||
sendAnimationRequest(ANIM_AGENT_TYPE, ANIM_REQUEST_STOP);
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBar::getInstance()->sendChatFromViewer("", CHAT_TYPE_STOP, FALSE);
|
||||
LLNearbyChat::instance().sendChatFromViewer("", CHAT_TYPE_STOP, FALSE);
|
||||
FSNearbyChat::instance().sendChatFromViewer("", CHAT_TYPE_STOP, FALSE);
|
||||
// </FS:Zi>
|
||||
}
|
||||
}
|
||||
|
|
@ -2277,7 +2277,7 @@ void LLAgent::endAnimationUpdateUI()
|
|||
// <FS:Zi> Unhide chat bar, unless autohide is enabled
|
||||
gSavedSettings.setBOOL("MouseLookEnabled",FALSE);
|
||||
if(!gSavedSettings.getBOOL("AutohideChatBar"))
|
||||
LLNearbyChat::instance().showDefaultChatBar(TRUE);
|
||||
FSNearbyChat::instance().showDefaultChatBar(TRUE);
|
||||
// </FS:Zi>
|
||||
|
||||
gToolBarView->setToolBarsVisible(true);
|
||||
|
|
@ -2437,8 +2437,8 @@ void LLAgent::endAnimationUpdateUI()
|
|||
|
||||
// <FS:Zi> Hide chat bar in mouselook mode, unless there is text in it
|
||||
gSavedSettings.setBOOL("MouseLookEnabled",TRUE);
|
||||
if(LLNearbyChat::instance().defaultChatBarIsIdle())
|
||||
LLNearbyChat::instance().showDefaultChatBar(FALSE);
|
||||
if(FSNearbyChat::instance().defaultChatBarIsIdle())
|
||||
FSNearbyChat::instance().showDefaultChatBar(FALSE);
|
||||
// </FS:Zi>
|
||||
|
||||
// clear out camera lag effect
|
||||
|
|
|
|||
|
|
@ -68,7 +68,10 @@
|
|||
#include "llviewerobjectlist.h"
|
||||
#include "llviewermessage.h" // for handle_lure
|
||||
#include "llviewerregion.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "lltrans.h"
|
||||
#include "llcallingcard.h"
|
||||
#include "llslurl.h" // IDEVO
|
||||
|
|
@ -200,7 +203,10 @@ static void on_avatar_name_cache_start_im(const LLUUID& agent_id,
|
|||
LLUUID session_id = gIMMgr->addSession(name, IM_NOTHING_SPECIAL, agent_id);
|
||||
if (session_id != LLUUID::null)
|
||||
{
|
||||
LLIMFloater::show(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater::show(session_id);
|
||||
FSFloaterIM::show(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
make_ui_sound("UISndStartIM");
|
||||
}
|
||||
|
|
@ -361,7 +367,10 @@ void LLAvatarActions::startConference(const uuid_vec_t& ids)
|
|||
LLUUID session_id = gIMMgr->addSession(title, IM_SESSION_CONFERENCE_START, ids[0], id_array);
|
||||
if (session_id != LLUUID::null)
|
||||
{
|
||||
LLIMFloater::show(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater::show(session_id);
|
||||
FSFloaterIM::show(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
make_ui_sound("UISndStartIM");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,10 @@
|
|||
#include "llavatariconctrl.h"
|
||||
#include "llavatarlist.h"
|
||||
#include "lldraghandle.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "llimview.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llparticipantlist.h"
|
||||
|
|
@ -318,7 +321,10 @@ void LLCallFloater::updateSession()
|
|||
voice_channel &&
|
||||
LLVoiceChannel::STATE_CONNECTED == voice_channel->getState())
|
||||
{
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
bool show_me = !(im_floater && im_floater->getVisible());
|
||||
if (show_me)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -64,11 +64,17 @@
|
|||
#include "lggcontactsets.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychat.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
#include "llfloaterreg.h"
|
||||
#include "llnotificationmanager.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// <FS:Ansariel>
|
||||
|
||||
///----------------------------------------------------------------------------
|
||||
/// Local function declarations, constants, enums, and typedefs
|
||||
|
|
@ -889,7 +895,10 @@ static void on_avatar_name_cache_notify(const LLUUID& agent_id,
|
|||
args["type"] = LLNotificationsUI::NT_NEARBYCHAT;
|
||||
if (history_only)
|
||||
{
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLFloaterNearbyChat>("nearby_chat", LLSD());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLFloaterNearbyChat>("nearby_chat", LLSD());
|
||||
FSFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<FSFloaterNearbyChat>("fs_nearby_chat", LLSD());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
nearby_chat->addMessage(chat, true, LLSD());
|
||||
}
|
||||
else
|
||||
|
|
@ -916,7 +925,10 @@ void LLAvatarTracker::formFriendship(const LLUUID& id)
|
|||
|
||||
// <FS:Ansariel> FIRE-3248: Disable add friend button on IM floater if friendship request accepted
|
||||
LLUUID im_session_id = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, id);
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(im_session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(im_session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(im_session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater)
|
||||
{
|
||||
im_floater->setEnableAddFriendButton(FALSE);
|
||||
|
|
@ -942,7 +954,10 @@ void LLAvatarTracker::processTerminateFriendship(LLMessageSystem* msg, void**)
|
|||
|
||||
// <FS:Ansariel> FIRE-3248: Disable add friend button on IM floater if friendship request accepted
|
||||
LLUUID im_session_id = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, id);
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(im_session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(im_session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(im_session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater)
|
||||
{
|
||||
im_floater->setEnableAddFriendButton(TRUE);
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#if 0
|
||||
|
||||
#include "llchathistory.h"
|
||||
|
||||
#include "llavatarnamecache.h"
|
||||
|
|
@ -1553,3 +1555,5 @@ BOOL LLChatHistory::handleUnicodeCharHere(llwchar uni_char)
|
|||
return LLTextEditor::handleUnicodeCharHere(uni_char);
|
||||
}
|
||||
// </FS:Zi>
|
||||
|
||||
#endif
|
||||
|
|
@ -24,6 +24,8 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#if 0
|
||||
|
||||
#ifndef LLCHATHISTORY_H_
|
||||
#define LLCHATHISTORY_H_
|
||||
|
||||
|
|
@ -163,3 +165,5 @@ class LLChatHistory : public LLTextEditor // <FS:Zi> FIRE-8600: TAB out of chat
|
|||
// </FS:Zi>
|
||||
};
|
||||
#endif /* LLCHATHISTORY_H_ */
|
||||
|
||||
#endif
|
||||
|
|
@ -46,7 +46,10 @@
|
|||
#include "rlvhandler.h"
|
||||
// [/RLVa:KB]
|
||||
|
||||
#include "llfloaternearbychat.h" // <FS:Zi> Remove floating chat bar
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h" // <FS:Zi> Remove floating chat bar
|
||||
#include "fsfloaternearbychat.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
static const S32 msg_left_offset = 10;
|
||||
static const S32 msg_right_offset = 10;
|
||||
|
|
@ -339,14 +342,20 @@ BOOL LLNearbyChatToastPanel::handleMouseUp (S32 x, S32 y, MASK mask)
|
|||
{
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBar::getInstance()->showHistory();
|
||||
LLFloaterNearbyChat::getInstance()->setVisible(TRUE);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat::getInstance()->setVisible(TRUE);
|
||||
FSFloaterNearbyChat::getInstance()->setVisible(TRUE);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
|
||||
// <FS:Ansariel> If nearby chat history is docked, we also need
|
||||
// to open the container floater (FIRE-6265)
|
||||
if (!gSavedSettings.getBOOL("ChatHistoryTornOff"))
|
||||
{
|
||||
LLFloaterReg::showInstance("im_container");
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterReg::showInstance("im_container");
|
||||
LLFloaterReg::showInstance("fs_im_container");
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
return FALSE;
|
||||
|
|
@ -355,14 +364,20 @@ BOOL LLNearbyChatToastPanel::handleMouseUp (S32 x, S32 y, MASK mask)
|
|||
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBar::getInstance()->showHistory();
|
||||
LLFloaterNearbyChat::getInstance()->setVisible(TRUE);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat::getInstance()->setVisible(TRUE);
|
||||
FSFloaterNearbyChat::getInstance()->setVisible(TRUE);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
|
||||
// <FS:Ansariel> If nearby chat history is docked, we also need
|
||||
// to open the container floater (FIRE-6265)
|
||||
if (!gSavedSettings.getBOOL("ChatHistoryTornOff"))
|
||||
{
|
||||
LLFloaterReg::showInstance("im_container");
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterReg::showInstance("im_container");
|
||||
LLFloaterReg::showInstance("fs_im_container");
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
return LLPanel::handleMouseUp(x,y,mask);
|
||||
|
|
|
|||
|
|
@ -33,7 +33,10 @@
|
|||
#include "lleventtimer.h"
|
||||
#include "llgroupactions.h"
|
||||
#include "lliconctrl.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "llimview.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "lllocalcliprect.h"
|
||||
|
|
@ -311,8 +314,12 @@ void LLIMWellChiclet::messageCountChanged(const LLSD& session_data)
|
|||
|
||||
const LLUUID& session_id = session_data["session_id"];
|
||||
const S32 counter = LLChicletBar::getInstance()->getTotalUnreadIMCount();
|
||||
const bool im_not_visible = !LLFloaterReg::instanceVisible("im_container")
|
||||
&& !LLFloaterReg::instanceVisible("impanel", session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//const bool im_not_visible = !LLFloaterReg::instanceVisible("im_container")
|
||||
// && !LLFloaterReg::instanceVisible("impanel", session_id);
|
||||
const bool im_not_visible = !LLFloaterReg::instanceVisible("fs_im_container")
|
||||
&& !LLFloaterReg::instanceVisible("fs_impanel", session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
setNewMessagesState(counter > mCounter && im_not_visible);
|
||||
|
||||
|
|
@ -607,7 +614,10 @@ bool LLIMChiclet::getShowNewMessagesIcon()
|
|||
|
||||
void LLIMChiclet::onMouseDown()
|
||||
{
|
||||
LLIMFloater::toggle(getSessionId());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater::toggle(getSessionId());
|
||||
FSFloaterIM::toggle(getSessionId());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
setCounter(0);
|
||||
}
|
||||
|
||||
|
|
@ -756,7 +766,10 @@ void LLIMP2PChiclet::updateMenuItems()
|
|||
if(getSessionId().isNull())
|
||||
return;
|
||||
|
||||
LLIMFloater* open_im_floater = LLIMFloater::findInstance(getSessionId());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* open_im_floater = LLIMFloater::findInstance(getSessionId());
|
||||
FSFloaterIM* open_im_floater = FSFloaterIM::findInstance(getSessionId());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
bool open_window_exists = open_im_floater && open_im_floater->getVisible();
|
||||
mPopupMenu->getChild<LLUICtrl>("Send IM")->setEnabled(!open_window_exists);
|
||||
|
||||
|
|
@ -1032,7 +1045,10 @@ void LLIMGroupChiclet::updateMenuItems()
|
|||
if(getSessionId().isNull())
|
||||
return;
|
||||
|
||||
LLIMFloater* open_im_floater = LLIMFloater::findInstance(getSessionId());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* open_im_floater = LLIMFloater::findInstance(getSessionId());
|
||||
FSFloaterIM* open_im_floater = FSFloaterIM::findInstance(getSessionId());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
bool open_window_exists = open_im_floater && open_im_floater->getVisible();
|
||||
mPopupMenu->getChild<LLUICtrl>("Chat")->setEnabled(!open_window_exists);
|
||||
}
|
||||
|
|
@ -1118,7 +1134,10 @@ void LLChicletPanel::onMessageCountChanged(const LLSD& data)
|
|||
LLUUID session_id = data["session_id"].asUUID();
|
||||
S32 unread = data["participant_unread"].asInteger();
|
||||
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater && im_floater->getVisible() && im_floater->hasFocus())
|
||||
{
|
||||
unread = 0;
|
||||
|
|
@ -1199,7 +1218,10 @@ void LLChicletPanel::onCurrentVoiceChannelChanged(const LLUUID& session_id)
|
|||
chiclet->setShowSpeaker(true);
|
||||
if (gSavedSettings.getBOOL("OpenIMOnVoice"))
|
||||
{
|
||||
LLIMFloater::show(chiclet->getSessionId());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater::show(chiclet->getSessionId());
|
||||
FSFloaterIM::show(chiclet->getSessionId());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1690,8 +1712,12 @@ bool LLChicletPanel::isAnyIMFloaterDoked()
|
|||
for (chiclet_list_t::iterator it = mChicletList.begin(); it
|
||||
!= mChicletList.end(); it++)
|
||||
{
|
||||
LLIMFloater* im_floater = LLFloaterReg::findTypedInstance<LLIMFloater>(
|
||||
"impanel", (*it)->getSessionId());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLFloaterReg::findTypedInstance<LLIMFloater>(
|
||||
// "impanel", (*it)->getSessionId());
|
||||
FSFloaterIM* im_floater = LLFloaterReg::findTypedInstance<FSFloaterIM>(
|
||||
"fs_impanel", (*it)->getSessionId());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater != NULL && im_floater->getVisible()
|
||||
&& !im_floater->isMinimized() && im_floater->isDocked())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -34,7 +34,10 @@
|
|||
|
||||
// newview includes
|
||||
#include "llchiclet.h"
|
||||
#include "llimfloater.h" // for LLIMFloater
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h" // for LLIMFloater
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "llpaneltopinfobar.h"
|
||||
#include "llsyswellwindow.h"
|
||||
|
||||
|
|
@ -110,7 +113,10 @@ void LLChicletBar::sessionAdded(const LLUUID& session_id, const std::string& nam
|
|||
chiclet->setIMSessionName(name);
|
||||
chiclet->setOtherParticipantId(other_participant_id);
|
||||
|
||||
LLIMFloater::onIMChicletCreated(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater::onIMChicletCreated(session_id);
|
||||
FSFloaterIM::onIMChicletCreated(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
}
|
||||
else
|
||||
|
|
@ -125,7 +131,10 @@ void LLChicletBar::sessionRemoved(const LLUUID& session_id)
|
|||
if(getChicletPanel())
|
||||
{
|
||||
// IM floater should be closed when session removed and associated chiclet closed
|
||||
LLIMFloater* iMfloater = LLFloaterReg::findTypedInstance<LLIMFloater>("impanel", session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* iMfloater = LLFloaterReg::findTypedInstance<LLIMFloater>("impanel", session_id);
|
||||
FSFloaterIM* iMfloater = LLFloaterReg::findTypedInstance<FSFloaterIM>("fs_impanel", session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (iMfloater != NULL)
|
||||
{
|
||||
iMfloater->closeFloater();
|
||||
|
|
|
|||
|
|
@ -76,7 +76,10 @@ void LLFirstUse::otherAvatarChatFirst(bool enable)
|
|||
{
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// firstUseNotification("FirstOtherChatBeforeUser", enable, "HintChat", LLSD(), LLSD().with("target", "chat_bar").with("direction", "top_right").with("distance", 24));
|
||||
firstUseNotification("FirstOtherChatBeforeUser", enable, "HintChat", LLSD(), LLSD().with("target", "nearby_chat").with("direction", "top_right").with("distance", 24));
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//firstUseNotification("FirstOtherChatBeforeUser", enable, "HintChat", LLSD(), LLSD().with("target", "nearby_chat").with("direction", "top_right").with("distance", 24));
|
||||
firstUseNotification("FirstOtherChatBeforeUser", enable, "HintChat", LLSD(), LLSD().with("target", "fs_nearby_chat").with("direction", "top_right").with("distance", 24));
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#if 0
|
||||
|
||||
#include "llfloaternearbychat.h"
|
||||
|
||||
#include "llviewercontrol.h"
|
||||
|
|
@ -64,8 +66,12 @@
|
|||
#include "llbutton.h"
|
||||
#include "lllayoutstack.h"
|
||||
|
||||
#include "llimfloatercontainer.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloatercontainer.h"
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
#include "fsfloaterimcontainer.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "lllineeditor.h"
|
||||
|
||||
//AO - includes for textentry
|
||||
|
|
@ -349,7 +355,10 @@ void LLFloaterNearbyChat::openFloater(const LLSD& key)
|
|||
// We override this to put nearbychat in the IM floater. -AO
|
||||
if(isChatMultiTab())
|
||||
{
|
||||
LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* floater_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// only show the floater container if we are actually attached -Zi
|
||||
if (floater_container && !gSavedSettings.getBOOL("ChatHistoryTornOff"))
|
||||
{
|
||||
|
|
@ -381,7 +390,10 @@ void LLFloaterNearbyChat::setVisible(BOOL visible)
|
|||
static LLCachedControl<bool> chatHistoryTornOff(gSavedSettings, "ChatHistoryTornOff");
|
||||
if (FSUseNearbyChatConsole)
|
||||
{
|
||||
LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* floater_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (floater_container && !chatHistoryTornOff && !floater_container->getVisible())
|
||||
{
|
||||
// In case the nearby chat is docked into the IM floater and the
|
||||
|
|
@ -406,7 +418,10 @@ void LLFloaterNearbyChat::onFocusReceived()
|
|||
|
||||
void LLFloaterNearbyChat::onOpen(const LLSD& key )
|
||||
{
|
||||
LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* floater_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* floater_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (floater_container)
|
||||
{
|
||||
if (gSavedSettings.getBOOL("ChatHistoryTornOff"))
|
||||
|
|
@ -612,7 +627,10 @@ BOOL LLFloaterNearbyChat::getVisible()
|
|||
{
|
||||
if(isChatMultiTab())
|
||||
{
|
||||
LLIMFloaterContainer* im_container = LLIMFloaterContainer::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* im_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* im_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
// Treat inactive floater as invisible.
|
||||
bool is_active = im_container->getActiveFloater() == this;
|
||||
|
|
@ -631,3 +649,5 @@ BOOL LLFloaterNearbyChat::getVisible()
|
|||
return LLDockableFloater::getVisible();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -25,6 +25,8 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#if 0
|
||||
|
||||
#ifndef LL_LLFLOATERNEARBYCHAT_H
|
||||
#define LL_LLFLOATERNEARBYCHAT_H
|
||||
|
||||
|
|
@ -113,3 +115,5 @@ private:
|
|||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -52,13 +52,19 @@
|
|||
#include "llfloaterabout.h"
|
||||
#include "llfloaterhardwaresettings.h"
|
||||
#include "llfloatersidepanelcontainer.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "llkeyboard.h"
|
||||
#include "llmodaldialog.h"
|
||||
#include "llnavigationbar.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychat.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
#include "llnotifications.h"
|
||||
#include "llnotificationsutil.h"
|
||||
|
|
@ -580,13 +586,16 @@ void LLFloaterPreference::saveAvatarProperties( void )
|
|||
|
||||
BOOL LLFloaterPreference::postBuild()
|
||||
{
|
||||
gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&LLIMFloater::processChatHistoryStyleUpdate, _2));
|
||||
|
||||
gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&LLFloaterNearbyChat::processChatHistoryStyleUpdate, _2));
|
||||
|
||||
gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&LLIMFloater::processChatHistoryStyleUpdate, _2));
|
||||
|
||||
gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&LLFloaterNearbyChat::processChatHistoryStyleUpdate, _2));
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&LLIMFloater::processChatHistoryStyleUpdate, _2));
|
||||
//gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&LLFloaterNearbyChat::processChatHistoryStyleUpdate, _2));
|
||||
//gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&LLIMFloater::processChatHistoryStyleUpdate, _2));
|
||||
//gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&LLFloaterNearbyChat::processChatHistoryStyleUpdate, _2));
|
||||
gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&FSFloaterIM::processChatHistoryStyleUpdate, _2));
|
||||
gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&FSFloaterNearbyChat::processChatHistoryStyleUpdate, _2));
|
||||
gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&FSFloaterIM::processChatHistoryStyleUpdate, _2));
|
||||
gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&FSFloaterNearbyChat::processChatHistoryStyleUpdate, _2));
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&LLViewerChat::signalChatFontChanged));
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@
|
|||
#include "llviewerstats.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychatbar.h"
|
||||
#include "llnearbychathub.h"
|
||||
#include "fsnearbychathub.h"
|
||||
// </FS:Zi>
|
||||
#include "llappearancemgr.h"
|
||||
#include "llgesturelistener.h"
|
||||
|
|
@ -1013,7 +1013,7 @@ void LLGestureMgr::runStep(LLMultiGesture* gesture, LLGestureStep* step)
|
|||
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBar::getInstance()->sendChatFromViewer(chat_text, CHAT_TYPE_NORMAL, animate);
|
||||
LLNearbyChat::instance().sendChatFromViewer(chat_text, CHAT_TYPE_NORMAL, animate);
|
||||
FSNearbyChat::instance().sendChatFromViewer(chat_text, CHAT_TYPE_NORMAL, animate);
|
||||
// </FS:Zi>
|
||||
|
||||
gesture->mCurrentStep++;
|
||||
|
|
|
|||
|
|
@ -39,7 +39,10 @@
|
|||
#include "llimview.h" // for gIMMgr
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llstatusbar.h" // can_afford_transaction()
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "groupchatlistener.h"
|
||||
// [RLVa:KB] - Checked: 2011-03-28 (RLVa-1.3.0f)
|
||||
#include "llslurl.h"
|
||||
|
|
@ -489,7 +492,10 @@ LLUUID LLGroupActions::startIM(const LLUUID& group_id)
|
|||
group_id);
|
||||
if (session_id != LLUUID::null)
|
||||
{
|
||||
LLIMFloater::show(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater::show(session_id);
|
||||
FSFloaterIM::show(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
make_ui_sound("UISndStartIM");
|
||||
return session_id;
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#if 0
|
||||
|
||||
#include "llimfloater.h"
|
||||
|
||||
#include "llnotificationsutil.h"
|
||||
|
|
@ -1872,3 +1874,5 @@ void LLIMFloater::setEnableAddFriendButton(BOOL enabled)
|
|||
getChild<LLButton>("add_friend_btn")->setEnabled(enabled);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
#endif
|
||||
|
|
@ -24,6 +24,8 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#if 0
|
||||
|
||||
#ifndef LL_IMFLOATER_H
|
||||
#define LL_IMFLOATER_H
|
||||
|
||||
|
|
@ -221,3 +223,5 @@ private:
|
|||
|
||||
|
||||
#endif // LL_IMFLOATER_H
|
||||
|
||||
#endif
|
||||
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#if 0
|
||||
|
||||
#include "llimfloatercontainer.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llimview.h"
|
||||
|
|
@ -286,3 +288,5 @@ void LLIMFloaterContainer::setMinimized(BOOL b)
|
|||
}
|
||||
|
||||
// EOF
|
||||
|
||||
#endif
|
||||
|
|
@ -24,6 +24,8 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#if 0
|
||||
|
||||
#ifndef LL_LLIMFLOATERCONTAINER_H
|
||||
#define LL_LLIMFLOATERCONTAINER_H
|
||||
|
||||
|
|
@ -71,3 +73,5 @@ private:
|
|||
};
|
||||
|
||||
#endif // LL_LLIMFLOATERCONTAINER_H
|
||||
|
||||
#endif
|
||||
|
|
@ -48,7 +48,10 @@
|
|||
#include "llavatariconctrl.h"
|
||||
#include "llcallingcard.h"
|
||||
#include "llchat.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "llgroupiconctrl.h"
|
||||
#include "llmd5.h"
|
||||
#include "llmutelist.h"
|
||||
|
|
@ -59,7 +62,10 @@
|
|||
#include "llnotificationsutil.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychat.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
#include "llspeakers.h" //for LLIMSpeakerMgr
|
||||
#include "lltextbox.h"
|
||||
|
|
@ -116,7 +122,10 @@ static void on_avatar_name_cache_toast(const LLUUID& agent_id,
|
|||
args["FROM"] = av_name.getCompleteName();
|
||||
args["FROM_ID"] = msg["from_id"];
|
||||
args["SESSION_ID"] = msg["session_id"];
|
||||
LLNotificationsUtil::add("IMToast", args, LLSD(), boost::bind(&LLIMFloater::show, msg["session_id"].asUUID()));
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLNotificationsUtil::add("IMToast", args, LLSD(), boost::bind(&LLIMFloater::show, msg["session_id"].asUUID()));
|
||||
LLNotificationsUtil::add("IMToast", args, LLSD(), boost::bind(&FSFloaterIM::show, msg["session_id"].asUUID()));
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
|
||||
void toast_callback(const LLSD& msg){
|
||||
|
|
@ -168,7 +177,10 @@ void toast_callback(const LLSD& msg){
|
|||
}
|
||||
|
||||
// Skip toasting if we have open window of IM with this session id
|
||||
LLIMFloater* open_im_floater = LLIMFloater::findInstance(msg["session_id"]);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* open_im_floater = LLIMFloater::findInstance(msg["session_id"]);
|
||||
FSFloaterIM* open_im_floater = FSFloaterIM::findInstance(msg["session_id"]);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (open_im_floater && open_im_floater->getVisible())
|
||||
{
|
||||
return;
|
||||
|
|
@ -193,7 +205,10 @@ void LLIMModel::setActiveSessionID(const LLUUID& session_id)
|
|||
|
||||
LLIMModel::LLIMModel()
|
||||
{
|
||||
addNewMsgCallback(boost::bind(&LLIMFloater::newIMCallback, _1));
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//addNewMsgCallback(boost::bind(&LLIMFloater::newIMCallback, _1));
|
||||
addNewMsgCallback(boost::bind(&FSFloaterIM::newIMCallback, _1));
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
addNewMsgCallback(boost::bind(&toast_callback, _1));
|
||||
}
|
||||
|
||||
|
|
@ -712,7 +727,10 @@ void LLIMModel::processSessionInitializedReply(const LLUUID& old_session_id, con
|
|||
gIMMgr->notifyObserverSessionIDUpdated(old_session_id, new_session_id);
|
||||
}
|
||||
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(old_session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(old_session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(old_session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater)
|
||||
{
|
||||
im_floater->sessionInitReplyReceived(new_session_id);
|
||||
|
|
@ -882,7 +900,10 @@ bool LLIMModel::addToHistory(const LLUUID& session_id, const std::string& from,
|
|||
chat.mSourceType = CHAT_SOURCE_AGENT;
|
||||
chat.mText = utf8_text;
|
||||
chat.mTimeStr = timestr;
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLFloaterNearbyChat>("nearby_chat", LLSD());
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLFloaterNearbyChat>("nearby_chat", LLSD());
|
||||
FSFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<FSFloaterNearbyChat>("fs_nearby_chat", LLSD());
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
nearby_chat->addMessage(chat, true, LLSD());
|
||||
}
|
||||
// </Ansariel>
|
||||
|
|
@ -1737,7 +1758,10 @@ LLIMMgr::onConfirmForceCloseError(
|
|||
//only 1 option really
|
||||
LLUUID session_id = notification["payload"]["session_id"];
|
||||
|
||||
LLFloater* floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloater* floater = LLIMFloater::findInstance(session_id);
|
||||
LLFloater* floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if ( floater )
|
||||
{
|
||||
floater->closeFloater(FALSE);
|
||||
|
|
@ -2603,7 +2627,10 @@ LLIMMgr::LLIMMgr()
|
|||
mPendingInvitations = LLSD::emptyMap();
|
||||
mPendingAgentListUpdates = LLSD::emptyMap();
|
||||
|
||||
LLIMModel::getInstance()->addNewMsgCallback(boost::bind(&LLIMFloater::sRemoveTypingIndicator, _1));
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMModel::getInstance()->addNewMsgCallback(boost::bind(&LLIMFloater::sRemoveTypingIndicator, _1));
|
||||
LLIMModel::getInstance()->addNewMsgCallback(boost::bind(&FSFloaterIM::sRemoveTypingIndicator, _1));
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
|
||||
// Add a message to a session.
|
||||
|
|
@ -2713,7 +2740,10 @@ void LLIMMgr::addMessage(
|
|||
// <FS:WoLf> IM Sounds only for sessions not in focus
|
||||
else if(PlayModeUISndNewIncomingIMSession == 3 && dialog == IM_NOTHING_SPECIAL)
|
||||
{
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater && !im_floater->hasFocus())
|
||||
{
|
||||
make_ui_sound("UISndNewIncomingIMSession");
|
||||
|
|
@ -2721,7 +2751,10 @@ void LLIMMgr::addMessage(
|
|||
}
|
||||
else if(PlayModeUISndNewIncomingGroupIMSession == 3 && dialog != IM_NOTHING_SPECIAL)
|
||||
{
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater && !im_floater->hasFocus())
|
||||
{
|
||||
make_ui_sound("UISndNewIncomingGroupIMSession");
|
||||
|
|
@ -2766,7 +2799,10 @@ void LLIMMgr::addSystemMessage(const LLUUID& session_id, const std::string& mess
|
|||
// <FS:Zi> Remove floating chat bar
|
||||
// LLFloater* chat_bar = LLFloaterReg::getInstance("chat_bar");
|
||||
// LLNearbyChat* nearby_chat = chat_bar->findChild<LLNearbyChat>("nearby_chat");
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
FSFloaterNearbyChat* nearby_chat = FSFloaterNearbyChat::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
|
||||
if(nearby_chat)
|
||||
|
|
@ -3095,7 +3131,10 @@ void LLIMMgr::clearPendingInvitation(const LLUUID& session_id)
|
|||
|
||||
void LLIMMgr::processAgentListUpdates(const LLUUID& session_id, const LLSD& body)
|
||||
{
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if ( im_floater )
|
||||
{
|
||||
im_floater->processAgentListUpdates(body);
|
||||
|
|
@ -3452,7 +3491,10 @@ void LLIMMgr::processIMTypingCore(const LLIMInfo* im_info, BOOL typing)
|
|||
}
|
||||
// </Ansariel>
|
||||
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
if ( im_floater )
|
||||
{
|
||||
|
|
@ -3498,7 +3540,10 @@ public:
|
|||
speaker_mgr->updateSpeakers(gIMMgr->getPendingAgentListUpdates(session_id));
|
||||
}
|
||||
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if ( im_floater )
|
||||
{
|
||||
if ( body.has("session_info") )
|
||||
|
|
@ -3592,7 +3637,10 @@ public:
|
|||
const LLSD& input) const
|
||||
{
|
||||
LLUUID session_id = input["body"]["session_id"].asUUID();
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if ( im_floater )
|
||||
{
|
||||
im_floater->processSessionUpdate(input["body"]["info"]);
|
||||
|
|
|
|||
|
|
@ -28,10 +28,13 @@
|
|||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#if 0
|
||||
|
||||
#include "llnearbychatbarlistener.h"
|
||||
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychatbar.h"
|
||||
#include "llnearbychathub.h"
|
||||
#include "fsnearbychathub.h"
|
||||
// </FS:Zi>
|
||||
|
||||
#include "llagent.h"
|
||||
|
|
@ -105,7 +108,10 @@ void LLNearbyChatBarListener::sendChat(LLSD const & chat_data) const
|
|||
// Send it as if it was typed in
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// mChatbar.sendChatFromViewer(chat_to_send, type_o_chat, (BOOL)(channel == 0));
|
||||
LLNearbyChat::instance().sendChatFromViewer(chat_to_send, type_o_chat, ((BOOL)(channel == 0)) && gSavedSettings.getBOOL("FSPlayChatAnimation"));
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLNearbyChat::instance().sendChatFromViewer(chat_to_send, type_o_chat, ((BOOL)(channel == 0)) && gSavedSettings.getBOOL("FSPlayChatAnimation"));
|
||||
FSNearbyChat::instance().sendChatFromViewer(chat_to_send, type_o_chat, ((BOOL)(channel == 0)) && gSavedSettings.getBOOL("FSPlayChatAnimation"));
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// <FS:Zi>
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -26,6 +26,7 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#if 0
|
||||
|
||||
#ifndef LL_LLNEARBYCHATBARLISTENER_H
|
||||
#define LL_LLNEARBYCHATBARLISTENER_H
|
||||
|
|
@ -51,3 +52,4 @@ private:
|
|||
|
||||
#endif // LL_LLNEARBYCHATBARLISTENER_H
|
||||
|
||||
#endif
|
||||
|
|
@ -43,7 +43,10 @@
|
|||
#include "llviewerwindow.h"//for screen channel position
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychatbar.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
#include "llrootview.h"
|
||||
#include "lllayoutstack.h"
|
||||
|
|
@ -528,7 +531,9 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg,
|
|||
// <FS:Ansariel> Optional muted chat history
|
||||
//return;
|
||||
{
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLFloaterNearbyChat>("nearby_chat", LLSD()); // ## Zi - Post merge fixup ##
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
FSFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<FSFloaterNearbyChat>("fs_nearby_chat", LLSD()); // ## Zi - Post merge fixup ##
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
nearby_chat->addMessage(chat_msg, true, args);
|
||||
return;
|
||||
}
|
||||
|
|
@ -559,7 +564,10 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg,
|
|||
|
||||
// ## Zi - Post merge fixup ## // LLFloater* chat_bar = LLFloaterReg::getInstance("chat_bar");
|
||||
// ## Zi - Post merge fixup ## // LLNearbyChat* nearby_chat = chat_bar->findChild<LLNearbyChat>("nearby_chat");
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLFloaterNearbyChat>("nearby_chat", LLSD()); // ## Zi - Post merge fixup ##
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLFloaterNearbyChat>("nearby_chat", LLSD()); // ## Zi - Post merge fixup ##
|
||||
FSFloaterNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<FSFloaterNearbyChat>("fs_nearby_chat", LLSD()); // ## Zi - Post merge fixup ##
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// Build notification data
|
||||
LLSD notification;
|
||||
notification["message"] = chat_msg.mText;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,10 @@
|
|||
|
||||
#include "llavatarname.h"
|
||||
|
||||
class LLIMFloater;
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//class LLIMFloater;
|
||||
class FSFloaterIM;
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
namespace LLNotificationsUI
|
||||
{
|
||||
|
|
@ -415,7 +418,10 @@ private:
|
|||
/**
|
||||
* Find IM floater based on "from_id"
|
||||
*/
|
||||
static LLIMFloater* findIMFloater(const LLNotificationPtr& notification);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//static LLIMFloater* findIMFloater(const LLNotificationPtr& notification);
|
||||
static FSFloaterIM* findIMFloater(const LLNotificationPtr& notification);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
// [SL:KB] - Patch: UI-Notifications | Checked: 2011-04-11 (Catznip-2.5.0a) | Added: Catznip-2.5.0a
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -34,11 +34,17 @@
|
|||
#include "llurlaction.h"
|
||||
|
||||
#include "llagent.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "llimview.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychat.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
#include "llnotificationhandler.h"
|
||||
#include "llnotifications.h"
|
||||
|
|
@ -296,11 +302,17 @@ bool LLHandlerUtil::canSpawnToast(const LLNotificationPtr& notification)
|
|||
}
|
||||
|
||||
// static
|
||||
LLIMFloater* LLHandlerUtil::findIMFloater(const LLNotificationPtr& notification)
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* LLHandlerUtil::findIMFloater(const LLNotificationPtr& notification)
|
||||
FSFloaterIM* LLHandlerUtil::findIMFloater(const LLNotificationPtr& notification)
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
{
|
||||
LLUUID from_id = notification->getPayload()["from_id"];
|
||||
LLUUID session_id = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, from_id);
|
||||
return LLFloaterReg::findTypedInstance<LLIMFloater>("impanel", session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//return LLFloaterReg::findTypedInstance<LLIMFloater>("impanel", session_id);
|
||||
return LLFloaterReg::findTypedInstance<FSFloaterIM>("fs_impanel", session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -308,7 +320,10 @@ bool LLHandlerUtil::isIMFloaterOpened(const LLNotificationPtr& notification)
|
|||
{
|
||||
bool res = false;
|
||||
|
||||
LLIMFloater* im_floater = findIMFloater(notification);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = findIMFloater(notification);
|
||||
FSFloaterIM* im_floater = findIMFloater(notification);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater != NULL)
|
||||
{
|
||||
res = im_floater->getVisible() == TRUE;
|
||||
|
|
@ -321,7 +336,10 @@ bool LLHandlerUtil::isIMFloaterFocused(const LLNotificationPtr& notification)
|
|||
{
|
||||
bool res = false;
|
||||
|
||||
LLIMFloater* im_floater = findIMFloater(notification);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = findIMFloater(notification);
|
||||
FSFloaterIM* im_floater = findIMFloater(notification);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater != NULL)
|
||||
{
|
||||
res = im_floater->hasFocus() == TRUE;
|
||||
|
|
@ -484,7 +502,10 @@ void LLHandlerUtil::logGroupNoticeToIMGroup(
|
|||
// static
|
||||
void LLHandlerUtil::logToNearbyChat(const LLNotificationPtr& notification, EChatSourceType type)
|
||||
{
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
FSFloaterNearbyChat* nearby_chat = FSFloaterNearbyChat::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if(nearby_chat)
|
||||
{
|
||||
LLChat chat_msg(notification->getMessage());
|
||||
|
|
@ -573,7 +594,10 @@ void LLHandlerUtil::addNotifPanelToIM(const LLNotificationPtr& notification)
|
|||
// static
|
||||
void LLHandlerUtil::updateIMFLoaterMesages(const LLUUID& session_id)
|
||||
{
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater != NULL && im_floater->getVisible())
|
||||
{
|
||||
im_floater->updateMessages();
|
||||
|
|
|
|||
|
|
@ -31,7 +31,10 @@
|
|||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychat.h"
|
||||
// #include "llnearbychatbar.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
#include "llnotificationhandler.h"
|
||||
#include "llnotifications.h"
|
||||
|
|
@ -98,7 +101,10 @@ bool LLTipHandler::processNotification(const LLSD& notify)
|
|||
LLHandlerUtil::logToNearbyChat(notification, CHAT_SOURCE_SYSTEM);
|
||||
|
||||
// don't show toast if Nearby Chat is opened
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
FSFloaterNearbyChat* nearby_chat = FSFloaterNearbyChat::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBar* nearby_chat_bar = LLNearbyChatBar::getInstance();
|
||||
// if (!nearby_chat_bar->isMinimized() && nearby_chat_bar->getVisible() && nearby_chat->getVisible())
|
||||
|
|
|
|||
|
|
@ -54,7 +54,10 @@
|
|||
#include "llfloaterreg.h"
|
||||
#include "llfocusmgr.h"
|
||||
#include "llhttpsender.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
#include "lllocationhistory.h"
|
||||
#include "llimageworker.h"
|
||||
|
||||
|
|
@ -65,7 +68,10 @@
|
|||
#include "llmoveview.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychat.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
#include "llnotifications.h"
|
||||
#include "llnotificationsutil.h"
|
||||
|
|
@ -1686,7 +1692,10 @@ LLWorld::getInstance()->addRegion(gFirstSimHandle, gFirstSim, first_sim_size_x,
|
|||
//so I just moved nearby history loading a few states further
|
||||
if (gSavedPerAccountSettings.getBOOL("LogShowHistory"))
|
||||
{
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
FSFloaterNearbyChat* nearby_chat = FSFloaterNearbyChat::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (nearby_chat) nearby_chat->loadHistory();
|
||||
}
|
||||
display_startup();
|
||||
|
|
@ -2532,7 +2541,10 @@ LLWorld::getInstance()->addRegion(gFirstSimHandle, gFirstSim, first_sim_size_x,
|
|||
|
||||
LLAgentPicksInfo::getInstance()->requestNumberOfPicks();
|
||||
|
||||
LLIMFloater::initIMFloater();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater::initIMFloater();
|
||||
FSFloaterIM::initIMFloater();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
display_startup();
|
||||
|
||||
llassert(LLPathfindingManager::getInstance() != NULL);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,10 @@
|
|||
#include "lltrans.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llviewermessage.h"
|
||||
#include "llimfloater.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloater.h"
|
||||
#include "fsfloaterim.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
const S32 BOTTOM_PAD = VPAD * 3;
|
||||
const S32 IGNORE_BTN_TOP_DELTA = 3*VPAD;//additional ignore_btn padding
|
||||
|
|
@ -561,7 +564,10 @@ LLIMToastNotifyPanel::~LLIMToastNotifyPanel()
|
|||
// This may happened when IM floater reloads messages, exactly when user
|
||||
// changes layout of IM chat log(disable/enable plaintext mode).
|
||||
// See EXT-6500
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(mSessionID);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloater* im_floater = LLIMFloater::findInstance(mSessionID);
|
||||
FSFloaterIM* im_floater = FSFloaterIM::findInstance(mSessionID);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_floater != NULL && !im_floater->isDead())
|
||||
{
|
||||
mCloseNotificationOnDestroy = false;
|
||||
|
|
|
|||
|
|
@ -126,7 +126,10 @@
|
|||
#include "llmoveview.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychat.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
// <//FS:Zi>
|
||||
#include "llpanelblockedlist.h"
|
||||
#include "llpanelclassified.h"
|
||||
|
|
@ -153,6 +156,8 @@
|
|||
#include "fscontactsfloater.h"
|
||||
#include "fsfloaterblocklist.h"
|
||||
#include "fsfloatergroup.h"
|
||||
#include "fsfloaterim.h"
|
||||
#include "fsfloaterimcontainer.h"
|
||||
#include "fsfloaterplacedetails.h"
|
||||
#include "fsfloaterprofile.h"
|
||||
#include "fsfloatersearch.h"
|
||||
|
|
@ -224,7 +229,10 @@ void LLViewerFloaterReg::registerFloaters()
|
|||
LLFloaterReg::add("camera", "floater_camera.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCamera>);
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLFloaterReg::add("chat_bar", "floater_chat_bar.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLNearbyChatBar>);
|
||||
LLFloaterReg::add("nearby_chat", "floater_nearby_chat.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNearbyChat>);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterReg::add("nearby_chat", "floater_nearby_chat.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNearbyChat>);
|
||||
LLFloaterReg::add("fs_nearby_chat", "floater_fs_nearby_chat.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterNearbyChat>);
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
|
||||
LLFloaterReg::add("compile_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCompileQueue>);
|
||||
|
|
@ -249,8 +257,12 @@ void LLViewerFloaterReg::registerFloaters()
|
|||
LLFloaterReg::add("help_browser", "floater_help_browser.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHelpBrowser>);
|
||||
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>);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//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("fs_impanel", "floater_fs_im_session.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterIM>);
|
||||
LLFloaterReg::add("fs_im_container", "floater_fs_im_container.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterIMContainer>);
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
LLFloaterReg::add("im_well_window", "floater_sys_well.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIMWellWindow>);
|
||||
LLFloaterReg::add("incoming_call", "floater_incoming_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIncomingCallDialog>);
|
||||
LLFloaterReg::add("inventory", "floater_my_inventory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
#include "llagent.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychatbar.h"
|
||||
#include "llnearbychathub.h"
|
||||
#include "fsnearbychathub.h"
|
||||
// </FS:Zi>
|
||||
|
||||
// Globals
|
||||
|
|
@ -135,7 +135,7 @@ void LLViewerGesture::doTrigger( BOOL send_chat )
|
|||
// with the gesture animation.
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBar::getInstance()->sendChatFromViewer(mOutputString, CHAT_TYPE_NORMAL, FALSE);
|
||||
LLNearbyChat::instance().sendChatFromViewer(mOutputString, CHAT_TYPE_NORMAL, FALSE);
|
||||
FSNearbyChat::instance().sendChatFromViewer(mOutputString, CHAT_TYPE_NORMAL, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
#include "llagentcamera.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychatbar.h"
|
||||
#include "llnearbychathub.h"
|
||||
#include "fsnearbychathub.h"
|
||||
#include "lllineeditor.h"
|
||||
// </FS:Zi>
|
||||
#include "llviewercontrol.h"
|
||||
|
|
@ -582,7 +582,7 @@ void start_chat( EKeystate s )
|
|||
// start chat
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// LLNearbyChatBar::startChat(NULL);
|
||||
LLNearbyChat::instance().showDefaultChatBar(TRUE);
|
||||
FSNearbyChat::instance().showDefaultChatBar(TRUE);
|
||||
// </FS:Zi>
|
||||
}
|
||||
|
||||
|
|
@ -620,7 +620,7 @@ void start_gesture( EKeystate s )
|
|||
// LLNearbyChat::startChat(NULL);
|
||||
//}
|
||||
|
||||
LLNearbyChat::instance().showDefaultChatBar(TRUE,"/");
|
||||
FSNearbyChat::instance().showDefaultChatBar(TRUE,"/");
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,7 +80,10 @@
|
|||
#include <boost/tokenizer.hpp>
|
||||
|
||||
#include "llinventorydefines.h"
|
||||
#include "llimfloatercontainer.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llimfloatercontainer.h"
|
||||
#include "fsfloaterimcontainer.h"
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
|
||||
|
||||
class LLFileEnableUpload : public view_listener_t
|
||||
|
|
@ -662,7 +665,10 @@ class LLFileCloseWindow : public view_listener_t
|
|||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
// If the IM container is focused, try to close the selected tab instead of the container -KC
|
||||
LLIMFloaterContainer* im_container = LLIMFloaterContainer::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLIMFloaterContainer* im_container = LLIMFloaterContainer::getInstance();
|
||||
FSFloaterIMContainer* im_container = FSFloaterIMContainer::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if (im_container && im_container->hasFocus())
|
||||
{
|
||||
LLFloater* floater = im_container->getActiveFloater();
|
||||
|
|
|
|||
|
|
@ -70,7 +70,10 @@
|
|||
#include "llinventorypanel.h"
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychat.h"
|
||||
#include "llfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//#include "llfloaternearbychat.h"
|
||||
#include "fsfloaternearbychat.h"
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
// </FS:Zi>
|
||||
#include "llnotifications.h"
|
||||
#include "llnotificationsutil.h"
|
||||
|
|
@ -2504,7 +2507,10 @@ void god_message_name_cb(const LLAvatarName& av_name, LLChat chat, std::string m
|
|||
// Treat like a system message and put in chat history.
|
||||
chat.mText = av_name.getCompleteName() + ": " + message;
|
||||
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
FSFloaterNearbyChat* nearby_chat = FSFloaterNearbyChat::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if(nearby_chat)
|
||||
{
|
||||
nearby_chat->addMessage(chat);
|
||||
|
|
@ -3298,7 +3304,10 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||
|
||||
// Note: lie to Nearby Chat, pretending that this is NOT an IM, because
|
||||
// IMs from obejcts don't open IM sessions.
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
FSFloaterNearbyChat* nearby_chat = FSFloaterNearbyChat::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if(!chat_from_system && nearby_chat)
|
||||
{
|
||||
chat.mOwnerID = from_id;
|
||||
|
|
@ -7474,7 +7483,10 @@ void notify_cautioned_script_question(const LLSD& notification, const LLSD& resp
|
|||
// [RLVa:KB] - Checked: 2012-07-28 (RLVa-1.4.7)
|
||||
if (caution)
|
||||
{
|
||||
LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//LLFloaterNearbyChat* nearby_chat = LLFloaterNearbyChat::getInstance();
|
||||
FSFloaterNearbyChat* nearby_chat = FSFloaterNearbyChat::getInstance();
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
if(nearby_chat)
|
||||
{
|
||||
LLChat chat_msg(notice.getString());
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@
|
|||
|
||||
// <FS:Zi> Remove floating chat bar
|
||||
// #include "llnearbychat.h"
|
||||
#include "llnearbychathub.h"
|
||||
#include "fsnearbychathub.h"
|
||||
// </FS:Zi>
|
||||
#include "llwindowlistener.h"
|
||||
#include "llviewerwindowlistener.h"
|
||||
|
|
@ -2110,7 +2110,7 @@ void LLViewerWindow::initWorldUI()
|
|||
// <FS:Zi> Autohide main chat bar if applicable
|
||||
BOOL visible=!gSavedSettings.getBOOL("AutohideChatBar");
|
||||
|
||||
LLNearbyChat::instance().showDefaultChatBar(visible);
|
||||
FSNearbyChat::instance().showDefaultChatBar(visible);
|
||||
gSavedSettings.setBOOL("MainChatbarVisible",visible);
|
||||
// </FS:Zi>
|
||||
}
|
||||
|
|
@ -2702,8 +2702,8 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
|
|||
// // cursor with arrow keys, so allow movement
|
||||
// if (chat_editor->getText().empty()
|
||||
// || gSavedSettings.getBOOL("ArrowKeysAlwaysMove"))
|
||||
if(LLNearbyChat::instance().defaultChatBarHasFocus() &&
|
||||
(LLNearbyChat::instance().defaultChatBarIsIdle() ||
|
||||
if(FSNearbyChat::instance().defaultChatBarHasFocus() &&
|
||||
(FSNearbyChat::instance().defaultChatBarIsIdle() ||
|
||||
// <FS:PP> Attempt to speed up things a little
|
||||
// gSavedSettings.getBOOL("ArrowKeysAlwaysMove")))
|
||||
ArrowKeysAlwaysMove))
|
||||
|
|
@ -2782,7 +2782,7 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
|
|||
// LLNearbyChatBar::getInstance()->startChat(NULL);
|
||||
// return TRUE;
|
||||
// }
|
||||
LLNearbyChat::instance().showDefaultChatBar(TRUE);
|
||||
FSNearbyChat::instance().showDefaultChatBar(TRUE);
|
||||
return TRUE;
|
||||
// </FS:Zi>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -590,7 +590,10 @@ bool RlvUIEnabler::canViewRegionProperties()
|
|||
bool RlvUIEnabler::hasOpenIM(const LLUUID& idAgent)
|
||||
{
|
||||
LLUUID idSession = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, idAgent);
|
||||
return (NULL != LLFloaterReg::findInstance("impanel", idSession));
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
//return (NULL != LLFloaterReg::findInstance("impanel", idSession));
|
||||
return (NULL != LLFloaterReg::findInstance("fs_impanel", idSession));
|
||||
// </FS:Ansariel> [FS communication UI]
|
||||
}
|
||||
|
||||
// Checked: 2011-11-04 (RLVa-1.4.4a) | Modified: RLVa-1.4.4a
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@
|
|||
width="80">
|
||||
<commit_callback
|
||||
function="Floater.Toggle"
|
||||
parameter="nearby_chat" />
|
||||
parameter="fs_nearby_chat" />
|
||||
</button>
|
||||
|
||||
<nearby_chat_voice_monitor layout="topleft"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="SAMTALER"/>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="Til" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="Gespräche"/>
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="ls_control_panel">
|
||||
<layout_panel name="gprofile_panel">
|
||||
<button name="group_info_btn" tool_tip="Zeige Gruppenprofil"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="profile_panel">
|
||||
<button name="view_profile_btn" tool_tip="Zeige Einwohnerprofil"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="trans_panel">
|
||||
<button name="translate_btn" tool_tip="Chat mit konfiguriertem Dienst übersetzen"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="friend_panel">
|
||||
<button name="add_friend_btn" tool_tip="Einwohner als Freund hinzufügen"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="tp_panel">
|
||||
<button name="teleport_btn" tool_tip="Teleport anbieten"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="share_panel">
|
||||
<button name="share_btn" tool_tip="Objekt an Einwohner senden"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="pay_panel">
|
||||
<button name="pay_btn" tool_tip="Geld an Einwohner überweisen"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="call_btn_panel">
|
||||
<button name="call_btn" tool_tip="Einwohner über Voice anrufen"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="end_call_btn_panel">
|
||||
<button name="end_call_btn" tool_tip="Anruf beenden"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="voice_ctrls_btn_panel">
|
||||
<button name="voice_ctrls_btn" tool_tip="Anruf-Eigenschaften"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="im_history_btn_panel">
|
||||
<button name="im_history_btn" tool_tip="IM-Protokoll öffnen"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
|
||||
<check_box label="Viewer-Kennung senden" name="FSSupportGroupChatPrefix_toggle" tool_tip="Fügt ein (FS) am Anfang jeder Nachrichtig hinzu, damit die Support-Mitarbeiter wissen, ob sich eine Frage auf Phoenix oder Firestorm bezieht. Da hierdurch eine unnötige Konfusion vermieden wird, wäre nett, diese Option zu aktivieren!"/>
|
||||
<button name="send_sysinfo_btn" tool_tip="System-Informationen übermitteln"/>
|
||||
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="An" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="money_tracker" title="Tip-Tracker" width="250">
|
||||
<chat_history name="money_chat_history" width="248"/>
|
||||
<fs_chat_history name="money_chat_history" width="248"/>
|
||||
<button name="Clear" label="Löschen" width="242"/>
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="nearby_chat" title="Chat in der Nähe">
|
||||
<layout_stack name="main_layout_stack">
|
||||
<layout_panel name="chat_history_and_buttons_panel">
|
||||
<button name="translate_btn" tool_tip="Chat mit konfiguriertem Dienst übersetzen"/>
|
||||
<button name="chat_history_btn" tool_tip="Protokoll für Chat in der Nähe öffnen"/>
|
||||
<button name="chat_history_muted_btn" tool_tip="Ignorierten Chat in Chat in der Nähe anzeigen"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="chat_bar_visibility_panel">
|
||||
<layout_stack name="chat_bar_channel_spinner_layout_stack">
|
||||
<layout_panel name="chat_bar_layout_panel">
|
||||
<line_editor name="chat_box" label="An Chat in der Nähe"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="channel_spinner_visibility_panel">
|
||||
<spinner label="Kanal:" name="ChatChannel" tool_tip="Kanal, an den der Chat gesendet werden soll. Kann unter Einstellungen -> Chat -> Firestorm -> Kanalauswahl in Eingabezeile anzeigen aktiviert werden." label_width="35"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<multi_floater
|
||||
can_close="true"
|
||||
can_minimize="false"
|
||||
can_resize="true"
|
||||
height="390"
|
||||
layout="topleft"
|
||||
name="floater_im_box"
|
||||
save_rect="true"
|
||||
save_visibility="true"
|
||||
save_dock_state="true"
|
||||
single_instance="true"
|
||||
title="Conversations"
|
||||
width="396">
|
||||
<tab_container
|
||||
follows="left|right|top|bottom"
|
||||
height="390"
|
||||
layout="topleft"
|
||||
left="1"
|
||||
name="im_box_tab_container"
|
||||
tab_position="left"
|
||||
tab_drag_commit="true"
|
||||
tab_width="115"
|
||||
tab_max_width = "115"
|
||||
tab_height="20"
|
||||
use_custom_icon_ctrl="false"
|
||||
tab_icon_ctrl_pad="2"
|
||||
halign="left"
|
||||
use_ellipses="true"
|
||||
top="0"
|
||||
width="394">
|
||||
<first_tab
|
||||
tab_bottom_image_flash="Toolbar_Left_Flash"/>
|
||||
<middle_tab
|
||||
tab_bottom_image_flash="Toolbar_Middle_Flash"/>
|
||||
<last_tab
|
||||
tab_bottom_image_flash="Toolbar_Right_Flash"/>
|
||||
</tab_container>
|
||||
<icon
|
||||
color="DefaultShadowLight"
|
||||
enabled="false"
|
||||
follows="left|right|bottom"
|
||||
height="20"
|
||||
image_name="tabarea.tga"
|
||||
layout="bottomleft"
|
||||
left="1"
|
||||
name="im_box_tab_container_icon"
|
||||
bottom="10"
|
||||
width="394" />
|
||||
</multi_floater>
|
||||
|
|
@ -0,0 +1,408 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater
|
||||
legacy_header_height="18"
|
||||
background_visible="true"
|
||||
show_title="true"
|
||||
follows="all"
|
||||
height="350"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="panel_im"
|
||||
top="0"
|
||||
can_dock="false"
|
||||
can_minimize="true"
|
||||
can_close="true"
|
||||
visible="false"
|
||||
width="394"
|
||||
can_resize="true"
|
||||
min_width="250"
|
||||
min_height="150">
|
||||
|
||||
<layout_stack
|
||||
border_size="0"
|
||||
animate="false"
|
||||
follows="top|left"
|
||||
clip="false"
|
||||
height="27"
|
||||
width="200"
|
||||
left_pad="0"
|
||||
layout="topleft"
|
||||
orientation="horizontal"
|
||||
name="ls_control_panel"
|
||||
top="13"
|
||||
left="3">
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
name="slide_panel"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="40"
|
||||
follows="left|top">
|
||||
<button
|
||||
height="20"
|
||||
follows="left|top"
|
||||
top="0"
|
||||
left="5"
|
||||
image_overlay="TabIcon_Open_Off"
|
||||
layout="topleft"
|
||||
width="24"
|
||||
name="slide_left_btn" />
|
||||
<button
|
||||
height="20"
|
||||
follows="left|top"
|
||||
top="0"
|
||||
left="5"
|
||||
image_overlay="TabIcon_Close_Off"
|
||||
width="24"
|
||||
name="slide_right_btn" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
name="gprofile_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
name="group_info_btn"
|
||||
follows="left|top"
|
||||
top="0"
|
||||
height="20"
|
||||
width="24"
|
||||
left_delta="5"
|
||||
image_overlay="profile_icon_24x24"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Show this group's profile"/>
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
name="profile_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
name="view_profile_btn"
|
||||
follows="left|top"
|
||||
top="0"
|
||||
height="20"
|
||||
width="24"
|
||||
left_delta="5"
|
||||
image_overlay="profile_icon_24x24"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Show this resident's profile" />
|
||||
</layout_panel>
|
||||
|
||||
|
||||
<!-- Ansariel: Translation of IMs is currently not available
|
||||
<layout_panel
|
||||
name="trans_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="20"
|
||||
width="20"
|
||||
follows="left|top">
|
||||
<button
|
||||
follows="left|top"
|
||||
top="0"
|
||||
width="24"
|
||||
height="24"
|
||||
image_overlay="TabIcon_Translate_Off"
|
||||
control_name="TranslateChat"
|
||||
is_toggle="true"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Use selected translation service"
|
||||
name="translate_btn"/>
|
||||
</layout_panel>
|
||||
-->
|
||||
|
||||
<layout_panel
|
||||
name="friend_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
follows="left|top"
|
||||
height="20"
|
||||
top="0"
|
||||
left_delta="5"
|
||||
image_overlay="friends_icon_24x24"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Add this resident as a friend"
|
||||
name="add_friend_btn"
|
||||
width="24" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
name="tp_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
follows="left|top"
|
||||
top="0"
|
||||
height="20"
|
||||
left_delta="5"
|
||||
image_overlay="teleport_icon_24x24"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Summon / Teleport this resident"
|
||||
name="teleport_btn"
|
||||
width="24" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
name="share_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
follows="left|top"
|
||||
top="0"
|
||||
height="20"
|
||||
left_delta="5"
|
||||
image_overlay="gift_icon_24x24"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Send an item to this resident"
|
||||
name="share_btn"
|
||||
width="24" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
name="pay_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
follows="left|top"
|
||||
top="0"
|
||||
height="20"
|
||||
left_delta="5"
|
||||
image_overlay="sale_icon_24x24"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Send money to this resident"
|
||||
name="pay_btn"
|
||||
width="24" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
name="call_btn_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
follows="left|top"
|
||||
height="20"
|
||||
left_delta="5"
|
||||
image_overlay="call_icon_24x24"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Add a voice to this chat"
|
||||
name="call_btn"
|
||||
top="0"
|
||||
width="24" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
name="end_call_btn_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
follows="left|top"
|
||||
height="20"
|
||||
left_delta="5"
|
||||
image_overlay="call_end_icon_24x24"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="End Voice Call"
|
||||
name="end_call_btn"
|
||||
top="0"
|
||||
width="24" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
name="voice_ctrls_btn_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
follows="left|top"
|
||||
height="20"
|
||||
left_delta="10"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Voice Properties"
|
||||
image_overlay="VoicePTT_Off"
|
||||
name="voice_ctrls_btn"
|
||||
top="0"
|
||||
width="24" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
name="im_history_btn_panel"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
layout="topleft"
|
||||
height="24"
|
||||
width="27"
|
||||
follows="left|top">
|
||||
<button
|
||||
follows="left|top"
|
||||
height="20"
|
||||
left_delta="5"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Open this Instant Message's past history."
|
||||
image_overlay="List_View_On"
|
||||
name="im_history_btn"
|
||||
top="0"
|
||||
width="25" />
|
||||
</layout_panel>
|
||||
|
||||
</layout_stack>
|
||||
|
||||
<!-- Checkbox for FS prefix on support groups -->
|
||||
<check_box
|
||||
visible="true"
|
||||
control_name="FSSupportGroupChatPrefix2"
|
||||
follows="left|top"
|
||||
height="18"
|
||||
label="Specify viewer type"
|
||||
layout="topleft"
|
||||
left_pad="-50"
|
||||
name="FSSupportGroupChatPrefix_toggle"
|
||||
tab_group="5"
|
||||
tool_tip="Add (FS) in front of your messages to help support staff understand whether your question pertains to Phoenix or Firestorm. Your help avoiding confusion is greatly appreciated!"
|
||||
width="150" />
|
||||
<!-- END: FS Prefix -->
|
||||
<!--button for sending sys info-->
|
||||
<button
|
||||
follows="right|top"
|
||||
height="20"
|
||||
image_pressed="Info_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Send System Info"
|
||||
image_overlay="Info_Off"
|
||||
name="send_sysinfo_btn"
|
||||
left_delta="0"
|
||||
right="-35"
|
||||
tab_group="5"
|
||||
width="24" />
|
||||
<!--End sys info button-->
|
||||
<layout_stack
|
||||
animate="false"
|
||||
follows="all"
|
||||
height="308"
|
||||
width="394"
|
||||
layout="topleft"
|
||||
orientation="horizontal"
|
||||
name="im_panels"
|
||||
top="40"
|
||||
left="0">
|
||||
<layout_panel
|
||||
name="im_control_panel_holder"
|
||||
min_width="115"
|
||||
width="150"
|
||||
height="320"
|
||||
auto_resize="false"
|
||||
user_resize="true">
|
||||
<panel
|
||||
name="panel_im_control_panel"
|
||||
layout="topleft"
|
||||
height="320"
|
||||
width="150"
|
||||
follows="all"/>
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
name="panel_im_control_lp"
|
||||
left="0"
|
||||
top="0"
|
||||
height="200"
|
||||
width="244"
|
||||
user_resize="true">
|
||||
|
||||
<fs_chat_history
|
||||
font="SansSerifSmall"
|
||||
follows="left|right|top|bottom"
|
||||
height="170"
|
||||
name="chat_history"
|
||||
parse_highlights="true"
|
||||
parse_urls="true"
|
||||
left="3"
|
||||
width="238">
|
||||
</fs_chat_history>
|
||||
<line_editor
|
||||
bottom="0"
|
||||
left="3"
|
||||
follows="left|right|bottom"
|
||||
font="SansSerifSmall"
|
||||
height="20"
|
||||
label="To"
|
||||
layout="bottomleft"
|
||||
select_on_focus="true"
|
||||
name="chat_editor"
|
||||
spellcheck="true"
|
||||
tab_group="1"
|
||||
width="238">
|
||||
</line_editor>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
can_minimize="true"
|
||||
can_close="true"
|
||||
can_drag_on_left="false">
|
||||
<chat_history
|
||||
<fs_chat_history
|
||||
font="SansSerifSmall"
|
||||
follows="left|right|top|bottom"
|
||||
height="155"
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
parse_urls="true"
|
||||
left="1"
|
||||
width="198">
|
||||
</chat_history>
|
||||
</fs_chat_history>
|
||||
<button
|
||||
name="Clear"
|
||||
label="Clear"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,213 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater
|
||||
legacy_header_height="18"
|
||||
background_visible="true"
|
||||
default_tab_group="1"
|
||||
follows="all"
|
||||
height="225"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="nearby_chat"
|
||||
title="Nearby Chat"
|
||||
top="0"
|
||||
can_dock="false"
|
||||
can_close="true"
|
||||
can_minimize="false"
|
||||
can_tear_off="true"
|
||||
single_instance="true"
|
||||
save_rect="true"
|
||||
save_visibility="true"
|
||||
save_dock_state="true"
|
||||
save_tearoff_state="true"
|
||||
visible="false"
|
||||
width="394"
|
||||
can_resize="true"
|
||||
min_width="250"
|
||||
min_height="150">
|
||||
|
||||
<layout_stack
|
||||
border_size="0"
|
||||
follows="all"
|
||||
height="203"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="main_layout_stack"
|
||||
orientation="vertical"
|
||||
top="20"
|
||||
width="394">
|
||||
|
||||
<layout_panel
|
||||
follows="all"
|
||||
height="200"
|
||||
layout="topleft"
|
||||
name="chat_history_and_buttons_panel"
|
||||
right="394"
|
||||
user_resize="false">
|
||||
|
||||
<button
|
||||
height="20"
|
||||
follows="left|top"
|
||||
top="0"
|
||||
left="2"
|
||||
image_overlay="TabIcon_Open_Off"
|
||||
layout="topleft"
|
||||
width="25"
|
||||
name="slide_left_btn" />
|
||||
<button
|
||||
height="20"
|
||||
follows="left|top"
|
||||
top_delta="0"
|
||||
left="2"
|
||||
image_overlay="TabIcon_Close_Off"
|
||||
layout="topleft"
|
||||
width="25"
|
||||
name="slide_right_btn" />
|
||||
<button
|
||||
height="20"
|
||||
follows="left|top"
|
||||
top_delta="0"
|
||||
left="2"
|
||||
image_overlay="TabIcon_Translate_Off"
|
||||
layout="topleft"
|
||||
width="25"
|
||||
control_name="TranslateChat"
|
||||
is_toggle="true"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Use selected translation service"
|
||||
name="translate_btn"/>
|
||||
<button
|
||||
height="20"
|
||||
follows="left|top"
|
||||
left_pad="2"
|
||||
image_overlay="List_View_On"
|
||||
layout="topleft"
|
||||
width="25"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Open the nearby chat history."
|
||||
name="chat_history_btn"/>
|
||||
<button
|
||||
height="20"
|
||||
follows="left|top"
|
||||
left_pad="2"
|
||||
image_overlay="Muted_Chat"
|
||||
layout="topleft"
|
||||
width="25"
|
||||
control_name="FSShowMutedChatHistory"
|
||||
image_pressed="PushButton_Press"
|
||||
image_pressed_selected="PushButton_Selected_Press"
|
||||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Shows the muted chat in nearby chat history."
|
||||
name="chat_history_muted_btn">
|
||||
<button.commit_callback
|
||||
function="ToggleControl"
|
||||
parameter="FSShowMutedChatHistory"/>
|
||||
</button>
|
||||
<fs_chat_history
|
||||
invisibility_control="FSShowMutedChatHistory"
|
||||
top_pad="4"
|
||||
font="SansSerifSmall"
|
||||
follows="all"
|
||||
height="174"
|
||||
mouse_opaque="false"
|
||||
name="chat_history"
|
||||
parse_highlights="true"
|
||||
parse_urls="true"
|
||||
layout="topleft"
|
||||
left="2"
|
||||
right="-2" />
|
||||
<fs_chat_history
|
||||
visibility_control="FSShowMutedChatHistory"
|
||||
top_delta="0"
|
||||
font="SansSerifSmall"
|
||||
follows="all"
|
||||
height="174"
|
||||
mouse_opaque="false"
|
||||
name="chat_history_muted"
|
||||
parse_highlights="true"
|
||||
parse_urls="true"
|
||||
layout="topleft"
|
||||
left="2"
|
||||
right="-2" />
|
||||
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
follows="all"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
name="chat_bar_visibility_panel"
|
||||
right="394"
|
||||
user_resize="false"
|
||||
visible="true">
|
||||
|
||||
<layout_stack
|
||||
orientation="horizontal"
|
||||
border_size="0"
|
||||
follows="left|right|bottom"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
name="chat_bar_channel_spinner_layout_stack"
|
||||
right="-2"
|
||||
top_pad="0">
|
||||
|
||||
<layout_panel
|
||||
follows="all"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
name="chat_bar_layout_panel"
|
||||
user_resize="false"
|
||||
width="300">
|
||||
|
||||
<fs_nearby_chat_control
|
||||
layout="topleft"
|
||||
top="0"
|
||||
left="3"
|
||||
right="-1"
|
||||
follows="all"
|
||||
font="SansSerifSmall"
|
||||
height="20"
|
||||
label="To nearby chat"
|
||||
name="chat_box"
|
||||
spellcheck="true"
|
||||
tab_group="3" />
|
||||
</layout_panel>
|
||||
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
follows="all"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
name="channel_spinner_visibility_panel"
|
||||
user_resize="false"
|
||||
visible="true"
|
||||
width="90">
|
||||
|
||||
<spinner
|
||||
layout="topleft"
|
||||
top="0"
|
||||
left="0"
|
||||
width="90"
|
||||
decimal_digits="0"
|
||||
follows="all"
|
||||
height="20"
|
||||
increment="1.00"
|
||||
initial_value="0"
|
||||
label="Chan"
|
||||
label_width="29"
|
||||
max_val="2147483647"
|
||||
min_val="-2147483647"
|
||||
mouse_opaque="true"
|
||||
name="ChatChannel"
|
||||
tool_tip="Channel to send chat on. Enabled in Preferences -> Chat -> Firestorm -> Show channel selection in chat bar." />
|
||||
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
|
||||
</floater>
|
||||
|
|
@ -379,7 +379,7 @@
|
|||
width="244"
|
||||
user_resize="true">
|
||||
|
||||
<chat_history
|
||||
<fs_chat_history
|
||||
font="SansSerifSmall"
|
||||
follows="left|right|top|bottom"
|
||||
height="170"
|
||||
|
|
@ -388,7 +388,7 @@
|
|||
parse_urls="true"
|
||||
left="3"
|
||||
width="238">
|
||||
</chat_history>
|
||||
</fs_chat_history>
|
||||
<line_editor
|
||||
bottom="0"
|
||||
left="3"
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@
|
|||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Open the nearby chat history."
|
||||
name="chat_history_btn"/>
|
||||
<chat_history
|
||||
<fs_chat_history
|
||||
font="SansSerifSmall"
|
||||
follows="left|right|top|bottom"
|
||||
height="255"
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
parse_urls="true"
|
||||
left="1"
|
||||
width="250">
|
||||
</chat_history>
|
||||
</fs_chat_history>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@
|
|||
function="ToggleControl"
|
||||
parameter="FSShowMutedChatHistory"/>
|
||||
</button>
|
||||
<chat_history
|
||||
<fs_chat_history
|
||||
invisibility_control="FSShowMutedChatHistory"
|
||||
top_pad="4"
|
||||
font="SansSerifSmall"
|
||||
|
|
@ -119,7 +119,7 @@
|
|||
layout="topleft"
|
||||
left="2"
|
||||
right="-2" />
|
||||
<chat_history
|
||||
<fs_chat_history
|
||||
visibility_control="FSShowMutedChatHistory"
|
||||
top_delta="0"
|
||||
font="SansSerifSmall"
|
||||
|
|
@ -162,7 +162,7 @@
|
|||
user_resize="false"
|
||||
width="300">
|
||||
|
||||
<nearby_chat_control
|
||||
<fs_nearby_chat_control
|
||||
layout="topleft"
|
||||
top="0"
|
||||
left="3"
|
||||
|
|
|
|||
|
|
@ -481,10 +481,10 @@
|
|||
use_mac_ctrl="true">
|
||||
<menu_item_check.on_check
|
||||
function="Floater.Visible"
|
||||
parameter="nearby_chat" />
|
||||
parameter="fs_nearby_chat" />
|
||||
<menu_item_check.on_click
|
||||
function="Floater.Toggle"
|
||||
parameter="nearby_chat" />
|
||||
parameter="fs_nearby_chat" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="People"
|
||||
|
|
@ -503,10 +503,10 @@
|
|||
use_mac_ctrl="true">
|
||||
<menu_item_check.on_check
|
||||
function="Floater.Visible"
|
||||
parameter="im_container" />
|
||||
parameter="fs_im_container" />
|
||||
<menu_item_check.on_click
|
||||
function="Floater.ToggleOrBringToFront"
|
||||
parameter="im_container" />
|
||||
parameter="fs_im_container" />
|
||||
</menu_item_check>
|
||||
|
||||
<menu_item_separator/>
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
layout="topleft"
|
||||
name="chat_history_lp"
|
||||
width="318">
|
||||
<chat_history
|
||||
<fs_chat_history
|
||||
bg_readonly_color="ChatHistoryBgColor"
|
||||
bg_writeable_color="ChatHistoryBgColor"
|
||||
follows="all"
|
||||
|
|
|
|||
|
|
@ -219,7 +219,7 @@
|
|||
width="80">
|
||||
<commit_callback
|
||||
function="Floater.Toggle"
|
||||
parameter="nearby_chat" />
|
||||
parameter="fs_nearby_chat" />
|
||||
</button>
|
||||
|
||||
<nearby_chat_voice_monitor layout="topleft"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<fs_chat_history
|
||||
message_header="panel_chat_header.xml"
|
||||
message_separator="panel_chat_separator.xml"
|
||||
left_text_pad="10"
|
||||
right_text_pad="15"
|
||||
left_widget_pad="0"
|
||||
right_widget_pad="10"
|
||||
top_separator_pad="1"
|
||||
bottom_separator_pad="1"
|
||||
top_header_pad="12"
|
||||
bottom_header_pad="5"
|
||||
max_length="67108864"
|
||||
track_bottom="true"
|
||||
name="chat_history"
|
||||
type="string"
|
||||
word_wrap="true"
|
||||
line_spacing.multiple="1.0"
|
||||
font="SansSerif">
|
||||
<more_chat_text
|
||||
mouse_opaque="true"
|
||||
parse_urls="false"
|
||||
word_wrap="true"
|
||||
/>
|
||||
</fs_chat_history>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<line_editor max_length_bytes="3000">
|
||||
</line_editor>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="CONVERSACIONES"/>
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="ls_control_panel">
|
||||
<layout_panel name="gprofile_panel">
|
||||
<button name="group_info_btn" tool_tip="Mostrar el perfil de este grupo"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="profile_panel">
|
||||
<button name="view_profile_btn" tool_tip="Mostrar el perfil de este residente"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="trans_panel">
|
||||
<button tool_tip="Usar el servicio de traducción de Google" name="translate_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="friend_panel">
|
||||
<button tool_tip="Ofrecer amistad a este residente" name="add_friend_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="tp_panel">
|
||||
<button tool_tip="Convocar / Ofrecer teleporte a este residente" name="teleport_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="share_panel">
|
||||
<button tool_tip="Enviar un elemento de tu inventario a este residente" name="share_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="pay_panel">
|
||||
<button tool_tip="Enviar dinero a este residente" name="pay_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="call_btn_panel">
|
||||
<button tool_tip="Añadir voz a este chat" name="call_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="end_call_btn_panel">
|
||||
<button tool_tip="Finalizar llamada de voz" name="end_call_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="voice_ctrls_btn_panel">
|
||||
<button tool_tip="Controles de voz" name="voice_ctrls_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="im_history_btn_panel">
|
||||
<button tool_tip="Abre el historial de chat con este residente o grupo" name="im_history_btn"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<check_box label="Especificar visor" name="FSSupportGroupChatPrefix_toggle" tool_tip="Añade (FS) al principio de tus mensajes para ayudar al equipo de soporte a determinar si tu pregunta se refiere a Phoenix o a Firestorm. ¡Se agradece tu ayuda para evitar confusiones!"/>
|
||||
<button tool_tip="Enviar información de tu sistema" name="send_sysinfo_btn"/>
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="A" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="nearby_chat" title="Chat local">
|
||||
<layout_stack name="main_layout_stack">
|
||||
<layout_panel name="chat_history_and_buttons_panel">
|
||||
<button tool_tip="Usar el servicio de traducción seleccionado" name="translate_btn"/>
|
||||
<button tool_tip="Abre la pestaña de chat local." name="chat_history_btn"/>
|
||||
<button tool_tip="Muestra el chat silenciado en la pestaña de chat local." name="chat_history_muted_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="chat_bar_visibility_panel">
|
||||
<layout_stack name="chat_bar_channel_spinner_layout_stack">
|
||||
<layout_panel name="chat_bar_layout_panel">
|
||||
<fs_nearby_chat_control label="Decir en el chat local" name="chat_box"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="channel_spinner_visibility_panel" width="95">
|
||||
<spinner width="95" label="Canal" label_width="34" name="ChatChannel" tool_tip="Canal al que enviar el chat. Activado en Preferencias -> Chat -> Firestorm -> Mostrar selector de canal en la barra de chat."/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
<layout_panel name="chat_bar_visibility_panel">
|
||||
<layout_stack name="chat_bar_channel_spinner_layout_stack">
|
||||
<layout_panel name="chat_bar_layout_panel">
|
||||
<nearby_chat_control label="Decir en el chat local" name="chat_box"/>
|
||||
<fs_nearby_chat_control label="Decir en el chat local" name="chat_box"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="channel_spinner_visibility_panel" width="95">
|
||||
<spinner width="95" label="Canal" label_width="34" name="ChatChannel" tool_tip="Canal al que enviar el chat. Activado en Preferencias -> Chat -> Firestorm -> Mostrar selector de canal en la barra de chat."/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="CONVERSATIONS"/>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="À" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="CONVERSAZIONI"/>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="ls_control_panel">
|
||||
<layout_panel name="gprofile_panel">
|
||||
<button name="group_info_btn" tool_tip="Mostra profilo di questo gruppo"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="profile_panel">
|
||||
<button name="view_profile_btn" tool_tip="Mostra profilo di questo residente"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="friend_panel">
|
||||
<button name="add_friend_btn" tool_tip="Aggiungi residente alla tua lista amici"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="tp_panel">
|
||||
<button name="teleport_btn" tool_tip="Offri Teleport al residente/Evoca residente!"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="share_panel">
|
||||
<button name="share_btn" tool_tip="Invia oggetti a questo residente"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="pay_panel">
|
||||
<button name="pay_btn" tool_tip="Invia denaro a questo residente"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="call_btn_panel">
|
||||
<button name="call_btn" tool_tip="Avvia conversazione in voice con questo residente"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="end_call_btn_panel">
|
||||
<button name="end_call_btn" tool_tip="Termina chiamata"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="voice_ctrls_btn_panel">
|
||||
<button name="voice_ctrls_btn" tool_tip="Funzioni vocali"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="im_history_btn_panel">
|
||||
<button name="im_history_btn" tool_tip="Apri cronologia di questo IM"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<check_box label="Mostra il viewer in chat" name="FSSupportGroupChatPrefix_toggle" tool_tip="Aggiunge (FS) all'inizio dei vostri messaggi per facilitare gli helper del gruppo ad aiutarvi, e soprattutto per capire subito se il problema riguarda Firestorm o Phoenix. Spuntandola ci aiuterete ad aiutarvi! Ed è cosa buona e giusta!"/>
|
||||
<button tool_tip="Invia informazioni del sistema" name="send_sysinfo_btn"/>
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="A" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="会話"/>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="宛先" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="Rozmowy"/>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="ls_control_panel">
|
||||
<layout_panel name="gprofile_panel">
|
||||
<button name="group_info_btn" tool_tip="Pokaż profil tej grupy"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="profile_panel">
|
||||
<button name="view_profile_btn" tool_tip="Pokaż profil tego rezydenta"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="friend_panel">
|
||||
<button name="add_friend_btn" tool_tip="Dodaj tego rezydenta do znajomych"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="tp_panel">
|
||||
<button name="teleport_btn" tool_tip="Zaoferuj teleportację do siebie temu rezydentowi"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="share_panel">
|
||||
<button name="share_btn" tool_tip="Wyślij przedmiot temu rezydentowi"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="pay_panel">
|
||||
<button name="pay_btn" tool_tip="Wyślij pieniądze temu rezydentowi"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="call_btn_panel">
|
||||
<button name="call_btn" tool_tip="Dodaj rozmowę głosową do tego czata"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="end_call_btn_panel">
|
||||
<button name="end_call_btn" tool_tip="Zakończ rozmowę głosową"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="voice_ctrls_btn_panel">
|
||||
<button name="voice_ctrls_btn" tool_tip="Właściwości głosu"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="im_history_btn_panel">
|
||||
<button name="im_history_btn" tool_tip="Otwórz historię konwersacji"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<check_box label="Dodawaj typ Przeglądarki" name="FSSupportGroupChatPrefix_toggle" tool_tip="Dodaje (FS) na początku Twoich wiadomości aby pomóc grupie wsparcia dowiedzieć się, czy Twój problem dotyczy Firestorma / Phoenixa. Twoja pomoc w unikaniu zamieszania jest mile widziana!"/>
|
||||
<button tool_tip="Wyślij info systemowe" name="send_sysinfo_btn"/>
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="Do" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="nearby_chat" title="Czat lokalny">
|
||||
<layout_stack name="main_layout_stack">
|
||||
<layout_panel name="chat_history_and_buttons_panel">
|
||||
<button tool_tip="Użyj zdefiniowanej wcześniej usługi tłumaczącej" name="translate_btn"/>
|
||||
<button tool_tip="Otwórz historię czatu lokalnego." name="chat_history_btn"/>
|
||||
<button tool_tip="Pokazuj wyciszone wiadomości w oknie historii czatu lokalnego." name="chat_history_muted_btn"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="chat_bar_visibility_panel">
|
||||
<layout_stack name="chat_bar_channel_spinner_layout_stack">
|
||||
<layout_panel name="chat_bar_layout_panel">
|
||||
<fs_nearby_chat_control label="Na czat lokalny" name="chat_box"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="channel_spinner_visibility_panel">
|
||||
<spinner label="Kan." name="ChatChannel" tool_tip="Kanał, na jaki wiadomość na zostać wysłana. Włączone w Ustawienia -> Czat -> Firestorm -> Oferuj ręczny wybór kanału w pasku czatu."/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
<layout_panel name="chat_bar_visibility_panel">
|
||||
<layout_stack name="chat_bar_channel_spinner_layout_stack">
|
||||
<layout_panel name="chat_bar_layout_panel">
|
||||
<nearby_chat_control label="Na czat lokalny" name="chat_box"/>
|
||||
<fs_nearby_chat_control label="Na czat lokalny" name="chat_box"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="channel_spinner_visibility_panel">
|
||||
<spinner label="Kan." name="ChatChannel" tool_tip="Kanał, na jaki wiadomość na zostać wysłana. Włączone w Ustawienia -> Czat -> Firestorm -> Oferuj ręczny wybór kanału w pasku czatu."/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="CONVERSAS"/>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="Para" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="ОБЩЕНИЕ"/>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="Кому" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
image_selected="PushButton_Selected_Press"
|
||||
tool_tip="Использовать переводчик Google"
|
||||
name="translate_btn"/>
|
||||
<chat_history
|
||||
<fs_chat_history
|
||||
font="SansSerifSmall"
|
||||
follows="left|right|top|bottom"
|
||||
height="255"
|
||||
|
|
@ -83,7 +83,7 @@
|
|||
parse_urls="true"
|
||||
left="1"
|
||||
width="250">
|
||||
</chat_history>
|
||||
</fs_chat_history>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<fs_chat_history
|
||||
message_header="panel_chat_header.xml"
|
||||
message_separator="panel_chat_separator.xml"
|
||||
left_text_pad="10"
|
||||
right_text_pad="15"
|
||||
left_widget_pad="0"
|
||||
right_widget_pad="10"
|
||||
top_separator_pad="1"
|
||||
bottom_separator_pad="1"
|
||||
top_header_pad="12"
|
||||
bottom_header_pad="5"
|
||||
max_length="67108864"
|
||||
track_bottom="true"
|
||||
name="chat_history"
|
||||
type="string"
|
||||
word_wrap="true"
|
||||
line_spacing.multiple="1.0"
|
||||
font="SansSerif">
|
||||
<more_chat_text
|
||||
mouse_opaque="true"
|
||||
parse_urls="false"
|
||||
word_wrap="true"
|
||||
/>
|
||||
</fs_chat_history>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="SOHBETLER"/>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="panel_im">
|
||||
<layout_stack name="im_panels">
|
||||
<layout_panel name="panel_im_control_lp">
|
||||
<line_editor label="Kime" name="chat_editor"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<multi_floater name="floater_im_box" title="交談"/>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue