Added 'NearbyMedia' floater (accessable via new button in Media Remote popup)

-Floater utilizes a slightly modified LLPanelNearbyMedia, which has fading and the 'minimal' mode disabled when its parent is a floater.

  -Due to how LL designed LLPanelNearbyMedia, only one instance should ever be allowed at a time.

Added LLNameBox. To avoid having dupilcate code, logic in LLTextBox::fromXML had to be moved to LLTextBox::initFromXML.

  -Perfomed some additional cleanup. 'name' attribute now parsed in LLUICtrl::initFromXML, or as-needed for elements not based off of LLUICtrl.

LLSlider now respects current DrawContext

Fixed the AO toolbar widget reserving too much width.

Made the "wlfAdvSettingsPopup" setting persist, and un-inverted its logic.

Altered ui initilization order. Toolbar/overlay panels now constructed further into login process.
This commit is contained in:
Shyotl
2013-06-18 08:09:17 -05:00
parent 884c67e641
commit 49cbc80ee0
73 changed files with 2750 additions and 314 deletions

View File

@@ -307,9 +307,6 @@ LLXMLNodePtr LLCheckBoxCtrl::getXML(bool save_children) const
// static
LLView* LLCheckBoxCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("checkbox");
node->getAttributeString("name", name);
std::string label("");
node->getAttributeString("label", label);
@@ -326,7 +323,7 @@ LLView* LLCheckBoxCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
LLRect rect;
createRect(node, rect, parent, LLRect());
LLCheckBoxCtrl* checkbox = new LLCheckboxCtrl(name,
LLCheckBoxCtrl* checkbox = new LLCheckboxCtrl("checkbox",
rect,
label,
font,

View File

@@ -149,9 +149,6 @@ LLXMLNodePtr LLComboBox::getXML(bool save_children) const
// static
LLView* LLComboBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("combo_box");
node->getAttributeString("name", name);
std::string label("");
node->getAttributeString("label", label);
@@ -164,7 +161,7 @@ LLView* LLComboBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *
S32 max_chars = 20;
node->getAttributeS32("max_chars", max_chars);
LLComboBox* combo_box = new LLComboBox(name,
LLComboBox* combo_box = new LLComboBox("combo_box",
rect,
label);
combo_box->setAllowTextEntry(allow_text_entry, max_chars);
@@ -1245,16 +1242,13 @@ LLXMLNodePtr LLFlyoutButton::getXML(bool save_children) const
//static
LLView* LLFlyoutButton::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name = "flyout_button";
node->getAttributeString("name", name);
std::string label("");
node->getAttributeString("label", label);
LLRect rect;
createRect(node, rect, parent, LLRect());
LLFlyoutButton* flyout_button = new LLFlyoutButton(name,
LLFlyoutButton* flyout_button = new LLFlyoutButton("flyout_button",
rect,
label);

View File

@@ -52,9 +52,6 @@ void LLFilterEditor::handleKeystroke()
// static
LLView* LLFilterEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("filter_editor");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -63,7 +60,7 @@ LLView* LLFilterEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
std::string text = node->getValue().substr(0, max_text_length - 1);
LLFilterEditor* search_editor = new LLFilterEditor(name,
LLFilterEditor* search_editor = new LLFilterEditor("filter_editor",
rect,
max_text_length);

View File

@@ -158,9 +158,6 @@ LLXMLNodePtr LLIconCtrl::getXML(bool save_children) const
LLView* LLIconCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("icon");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -173,7 +170,7 @@ LLView* LLIconCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *
LLColor4 color(LLColor4::white);
LLUICtrlFactory::getAttributeColor(node,"color", color);
LLIconCtrl* icon = new LLIconCtrl(name, rect, image_name);
LLIconCtrl* icon = new LLIconCtrl("icon", rect, image_name);
icon->setColor(color);

View File

@@ -976,8 +976,6 @@ LLView* LLLayoutStack::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactor
layout_stackp->setName(name);
layout_stackp->initFromXML(node, parent);
llinfos << "Created layout stack '"<<name<<"' clip="<<clip<<" border_size="<<border_size<<" rect="<<layout_stackp->getRect()<<llendl;
LLXMLNodePtr child;
for (child = node->getFirstChild(); child.notNull(); child = child->getNextSibling())
{
@@ -1020,7 +1018,6 @@ LLView* LLLayoutPanel::fromXML(LLXMLNodePtr node, LLView* parent, LLUICtrlFactor
panelp->initPanelXML(node, parent, factory);
panelp->mCommitCallbackRegistrar.popScope();
panelp->mEnableCallbackRegistrar.popScope();
llinfos << "Created standard layout panel '"<<name<<"'"<<" rect="<<panelp->getRect()<<llendl;
}
else
@@ -1033,11 +1030,6 @@ LLView* LLLayoutPanel::fromXML(LLXMLNodePtr node, LLView* parent, LLUICtrlFactor
panelp->initPanelXML(node, parent, factory);
panelp->mCommitCallbackRegistrar.popScope();
panelp->mEnableCallbackRegistrar.popScope();
llinfos << "Created factory layout panel '"<<name<<"'"<<" rect="<<panelp->getRect()<<llendl;
}
else
{
llinfos << "Factory layout panel already inited '"<<name<<"'"<<" rect="<<panelp->getRect()<<llendl;
}
}
panelp->setOrigin(0, 0);

View File

@@ -2555,9 +2555,6 @@ LLXMLNodePtr LLLineEditor::getXML(bool save_children) const
// static
LLView* LLLineEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("line_editor");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -2584,7 +2581,7 @@ LLView* LLLineEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory
S32 border_thickness = 1;
node->getAttributeS32("border_thickness", border_thickness);
LLLineEditor* line_editor = new LLLineEditor(name,
LLLineEditor* line_editor = new LLLineEditor("line_editor",
rect,
text,
font,

View File

@@ -4150,13 +4150,10 @@ LLXMLNodePtr LLMenuBarGL::getXML(bool save_children) const
LLView* LLMenuBarGL::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("menu");
node->getAttributeString("name", name);
BOOL opaque = FALSE;
node->getAttributeBOOL("opaque", opaque);
LLMenuBarGL *menubar = new LLMenuBarGL(name);
LLMenuBarGL *menubar = new LLMenuBarGL("menu");
LLHandle<LLFloater> parent_handle;
LLFloater* parent_floater = dynamic_cast<LLFloater*>(parent);

View File

@@ -624,9 +624,6 @@ LLXMLNodePtr LLMultiSlider::getXML(bool save_children) const
//static
LLView* LLMultiSlider::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("multi_slider_bar");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -654,7 +651,7 @@ LLView* LLMultiSlider::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactor
BOOL use_triangle = FALSE;
node->getAttributeBOOL("use_triangle", use_triangle);
LLMultiSlider* multiSlider = new LLMultiSlider(name,
LLMultiSlider* multiSlider = new LLMultiSlider("multi_slider_bar",
rect,
NULL,
initial_value,

View File

@@ -472,9 +472,6 @@ LLXMLNodePtr LLMultiSliderCtrl::getXML(bool save_children) const
LLView* LLMultiSliderCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("multi_slider");
node->getAttributeString("name", name);
std::string label;
node->getAttributeString("label", label);
@@ -558,7 +555,7 @@ LLView* LLMultiSliderCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFa
label.assign(node->getTextContents());
}
LLMultiSliderCtrl* slider = new LLMultiSliderCtrl(name,
LLMultiSliderCtrl* slider = new LLMultiSliderCtrl("multi_slider",
rect,
label,
font,

View File

@@ -352,9 +352,6 @@ LLXMLNodePtr LLRadioGroup::getXML(bool save_children) const
// static
LLView* LLRadioGroup::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("radio_group");
node->getAttributeString("name", name);
U32 initial_value = 0;
node->getAttributeU32("initial_value", initial_value);
@@ -364,7 +361,7 @@ LLView* LLRadioGroup::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory
LLRect rect;
createRect(node, rect, parent, LLRect());
LLRadioGroup* radio_group = new LLRadioGroup(name,
LLRadioGroup* radio_group = new LLRadioGroup("radio_group",
rect,
initial_value,
NULL,
@@ -408,10 +405,8 @@ LLView* LLRadioGroup::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory
LLRect item_rect;
createRect(child, item_rect, radio_group, rect);
std::string radioname("radio");
child->getAttributeString("name", radioname);
std::string item_label = child->getTextContents();
LLRadioCtrl* radio = radio_group->addRadioButton(radioname, item_label, item_rect, font);
LLRadioCtrl* radio = radio_group->addRadioButton("radio", item_label, item_rect, font);
radio->initFromXML(child, radio_group);
}

View File

@@ -152,13 +152,10 @@ LLXMLNodePtr LLScrollingPanelList::getXML(bool save_children) const
// static
LLView* LLScrollingPanelList::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("scrolling_panel_list");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
LLScrollingPanelList* scrolling_panel_list = new LLScrollingPanelList(name, rect);
LLScrollingPanelList* scrolling_panel_list = new LLScrollingPanelList("scrolling_panel_list", rect);
scrolling_panel_list->initFromXML(node, parent);
return scrolling_panel_list;
}

View File

@@ -3104,9 +3104,6 @@ void LLScrollListCtrl::setScrollListParameters(LLXMLNodePtr node)
// static
LLView* LLScrollListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("scroll_list");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -3132,7 +3129,7 @@ LLView* LLScrollListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac
node->getAttributeBOOL("mouse_wheel_opaque", mouse_wheel_opaque);
LLScrollListCtrl* scroll_list = new LLScrollListCtrl(
name,
"scroll_list",
rect,
NULL,
multi_select,

View File

@@ -147,9 +147,6 @@ void LLSearchEditor::handleKeystroke()
// static
LLView* LLSearchEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("search_editor");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -158,7 +155,7 @@ LLView* LLSearchEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
std::string text = node->getValue().substr(0, max_text_length - 1);
LLSearchEditor* search_editor = new LLSearchEditor(name,
LLSearchEditor* search_editor = new LLSearchEditor("search_editor",
rect,
max_text_length);

View File

@@ -250,6 +250,8 @@ BOOL LLSlider::handleKeyHere(KEY key, MASK mask)
void LLSlider::draw()
{
F32 alpha = getDrawContext().mAlpha;
// since thumb image might still be decoding, need thumb to accomodate image size
updateThumbRect();
@@ -258,31 +260,47 @@ void LLSlider::draw()
// drawing solids requires texturing be disabled
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
F32 opacity = getEnabled() ? 1.f : 0.3f;
LLColor4 center_color = (mThumbCenterColor % opacity);
// Track
LLRect track_rect(mThumbImage->getWidth() / 2,
getLocalRect().getCenterY() + (mTrackImage->getHeight() / 2),
getRect().getWidth() - mThumbImage->getWidth() / 2,
getLocalRect().getCenterY() - (mTrackImage->getHeight() / 2) );
LLRect highlight_rect(track_rect.mLeft, track_rect.mTop, mThumbRect.getCenterX(), track_rect.mBottom);
mTrackImage->draw(track_rect);
mTrackHighlightImage->draw(highlight_rect);
mTrackImage->draw(track_rect, LLColor4::white % alpha);
mTrackHighlightImage->draw(highlight_rect, LLColor4::white % alpha);
// Thumb
if( hasMouseCapture() )
{
// Show ghost where thumb was before dragging began.
mThumbImage->draw(mDragStartThumbRect, mThumbCenterColor % 0.3f);
}
if (hasFocus())
{
// Draw focus highlighting.
mThumbImage->drawBorder(mThumbRect, gFocusMgr.getFocusColor(), gFocusMgr.getFocusFlashWidth());
mThumbImage->drawBorder(mThumbRect, gFocusMgr.getFocusColor() % alpha, gFocusMgr.getFocusFlashWidth());
}
if( hasMouseCapture() )
{
// Show ghost where thumb was before dragging began.
if (mThumbImage.notNull())
{
mThumbImage->draw(mDragStartThumbRect, mThumbCenterColor % (0.3f * alpha));
mThumbImage->draw(mThumbRect, mThumbOutlineColor % alpha);
}
}
else if(!getEnabled())
{
if (mThumbImage.notNull())
{
mThumbImage->draw(mThumbRect, mThumbCenterColor % (0.3f * alpha));
}
}
else
{
if (mThumbImage.notNull())
{
mThumbImage->draw(mThumbRect, mThumbCenterColor % alpha);
}
}
// Fill in the thumb.
mThumbImage->draw(mThumbRect, hasMouseCapture() ? mThumbOutlineColor : center_color);
LLUICtrl::draw();
}
@@ -325,9 +343,6 @@ boost::signals2::connection LLSlider::setMouseUpCallback( const commit_signal_t:
//static
LLView* LLSlider::fromXML(LLXMLNodePtr node, LLView *parent, class LLUICtrlFactory *factory)
{
std::string name("slider_bar");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -346,7 +361,7 @@ LLView* LLSlider::fromXML(LLXMLNodePtr node, LLView *parent, class LLUICtrlFacto
BOOL volume = node->hasName("volume_slider") ? TRUE : FALSE;
node->getAttributeBOOL("volume", volume);
LLSlider* slider = new LLSlider(name,
LLSlider* slider = new LLSlider("slider_bar",
rect,
NULL,
initial_value,

View File

@@ -96,9 +96,9 @@ private:
S32 mMouseOffset;
LLRect mDragStartThumbRect;
LLUIImage* mThumbImage;
LLUIImage* mTrackImage;
LLUIImage* mTrackHighlightImage;
LLPointer<LLUIImage> mThumbImage;
LLPointer<LLUIImage> mTrackImage;
LLPointer<LLUIImage> mTrackHighlightImage;
LLRect mThumbRect;
LLColor4 mTrackColor;

View File

@@ -403,9 +403,6 @@ LLXMLNodePtr LLSliderCtrl::getXML(bool save_children) const
LLView* LLSliderCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("slider");
node->getAttributeString("name", name);
std::string label;
node->getAttributeString("label", label);
@@ -480,7 +477,7 @@ LLView* LLSliderCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory
label.assign(node->getTextContents());
}
LLSliderCtrl* slider = new LLSliderCtrl(name,
LLSliderCtrl* slider = new LLSliderCtrl("slider",
rect,
label,
font,

View File

@@ -519,9 +519,6 @@ LLXMLNodePtr LLSpinCtrl::getXML(bool save_children) const
LLView* LLSpinCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("spinner");
node->getAttributeString("name", name);
std::string label;
node->getAttributeString("label", label);
@@ -556,7 +553,7 @@ LLView* LLSpinCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *
label.assign( node->getValue() );
}
LLSpinCtrl* spinner = new LLSpinCtrl(name,
LLSpinCtrl* spinner = new LLSpinCtrl("spinner",
rect,
label,
font,

View File

@@ -387,6 +387,69 @@ void LLTextBox::reshapeToFitText()
reshape( width + 2 * mHPad, height + 2 * mVPad );
}
// virtual
void LLTextBox::initFromXML(LLXMLNodePtr node, LLView* parent)
{
LLUICtrl::initFromXML(node, parent);
LLFontGL* font = LLView::selectFont(node);
if(font)
mFontGL = font;
setText(node->getTextContents());
LLFontGL::HAlign halign = LLView::selectFontHAlign(node);
setHAlign(halign);
node->getAttributeS32("line_spacing", mLineSpacing);
std::string font_style;
if (node->getAttributeString("font-style", font_style))
{
mFontStyle = LLFontGL::getStyleFromString(font_style);
}
if (node->getAttributeString("font-shadow", font_style))
{
if(font_style == "soft")
mFontShadow = LLFontGL::DROP_SHADOW_SOFT;
else if(font_style == "hard")
mFontShadow = LLFontGL::DROP_SHADOW;
else
mFontShadow = LLFontGL::NO_SHADOW;
}
BOOL mouse_opaque = getMouseOpaque();
if (node->getAttributeBOOL("mouse_opaque", mouse_opaque))
{
setMouseOpaque(mouse_opaque);
}
if(node->hasAttribute("text_color"))
{
LLColor4 color;
LLUICtrlFactory::getAttributeColor(node, "text_color", color);
setColor(color);
}
if(node->hasAttribute("hover_color"))
{
LLColor4 color;
LLUICtrlFactory::getAttributeColor(node, "hover_color", color);
setHoverColor(color);
setHoverActive(true);
}
BOOL hover_active = FALSE;
if(node->getAttributeBOOL("hover", hover_active))
{
setHoverActive(hover_active);
}
node->getAttributeBOOL("use_ellipses", mUseEllipses);
}
// virtual
LLXMLNodePtr LLTextBox::getXML(bool save_children) const
{
@@ -416,68 +479,8 @@ LLXMLNodePtr LLTextBox::getXML(bool save_children) const
// static
LLView* LLTextBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("text_box");
node->getAttributeString("name", name);
LLFontGL* font = LLView::selectFont(node);
std::string text = node->getTextContents();
LLTextBox* text_box = new LLTextBox(name,
LLRect(),
text,
font,
FALSE);
LLFontGL::HAlign halign = LLView::selectFontHAlign(node);
text_box->setHAlign(halign);
LLTextBox* text_box = new LLTextBox("text_box", LLRect(), "" , NULL, FALSE);
text_box->initFromXML(node, parent);
node->getAttributeS32("line_spacing", text_box->mLineSpacing);
std::string font_style;
if (node->getAttributeString("font-style", font_style))
{
text_box->mFontStyle = LLFontGL::getStyleFromString(font_style);
}
if (node->getAttributeString("font-shadow", font_style))
{
if(font_style == "soft")
text_box->mFontShadow = LLFontGL::DROP_SHADOW_SOFT;
else if(font_style == "hard")
text_box->mFontShadow = LLFontGL::DROP_SHADOW;
else
text_box->mFontShadow = LLFontGL::NO_SHADOW;
}
BOOL mouse_opaque = text_box->getMouseOpaque();
if (node->getAttributeBOOL("mouse_opaque", mouse_opaque))
{
text_box->setMouseOpaque(mouse_opaque);
}
if(node->hasAttribute("text_color"))
{
LLColor4 color;
LLUICtrlFactory::getAttributeColor(node, "text_color", color);
text_box->setColor(color);
}
if(node->hasAttribute("hover_color"))
{
LLColor4 color;
LLUICtrlFactory::getAttributeColor(node, "hover_color", color);
text_box->setHoverColor(color);
text_box->setHoverActive(true);
}
BOOL hover_active = FALSE;
if(node->getAttributeBOOL("hover", hover_active))
{
text_box->setHoverActive(hover_active);
}
return text_box;
}

View File

@@ -63,6 +63,7 @@ public:
virtual ~LLTextBox() {}
virtual void initFromXML(LLXMLNodePtr node, LLView* parent);
virtual LLXMLNodePtr getXML(bool save_children = true) const;
static LLView* fromXML(LLXMLNodePtr node, LLView *parent, class LLUICtrlFactory *factory);

View File

@@ -4748,9 +4748,6 @@ LLXMLNodePtr LLTextEditor::getXML(bool save_children) const
// static
LLView* LLTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("text_editor");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -4764,7 +4761,7 @@ LLView* LLTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory
std::string text = node->getTextContents().substr(0, max_text_length - 1);
LLTextEditor* text_editor = new LLTextEditor(name,
LLTextEditor* text_editor = new LLTextEditor("text_editor",
rect,
max_text_length,
text,

View File

@@ -485,6 +485,10 @@ BOOL LLUICtrl::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect
void LLUICtrl::initFromXML(LLXMLNodePtr node, LLView* parent)
{
std::string name;
if(node->getAttributeString("name", name))
setName(name);
BOOL has_tab_stop = hasTabStop();
node->getAttributeBOOL("tab_stop", has_tab_stop);

View File

@@ -102,11 +102,8 @@ public:
static LLView *fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("pad");
node->getAttributeString("name", name);
LLUICtrlLocate *new_ctrl = new LLUICtrlLocate();
new_ctrl->setName(name);
new_ctrl->setName("pad");
new_ctrl->initFromXML(node, parent);
return new_ctrl;
}

View File

@@ -370,6 +370,7 @@ set(viewer_SOURCE_FILES
llpanelmediasettingsgeneral.cpp
llpanelmediasettingspermissions.cpp
llpanelmediasettingssecurity.cpp
llpanelnearbymedia.cpp
llpanelmorph.cpp
llpanelmsgs.cpp
llpanelnetwork.cpp
@@ -871,6 +872,7 @@ set(viewer_HEADER_FILES
llpanelmediasettingsgeneral.h
llpanelmediasettingspermissions.h
llpanelmediasettingssecurity.h
llpanelnearbymedia.h
llpanelmorph.h
llpanelmsgs.h
llpanelnetwork.h

View File

@@ -425,7 +425,19 @@
</array>
</map>
<!-- Begin: AO-->
<key>ShowNearbyMediaFloater</key>
<map>
<key>Comment</key>
<string>Show nearby media floter</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<!-- Begin: AO-->
<key>ShowAOSitPopup</key>
<map>
@@ -1125,7 +1137,7 @@ This should be as low as possible, but too low may break functionality</string>
<key>Comment</key>
<string>Show Windlight popup</string>
<key>Persist</key>
<integer>0</integer>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
@@ -16940,6 +16952,22 @@ This should be as low as possible, but too low may break functionality</string>
<integer>473</integer>
</array>
</map>
<key>FloaterNearbyMediaRect</key>
<map>
<key>Comment</key>
<string>Rectangle for nearby media floater.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Rect</string>
<key>Value</key>
<array>
<integer>0</integer>
<integer>0</integer>
<integer>0</integer>
<integer>0</integer>
</array>
</map>
<key>WindEnabled</key>
<map>
<key>Comment</key>

View File

@@ -352,9 +352,6 @@ LLXMLNodePtr LLColorSwatchCtrl::getXML(bool save_children) const
LLView* LLColorSwatchCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("colorswatch");
node->getAttributeString("name", name);
std::string label;
node->getAttributeString("label", label);
@@ -373,7 +370,7 @@ LLView* LLColorSwatchCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFa
}
LLColorSwatchCtrl* color_swatch = new LLColorSwatchCtrl(
name,
"colorswatch",
rect,
label,
color );

View File

@@ -124,6 +124,7 @@ public:
static void closeWithoutSaving();
protected:
friend class LLPanelNearByMedia;
LLPreferenceCore *mPreferenceCore;
/*virtual*/ void onClose(bool app_quitting);

View File

@@ -331,9 +331,6 @@ LLXMLNodePtr LLJoystickAgentTurn::getXML(bool save_children) const
LLView* LLJoystickAgentTurn::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("button");
node->getAttributeString("name", name);
std::string image_unselected;
if (node->hasAttribute("image_unselected")) node->getAttributeString("image_unselected",image_unselected);
@@ -343,7 +340,7 @@ LLView* LLJoystickAgentTurn::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrl
EJoystickQuadrant quad = JQ_ORIGIN;
if (node->hasAttribute("quadrant")) quad = selectQuadrant(node);
LLJoystickAgentTurn *button = new LLJoystickAgentTurn(name,
LLJoystickAgentTurn *button = new LLJoystickAgentTurn("button",
LLRect(),
image_unselected,
image_selected,
@@ -449,9 +446,6 @@ LLXMLNodePtr LLJoystickAgentSlide::getXML(bool save_children) const
// static
LLView* LLJoystickAgentSlide::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("button");
node->getAttributeString("name", name);
std::string image_unselected;
if (node->hasAttribute("image_unselected")) node->getAttributeString("image_unselected",image_unselected);
@@ -462,7 +456,7 @@ LLView* LLJoystickAgentSlide::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtr
EJoystickQuadrant quad = JQ_ORIGIN;
if (node->hasAttribute("quadrant")) quad = selectQuadrant(node);
LLJoystickAgentSlide *button = new LLJoystickAgentSlide(name,
LLJoystickAgentSlide *button = new LLJoystickAgentSlide("button",
LLRect(),
image_unselected,
image_selected,

View File

@@ -46,20 +46,18 @@
// statics
std::set<LLNameBox*> LLNameBox::sInstances;
static LLRegisterWidget<LLNameBox> r("name_box");
LLNameBox::LLNameBox(const std::string& name, const LLRect& rect, const LLUUID& name_id, BOOL is_group, const LLFontGL* font, BOOL mouse_opaque)
: LLTextBox(name, rect, std::string("(retrieving)"), font, mouse_opaque),
mNameID(name_id)
LLNameBox::LLNameBox(const std::string& name)
: LLTextBox(name, LLRect(), "" , NULL, TRUE)
{
mNameID = LLUUID::null;
mLink = false;
//mParseHTML = mLink; // STORM-215
mInitialValue = "(retrieving)";
LLNameBox::sInstances.insert(this);
if(!name_id.isNull())
{
setNameID(name_id, is_group);
}
else
{
setText(LLStringUtil::null);
}
setText(LLStringUtil::null);
}
LLNameBox::~LLNameBox()
@@ -72,25 +70,30 @@ void LLNameBox::setNameID(const LLUUID& name_id, BOOL is_group)
mNameID = name_id;
std::string name;
BOOL got_name = FALSE;
if (!is_group)
{
gCacheName->getFullName(name_id, name);
got_name = gCacheName->getFullName(name_id, name);
}
else
{
gCacheName->getGroupName(name_id, name);
got_name = gCacheName->getGroupName(name_id, name);
}
setText(name);
// Got the name already? Set it.
// Otherwise it will be set later in refresh().
if (got_name)
setName(name, is_group);
else
setText(mInitialValue);
}
void LLNameBox::refresh(const LLUUID& id, const std::string& full_name, bool is_group)
{
if (id == mNameID)
{
setText(full_name);
setName(full_name, is_group);
}
}
@@ -105,3 +108,39 @@ void LLNameBox::refreshAll(const LLUUID& id, const std::string& full_name, bool
box->refresh(id, full_name, is_group);
}
}
void LLNameBox::setName(const std::string& name, BOOL is_group)
{
if (mLink)
{
std::string url;
if (is_group)
url = "[secondlife:///app/group/" + mNameID.asString() + "/about " + name + "]";
else
url = "[secondlife:///app/agent/" + mNameID.asString() + "/about " + name + "]";
setText(url);
}
else
{
setText(name);
}
}
// virtual
void LLNameBox::initFromXML(LLXMLNodePtr node, LLView* parent)
{
LLTextBox::initFromXML(node, parent);
node->getAttributeBOOL("link", mLink);
node->getAttributeString("initial_value", mInitialValue);
}
// static
LLView* LLNameBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
LLNameBox* name_box = new LLNameBox("name_box");
name_box->initFromXML(node,parent);
return name_box;
}

View File

@@ -44,10 +44,9 @@ class LLNameBox
: public LLTextBox
{
public:
LLNameBox(const std::string& name, const LLRect& rect, const LLUUID& name_id = LLUUID::null, BOOL is_group = FALSE, const LLFontGL* font = NULL, BOOL mouse_opaque = TRUE );
// By default, follows top and left and is mouse-opaque.
// If no text, text = name.
// If no font, uses default system font.
virtual void initFromXML(LLXMLNodePtr node, LLView* parent);
static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
virtual ~LLNameBox();
void setNameID(const LLUUID& name_id, BOOL is_group);
@@ -56,11 +55,19 @@ public:
static void refreshAll(const LLUUID& id, const std::string& full_name, bool is_group);
protected:
LLNameBox (const std::string& name);
friend class LLUICtrlFactory;
private:
void setName(const std::string& name, BOOL is_group);
static std::set<LLNameBox*> sInstances;
private:
LLUUID mNameID;
BOOL mLink;
std::string mInitialValue;
};

View File

@@ -132,9 +132,6 @@ LLXMLNodePtr LLNameEditor::getXML(bool save_children) const
LLView* LLNameEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("name_editor");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -143,7 +140,7 @@ LLView* LLNameEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory
LLFontGL* font = LLView::selectFont(node);
LLNameEditor* line_editor = new LLNameEditor(name,
LLNameEditor* line_editor = new LLNameEditor("name_editor",
rect,
LLUUID::null, FALSE,
font,

View File

@@ -319,9 +319,6 @@ LLXMLNodePtr LLNameListCtrl::getXML(bool save_children) const
LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("name_list");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -337,7 +334,7 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
S32 name_column_index = 0;
node->getAttributeS32("name_column_index", name_column_index);
LLNameListCtrl* name_list = new LLNameListCtrl(name,
LLNameListCtrl* name_list = new LLNameListCtrl("name_list",
rect,
multi_select,
draw_border,

View File

@@ -69,7 +69,7 @@
#include "llmediactrl.h"
#include "llselectmgr.h"
#include "wlfPanel_AdvSettings.h"
#include "llpanelnearbymedia.h"
@@ -90,7 +90,6 @@ LLOverlayBar *gOverlayBar = NULL;
extern S32 MENU_BAR_HEIGHT;
extern ImportTracker gImportTracker;
BOOL LLOverlayBar::sAdvSettingsPopup;
BOOL LLOverlayBar::sChatVisible;
//
@@ -156,15 +155,15 @@ LLOverlayBar::LLOverlayBar()
bool updateAdvSettingsPopup(const LLSD &data)
{
LLOverlayBar::sAdvSettingsPopup = gSavedSettings.getBOOL("wlfAdvSettingsPopup");
bool wfl_adv_settings_popup = gSavedSettings.getBOOL("wlfAdvSettingsPopup");
wlfPanel_AdvSettings::updateClass();
if(LLLayoutStack* layout_stack = gOverlayBar->findChild<LLLayoutStack>("overlay_layout_panel"))
{
LLLayoutPanel* layout_panel = layout_stack->findChild<LLLayoutPanel>("AdvSettings_container");
if(layout_panel)
{
layout_stack->collapsePanel(layout_panel,LLOverlayBar::sAdvSettingsPopup);
if(!LLOverlayBar::sAdvSettingsPopup)
layout_stack->collapsePanel(layout_panel,!wfl_adv_settings_popup);
if(wfl_adv_settings_popup)
layout_panel->setTargetDim(layout_panel->getChild<LLView>("Adv_Settings")->getBoundingRect().getWidth());
}
}
@@ -184,6 +183,11 @@ bool updateAORemote(const LLSD &data)
return true;
}
bool updateNearbyMediaFloater(const LLSD &data)
{
LLFloaterNearbyMedia::updateClass();
return true;
}
BOOL LLOverlayBar::postBuild()
{
@@ -212,22 +216,26 @@ BOOL LLOverlayBar::postBuild()
layoutButtons();
sAdvSettingsPopup = gSavedSettings.getBOOL("wlfAdvSettingsPopup");
sChatVisible = gSavedSettings.getBOOL("ChatVisible");
gSavedSettings.getControl("wlfAdvSettingsPopup")->getSignal()->connect(boost::bind(&updateAdvSettingsPopup,_2));
LLControlVariable* wfl_adv_settings_popupp = gSavedSettings.getControl("wlfAdvSettingsPopup");
wfl_adv_settings_popupp->getSignal()->connect(boost::bind(&updateAdvSettingsPopup,_2));
gSavedSettings.getControl("ChatVisible")->getSignal()->connect(boost::bind(&updateChatVisible,_2));
gSavedSettings.getControl("EnableAORemote")->getSignal()->connect(boost::bind(&updateAORemote,_2));
gSavedSettings.getControl("ShowNearbyMediaFloater")->getSignal()->connect(boost::bind(&updateNearbyMediaFloater,_2));
childSetVisible("ao_remote_container", gSavedSettings.getBOOL("EnableAORemote"));
wlfPanel_AdvSettings::updateClass();
bool wfl_adv_settings_popup = wfl_adv_settings_popupp->getValue().asBoolean();
if(LLLayoutStack* layout_stack = findChild<LLLayoutStack>("overlay_layout_panel"))
{
LLLayoutPanel* layout_panel = layout_stack->findChild<LLLayoutPanel>("AdvSettings_container");
if(layout_panel)
{
layout_stack->collapsePanel(layout_panel,LLOverlayBar::sAdvSettingsPopup);
if(!LLOverlayBar::sAdvSettingsPopup)
layout_stack->collapsePanel(layout_panel,!wfl_adv_settings_popup);
if(wfl_adv_settings_popup)
layout_panel->setTargetDim(layout_panel->getChild<LLView>("Adv_Settings")->getBoundingRect().getWidth());
}
}

View File

@@ -99,7 +99,6 @@ public:
void setCancelTPButtonVisible(BOOL b, const std::string& label);
static BOOL sChatVisible;
static BOOL sAdvSettingsPopup;
protected:
static void* createMediaRemote(void* userdata);
static void* createVoiceRemote(void* userdata);
@@ -110,6 +109,7 @@ protected:
void enableMediaButtons();
protected:
friend class LLFloaterNearbyMedia; //Crappy workaround to access mMediaRemote
LLMediaRemoteCtrl* mMediaRemote;
LLVoiceRemoteCtrl* mVoiceRemote;
LLButton* mCancelBtn;

View File

@@ -142,14 +142,7 @@ BOOL LLPanelGroupGeneral::postBuild()
mBtnInfo->setClickedCallback(boost::bind(&LLPanelGroupGeneral::onClickInfo, this));
}
LLTextBox* founder = getChild<LLTextBox>("founder_name");
if (founder)
{
mFounderName = new LLNameBox(founder->getName(),founder->getRect(),LLUUID::null,FALSE,founder->getFont(),founder->getMouseOpaque());
removeChild(founder);
delete founder;
addChild(mFounderName);
}
mFounderName = getChild<LLNameBox>("founder_name");
mListVisibleMembers = getChild<LLNameListCtrl>("visible_members", recurse);
if (mListVisibleMembers)

View File

@@ -76,7 +76,7 @@ BOOL LLPanelMediaSettingsPermissions::postBuild()
mPermsWorldInteract = getChild< LLCheckBoxCtrl >( LLPanelContents::PERMS_ANYONE_INTERACT_KEY );
mPermsWorldControl = getChild< LLCheckBoxCtrl >( LLPanelContents::PERMS_ANYONE_CONTROL_KEY );
//mPermsGroupName = getChild< LLNameBox >( "perms_group_name" );
mPermsGroupName = getChild< LLNameBox >( "perms_group_name" );
return true;
}
@@ -94,7 +94,7 @@ void LLPanelMediaSettingsPermissions::draw()
// housekeeping
LLPanel::draw();
//getChild<LLUICtrl>("perms_group_name")->setValue(LLStringUtil::null);
getChild<LLUICtrl>("perms_group_name")->setValue(LLStringUtil::null);
LLUUID group_id;
BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
if (groups_identical)
@@ -139,7 +139,7 @@ void LLPanelMediaSettingsPermissions::clearValues( void* userdata, bool editable
self->getChild< LLTextBox >("controls_label")->setEnabled(editable);
self->getChild< LLTextBox >("owner_label")->setEnabled(editable);
self->getChild< LLTextBox >("group_label")->setEnabled(editable);
//self->getChild< LLNameBox >("perms_group_name")->setEnabled(editable);
self->getChild< LLNameBox >("perms_group_name")->setEnabled(editable);
self->getChild< LLTextBox >("anyone_label")->setEnabled(editable);
}
@@ -218,7 +218,7 @@ void LLPanelMediaSettingsPermissions::initValues( void* userdata, const LLSD& me
self->getChild< LLTextBox >("controls_label")->setEnabled(editable);
self->getChild< LLTextBox >("owner_label")->setEnabled(editable);
self->getChild< LLTextBox >("group_label")->setEnabled(editable);
//self->getChild< LLNameBox >("perms_group_name")->setEnabled(editable);
self->getChild< LLNameBox >("perms_group_name")->setEnabled(editable);
self->getChild< LLTextBox >("anyone_label")->setEnabled(editable);
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,198 @@
/**
* @file llpanelnearbymedia.h
* @brief Management interface for muting and controlling nearby media
*
* $LicenseInfo:firstyear=2005&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$
*/
#ifndef LL_LLPANELNEARBYMEDIA_H
#define LL_LLPANELNEARBYMEDIA_H
#include "llpanel.h"
#include "llfloater.h"
#include "llsingleton.h"
class LLPanelNearbyMedia;
class LLButton;
class LLScrollListCtrl;
class LLSlider;
class LLSliderCtrl;
class LLCheckBoxCtrl;
class LLTextBox;
class LLComboBox;
class LLViewerMediaImpl;
class LLPanelNearByMedia : public LLPanel
{
public:
/*virtual*/ BOOL postBuild();
/*virtual*/ void draw();
/*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask);
/*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask);
/*virtual*/ void onTopLost();
/*virtual*/ void handleVisibilityChange ( BOOL new_visibility );
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent);
/*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask);
// this is part of the nearby media *dialog* so we can track whether
// the user *implicitly* wants audio on or off via their *explicit*
// interaction with our buttons.
bool getParcelAudioAutoStart();
// callback for when the auto play media preference changes
// to update mParcelAudioAutoStart
void handleMediaAutoPlayChanged(const LLSD& newvalue);
LLPanelNearByMedia(bool standalone_panel = true);
virtual ~LLPanelNearByMedia();
private:
enum ColumnIndex {
CHECKBOX_COLUMN = 0,
PROXIMITY_COLUMN = 1,
VISIBILITY_COLUMN = 2,
CLASS_COLUMN = 3,
NAME_COLUMN = 4,
DEBUG_COLUMN = 5
};
// Media "class" enumeration
enum MediaClass {
MEDIA_CLASS_ALL = 0,
MEDIA_CLASS_FOCUSED = 1,
MEDIA_CLASS_WITHIN_PARCEL = 2,
MEDIA_CLASS_OUTSIDE_PARCEL = 3,
MEDIA_CLASS_ON_OTHERS = 4
};
// Add/remove an LLViewerMediaImpl to/from the list
LLScrollListItem* addListItem(const LLUUID &id);
void updateListItem(LLScrollListItem* item, LLViewerMediaImpl* impl);
void updateListItem(LLScrollListItem* item,
const std::string &item_name,
const std::string &item_tooltip,
S32 proximity,
bool is_disabled,
bool has_media,
bool is_time_based_and_playing,
MediaClass media_class,
const std::string &debug_str);
void removeListItem(const LLUUID &id);
// Refresh the list in the UI
void refreshList();
void refreshParcelItems();
// UI Callbacks
void onClickEnableAll();
void onClickDisableAll();
void onClickEnableParcelMedia();
void onClickDisableParcelMedia();
void onClickMuteParcelMedia();
void onParcelMediaVolumeSlider();
void onClickParcelMediaPlay();
void onClickParcelMediaStop();
void onClickParcelMediaPause();
void onClickParcelAudioPlay();
void onClickParcelAudioStop();
void onClickParcelAudioPause();
void onCheckAutoPlay();
void onAdvancedButtonClick();
void onMoreLess();
void onCheckItem(LLUICtrl* ctrl, const LLUUID &row_id);
static void onZoomMedia(void* user_data);
private:
bool setDisabled(const LLUUID &id, bool disabled);
static void getNameAndUrlHelper(LLViewerMediaImpl* impl, std::string& name, std::string & url, const std::string &defaultName);
void updateColumns();
bool shouldShow(LLViewerMediaImpl* impl);
void showBasicControls(bool playing, bool include_zoom, bool is_zoomed, bool muted, F32 volume);
void showTimeBasedControls(bool playing, bool include_zoom, bool is_zoomed, bool muted, F32 volume);
void showDisabledControls();
void updateControls();
void onClickSelectedMediaStop();
void onClickSelectedMediaPlay();
void onClickSelectedMediaPause();
void onClickSelectedMediaMute();
void onCommitSelectedMediaVolume();
void onClickSelectedMediaZoom();
void onClickSelectedMediaUnzoom();
LLUICtrl* mNearbyMediaPanel;
LLScrollListCtrl* mMediaList;
LLUICtrl* mEnableAllCtrl;
LLUICtrl* mDisableAllCtrl;
LLComboBox* mShowCtrl;
// Dynamic (selection-dependent) controls
LLUICtrl* mStopCtrl;
LLUICtrl* mPlayCtrl;
LLUICtrl* mPauseCtrl;
LLUICtrl* mMuteCtrl;
LLUICtrl* mVolumeSliderCtrl;
LLUICtrl* mZoomCtrl;
LLUICtrl* mUnzoomCtrl;
LLSlider* mVolumeSlider;
LLButton* mMuteBtn;
bool mAllMediaDisabled;
bool mDebugInfoVisible;
bool mParcelAudioAutoStart;
std::string mEmptyNameString;
std::string mPlayingString;
std::string mParcelMediaName;
std::string mParcelAudioName;
LLRect mMoreRect;
LLRect mLessRect;
LLFrameTimer mHoverTimer;
LLScrollListItem* mParcelMediaItem;
LLScrollListItem* mParcelAudioItem;
bool mStandalonePanel;
};
class LLFloaterNearbyMedia : public LLFloater, public LLSingleton<LLFloaterNearbyMedia>
{
public:
LLFloaterNearbyMedia();
static void updateClass();
/*virtual*/ void onClose(bool app_quitting);
/*virtual*/ void onOpen();
virtual void handleReshape(const LLRect& new_rect, bool by_user);
};
#endif // LL_LLPANELNEARBYMEDIA_H

View File

@@ -4207,8 +4207,6 @@ bool process_login_success_response(std::string& password)
LLViewerMedia::openIDSetup(openid_url, openid_token);
}
gIMMgr->loadIgnoreGroup();
bool success = false;
// JC: gesture loading done below, when we have an asset system
// in place. Don't delete/clear user_credentials until then.

View File

@@ -1175,9 +1175,6 @@ LLXMLNodePtr LLTextureCtrl::getXML(bool save_children) const
LLView* LLTextureCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("texture_picker");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent);
@@ -1208,7 +1205,7 @@ LLView* LLTextureCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactor
}
LLTextureCtrl* texture_picker = new LLTextureCtrl(
name,
"texture_picker",
rect,
label,
LLUUID(image_id),

View File

@@ -35,6 +35,7 @@
#include "linden_common.h"
#include "llpluginclassmedia.h"
#include "llpluginclassmediaowner.h"
#include "llviewermedia.h"
#include "llviewermedia_streamingaudio.h"
@@ -63,18 +64,18 @@ void LLStreamingAudio_MediaPlugins::start(const std::string& url)
if (!mMediaPlugin) // lazy-init the underlying media plugin
{
mMediaPlugin = initializeMedia("audio/mpeg"); // assumes that whatever media implementation supports mp3 also supports vorbis.
llinfos << "mMediaPlugin is now " << mMediaPlugin << llendl;
llinfos << "streaming audio mMediaPlugin is now " << mMediaPlugin << llendl;
}
if(!mMediaPlugin)
return;
if (!url.empty()) {
llinfos << "Starting internet stream: " << url << llendl;
mURL = url;
mMediaPlugin->loadURI ( url );
mMediaPlugin->start();
llinfos << "Playing....." << llendl;
llinfos << "Playing stream..." << llendl;
} else {
llinfos << "setting stream to NULL"<< llendl;
mURL.clear();
@@ -84,11 +85,9 @@ void LLStreamingAudio_MediaPlugins::start(const std::string& url)
void LLStreamingAudio_MediaPlugins::stop()
{
llinfos << "entered LLStreamingAudio_MediaPlugins::stop()" << llendl;
llinfos << "Stopping internet stream." << llendl;
if(mMediaPlugin)
{
llinfos << "Stopping internet stream: " << mURL << llendl;
mMediaPlugin->stop();
}
@@ -102,10 +101,12 @@ void LLStreamingAudio_MediaPlugins::pause(int pause)
if(pause)
{
llinfos << "Pausing internet stream." << llendl;
mMediaPlugin->pause();
}
else
{
llinfos << "Unpausing internet stream." << llendl;
mMediaPlugin->start();
}
}
@@ -119,20 +120,21 @@ void LLStreamingAudio_MediaPlugins::update()
int LLStreamingAudio_MediaPlugins::isPlaying()
{
if (!mMediaPlugin)
return 0;
return 0; // stopped
// *TODO: can probably do better than this
if (mMediaPlugin->isPluginRunning())
{
return 1; // Active and playing
}
LLPluginClassMediaOwner::EMediaStatus status =
mMediaPlugin->getStatus();
if (mMediaPlugin->isPluginExited())
switch (status)
{
case LLPluginClassMediaOwner::MEDIA_LOADING: // but not MEDIA_LOADED
case LLPluginClassMediaOwner::MEDIA_PLAYING:
return 1; // Active and playing
case LLPluginClassMediaOwner::MEDIA_PAUSED:
return 2; // paused
default:
return 0; // stopped
}
return 2; // paused
}
void LLStreamingAudio_MediaPlugins::setGain(F32 vol)

View File

@@ -35,12 +35,14 @@
#include "llviewerparcelmedia.h"
#include "llviewercontrol.h"
#include "llviewermedia.h"
#include "llviewerregion.h"
#include "llparcel.h"
#include "llviewerparcelmgr.h"
#include "lluuid.h"
#include "message.h"
#include "llviewertexturelist.h" // for texture stats
#include "llagent.h"
#include "llmimetypes.h"
const F32 AUTOPLAY_TIME = 5; // how many seconds before we autoplay
const F32 AUTOPLAY_SIZE = 24*24; // how big the texture must be (pixel area) before we autoplay
@@ -48,6 +50,8 @@ const F32 AUTOPLAY_SPEED = 0.1f; // how slow should the agent be moving t
LLViewerParcelMediaAutoPlay::LLViewerParcelMediaAutoPlay() :
LLEventTimer(1),
mLastParcelID(-1),
mPlayed(FALSE),
mTimeInParcel(0)
{
@@ -81,39 +85,54 @@ void LLViewerParcelMediaAutoPlay::playStarted()
BOOL LLViewerParcelMediaAutoPlay::tick()
{
LLParcel *this_parcel = NULL;
LLViewerRegion *this_region = NULL;
std::string this_media_url;
std::string this_media_type;
LLUUID this_media_texture_id;
S32 this_parcel_id = 0;
LLUUID this_region_id;
this_region = gAgent.getRegion();
if (this_region)
{
this_region_id = this_region->getRegionID();
}
this_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
if (this_parcel)
{
this_media_url = std::string(this_parcel->getMediaURL());
this_media_url = this_parcel->getMediaURL();
this_media_type = this_parcel->getMediaType();
this_media_texture_id = this_parcel->getMediaID();
this_parcel_id = this_parcel->getLocalID();
}
if (this_parcel_id != mLastParcelID)
if (this_parcel_id != mLastParcelID ||
this_region_id != mLastRegionID)
{
// we've entered a new parcel
mPlayed = FALSE; // we haven't autoplayed yet
mTimeInParcel = 0; // reset our timer
mLastParcelID = this_parcel_id;
mLastRegionID = this_region_id;
}
mTimeInParcel += mPeriod; // increase mTimeInParcel by the amount of time between ticks
mTimeInParcel += mPeriod; // increase mTimeInParcel by the amount of time between ticks
if ((!mPlayed) && // if we've never played
(mTimeInParcel > AUTOPLAY_TIME) && // and if we've been here for so many seconds
(this_media_url.size() != 0) && // and if the parcel has media
(LLViewerParcelMedia::sMediaImpl.isNull())) // and if the media is not already playing
if ((!mPlayed) && // if we've never played
(mTimeInParcel > AUTOPLAY_TIME) && // and if we've been here for so many seconds
(!this_media_url.empty()) && // and if the parcel has media
(stricmp(this_media_type.c_str(), LLMIMETypes::getDefaultMimeType().c_str()) != 0) &&
(LLViewerParcelMedia::sMediaImpl.isNull())) // and if the media is not already playing
{
if (this_media_texture_id.notNull()) // and if the media texture is good
if (this_media_texture_id.notNull()) // and if the media texture is good
{
LLViewerTexture *image = LLViewerTextureManager::getFetchedTexture(this_media_texture_id, FALSE);
LLViewerMediaTexture *image = LLViewerTextureManager::getMediaTexture(this_media_texture_id, FALSE) ;
F32 image_size = 0;

View File

@@ -34,6 +34,7 @@
#define LLVIEWERPARCELMEDIAAUTOPLAY_H
#include "lleventtimer.h"
#include "lluuid.h"
// timer to automatically play media
class LLViewerParcelMediaAutoPlay : LLEventTimer
@@ -47,6 +48,7 @@ class LLViewerParcelMediaAutoPlay : LLEventTimer
private:
S32 mLastParcelID;
LLUUID mLastRegionID;
BOOL mPlayed;
F32 mTimeInParcel;
};

View File

@@ -1625,9 +1625,6 @@ LLXMLNodePtr LLViewerTextEditor::getXML(bool save_children) const
LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
{
std::string name("text_editor");
node->getAttributeString("name", name);
LLRect rect;
createRect(node, rect, parent, LLRect());
@@ -1648,7 +1645,7 @@ LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlF
text.erase(max_text_length);
}
LLViewerTextEditor* text_editor = new LLViewerTextEditor(name,
LLViewerTextEditor* text_editor = new LLViewerTextEditor("text_editor",
rect,
max_text_length,
LLStringUtil::null,

View File

@@ -199,6 +199,8 @@
#include "llfloatertest.h" // HACK!
#include "llfloaternotificationsconsole.h"
#include "llpanelnearbymedia.h"
// [RLVa:KB]
#include "rlvhandler.h"
// [/RLVa:KB]
@@ -2107,11 +2109,24 @@ void LLViewerWindow::adjustControlRectanglesForFirstUse(const LLRect& window)
void LLViewerWindow::initWorldUI()
{
pre_init_menus();
if(!gMenuHolder)
{
//
// Tools for building
//
init_menus();
}
}
// initWorldUI that wasn't before logging in. Some of this may require the access the 'LindenUserDir'.
void LLViewerWindow::initWorldUI_postLogin()
{
S32 height = mRootView->getRect().getHeight();
S32 width = mRootView->getRect().getWidth();
LLRect full_window(0, height, width, 0);
//============================================
//Begin LLViewerWindow::initWorlUI
// Don't re-enter if objects are alreay created
if (gBottomPanel == NULL)
{
@@ -2119,18 +2134,15 @@ void LLViewerWindow::initWorldUI()
gBottomPanel = new LLBottomPanel(mRootView->getRect());
mRootView->addChild(gBottomPanel);
LLFloaterNearbyMedia::updateClass(); //Dependent on the overlay panel being fully initialized.
// View for hover information
gHoverView = new LLHoverView(std::string("gHoverView"), full_window);
gHoverView->setVisible(TRUE);
mRootView->addChild(gHoverView);
gIMMgr = LLIMMgr::getInstance();
//
// Tools for building
//
init_menus();
gIMMgr->loadIgnoreGroup();
// Toolbox floater
gFloaterTools = new LLFloaterTools();
@@ -2149,19 +2161,16 @@ void LLViewerWindow::initWorldUI()
// put behind everything else in the UI
mRootView->addChildInBack(gHUDView);
}
//End LLViewerWindow::initWorlUI
//============================================
LLPanel* panel_ssf_container = getRootView()->getChild<LLPanel>("state_management_buttons_container");
panel_ssf_container->setVisible(TRUE);
LLMenuOptionPathfindingRebakeNavmesh::getInstance()->initialize();
}
// initWorldUI that wasn't before logging in. Some of this may require the access the 'LindenUserDir'.
void LLViewerWindow::initWorldUI_postLogin()
{
S32 height = mRootView->getRect().getHeight();
S32 width = mRootView->getRect().getWidth();
LLRect full_window(0, height, width, 0);
// Don't re-enter if objects are alreay created.
if (!gStatusBar)
@@ -2236,7 +2245,8 @@ void LLViewerWindow::shutdownViews()
mRootView = NULL;
llinfos << "RootView deleted." << llendl ;
LLMenuOptionPathfindingRebakeNavmesh::getInstance()->quit();
if(LLMenuOptionPathfindingRebakeNavmesh::instanceExists())
LLMenuOptionPathfindingRebakeNavmesh::getInstance()->quit();
// Automatically deleted as children of mRootView. Fix the globals.
gFloaterTools = NULL;
@@ -3440,7 +3450,7 @@ void LLViewerWindow::updateLayout()
}
// Update rectangles for the various toolbars
if (gOverlayBar && gNotifyBoxView && gConsole && gToolBar)
if (gOverlayBar && gNotifyBoxView && gConsole && gToolBar && gHUDView)
{
LLRect bar_rect(-1, STATUS_BAR_HEIGHT, getWindowWidth()+1, -1);

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater
name="Nearby Media"
title="Nearby Media"
can_resize="true"
can_close="true"
height="208"
min_width="300"
min_height="122"
width="328">
<panel
name="nearby_media"
width="328"
height="190"
bottom="-208"
left="0"
follows="all"
mouse_opaque="false"
/>
</floater>

View File

@@ -483,13 +483,14 @@
mouse_opaque="true" name="Group:" v_pad="0" width="78">
Group:
</text>
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-126" drop_shadow_visible="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="78"
mouse_opaque="true" name="Group Name Proxy" v_pad="0" visible="false"
width="88">
The Lindens
</text>
<name_box
follows="left|top"
height="16"
initial_value="Loading..."
bottom="-126"
left_delta="78"
name="Group Name Proxy"
width="142"/>
<button bottom="-126" follows="top|right" font="SansSerifSmall" halign="center"
height="16" label="Set" label_selected="Set..." left_delta="94"
mouse_opaque="true" name="button set group" scale_image="TRUE" width="30" />

View File

@@ -32,6 +32,7 @@
width="815">
<button
bottom="0"
tool_tip="Navigate back"
follows="left|top"
height="25"
label=""
@@ -43,6 +44,7 @@
function="WebContent.Back" />
</button>
<button
tool_tip="Navigate forward"
bottom_delta="0"
follows="left|top"
height="25" label=""
@@ -55,6 +57,7 @@
</button>
<button
bottom_delta="0"
tool_tip="Stop navigation"
enabled="true"
follows="left|top"
height="25"
@@ -67,6 +70,7 @@
function="WebContent.Stop" />
</button>
<button
tool_tip="Reload page"
bottom_delta="0"
follows="left|top"
height="25"
@@ -86,20 +90,31 @@
left_delta="29"
max_chars="1024"
name="address"
tool_tip="Enter URL here"
select_all_on_focus_received="true"
bottom_delta="4"
width="706">
<combo_box.commit_callback
function="WebContent.EnterAddress" />
</combo_box>
<icon
name="media_secure_lock_flag"
height="16"
follows="top|right"
image_name="lock.png"
left_delta="667"
bottom="6"
tool_tip="Secured Browsing"
width="16" />
<button
bottom_delta="-4"
bottom_delta="-6"
tool_tip="Open current URL in your desktop browser"
follows="right|top"
enabled="true"
height="25"
label=""
image_overlay="media_btn_newwindow.png"
left_delta="709"
left_delta="41"
name="popexternal"
width="25">
<button.commit_callback
@@ -117,7 +132,7 @@
width="540">
<web_browser
bottom="0"
follows="left|right|top|bottom"
follows="all"
left="0"
name="webbrowser"
border_visible="false"

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel border="false" height="100" label="Audio &amp; Video" name="Media panel" width="250">
<panel border="false" height="120" label="Audio &amp; Video" name="Media panel" width="250">
<slider control_name="AudioLevelMaster" follows="top" height="15" increment="0.005" initial_val="0.5" label="Master" label_width="55" left="10" max_val="1" min_val="0" name="System Volume" show_text="false" volume="true" width="181"/>
<button bottom_delta="0" control_name="MuteAudio" follows="top" height="16" image_selected="icn_speaker-muted_dark.tga" image_unselected="icn_speaker_dark.tga" scale_image="false" label="" right="-28" name="mute_audio" toggle="true" width="25"/>
<slider bottom_delta="-30" control_name="AudioLevelMusic" follows="top" height="15" increment="0.005" initial_val="0.5" label="Music" label_width="55" left="10" max_val="1" min_val="0" name="Music Volume" show_text="false" volume="true" width="181"/>
@@ -14,4 +14,5 @@
<button bottom_delta="0" control_name="MuteAmbient" follows="top" height="16" image_selected="icn_speaker-muted_dark.tga" image_unselected="icn_speaker_dark.tga" scale_image="false" right="-28" label="" name="mute_wind" toggle="true" width="25"/>
<slider control_name="AudioLevelUI" follows="top" height="15" increment="0.005" initial_val="0.5" label="UI" label_width="55" left="10" max_val="1" min_val="0" name="UI Volume" show_text="false" volume="true" width="181"/>
<button bottom_delta="0" control_name="MuteUI" follows="top" height="16" image_selected="icn_speaker-muted_dark.tga" image_unselected="icn_speaker_dark.tga" scale_image="false" right="-28" label="" name="mute_ui" toggle="true" width="25"/>
<button bottom_delta="-20" control_name="ShowNearbyMediaFloater" follows="top" height="18" left="10" label="Nearby Media" name="nearby_media" toggle="true" width="200"/>
</panel>

View File

@@ -28,12 +28,11 @@ Hover your mouse over the options for more help.
<text font="SansSerifSmall" name="prepend_founded_by">
Founded by
</text>
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
<name_box bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom_delta="-6" drop_shadow_visible="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="16" left_delta="63"
mouse_opaque="true" name="founder_name" v_pad="0" width="200">
(waiting)
</text>
mouse_opaque="true" name="founder_name" v_pad="0" width="200" initial_value="Loading..."
/>
<text font="SansSerifSmall" name="group_key_text" follows="left|top" left="7" bottom="-50">
Group Key:
</text>

View File

@@ -3,7 +3,7 @@
follows="right|bottom" height="185" left="0" name="media_remote"
use_bounding_rect="true" width="220">
<panel bottom="0" filename="panel_bg_tab.xml" height="187" left="0" width="220" />
<panel border="false" bottom="22" filename="panel_audio.xml" height="160"
<panel border="false" bottom="22" filename="panel_audio.xml" height="165"
label="Audio &amp; Video" name="Volume Panel" width="220" />
<panel bottom_delta="-10" filename="panel_media_controls.xml" left="0" />
<string name="play_label">

View File

@@ -91,7 +91,7 @@
Group:
</text>
<!-- <name_box
<name_box
bottom_delta="-5"
enabled="false"
follows="left|top"
@@ -100,7 +100,7 @@
name="perms_group_name"
text_readonly_color="LabelDisabledColor"
value =""
width="200" />-->
width="200" />
<check_box
bottom_delta="-22"

View File

@@ -0,0 +1,382 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
background_opaque="true"
background_visible="false"
width="328"
height="190"
bottom="-248"
follows="all"
name="nearby_media"
help_topic="nearby_media">
<string name="media_item_count_format">(%ld media items)</string>
<string name="empty_item_text">&lt;empty&gt;</string>
<string name="parcel_media_name">Parcel Streaming Media</string>
<string name="parcel_audio_name">Parcel Streaming Audio</string>
<string name="playing_suffix">(playing)</string>
<panel
bevel_style="in"
background_visible="false"
follows="left|right|top"
height="35"
name="minimized_controls"
mouse_opaque="false"
bottom="-25"
width="328"
left="0">
<button
name="all_nearby_media_disable_btn"
follows="left"
tool_tip="Turn all nearby media off"
left="8"
width="95"
height="22"
bottom="0"
label="Stop All">
<button.commit_callback
function="MediaListCtrl.DisableAll" />
</button>
<button
name="all_nearby_media_enable_btn"
follows="left"
tool_tip="Turn all nearby media on"
left_delta="96"
width="95"
height="22"
bottom="0"
label="Start All">
<button.commit_callback
function="MediaListCtrl.EnableAll" />
</button>
<button
name="open_prefs_btn"
hover_glow_amount="0.15"
tool_tip = "Bring up media prefs"
label="Settings"
left_delta="96"
bottom="0"
height="22"
width="95">
<button.commit_callback
function="MediaListCtrl.GoMediaPrefs" />
</button>
<button
name="more_btn"
follows="right"
tool_tip="Advanced Controls"
top_delta="0"
value="1"
width="27"
height="22"
bottom="0"
left_delta="96"
toggle="true"
label="&gt;&gt;"
label_selected="&lt;&lt; Less">
<button.commit_callback
function="MediaListCtrl.MoreLess" />
</button>
</panel>
<panel
name="nearby_media_panel"
bevel_style="in"
border_style="line"
bg_alpha_color="0 0 0 0"
bg_opaque_color="0 0 0 0.3"
follows="left|right|top|bottom"
bottom="-192"
width="328"
left="0"
height="165">
<!--<text
bottom="-10"
type="string"
length="1"
follows="top|left"
font="SansSerif"
left="10"
height="14"
name="nearby_media_title"
width="100">
Nearby Media
</text>-->
<text
type="string"
length="1"
follows="top|left"
font="SansSerif"
bottom="-20"
height="14"
left="10"
name="show_text"
width="62">
Show:
</text>
<combo_box
height="23"
left="72"
width="140"
bottom="-23"
follows="left|top"
name="show_combo">
<combo_item
label="All"
value="0"
name="All" >
All
</combo_item>
<combo_item
label="In this Parcel"
value="2"
name="WithinParcel" >
In this Parcel
</combo_item>
<combo_item
label="Outside this Parcel"
value="3"
name="OutsideParcel" >
Outside this Parcel
</combo_item>
<combo_item
label="On other Avatars"
value="4"
name="OnOthers" >
On other Avatars
</combo_item>
</combo_box>
<scroll_list
follows="left|top|bottom|right"
column_padding="0"
height="105"
draw_heading="false"
draw_stripes="true"
top_pad="8"
left="10"
right="-10"
name="media_list">
<column
width="-1"
label=""
name="media_checkbox_ctrl" />
<column
sort_column="media_proximity"
width="-1"
label="Proximity"
name="media_proximity" />
<column
sort_column="media_visibility"
width="-1"
label="Visible"
name="media_visibility" />
<column
sort_column="media_class"
width="-1"
label="Class"
name="media_class" />
<column
label="Name"
dynamicwidth="true"
name="media_name" />
<column
sort_column="media_debug"
width="-1"
label="Debug"
name="media_debug" />
</scroll_list>
<panel
bevel_style="in"
background_visible="false"
follows="left|right|bottom"
name="media_controls_panel"
mouse_opaque="false"
bottom="-161"
height="30"
left="10"
right="-10">
<layout_stack
name="media_controls"
follows="left|right|top"
animate="false"
height="26"
layout="topleft"
bottom="-30"
left="8"
right="-10"
border_size="0"
mouse_opaque="false"
orientation="horizontal">
<layout_panel
user_resize="false"
name="stop"
mouse_opaque="false"
auto_resize="false"
layout="topleft"
top="0"
height="22"
min_width="22"
width="22">
<button
name="stop_btn"
follows="top"
image_overlay="go-media-stop.png"
label=""
bottom="-22"
hover_glow_amount="0.15"
tool_tip="Stop selected media"
height="22"
width="22">
<button.commit_callback
function="SelectedMediaCtrl.Stop" />
</button>
</layout_panel>
<layout_panel
user_resize="false"
name="play"
mouse_opaque="false"
auto_resize="false"
layout="topleft"
height="22"
min_width="22"
width="22">
<button
name="play_btn"
follows="top"
image_overlay="go-media-play.png"
label=""
bottom="-22"
hover_glow_amount="0.15"
tool_tip = "Play selected media"
height="22"
width="22">
<button.commit_callback
function="SelectedMediaCtrl.Play" />
</button>
</layout_panel>
<layout_panel
user_resize="false"
name="pause"
mouse_opaque="false"
auto_resize="false"
layout="topleft"
min_width="22"
width="22">
<button
name="pause_btn"
follows="top"
image_overlay="go-media-pause.png"
label=""
hover_glow_amount="0.15"
bottom="-22"
height="22"
width="22"
tool_tip = "Pause selected media">
<button.commit_callback
function="SelectedMediaCtrl.Pause" />
</button>
</layout_panel>
<layout_panel
user_resize="false"
name="volume_slider_ctrl"
mouse_opaque="false"
auto_resize="true"
follows="left|right"
layout="topleft"
height="22"
min_width="100"
width="200">
<slider_bar
name="volume_slider"
follows="left|right|top"
bottom="-22"
height="22"
increment="0.01"
initial_value="0.5"
tool_tip="Audio volume for selected media"
width="200">
<slider_bar.commit_callback
function="SelectedMediaCtrl.Volume" />
</slider_bar>
</layout_panel>
<layout_panel
user_resize="false"
name="mute"
mouse_opaque="false"
auto_resize="false"
layout="topleft"
top="0"
height="72"
min_width="22"
width="22">
<button
name="mute_btn"
follows="top"
image_selected="icn_speaker-muted_dark.tga"
image_unselected="icn_speaker_dark.tga"
label=""
hover_glow_amount="0.15"
is_toggle="true"
layout="topleft"
scale_image="false"
tool_tip="Mute audio on selected media"
bottom="-19"
height="20"
width="22" >
<button.commit_callback
function="SelectedMediaCtrl.Mute" />
</button>
</layout_panel>
<layout_panel
user_resize="false"
name="zoom"
mouse_opaque="false"
auto_resize="false"
layout="topleft"
top="0"
height="28"
min_width="22"
width="22">
<button
name="zoom_btn"
follows="top"
image_overlay="go-media-zoom.png"
label=""
hover_glow_amount="0.15"
bottom="-22"
height="22"
tool_tip="Zoom into selected media"
width="22">
<button.commit_callback
function="SelectedMediaCtrl.Zoom" />
</button>
</layout_panel>
<layout_panel
user_resize="false"
name="unzoom"
mouse_opaque="false"
auto_resize="false"
layout="topleft"
top="0"
min_width="21"
width="21" >
<button
name="unzoom_btn"
follows="top"
image_overlay="go-media-unzoom.png"
label=""
hover_glow_amount="0.15"
bottom="-22"
height="22"
tool_tip ="Zoom back from selected media"
width="21" >
<button.commit_callback
function="SelectedMediaCtrl.Unzoom" />
</button>
</layout_panel>
<layout_panel
user_resize="false"
name="right_bookend"
width="0"
mouse_opaque="false"/>
</layout_stack>
</panel>
</panel>
</panel>

View File

@@ -50,7 +50,7 @@
</layout_panel>
<layout_panel auto_resize="false" bottom="0" left="0" min_width="96" mouse_opaque="false"
name="ao_remote_container" use_bounding_rect="true" user_resize="false"
width="100">
width="96">
<panel background_visible="false" border="false" bottom="0" name="ao_remote" />
</layout_panel>
<layout_panel auto_resize="false" bottom="0" left="0" min_width="220" mouse_opaque="false"

View File

@@ -48,7 +48,7 @@
height="8"
top="0"
left="0"
/>
tool_tip="Media is Loading"/>
</layout_panel>
<layout_panel
name="right_bookend_bottom"
@@ -87,6 +87,7 @@
image_overlay="go-previous.png"
auto_resize="false"
label=""
tool_tip="Navigate back"
bottom="-22"
left="0"
width="22"
@@ -111,7 +112,8 @@
label=""
bottom="-22"
height="22"
width="22">
width="22"
tool_tip="Navigate forward">
<button.commit_callback
function="MediaCtrl.Forward" />
</button>
@@ -130,6 +132,7 @@
follows="top"
image_overlay="go-home.png"
label=""
tool_tip="Home page"
bottom="-22"
height="22"
width="22">
@@ -151,6 +154,7 @@
follows="top"
image_overlay="go-media-stop.png"
label=""
tool_tip="Stop media"
bottom="-22"
height="22"
width="22">
@@ -172,6 +176,7 @@
follows="top"
image_overlay="go-reload.png"
label=""
tool_tip="Reload"
bottom="-22"
height="22"
width="22">
@@ -193,6 +198,7 @@
follows="top"
image_overlay="go-stop.png"
label=""
tool_tip = "Stop loading"
bottom="-22"
height="22"
width="22">
@@ -214,6 +220,7 @@
follows="top"
image_overlay="go-media-play.png"
label=""
tool_tip = "Play media"
bottom="-22"
height="22"
width="22">
@@ -258,6 +265,7 @@
follows="top|left|right"
height="22"
bottom="-22"
tool_tip="Media URL"
text_pad_right="16">
<line_editor.commit_callback
function="MediaCtrl.CommitURL"/>
@@ -269,7 +277,7 @@
height="20"
width="38"
left="140"
bottom="0"
bottom="0"
border_size="0"
mouse_opaque="false"
orientation="horizontal">
@@ -284,6 +292,7 @@
height="16"
image_name="Flag.png"
layout="topleft"
tool_tip="White List enabled"
bottom="-16"
width="16" />
</layout_panel>
@@ -297,6 +306,7 @@
height="16"
image_name="lock.png"
bottom="-16"
tool_tip="Secured Browsing"
width="16" />
</layout_panel>
</layout_stack>
@@ -317,6 +327,7 @@
height="22"
increment="0.01"
initial_value="0.5"
tool_tip="Movie play progress"
width="200">
<slider_bar.commit_callback
function="MediaCtrl.JumpProgress" />
@@ -337,6 +348,7 @@
bottom="-22"
auto_resize="false"
height="22"
tool_tip="Step back"
width="22">
<button.commit_callback
function="MediaCtrl.SkipBack" />
@@ -356,6 +368,7 @@
label=""
bottom="-22"
height="22"
tool_tip="Step forward"
width="22">
<button.commit_callback
function="MediaCtrl.SkipForward" />
@@ -383,6 +396,7 @@
hover_glow_amount="0.15"
is_toggle="true"
scale_image="false"
tool_tip="Mute This Media"
left_delta="5"
bottom="-22"
draw_border="true"
@@ -430,6 +444,7 @@
label=""
bottom="-22"
height="22"
tool_tip="Zoom into media"
width="22">
<button.commit_callback
function="MediaCtrl.Zoom" />
@@ -449,6 +464,7 @@
image_overlay="go-media-unzoom.png"
label=""
height="22"
tool_tip ="Zoom Back"
bottom="-22"
width="21">
<button.commit_callback
@@ -469,6 +485,7 @@
label=""
bottom="-22"
height="22"
tool_tip = "Open URL in browser"
width="24" >
<button.commit_callback
function="MediaCtrl.Open" />

View File

@@ -135,9 +135,7 @@
<text name="Group:">
Grupo:
</text>
<text name="Group Name Proxy">
The Lindens
</text>
<name_box initial_value="Cargando..." name="Group Name Proxy"></name_box>
<button label="Definir" label_selected="Definir..." name="button set group" width="48"/>
<button label="Ver" label_selected="Abrir" name="button open group" left_delta="48" width="30" />
<text name="Permissions:">

View File

@@ -7,4 +7,5 @@
<slider label="Sonidos" name="SFX Volume"/>
<slider label="Ambiente" name="Wind Volume"/>
<slider label="UI" name="UI Volume"/>
<button label="Media cercanos" name="nearby_media"/>
</panel>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="General" name="Media Settings General">
<text name="home_label">
Página inicial:
</text>
<text name="home_fails_whitelist_label">
(La Lista Blanca especificada no aprueba esta página)
</text>
<line_editor name="home_url" tool_tip="Página inicial para el origen de este media"/>
<text name="preview_label">
Vista previa
</text>
<text name="current_url_label">
Página actual:
</text>
<text name="current_url" tool_tip="Página actual para el origen de este media" value=""/>
<button label="Definir" name="current_url_reset_btn"/>
<check_box initial_value="false" label="Media en bucle" name="auto_loop"/>
<check_box initial_value="false" label="A la primera pulsación" name="first_click_interact"/>
<check_box initial_value="false" label="Zoom automático" name="auto_zoom"/>
<check_box initial_value="false" label="Ejecutar automáticamente los media" name="auto_play"/>
<text name="media_setting_note">
Nota: los residentes pueden elegir una configuración distinta
de ésta
</text>
<check_box initial_value="false" label="Ajustar automáticamente los media en la cara del objeto" name="auto_scale"/>
<text name="size_label">
Tamaño:
</text>
<text name="X_label">
X
</text>
</panel>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Personalizar" name="Media settings for controls">
<text name="controls_label">
Controles:
</text>
<combo_box name="controls">
<combo_item name="Standard">
Estándar
</combo_item>
<combo_item name="Mini">
Mini
</combo_item>
</combo_box>
<text name="owner_label">
Propietario
</text>
<check_box initial_value="false" label="Permitir la navegación e interactividad" name="perms_owner_interact"/>
<check_box initial_value="false" label="Mostrar la barra de control" name="perms_owner_control"/>
<text name="group_label">
Grupo:
</text>
<check_box initial_value="false" label="Permitir la navegación e interactividad" name="perms_group_interact"/>
<check_box initial_value="false" label="Mostrar la barra de control" name="perms_group_control"/>
<text name="anyone_label">
Cualquiera
</text>
<check_box initial_value="false" label="Permitir la navegación e interactividad" name="perms_anyone_interact"/>
<check_box initial_value="false" label="Mostrar la barra de control" name="perms_anyone_control"/>
</panel>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Seguridad" name="Media Settings Security">
<check_box initial_value="false" label="Permitir el acceso sólo a los patrones de URL especificados" name="whitelist_enable"/>
<text name="home_url_fails_some_items_in_whitelist">
Están marcadas las entradas que la página web no
admite:
</text>
<button label="Añadir" name="whitelist_add"/>
<button label="Borrar" name="whitelist_del"/>
<text name="home_url_fails_whitelist">
Atención: la página web especificada en la pestaña General
no se admite en esta lista blanca. Se ha desactivado hasta
que se añada una entrada correcta.
</text>
</panel>

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
<string name="media_item_count_format">
(%ld ítems media)
</string>
<string name="empty_item_text">
&lt;vacío&gt;
</string>
<string name="parcel_media_name">
Media en streaming de la parcela
</string>
<string name="parcel_audio_name">
Audio en streaming de la parcela
</string>
<string name="playing_suffix">
(ejecutándose)
</string>
<panel name="minimized_controls">
<button label="Parar todo" name="all_nearby_media_disable_btn" tool_tip="Apagar todos los media cercanos"/>
<button label="Iniciar todo" name="all_nearby_media_enable_btn" tool_tip="Encender todos los media cercanos"/>
<button name="open_prefs_btn" tool_tip="Abrir las preferencias de los media"/>
<button label="Más &gt;&gt;" label_selected="&lt;&lt; Menos" name="more_btn" tool_tip="Controles avanzados"/>
<button label="Más &gt;&gt;" label_selected="Menos &lt;&lt;" name="less_btn" tool_tip="Controles avanzados"/>
</panel>
<panel name="nearby_media_panel">
<text name="nearby_media_title">
Media cercanos
</text>
<text name="show_text">
Mostrar:
</text>
<combo_box name="show_combo">
<combo_box.item label="Todo" name="All"/>
<combo_box.item label="En esta parcela" name="WithinParcel"/>
<combo_box.item label="Fuera de la parcela" name="OutsideParcel"/>
<combo_box.item label="En otros avatares" name="OnOthers"/>
</combo_box>
<scroll_list name="media_list">
<scroll_list.columns label="Cercanía" name="media_proximity"/>
<scroll_list.columns label="Visibilidad" name="media_visibility"/>
<scroll_list.columns label="Clase" name="media_class"/>
<scroll_list.columns label="Nombre" name="media_name"/>
<scroll_list.columns label="Depurar" name="media_debug"/>
</scroll_list>
<panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Parar los media seleccionados"/>
</layout_panel>
<layout_panel name="play">
<button name="play_btn" tool_tip="Ejecutar los media seleccionados"/>
</layout_panel>
<layout_panel name="pause">
<button name="pause_btn" tool_tip="Pausar los media seleccionados"/>
</layout_panel>
<layout_panel name="volume_slider_ctrl">
<slider_bar initial_value="0.5" name="volume_slider" tool_tip="Volumen de los media seleccionados"/>
</layout_panel>
<layout_panel name="mute">
<button name="mute_btn" tool_tip="Silenciar el audio de los media seleccionados"/>
</layout_panel>
<layout_panel name="zoom">
<button name="zoom_btn" tool_tip="Zoom en los media seleccionados"/>
</layout_panel>
<layout_panel name="unzoom">
<button name="unzoom_btn" tool_tip="Alejar el zoom de los media seleccionados"/>
</layout_panel>
</layout_stack>
</panel>
</panel>
</panel>

View File

@@ -131,9 +131,7 @@
<text name="Group:">
Groupe :
</text>
<text name="Group Name Proxy">
Les Lindens
</text>
<name_box initial_value="Chargement..." name="Group Name Proxy"></name_box>
<button label="Définir" label_selected="Définir" name="button set group"/>
<button label="Voir" name="button open group"/>
<text name="Permissions :">

View File

@@ -7,4 +7,5 @@
<slider label="Sons" label_width="65" name="SFX Volume"/>
<slider label="Son ambiant" label_width="65" name="Wind Volume"/>
<slider label="Interface" label_width="65" name="UI Volume"/>
<button label="Médias proches" name="nearby_media"/>
</panel>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Général" name="Media Settings General">
<text name="home_label">
Page d&apos;accueil :
</text>
<text name="home_fails_whitelist_label">
(Cette page a été rejetée par la liste blanche spécifiée)
</text>
<line_editor name="home_url" tool_tip="La page d&apos;accueil pour cette source média"/>
<text name="preview_label">
Aperçu
</text>
<text name="current_url_label">
Page actuelle :
</text>
<text name="current_url" tool_tip="La page actuelle pour cette source média" value=""/>
<button label="Réinitialiser" name="current_url_reset_btn"/>
<check_box initial_value="false" label="Boucle auto" name="auto_loop"/>
<check_box initial_value="false" label="Premier clic interagit" name="first_click_interact"/>
<check_box initial_value="false" label="Zoom auto" name="auto_zoom"/>
<check_box initial_value="false" label="Lecture auto du média" name="auto_play"/>
<text name="media_setting_note">
Remarque : les résidents peuvent ignorer ce paramètre
</text>
<check_box initial_value="false" label="Mise à l&apos;échelle auto du média sur la face de l&apos;objet" name="auto_scale"/>
<text name="size_label">
Taille :
</text>
<text name="X_label">
X
</text>
</panel>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Personnaliser" name="Media settings for controls">
<text name="controls_label">
Contrôles :
</text>
<combo_box name="controls">
<combo_item name="Standard">
Standard
</combo_item>
<combo_item name="Mini">
Mini
</combo_item>
</combo_box>
<text name="owner_label">
Propriétaire
</text>
<check_box initial_value="false" label="Activer la navigation et l&apos;interactivité" name="perms_owner_interact"/>
<check_box initial_value="false" label="Afficher la barre de contrôles" name="perms_owner_control"/>
<text name="group_label">
Groupe :
</text>
<check_box initial_value="false" label="Activer la navigation et l&apos;interactivité" name="perms_group_interact"/>
<check_box initial_value="false" label="Afficher la barre de contrôles" name="perms_group_control"/>
<text name="anyone_label">
Tout le monde
</text>
<check_box initial_value="false" label="Activer la navigation et l&apos;interactivité" name="perms_anyone_interact"/>
<check_box initial_value="false" label="Afficher la barre de contrôles" name="perms_anyone_control"/>
</panel>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Sécurité" name="Media Settings Security">
<check_box initial_value="false" label="Autoriser l&apos;accès aux styles d&apos;URL spécifiés uniquement" name="whitelist_enable"/>
<text name="home_url_fails_some_items_in_whitelist">
Les entrées par lesquelles la page
d&apos;accueil est rejetée sont indiquées :
</text>
<button label="Ajouter" name="whitelist_add"/>
<button label="Supprimer" name="whitelist_del"/>
<text name="home_url_fails_whitelist">
Avertissement : la page d&apos;accueil spécifiée dans
l&apos;onglet Général a été rejetée par la liste blanche.
Elle sera désactivée jusqu&apos;à l&apos;ajout d&apos;une
entrée valide.
</text>
</panel>

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
<string name="media_item_count_format">
(%ld articles de média)
</string>
<string name="empty_item_text">
&lt;vide&gt;
</string>
<string name="parcel_media_name">
Flux de média de la parcelle
</string>
<string name="parcel_audio_name">
Flux audio de la parcelle
</string>
<string name="playing_suffix">
(lecture en cours)
</string>
<panel name="minimized_controls">
<button label="Arrêter" name="all_nearby_media_disable_btn" tool_tip="Désactiver tous les médias près de vous"/>
<button label="Lire" name="all_nearby_media_enable_btn" tool_tip="Activer tous les médias près de vous"/>
<button name="open_prefs_btn" tool_tip="Ouvrir les préférences de média"/>
<button label="Plus &gt;&gt;" label_selected="&lt;&lt; Moins" name="more_btn" tool_tip="Options avancées"/>
<button label="Plus &gt;&gt;" label_selected="Moins &lt;&lt;" name="less_btn" tool_tip="Options avancées"/>
</panel>
<panel name="nearby_media_panel">
<text name="nearby_media_title">
Médias proches
</text>
<text name="show_text">
Voir :
</text>
<combo_box name="show_combo">
<combo_box.item label="Tout" name="All"/>
<combo_box.item label="Sur cette parcelle" name="WithinParcel"/>
<combo_box.item label="En dehors de la parcelle" name="OutsideParcel"/>
<combo_box.item label="Sur les autres avatars" name="OnOthers"/>
</combo_box>
<scroll_list name="media_list">
<scroll_list.columns label="Proximité" name="media_proximity"/>
<scroll_list.columns label="Visible" name="media_visibility"/>
<scroll_list.columns label="Classe" name="media_class"/>
<scroll_list.columns label="Nom" name="media_name"/>
<scroll_list.columns label="Débogage" name="media_debug"/>
</scroll_list>
<panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Arrêter le média sélectionné"/>
</layout_panel>
<layout_panel name="play">
<button name="play_btn" tool_tip="Lire le média sélectionné"/>
</layout_panel>
<layout_panel name="pause">
<button name="pause_btn" tool_tip="Pause du média sélectionné"/>
</layout_panel>
<layout_panel name="volume_slider_ctrl">
<slider_bar initial_value="0.5" name="volume_slider" tool_tip="Volume audio du média sélectionné"/>
</layout_panel>
<layout_panel name="mute">
<button name="mute_btn" tool_tip="Couper l&apos;audio sur le média sélectionné"/>
</layout_panel>
<layout_panel name="zoom">
<button name="zoom_btn" tool_tip="Zoomer en avant sur le média sélectionné"/>
</layout_panel>
<layout_panel name="unzoom">
<button name="unzoom_btn" tool_tip="Zoomer en arrière sur le média sélectionné"/>
</layout_panel>
</layout_stack>
</panel>
</panel>
</panel>

View File

@@ -124,9 +124,7 @@
<text name="Group:">
Grupo:
</text>
<text name="Group Name Proxy">
The Lindens
</text>
<name_box initial_value="Carregando..." name="Group Name Proxy"></name_box>
<button label="Definir..." label_selected="Definir..." name="button set group"/>
<text name="Permissions:">
Permissões:

View File

@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Áudio &amp; Vídeo" name="Media panel">
<slider label="Mestre" name="System Volume"/>
<slider label="Música" name="Music Volume"/>
<slider label="Mídia" name="Media Volume"/>
<slider label="Voz" name="Voice Volume"/>
<slider label="Sons" name="SFX Volume"/>
<slider label="Ambiente" name="Wind Volume"/>
<slider label="UI" name="UI Volume"/>
</panel>
<slider label="Mestre" name="System Volume"></slider>
<slider label="Música" name="Music Volume"></slider>
<slider label="Mídia" name="Media Volume"></slider>
<slider label="Voz" name="Voice Volume"></slider>
<slider label="Sons" name="SFX Volume"></slider>
<slider label="Ambiente" name="Wind Volume"></slider>
<slider label="UI" name="UI Volume"></slider>
<button label="Mídia por perto" name="nearby_media"/>
</panel>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Geral" name="Media Settings General">
<text name="home_label">
Página web:
</text>
<text name="home_fails_whitelist_label">
(Esta página não atende à lista de páginas aprovadas)
</text>
<line_editor name="home_url" tool_tip="Website desta mídia"/>
<text name="preview_label">
Visualizar
</text>
<text name="current_url_label">
Página atual:
</text>
<text name="current_url" tool_tip="Website desta mídia" value=""/>
<button label="Redefinir" name="current_url_reset_btn"/>
<check_box initial_value="false" label="Loop contínuo" name="auto_loop"/>
<check_box initial_value="false" label="Interagir no primeiro clique" name="first_click_interact"/>
<check_box initial_value="false" label="Zoom automático" name="auto_zoom"/>
<check_box initial_value="false" label="Mídia auto-executável" name="auto_play"/>
<text name="media_setting_note">
Nota: Residentes podem redefinir a configuração.
</text>
<check_box initial_value="false" label="Dimensionamento automático na frente do objeto" name="auto_scale"/>
<text name="size_label">
Tamanho:
</text>
<text name="X_label">
X
</text>
</panel>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Customizar" name="Media settings for controls">
<text name="controls_label">
Controles:
</text>
<combo_box name="controls">
<combo_item name="Standard">
Padrão
</combo_item>
<combo_item name="Mini">
Mini
</combo_item>
</combo_box>
<text name="owner_label">
Proprietário
</text>
<check_box initial_value="false" label="Permitir navegação &amp; interatividade" name="perms_owner_interact"/>
<check_box initial_value="false" label="Exibir barra de controle" name="perms_owner_control"/>
<text name="group_label">
Grupo:
</text>
<check_box initial_value="false" label="Permitir navegação &amp; interatividade" name="perms_group_interact"/>
<check_box initial_value="false" label="Exibir barra de controle" name="perms_group_control"/>
<text name="anyone_label">
Todos
</text>
<check_box initial_value="false" label="Permitir navegação &amp; interatividade" name="perms_anyone_interact"/>
<check_box initial_value="false" label="Exibir barra de controle" name="perms_anyone_control"/>
</panel>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Segurança" name="Media Settings Security">
<check_box initial_value="false" label="Acesso permitido a URLs com padrão específico" name="whitelist_enable"/>
<text name="home_url_fails_some_items_in_whitelist">
URLs com falha de acesso na página inicial são
indicados com um:
</text>
<button label="Adicionar" name="whitelist_add"/>
<button label="Excluir" name="whitelist_del"/>
<text name="home_url_fails_whitelist">
Aviso: A página inicial especificada na aba Geral não consta
na lista de acesso. Seu acesso será autorizado quando a
lista for retificada.
</text>
</panel>

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
<string name="media_item_count_format">
(%ld itens de mídia)
</string>
<string name="empty_item_text">
&lt;vazio&gt;
</string>
<string name="parcel_media_name">
Mídia em stream deste lote
</string>
<string name="parcel_audio_name">
Áudio em stream do lote
</string>
<string name="playing_suffix">
(em execução)
</string>
<panel name="minimized_controls">
<button label="Parar tudo" name="all_nearby_media_disable_btn" tool_tip="Desligar mídias por perto"/>
<button label="Executar tudo" name="all_nearby_media_enable_btn" tool_tip="Ligar mídias por perto"/>
<button name="open_prefs_btn" tool_tip="Preferências de mídia"/>
<button label="Mais &gt;&gt;" label_selected="&lt;&lt; Menos" name="more_btn" tool_tip="Controles avançados"/>
<button label="Mais &gt;&gt;" label_selected="Menos &lt;&lt;" name="less_btn" tool_tip="Controles avançados"/>
</panel>
<panel name="nearby_media_panel">
<text name="nearby_media_title">
Mídia por perto
</text>
<text name="show_text">
Mostrar:
</text>
<combo_box name="show_combo">
<combo_box.item label="Tudo" name="All"/>
<combo_box.item label="Neste lote" name="WithinParcel"/>
<combo_box.item label="Fora deste lote" name="OutsideParcel"/>
<combo_box.item label="Nos outros avatares" name="OnOthers"/>
</combo_box>
<scroll_list name="media_list">
<scroll_list.columns label="Proximidade" name="media_proximity"/>
<scroll_list.columns label="Visíveis" name="media_visibility"/>
<scroll_list.columns label="Classe" name="media_class"/>
<scroll_list.columns label="Nome" name="media_name"/>
<scroll_list.columns label="Depurar" name="media_debug"/>
</scroll_list>
<panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Parar mídia selecionada"/>
</layout_panel>
<layout_panel name="play">
<button name="play_btn" tool_tip="Tocar mídia selecionada"/>
</layout_panel>
<layout_panel name="pause">
<button name="pause_btn" tool_tip="Pausar mídia selecionada"/>
</layout_panel>
<layout_panel name="volume_slider_ctrl">
<slider_bar initial_value="0.5" name="volume_slider" tool_tip="Volume da mídia selecionada"/>
</layout_panel>
<layout_panel name="mute">
<button name="mute_btn" tool_tip="Silenciar mídia selecionada"/>
</layout_panel>
<layout_panel name="zoom">
<button name="zoom_btn" tool_tip="Enfocar mídia"/>
</layout_panel>
<layout_panel name="unzoom">
<button name="unzoom_btn" tool_tip="Desenfocar mídia selecionada"/>
</layout_panel>
</layout_stack>
</panel>
</panel>
</panel>

View File

@@ -76,7 +76,7 @@ void wlfPanel_AdvSettings::build()
deleteAllChildren();
std::string ButtonState;
if (!gSavedSettings.getBOOL("wlfAdvSettingsPopup"))
if (gSavedSettings.getBOOL("wlfAdvSettingsPopup"))
{
LLUICtrlFactory::getInstance()->buildPanel(this, "wlfPanel_AdvSettings_expanded.xml", &getFactoryMap());
ButtonState = "arrow_down.tga";
@@ -92,7 +92,7 @@ void wlfPanel_AdvSettings::build()
void wlfPanel_AdvSettings::refresh()
{
// [RLVa:KB] - Checked: 2009-09-19
if (rlv_handler_t::isEnabled() && !gSavedSettings.getBOOL("wlfAdvSettingsPopup"))
if (rlv_handler_t::isEnabled() && gSavedSettings.getBOOL("wlfAdvSettingsPopup"))
{
if (!findChild<LLView>("use_estate_wl")) return; // Singu Note: Not certain why, but sometimes none of these exist even though the above setting implies they should
childSetEnabled("use_estate_wl", !gRlvHandler.hasBehaviour(RLV_BHVR_SETENV));
@@ -141,7 +141,7 @@ BOOL wlfPanel_AdvSettings::postBuild()
{
childSetAction("expand", onClickExpandBtn, this);
if (!gSavedSettings.getBOOL("wlfAdvSettingsPopup"))
if (gSavedSettings.getBOOL("wlfAdvSettingsPopup"))
{
getChild<LLCheckBoxCtrl>("use_estate_wl")->setCommitCallback(onUseRegionSettings);