merging into latest changes
|
|
@ -410,8 +410,8 @@ void LLFolderViewItem::selectItem(void)
|
|||
{
|
||||
if (mIsSelected == FALSE)
|
||||
{
|
||||
getViewModelItem()->selectItem();
|
||||
mIsSelected = TRUE;
|
||||
getViewModelItem()->selectItem();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -260,7 +260,7 @@ public:
|
|||
|
||||
// virtual void handleDropped();
|
||||
virtual void draw();
|
||||
void drawOpenFolderArrow(const Params& default_params, const LLUIColor& fg_color);
|
||||
virtual void drawOpenFolderArrow(const Params& default_params, const LLUIColor& fg_color);
|
||||
void drawHighlight(const BOOL showContent, const BOOL hasKeyboardFocus, const LLUIColor &bgColor, const LLUIColor &outlineColor, const LLUIColor &mouseOverColor);
|
||||
void drawLabel(const LLFontGL * font, const F32 x, const F32 y, const LLColor4& color, F32 &right_x);
|
||||
virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
|
||||
|
|
|
|||
|
|
@ -133,6 +133,7 @@ BOOL LLConversationViewSession::postBuild()
|
|||
LLGroupIconCtrl* icon = mItemPanel->getChild<LLGroupIconCtrl>("group_icon");
|
||||
icon->setVisible(true);
|
||||
mSpeakingIndicator->setSpeakerId(gAgentID, vmi->getUUID(), true);
|
||||
break;
|
||||
}
|
||||
case LLConversationItem::CONV_SESSION_GROUP:
|
||||
{
|
||||
|
|
@ -202,6 +203,17 @@ void LLConversationViewSession::draw()
|
|||
LLView::draw();
|
||||
}
|
||||
|
||||
BOOL LLConversationViewSession::handleMouseDown( S32 x, S32 y, MASK mask )
|
||||
{
|
||||
LLConversationItem* item = dynamic_cast<LLConversationItem *>(getViewModelItem());
|
||||
LLUUID session_id = item? item->getUUID() : LLUUID();
|
||||
|
||||
(LLFloaterReg::getTypedInstance<LLIMFloaterContainer>("im_container"))->
|
||||
selectConversationPair(session_id, false);
|
||||
|
||||
return LLFolderViewFolder::handleMouseDown(x, y, mask);
|
||||
}
|
||||
|
||||
// virtual
|
||||
S32 LLConversationViewSession::arrange(S32* width, S32* height)
|
||||
{
|
||||
|
|
@ -232,29 +244,6 @@ void LLConversationViewSession::toggleOpen()
|
|||
}
|
||||
}
|
||||
|
||||
void LLConversationViewSession::selectItem()
|
||||
{
|
||||
|
||||
LLConversationItem* item = dynamic_cast<LLConversationItem*>(mViewModelItem);
|
||||
LLFloater* session_floater = LLIMConversation::getConversation(item->getUUID());
|
||||
LLMultiFloater* host_floater = session_floater->getHost();
|
||||
|
||||
if (host_floater == mContainer)
|
||||
{
|
||||
// Always expand the message pane if the panel is hosted by the container
|
||||
mContainer->collapseMessagesPane(false);
|
||||
// Switch to the conversation floater that is being selected
|
||||
mContainer->selectFloater(session_floater);
|
||||
}
|
||||
|
||||
// Set the focus on the selected floater
|
||||
session_floater->setFocus(TRUE);
|
||||
// Store the active session
|
||||
LLIMFloaterContainer::getInstance()->setSelectedSession(item->getUUID());
|
||||
|
||||
|
||||
LLFolderViewItem::selectItem();
|
||||
}
|
||||
|
||||
void LLConversationViewSession::toggleMinimizedMode(bool is_minimized)
|
||||
{
|
||||
|
|
@ -343,6 +332,15 @@ void LLConversationViewSession::onCurrentVoiceSessionChanged(const LLUUID& sessi
|
|||
}
|
||||
}
|
||||
|
||||
void LLConversationViewSession::drawOpenFolderArrow(const LLFolderViewItem::Params& default_params, const LLUIColor& fg_color)
|
||||
{
|
||||
LLConversationItem * itemp = dynamic_cast<LLConversationItem*>(getViewModelItem());
|
||||
if (itemp && itemp->getType() != LLConversationItem::CONV_SESSION_1_ON_1)
|
||||
{
|
||||
LLFolderViewFolder::drawOpenFolderArrow(default_params, fg_color);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Implementation of conversations list participant (avatar) widgets
|
||||
//
|
||||
|
|
@ -431,31 +429,6 @@ void LLConversationViewParticipant::draw()
|
|||
LLView::draw();
|
||||
}
|
||||
|
||||
void LLConversationViewParticipant::selectItem()
|
||||
{
|
||||
LLConversationItem* vmi = this->getParentFolder() ? static_cast<LLConversationItem*>(this->getParentFolder()->getViewModelItem()) : NULL;
|
||||
LLIMFloaterContainer* container = LLIMFloaterContainer::getInstance();
|
||||
LLFloater* session_floater;
|
||||
|
||||
if(vmi)
|
||||
{
|
||||
session_floater = LLIMConversation::getConversation(vmi->getUUID());
|
||||
|
||||
//Only execute when switching floaters (conversations)
|
||||
if(vmi->getUUID() != container->getSelectedSession())
|
||||
{
|
||||
container->selectFloater(session_floater);
|
||||
// Store the active session
|
||||
container->setSelectedSession(vmi->getUUID());
|
||||
}
|
||||
|
||||
//Redirect focus to the conversation floater
|
||||
session_floater->setFocus(TRUE);
|
||||
}
|
||||
|
||||
LLFolderViewItem::selectItem();
|
||||
}
|
||||
|
||||
void LLConversationViewParticipant::refresh()
|
||||
{
|
||||
// Refresh the participant view from its model data
|
||||
|
|
@ -504,6 +477,23 @@ void LLConversationViewParticipant::onMouseLeave(S32 x, S32 y, MASK mask)
|
|||
LLFolderViewItem::onMouseLeave(x, y, mask);
|
||||
}
|
||||
|
||||
BOOL LLConversationViewParticipant::handleMouseDown( S32 x, S32 y, MASK mask )
|
||||
{
|
||||
LLConversationItem* item = NULL;
|
||||
LLConversationViewSession* session_widget =
|
||||
dynamic_cast<LLConversationViewSession *>(this->getParentFolder());
|
||||
if (session_widget)
|
||||
{
|
||||
item = dynamic_cast<LLConversationItem*>(session_widget->getViewModelItem());
|
||||
}
|
||||
LLUUID session_id = item? item->getUUID() : LLUUID();
|
||||
|
||||
(LLFloaterReg::getTypedInstance<LLIMFloaterContainer>("im_container"))->
|
||||
selectConversationPair(session_id, false);
|
||||
|
||||
return LLFolderViewItem::handleMouseDown(x, y, mask);
|
||||
}
|
||||
|
||||
S32 LLConversationViewParticipant::getLabelXPos()
|
||||
{
|
||||
return mAvatarIcon->getRect().mRight + mIconPad;
|
||||
|
|
|
|||
|
|
@ -60,10 +60,10 @@ protected:
|
|||
|
||||
public:
|
||||
virtual ~LLConversationViewSession();
|
||||
virtual void selectItem();
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void draw();
|
||||
/*virtual*/ BOOL handleMouseDown( S32 x, S32 y, MASK mask );
|
||||
|
||||
/*virtual*/ S32 arrange(S32* width, S32* height);
|
||||
|
||||
|
|
@ -71,6 +71,8 @@ public:
|
|||
|
||||
/*virtual*/ bool isMinimized() { return mMinimizedMode; }
|
||||
|
||||
/*virtual*/ void drawOpenFolderArrow(const LLFolderViewItem::Params& default_params, const LLUIColor& fg_color);
|
||||
|
||||
void toggleMinimizedMode(bool is_minimized);
|
||||
|
||||
void setVisibleIfDetached(BOOL visible);
|
||||
|
|
@ -115,11 +117,13 @@ public:
|
|||
};
|
||||
|
||||
virtual ~LLConversationViewParticipant( void ) { }
|
||||
void selectItem();
|
||||
|
||||
bool hasSameValue(const LLUUID& uuid) { return (uuid == mUUID); }
|
||||
virtual void refresh();
|
||||
void addToFolder(LLFolderViewFolder* folder);
|
||||
|
||||
/*virtual*/ BOOL handleMouseDown( S32 x, S32 y, MASK mask );
|
||||
|
||||
void onMouseEnter(S32 x, S32 y, MASK mask);
|
||||
void onMouseLeave(S32 x, S32 y, MASK mask);
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ LLIMConversation::LLIMConversation(const LLSD& session_id)
|
|||
, mInputEditor(NULL)
|
||||
, mInputEditorTopPad(0)
|
||||
, mRefreshTimer(new LLTimer())
|
||||
, mIsHostAttached(false)
|
||||
{
|
||||
mSession = LLIMModel::getInstance()->findIMSession(mSessionID);
|
||||
|
||||
|
|
@ -127,6 +128,22 @@ void LLIMConversation::setVisible(BOOL visible)
|
|||
setFocus(visible);
|
||||
}
|
||||
|
||||
/*virtual*/
|
||||
void LLIMConversation::setFocus(BOOL focus)
|
||||
{
|
||||
LLTransientDockableFloater::setFocus(focus);
|
||||
|
||||
//Redirect focus to input editor
|
||||
if (focus)
|
||||
{
|
||||
updateMessages();
|
||||
|
||||
if (mInputEditor)
|
||||
{
|
||||
mInputEditor->setFocus(TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void LLIMConversation::addToHost(const LLUUID& session_id)
|
||||
|
|
@ -242,7 +259,6 @@ void LLIMConversation::enableDisableCallBtn()
|
|||
&& mSession->mCallBackEnabled);
|
||||
}
|
||||
|
||||
|
||||
void LLIMConversation::onFocusReceived()
|
||||
{
|
||||
setBackgroundOpaque(true);
|
||||
|
|
@ -253,6 +269,12 @@ void LLIMConversation::onFocusReceived()
|
|||
}
|
||||
|
||||
LLTransientDockableFloater::onFocusReceived();
|
||||
|
||||
LLIMFloaterContainer* container = LLFloaterReg::getTypedInstance<LLIMFloaterContainer>("im_container");
|
||||
if (container)
|
||||
{
|
||||
container->selectConversationPair(mSessionID, true);
|
||||
}
|
||||
}
|
||||
|
||||
void LLIMConversation::onFocusLost()
|
||||
|
|
|
|||
|
|
@ -79,7 +79,9 @@ public:
|
|||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void draw();
|
||||
/*virtual*/ void setVisible(BOOL visible);
|
||||
/*virtual*/ void setFocus(BOOL focus);
|
||||
|
||||
virtual void updateMessages() {}
|
||||
|
||||
protected:
|
||||
|
||||
|
|
|
|||
|
|
@ -671,19 +671,6 @@ void LLIMFloater::setDocked(bool docked, bool pop_on_undock)
|
|||
}
|
||||
}
|
||||
|
||||
void LLIMFloater::setFocus(BOOL focusFlag)
|
||||
{
|
||||
LLTransientDockableFloater::setFocus(focusFlag);
|
||||
|
||||
//Redirect focus to input editor
|
||||
if (focusFlag)
|
||||
{
|
||||
updateMessages();
|
||||
mInputEditor->setFocus(TRUE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void LLIMFloater::setVisible(BOOL visible)
|
||||
{
|
||||
LLNotificationsUI::LLScreenChannel* channel = static_cast<LLNotificationsUI::LLScreenChannel*>
|
||||
|
|
|
|||
|
|
@ -65,7 +65,6 @@ public:
|
|||
|
||||
// LLView overrides
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void setFocus(BOOL focusFlag);
|
||||
/*virtual*/ void setVisible(BOOL visible);
|
||||
/*virtual*/ BOOL getVisible();
|
||||
// Check typing timeout timer.
|
||||
|
|
@ -86,7 +85,7 @@ public:
|
|||
void sessionInitReplyReceived(const LLUUID& im_session_id);
|
||||
|
||||
// get new messages from LLIMModel
|
||||
void updateMessages();
|
||||
/*virtual*/ void updateMessages();
|
||||
void reloadMessages();
|
||||
static void onSendMsg(LLUICtrl*, void*);
|
||||
void sendMsgFromInputEditor();
|
||||
|
|
|
|||
|
|
@ -331,6 +331,7 @@ void LLIMFloaterContainer::onExpandCollapseButtonClicked()
|
|||
{
|
||||
collapseConversationsPane(!mConversationsPane->isCollapsed());
|
||||
}
|
||||
selectConversation(mSelectedSession);
|
||||
}
|
||||
|
||||
LLIMFloaterContainer* LLIMFloaterContainer::findInstance()
|
||||
|
|
@ -423,15 +424,21 @@ bool LLIMFloaterContainer::onConversationModelEvent(const LLSD& event)
|
|||
LLConversationItemSession* session_model = dynamic_cast<LLConversationItemSession*>(mConversationsItems[session_id]);
|
||||
if (session_model)
|
||||
{
|
||||
LLConversationItemParticipant* participant_model = session_model->findParticipant(participant_id);
|
||||
if (participant_model)
|
||||
const LLUUID& uuid = session_model->getUUID();
|
||||
|
||||
LLIMModel::LLIMSession * im_sessionp = LLIMModel::getInstance()->findIMSession(uuid);
|
||||
|
||||
if (uuid.isNull() || im_sessionp && !im_sessionp->isP2PSessionType())
|
||||
{
|
||||
participant_view = createConversationViewParticipant(participant_model);
|
||||
participant_view->addToFolder(session_view);
|
||||
participant_view->setVisible(TRUE);
|
||||
LLConversationItemParticipant* participant_model = session_model->findParticipant(participant_id);
|
||||
if (participant_model)
|
||||
{
|
||||
participant_view = createConversationViewParticipant(participant_model);
|
||||
participant_view->addToFolder(session_view);
|
||||
participant_view->setVisible(TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if (type == "update_participant")
|
||||
|
|
@ -1084,6 +1091,47 @@ void LLIMFloaterContainer::selectConversation(const LLUUID& session_id)
|
|||
}
|
||||
}
|
||||
|
||||
// Synchronous select the conversation item and the conversation floater
|
||||
BOOL LLIMFloaterContainer::selectConversationPair(const LLUUID& session_id, bool select_widget)
|
||||
{
|
||||
BOOL handled = TRUE;
|
||||
|
||||
/* widget processing */
|
||||
if (select_widget)
|
||||
{
|
||||
LLFolderViewItem* widget = mConversationsWidgets[session_id];
|
||||
if (widget && widget->getParentFolder())
|
||||
{
|
||||
widget->getParentFolder()->setSelection(widget, FALSE, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
/* floater processing */
|
||||
|
||||
if (session_id != getSelectedSession())
|
||||
{
|
||||
// Store the active session
|
||||
setSelectedSession(session_id);
|
||||
|
||||
LLIMConversation* session_floater = LLIMConversation::getConversation(session_id);
|
||||
|
||||
if (session_floater->getHost())
|
||||
{
|
||||
// Always expand the message pane if the panel is hosted by the container
|
||||
collapseMessagesPane(false);
|
||||
// Switch to the conversation floater that is being selected
|
||||
selectFloater(session_floater);
|
||||
}
|
||||
|
||||
// Set the focus on the selected floater
|
||||
if (!session_floater->hasFocus())
|
||||
{
|
||||
session_floater->setFocus(TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
return handled;
|
||||
}
|
||||
|
||||
void LLIMFloaterContainer::setTimeNow(const LLUUID& session_id, const LLUUID& participant_id)
|
||||
{
|
||||
|
|
@ -1174,17 +1222,22 @@ void LLIMFloaterContainer::addConversationListItem(const LLUUID& uuid, bool isWi
|
|||
// Add a new conversation widget to the root folder of the folder view
|
||||
widget->addToFolder(mConversationsRoot);
|
||||
widget->requestArrange();
|
||||
|
||||
|
||||
LLIMModel::LLIMSession * im_sessionp = LLIMModel::getInstance()->findIMSession(uuid);
|
||||
|
||||
// Create the participants widgets now
|
||||
// Note: usually, we do not get an updated avatar list at that point
|
||||
LLFolderViewModelItemCommon::child_list_t::const_iterator current_participant_model = item->getChildrenBegin();
|
||||
LLFolderViewModelItemCommon::child_list_t::const_iterator end_participant_model = item->getChildrenEnd();
|
||||
while (current_participant_model != end_participant_model)
|
||||
if (uuid.isNull() || im_sessionp && !im_sessionp->isP2PSessionType())
|
||||
{
|
||||
LLConversationItem* participant_model = dynamic_cast<LLConversationItem*>(*current_participant_model);
|
||||
LLConversationViewParticipant* participant_view = createConversationViewParticipant(participant_model);
|
||||
participant_view->addToFolder(widget);
|
||||
current_participant_model++;
|
||||
LLFolderViewModelItemCommon::child_list_t::const_iterator current_participant_model = item->getChildrenBegin();
|
||||
LLFolderViewModelItemCommon::child_list_t::const_iterator end_participant_model = item->getChildrenEnd();
|
||||
while (current_participant_model != end_participant_model)
|
||||
{
|
||||
LLConversationItem* participant_model = dynamic_cast<LLConversationItem*>(*current_participant_model);
|
||||
LLConversationViewParticipant* participant_view = createConversationViewParticipant(participant_model);
|
||||
participant_view->addToFolder(widget);
|
||||
current_participant_model++;
|
||||
}
|
||||
}
|
||||
|
||||
// set the widget to minimized mode if conversations pane is collapsed
|
||||
|
|
|
|||
|
|
@ -68,6 +68,8 @@ public:
|
|||
|
||||
void showConversation(const LLUUID& session_id);
|
||||
void selectConversation(const LLUUID& session_id);
|
||||
BOOL selectConversationPair(const LLUUID& session_id, bool select_widget);
|
||||
|
||||
/*virtual*/ void tabClose();
|
||||
|
||||
static LLFloater* getCurrentVoiceFloater();
|
||||
|
|
|
|||
|
|
@ -121,7 +121,14 @@ 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"]);
|
||||
if (open_im_floater && open_im_floater->isInVisibleChain() && open_im_floater->hasFocus())
|
||||
if (
|
||||
open_im_floater
|
||||
&& open_im_floater->isInVisibleChain()
|
||||
&& open_im_floater->hasFocus()
|
||||
&& !open_im_floater->isMinimized()
|
||||
&& !(open_im_floater->getHost()
|
||||
&& open_im_floater->getHost()->isMinimized())
|
||||
)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -195,8 +195,13 @@ BOOL LLNearbyChat::handleMouseDown(S32 x, S32 y, MASK mask)
|
|||
//background opaque. This all happenn since NearByChat is "chrome" and didn't process focus change.
|
||||
|
||||
if(mChatHistory)
|
||||
{
|
||||
mChatHistory->setFocus(TRUE);
|
||||
return LLPanel::handleMouseDown(x, y, mask);
|
||||
}
|
||||
|
||||
BOOL handled = LLPanel::handleMouseDown(x, y, mask);
|
||||
setFocus(handled);
|
||||
return handled;
|
||||
}
|
||||
|
||||
void LLNearbyChat::reloadMessages()
|
||||
|
|
@ -270,17 +275,6 @@ void LLNearbyChat::removeScreenChat()
|
|||
}
|
||||
}
|
||||
|
||||
void LLNearbyChat::setFocus(BOOL focusFlag)
|
||||
{
|
||||
LLTransientDockableFloater::setFocus(focusFlag);
|
||||
|
||||
//Redirect focus to input editor
|
||||
if (focusFlag)
|
||||
{
|
||||
mInputEditor->setFocus(TRUE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void LLNearbyChat::setVisible(BOOL visible)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ public:
|
|||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
/*virtual*/ void onClose(bool app_quitting);
|
||||
/*virtual*/ void setFocus(BOOL focusFlag);
|
||||
/*virtual*/ void setVisible(BOOL visible);
|
||||
|
||||
void loadHistory();
|
||||
|
|
|
|||
|
|
@ -322,7 +322,6 @@ void LLViewerFloaterReg::registerFloaters()
|
|||
LLFloaterReg::add("upload_script", "floater_script_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterScriptPreview>, "upload");
|
||||
LLFloaterReg::add("upload_sound", "floater_sound_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSoundPreview>, "upload");
|
||||
|
||||
LLFloaterReg::add("voice_controls", "floater_voice_controls.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLCallFloater>);
|
||||
LLFloaterReg::add("voice_effect", "floater_voice_effect.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterVoiceEffect>);
|
||||
|
||||
LLFloaterReg::add("web_content", "floater_web_content.xml", (LLFloaterBuildFunc)&LLFloaterWebContent::create);
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 322 B After Width: | Height: | Size: 373 B |
|
Before Width: | Height: | Size: 301 B After Width: | Height: | Size: 215 B |
|
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 211 B |
|
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 275 B |
|
Before Width: | Height: | Size: 663 B After Width: | Height: | Size: 345 B |
|
Before Width: | Height: | Size: 662 B After Width: | Height: | Size: 342 B |
|
Before Width: | Height: | Size: 460 B After Width: | Height: | Size: 459 B |
|
Before Width: | Height: | Size: 485 B After Width: | Height: | Size: 366 B |
|
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 144 B |
|
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 230 B |
|
Before Width: | Height: | Size: 553 B After Width: | Height: | Size: 399 B |
|
|
@ -54,14 +54,14 @@
|
|||
visible="false"
|
||||
width="20">
|
||||
<icon
|
||||
height="20"
|
||||
height="18"
|
||||
follows="top|right|left"
|
||||
image_name="Conv_toolbar_open_call"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="selected_icon"
|
||||
top="2"
|
||||
width="20" />
|
||||
top="3"
|
||||
width="18" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
auto_resize="true"
|
||||
|
|
|
|||
|
|
@ -9,151 +9,364 @@
|
|||
name="chat"
|
||||
top="1"
|
||||
width="517">
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="30"
|
||||
height="12"
|
||||
name="font_size"
|
||||
width="120"
|
||||
top="10">
|
||||
Font size:
|
||||
</text>
|
||||
<radio_group
|
||||
height="30"
|
||||
layout="topleft"
|
||||
left="40"
|
||||
control_name="ChatFontSize"
|
||||
name="chat_font_size"
|
||||
top_pad="0"
|
||||
width="440">
|
||||
<radio_item
|
||||
height="16"
|
||||
label="Small"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="radio"
|
||||
value="0"
|
||||
top="10"
|
||||
width="125" />
|
||||
<radio_item
|
||||
height="16"
|
||||
label="Medium"
|
||||
layout="topleft"
|
||||
left_delta="145"
|
||||
name="radio2"
|
||||
value="1"
|
||||
top_delta="0"
|
||||
width="125" />
|
||||
<radio_item
|
||||
height="16"
|
||||
label="Large"
|
||||
layout="topleft"
|
||||
left_delta="170"
|
||||
name="radio3"
|
||||
value="2"
|
||||
top_delta="0"
|
||||
width="125" />
|
||||
</radio_group>
|
||||
|
||||
|
||||
<panel
|
||||
border="false"
|
||||
follows="left|top"
|
||||
height="90"
|
||||
layout="topleft"
|
||||
top="10"
|
||||
left="13"
|
||||
width="517">
|
||||
|
||||
<check_box
|
||||
control_name="PlayTypingAnim"
|
||||
height="16"
|
||||
initial_value="true"
|
||||
label="Play typing animation when chatting"
|
||||
layout="topleft"
|
||||
left="30"
|
||||
name="play_typing_animation"
|
||||
top_pad="10"
|
||||
width="400" />
|
||||
control_name="PlayTypingAnim"
|
||||
height="16"
|
||||
initial_value="true"
|
||||
label="Play typing animation when chatting"
|
||||
layout="topleft"
|
||||
top="0"
|
||||
name="play_typing_animation"
|
||||
width="330" />
|
||||
<check_box
|
||||
enabled="false"
|
||||
height="16"
|
||||
label="Email me IMs when I'm offline"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="send_im_to_email"
|
||||
top_pad="5"
|
||||
width="400" />
|
||||
top_pad="6"
|
||||
width="330" />
|
||||
<check_box
|
||||
height="16"
|
||||
label="Keep a conversation log and transcripts"
|
||||
layout="topleft"
|
||||
name="keep_convo_log_and_transcripts"
|
||||
top_pad="6"
|
||||
width="330" />
|
||||
<check_box
|
||||
control_name="UseChatBubbles"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
label="Bubble Chat"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
top_pad="5"
|
||||
top_pad="6"
|
||||
name="bubble_text_chat"
|
||||
width="150" />
|
||||
width="330" />
|
||||
<text
|
||||
name="disable_toast_label"
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
top_pad="20"
|
||||
left="30"
|
||||
height="10"
|
||||
width="400">
|
||||
Enable incoming chat popups:
|
||||
</text>
|
||||
left="345"
|
||||
height="12"
|
||||
name="font_size"
|
||||
width="120"
|
||||
top="0">
|
||||
Font size:
|
||||
</text>
|
||||
<radio_group
|
||||
height="90"
|
||||
layout="topleft"
|
||||
left="352"
|
||||
control_name="ChatFontSize"
|
||||
name="chat_font_size"
|
||||
top_pad="0"
|
||||
width="50">
|
||||
<radio_item
|
||||
height="16"
|
||||
label="Small"
|
||||
layout="topleft"
|
||||
name="radio"
|
||||
value="0"
|
||||
top="10"
|
||||
width="125" />
|
||||
<radio_item
|
||||
height="16"
|
||||
label="Medium"
|
||||
layout="topleft"
|
||||
name="radio2"
|
||||
value="1"
|
||||
top_pad="6"
|
||||
width="125" />
|
||||
<radio_item
|
||||
height="16"
|
||||
label="Large"
|
||||
layout="topleft"
|
||||
name="radio3"
|
||||
value="2"
|
||||
top_pad="6"
|
||||
width="125" />
|
||||
</radio_group>
|
||||
|
||||
</panel>
|
||||
|
||||
<panel
|
||||
border="false"
|
||||
follows="left|top"
|
||||
height="193"
|
||||
layout="topleft"
|
||||
left="13"
|
||||
width="517">
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
height="12"
|
||||
name="notifications"
|
||||
left="0"
|
||||
width="120">
|
||||
Notifications:
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
height="12"
|
||||
name="friend_ims"
|
||||
width="145"
|
||||
left="0"
|
||||
top_pad="15"
|
||||
>
|
||||
Friend IMs:
|
||||
</text>
|
||||
<combo_box
|
||||
control_name="NotificationFriendIMOptions"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
top_delta="-6"
|
||||
name="FriendIMOptions"
|
||||
width="223">
|
||||
<combo_box.item
|
||||
label="Pop up the message"
|
||||
name="0"
|
||||
value="0"/>
|
||||
<combo_box.item
|
||||
label="Flash toolbar button"
|
||||
name="1"
|
||||
value="1"/>
|
||||
<combo_box.item
|
||||
label="None"
|
||||
name="2"
|
||||
value="2"/>
|
||||
</combo_box>
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
height="12"
|
||||
name="non_friend_ims"
|
||||
width="145"
|
||||
left="0"
|
||||
top_pad="15"
|
||||
>
|
||||
Non-friend IMs:
|
||||
</text>
|
||||
<combo_box
|
||||
control_name="NotificationNonFriendIMOptions"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
top_delta="-6"
|
||||
name="NonFriendIMOptions"
|
||||
width="223">
|
||||
<combo_box.item
|
||||
label="Pop up the message"
|
||||
name="0"
|
||||
value="0"/>
|
||||
<combo_box.item
|
||||
label="Flash toolbar button"
|
||||
name="1"
|
||||
value="1"/>
|
||||
<combo_box.item
|
||||
label="None"
|
||||
name="2"
|
||||
value="2"/>
|
||||
</combo_box>
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
height="13"
|
||||
name="conference_ims"
|
||||
width="145"
|
||||
top_pad="14"
|
||||
>
|
||||
Conference IMs:
|
||||
</text>
|
||||
<combo_box
|
||||
control_name="NotificationConferenceIMOptions"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
top_delta="-6"
|
||||
name="ConferenceIMOptions"
|
||||
width="223">
|
||||
<combo_box.item
|
||||
label="Pop up the message"
|
||||
name="0"
|
||||
value="0"/>
|
||||
<combo_box.item
|
||||
label="Flash toolbar button"
|
||||
name="1"
|
||||
value="1"/>
|
||||
<combo_box.item
|
||||
label="None"
|
||||
name="2"
|
||||
value="2"/>
|
||||
</combo_box>
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
height="13"
|
||||
name="group_chat"
|
||||
width="145"
|
||||
top_pad="14"
|
||||
>
|
||||
Group chat:
|
||||
</text>
|
||||
<combo_box
|
||||
control_name="NotificationGroupChatOptions"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
top_delta="-6"
|
||||
name="GroupChatOptions"
|
||||
width="223">
|
||||
<combo_box.item
|
||||
label="Pop up the message"
|
||||
name="0"
|
||||
value="0"/>
|
||||
<combo_box.item
|
||||
label="Flash toolbar button"
|
||||
name="1"
|
||||
value="1"/>
|
||||
<combo_box.item
|
||||
label="None"
|
||||
name="2"
|
||||
value="2"/>
|
||||
</combo_box>
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
height="12"
|
||||
name="nearby_chat"
|
||||
width="145"
|
||||
top_pad="14"
|
||||
>
|
||||
Nearby chat:
|
||||
</text>
|
||||
<combo_box
|
||||
control_name="NotificationNearbyChatOptions"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
top_delta="-6"
|
||||
name="NearbyChatOptions"
|
||||
width="223">
|
||||
<combo_box.item
|
||||
label="Pop up the message"
|
||||
name="0"
|
||||
value="0"/>
|
||||
<combo_box.item
|
||||
label="Flash toolbar button"
|
||||
name="1"
|
||||
value="1"/>
|
||||
<combo_box.item
|
||||
label="None"
|
||||
name="2"
|
||||
value="2"/>
|
||||
</combo_box>
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
height="12"
|
||||
name="notifications_alert"
|
||||
width="350"
|
||||
top_pad="11"
|
||||
visible="true"
|
||||
text_color="DrYellow"
|
||||
>
|
||||
To temporarily stop all notifications, use Me > Status > Busy.
|
||||
</text>
|
||||
|
||||
</panel>
|
||||
|
||||
<panel
|
||||
border="false"
|
||||
follows="left|top"
|
||||
height="1"
|
||||
layout="topleft"
|
||||
left="13"
|
||||
width="517">
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="play_sound"
|
||||
width="100"
|
||||
top_pad="13"
|
||||
visible="true">
|
||||
Play sound:
|
||||
</text>
|
||||
<check_box
|
||||
control_name="EnableGroupChatPopups"
|
||||
name="EnableGroupChatPopups"
|
||||
label="Group Chats"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
left_delta="10"
|
||||
height="20"
|
||||
tool_tip="Check to see popups when a Group Chat message arrives"
|
||||
width="400" />
|
||||
control_name="NewConversation"
|
||||
height="16"
|
||||
initial_value="true"
|
||||
label="New conversation"
|
||||
layout="topleft"
|
||||
left_pad="15"
|
||||
top_pad="-10"
|
||||
name="new_conversation"
|
||||
width="150" />
|
||||
<check_box
|
||||
control_name="EnableIMChatPopups"
|
||||
name="EnableIMChatPopups"
|
||||
label="IM Chats"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
height="16"
|
||||
tool_tip="Check to see popups when an instant message arrives"
|
||||
width="400" />
|
||||
<spinner
|
||||
control_name="NearbyToastLifeTime"
|
||||
decimal_digits="0"
|
||||
follows="left|top"
|
||||
height="23"
|
||||
increment="1"
|
||||
initial_value="23"
|
||||
label="Nearby chat toasts life time:"
|
||||
label_width="285"
|
||||
layout="topleft"
|
||||
left="45"
|
||||
max_val="60"
|
||||
min_val="1"
|
||||
name="nearby_toasts_lifetime"
|
||||
top_pad="10"
|
||||
width="325" />
|
||||
<spinner
|
||||
control_name="NearbyToastFadingTime"
|
||||
decimal_digits="0"
|
||||
follows="left|top"
|
||||
height="23"
|
||||
increment="1"
|
||||
initial_value="3"
|
||||
label="Nearby chat toasts fading time:"
|
||||
label_width="285"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
max_val="60"
|
||||
min_val="0"
|
||||
name="nearby_toasts_fadingtime"
|
||||
top_pad="3"
|
||||
width="325" />
|
||||
control_name="IncomingVoiceCall"
|
||||
height="16"
|
||||
initial_value="true"
|
||||
label="Incoming voice call"
|
||||
layout="topleft"
|
||||
top_pad="6"
|
||||
name="incoming_voice_call"
|
||||
width="150" />
|
||||
<check_box
|
||||
control_name="GroupChatMessages"
|
||||
height="16"
|
||||
initial_value="false"
|
||||
label="Group chat messages"
|
||||
layout="topleft"
|
||||
top_pad="6"
|
||||
name="group_chat_messages"
|
||||
width="150" />
|
||||
<check_box
|
||||
control_name="TeleportOffer"
|
||||
height="16"
|
||||
initial_value="true"
|
||||
label="Teleport offer"
|
||||
layout="topleft"
|
||||
left_pad="35"
|
||||
top_pad="-59"
|
||||
name="teleport_offer"
|
||||
width="150" />
|
||||
<check_box
|
||||
control_name="InventoryOffer"
|
||||
height="16"
|
||||
initial_value="false"
|
||||
label="Inventory offer"
|
||||
layout="topleft"
|
||||
top_pad="6"
|
||||
name="inventory_offer"
|
||||
width="150" />
|
||||
|
||||
</panel>
|
||||
|
||||
<button
|
||||
follows="left|top"
|
||||
height="23"
|
||||
label="Translation..."
|
||||
layout="topleft"
|
||||
left="30"
|
||||
left="9"
|
||||
name="ok_btn"
|
||||
top="-50"
|
||||
top="-29"
|
||||
width="170">
|
||||
<button.commit_callback
|
||||
function="Pref.TranslationSettings" />
|
||||
|
|
|
|||