summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorLynx Linden <lynx@lindenlab.com>2009-11-10 00:10:44 +0000
committerLynx Linden <lynx@lindenlab.com>2009-11-10 00:10:44 +0000
commit17ab5928c2416b4787e03c54307add77217d831e (patch)
tree9c0822b483c55830993991b104106f02892e0077 /indra/newview
parent02062e099bca77ac3bc24b097c5d6f104022665d (diff)
DEV-41317 DEV-42311: Enabled the "Call" button in more side panels.
The various People panels now have Call buttons that work. Currently we only support single selection of users in lists for P2P voice chat. Multiple selection for ad-hoc chat is next...
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llpanelavatar.cpp4
-rw-r--r--indra/newview/llpanelpeople.cpp32
-rw-r--r--indra/newview/skins/default/xui/en/panel_notes.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_people.xml210
4 files changed, 93 insertions, 154 deletions
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index 6413d939f0..3b54f1546e 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -255,7 +255,7 @@ void LLPanelAvatarNotes::onTeleportButtonClick()
void LLPanelAvatarNotes::onCallButtonClick()
{
- //*TODO not implemented.
+ LLAvatarActions::startCall(getAvatarId());
}
void LLPanelAvatarNotes::onShareButtonClick()
@@ -544,7 +544,7 @@ void LLPanelAvatarProfile::onTeleportButtonClick()
void LLPanelAvatarProfile::onCallButtonClick()
{
- //*TODO not implemented
+ LLAvatarActions::startCall(getAvatarId());
}
void LLPanelAvatarProfile::onShareButtonClick()
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index bb6cdd2f78..0c66e7155c 100644
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -588,14 +588,9 @@ void LLPanelPeople::updateRecentList()
void LLPanelPeople::buttonSetVisible(std::string btn_name, BOOL visible)
{
- // Currently all bottom buttons are wrapped with layout panels.
- // Hiding a button has no effect: the panel still occupies its space.
- // So we have to hide the whole panel (along with its button)
- // to free some space up.
- LLButton* btn = getChild<LLView>("button_bar")->getChild<LLButton>(btn_name);
- LLPanel* btn_parent = dynamic_cast<LLPanel*>(btn->getParent());
- if (btn_parent)
- btn_parent->setVisible(visible);
+ // To make sure we're referencing the right widget (a child of the button bar).
+ LLButton* button = getChild<LLView>("button_bar")->getChild<LLButton>(btn_name);
+ button->setVisible(visible);
}
void LLPanelPeople::buttonSetEnabled(const std::string& btn_name, bool enabled)
@@ -624,14 +619,16 @@ void LLPanelPeople::updateButtons()
std::vector<LLUUID> selected_uuids;
getCurrentItemIDs(selected_uuids);
bool item_selected = (selected_uuids.size() == 1);
+ bool multiple_selected = (selected_uuids.size() >= 1);
buttonSetVisible("group_info_btn", group_tab_active);
buttonSetVisible("chat_btn", group_tab_active);
buttonSetVisible("add_friend_btn", nearby_tab_active || recent_tab_active);
buttonSetVisible("view_profile_btn", !group_tab_active);
buttonSetVisible("im_btn", !group_tab_active);
+ buttonSetVisible("call_btn", !group_tab_active);
buttonSetVisible("teleport_btn", friends_tab_active);
- buttonSetVisible("share_btn", !recent_tab_active && false); // not implemented yet
+ buttonSetVisible("share_btn", nearby_tab_active || friends_tab_active);
if (group_tab_active)
{
@@ -664,8 +661,8 @@ void LLPanelPeople::updateButtons()
buttonSetEnabled("teleport_btn", friends_tab_active && item_selected);
buttonSetEnabled("view_profile_btn", item_selected);
- buttonSetEnabled("im_btn", (selected_uuids.size() >= 1)); // allow starting the friends conference for multiple selection
- buttonSetEnabled("call_btn", item_selected && false); // not implemented yet
+ buttonSetEnabled("im_btn", multiple_selected); // allow starting the friends conference for multiple selection
+ buttonSetEnabled("call_btn", item_selected);
buttonSetEnabled("share_btn", item_selected && false); // not implemented yet
bool none_group_selected = item_selected && selected_id.isNull();
@@ -1071,7 +1068,18 @@ bool LLPanelPeople::onRecentViewSortMenuItemCheck(const LLSD& userdata)
void LLPanelPeople::onCallButtonClicked()
{
- // *TODO: not implemented yet
+ std::vector<LLUUID> selected_uuids;
+ getCurrentItemIDs(selected_uuids);
+
+ if (selected_uuids.size() == 1)
+ {
+ // initiate a P2P voice chat with the selected user
+ LLAvatarActions::startCall(getCurrentItemID());
+ }
+ else if (selected_uuids.size() > 1)
+ {
+ // *NOTE: ad-hoc voice chat not implemented yet
+ }
}
void LLPanelPeople::onTeleportButtonClicked()
diff --git a/indra/newview/skins/default/xui/en/panel_notes.xml b/indra/newview/skins/default/xui/en/panel_notes.xml
index b9c9100ebc..c02dabed2c 100644
--- a/indra/newview/skins/default/xui/en/panel_notes.xml
+++ b/indra/newview/skins/default/xui/en/panel_notes.xml
@@ -132,7 +132,6 @@
left_pad="5"
width="40" />
<button
- enabled="false"
follows="bottom|left"
height="19"
label="Call"
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index d6e2aa64fa..15fdd73bdc 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -329,156 +329,88 @@ background_visible="true"
</panel>
</panel>
</tab_container>
- <layout_stack
- animate="false"
- border_size="0"
- follows="left|right|bottom"
+ <panel
+ follows="bottom|left"
height="25"
layout="topleft"
left="10"
name="button_bar"
- orientation="horizontal"
width="313">
- <layout_panel
- default_tab_group="1"
- follows="left|top"
- height="25"
- layout="topleft"
+ <button
+ follows="bottom|left"
+ font="SansSerifSmall"
+ top="4"
left="0"
- name="view_profile_btn_panel"
- top="-25"
- width="100">
- <button
- follows="top|left"
- font="SansSerifSmall"
- height="19"
- label="Profile"
- layout="topleft"
- name="view_profile_btn"
- tool_tip="Show picture, groups, and other residents information"
- width="100" />
- </layout_panel>
- <layout_panel
- default_tab_group="1"
- follows="left|top"
height="19"
+ label="Profile"
layout="topleft"
- left="0"
- min_width="80"
- name="group_info_btn_panel"
- width="100">
- <button
- follows="top|left"
- font="SansSerifSmall"
- height="19"
- label="Group Profile"
- layout="topleft"
- name="group_info_btn"
- tool_tip="Show group information"
- width="100" />
- </layout_panel>
- <layout_panel
- default_tab_group="1"
- follows="left|top"
- height="25"
- layout="topleft"
- left_pad="5"
- min_width="45"
- name="chat_btn_panel"
- top_delta="0"
- width="100">
- <button
- follows="top|left"
- font="SansSerifSmall"
- height="19"
- label="Group Chat"
- layout="topleft"
- name="chat_btn"
- tool_tip="Open chat session"
- width="100" />
- </layout_panel>
- <layout_panel
- default_tab_group="1"
- follows="left|top|"
- height="25"
+ name="view_profile_btn"
+ tool_tip="Show picture, groups, and other residents information"
+ width="70" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmall"
+ top="4"
+ left_pad="2"
+ height="19"
+ label="IM"
layout="topleft"
- left_pad="5"
- min_width="35"
- name="im_btn_panel"
- top_delta="0"
- width="50">
- <button
- follows="top|left"
- font="SansSerifSmall"
- height="19"
- label="IM"
- layout="topleft"
- name="im_btn"
- tool_tip="Open instant message session"
- width="50" />
- </layout_panel>
- <layout_panel
- default_tab_group="1"
- follows="left|top|right"
- height="25"
+ name="im_btn"
+ tool_tip="Open instant message session"
+ width="45" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmall"
+ top="4"
+ left_pad="2"
+ height="19"
+ label="Call"
layout="topleft"
- left_pad="5"
- min_width="40"
- name="call_btn_panel"
- top_delta="0"
- visible="false"
- width="40">
- <button
- enabled="false"
- follows="top|left"
- font="SansSerifSmall"
- height="19"
- label="Call"
- layout="topleft"
- name="call_btn"
- width="50" />
- </layout_panel>
- <layout_panel
- default_tab_group="1"
+ name="call_btn"
+ tool_tip="Call this resident"
+ width="50" />
+ <button
follows="left|top"
- height="25"
+ font="SansSerifSmall"
+ top="4"
+ left_pad="2"
+ height="19"
+ label="Share"
layout="topleft"
- left_pad="5"
- min_width="65"
- name="teleport_btn_panel"
- top_delta="0"
- width="100">
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="19"
- label="Teleport"
- layout="topleft"
- name="teleport_btn"
- tool_tip="Offer teleport"
- width="100" />
- </layout_panel>
- <layout_panel
- default_tab_group="1"
- enabled="false"
- follows="left|top"
- height="25"
+ name="share_btn"
+ width="60" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmall"
+ top="4"
+ left_pad="2"
+ height="19"
+ label="Teleport"
layout="topleft"
- left_pad="5"
- min_width="50"
- name="share_btn_panel"
- top_delta="0"
- visible="false"
- width="80">
- <button
- enabled="false"
- follows="top|left"
- font="SansSerifSmall"
- height="19"
- label="Share"
- layout="topleft"
- name="share_btn"
- width="80" />
- </layout_panel>
- </layout_stack>
+ name="teleport_btn"
+ tool_tip="Offer teleport"
+ width="75" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmall"
+ top="4"
+ left="0"
+ height="19"
+ label="Group Profile"
+ layout="topleft"
+ name="group_info_btn"
+ tool_tip="Show group information"
+ width="110" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmall"
+ top="4"
+ left_pad="2"
+ height="19"
+ label="Group Chat"
+ layout="topleft"
+ name="chat_btn"
+ tool_tip="Open chat session"
+ width="110" />
+ </panel>
</panel>