summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/lllayoutstack.h3
-rw-r--r--indra/newview/llpanelprimmediacontrols.cpp104
-rw-r--r--indra/newview/llpanelprimmediacontrols.h2
-rw-r--r--indra/newview/skins/default/xui/en/panel_prim_media_controls.xml243
4 files changed, 208 insertions, 144 deletions
diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h
index cde383b047..aba35773ee 100644
--- a/indra/llui/lllayoutstack.h
+++ b/indra/llui/lllayoutstack.h
@@ -91,6 +91,9 @@ public:
bool getPanelMinSize(const std::string& panel_name, S32* min_widthp, S32* min_heightp);
void updateLayout(BOOL force_resize = FALSE);
+
+ S32 getPanelSpacing() const { return mPanelSpacing; }
+
static void updateClass();
protected:
diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp
index 5cc9c1951b..4f539f404d 100644
--- a/indra/newview/llpanelprimmediacontrols.cpp
+++ b/indra/newview/llpanelprimmediacontrols.cpp
@@ -127,7 +127,11 @@ LLPanelPrimMediaControls::LLPanelPrimMediaControls() :
mScrollState = SCROLL_NONE;
mPanelHandle.bind(this);
+
+ mInactiveTimeout = gSavedSettings.getF32("MediaControlTimeout");
+ mControlFadeTime = gSavedSettings.getF32("MediaControlFadeTime");
}
+
LLPanelPrimMediaControls::~LLPanelPrimMediaControls()
{
}
@@ -172,6 +176,7 @@ BOOL LLPanelPrimMediaControls::postBuild()
LLStringUtil::convertToF32(getString("zoom_near_padding"), mZoomNearPadding);
LLStringUtil::convertToF32(getString("zoom_medium_padding"), mZoomMediumPadding);
LLStringUtil::convertToF32(getString("zoom_far_padding"), mZoomFarPadding);
+ LLStringUtil::convertToS32(getString("top_world_view_avoid_zone"), mTopWorldViewAvoidZone);
// These are currently removed...but getChild creates a "dummy" widget.
// This class handles them missing.
@@ -207,11 +212,9 @@ BOOL LLPanelPrimMediaControls::postBuild()
}
mMediaAddress->setFocusReceivedCallback(boost::bind(&LLPanelPrimMediaControls::onInputURL, _1, this ));
- mInactiveTimeout = gSavedSettings.getF32("MediaControlTimeout");
- mControlFadeTime = gSavedSettings.getF32("MediaControlFadeTime");
-
+
mCurrentZoom = ZOOM_NONE;
- // clicks on HUD buttons do not remove keyboard focus from media
+ // clicks on buttons do not remove keyboard focus from media
setIsChrome(TRUE);
return TRUE;
}
@@ -373,8 +376,8 @@ void LLPanelPrimMediaControls::updateShape()
mVolumeUpCtrl->setVisible(has_focus);
mVolumeDownCtrl->setVisible(has_focus);
mVolumeCtrl->setEnabled(has_focus);
- mVolumeSliderCtrl->setEnabled(has_focus && mVolumeSliderVisible > 0);
- mVolumeSliderCtrl->setVisible(has_focus && mVolumeSliderVisible > 0);
+ mVolumeSliderCtrl->setEnabled(has_focus && shouldVolumeSliderBeVisible());
+ mVolumeSliderCtrl->setVisible(has_focus && shouldVolumeSliderBeVisible());
mWhitelistIcon->setVisible(false);
mSecureLockIcon->setVisible(false);
@@ -627,36 +630,45 @@ void LLPanelPrimMediaControls::updateShape()
update_min_max(min, max, LLVector3(screen_vert.v));
}
+ // convert screenspace bbox to pixels (in screen coords)
+ LLRect window_rect = gViewerWindow->getWorldViewRectScaled();
LLCoordGL screen_min;
- screen_min.mX = llround((F32)gViewerWindow->getWorldViewWidthScaled() * (min.mV[VX] + 1.f) * 0.5f);
- screen_min.mY = llround((F32)gViewerWindow->getWorldViewHeightScaled() * (min.mV[VY] + 1.f) * 0.5f);
+ screen_min.mX = llround((F32)window_rect.getWidth() * (min.mV[VX] + 1.f) * 0.5f);
+ screen_min.mY = llround((F32)window_rect.getHeight() * (min.mV[VY] + 1.f) * 0.5f);
LLCoordGL screen_max;
- screen_max.mX = llround((F32)gViewerWindow->getWorldViewWidthScaled() * (max.mV[VX] + 1.f) * 0.5f);
- screen_max.mY = llround((F32)gViewerWindow->getWorldViewHeightScaled() * (max.mV[VY] + 1.f) * 0.5f);
+ screen_max.mX = llround((F32)window_rect.getWidth() * (max.mV[VX] + 1.f) * 0.5f);
+ screen_max.mY = llround((F32)window_rect.getHeight() * (max.mV[VY] + 1.f) * 0.5f);
- // grow panel so that screenspace bounding box fits inside "media_region" element of HUD
- LLRect media_controls_rect;
- S32 volume_slider_height = mVolumeSliderCtrl->getRect().getHeight() - /*fudge*/ 2;
- getParent()->screenRectToLocal(LLRect(screen_min.mX, screen_max.mY, screen_max.mX, screen_min.mY), &media_controls_rect);
- media_controls_rect.mLeft -= mMediaRegion->getRect().mLeft;
- media_controls_rect.mBottom -= mMediaRegion->getRect().mBottom - volume_slider_height;
- media_controls_rect.mTop += getRect().getHeight() - mMediaRegion->getRect().mTop;
- media_controls_rect.mRight += getRect().getWidth() - mMediaRegion->getRect().mRight;
+ // grow panel so that screenspace bounding box fits inside "media_region" element of panel
+ LLRect media_panel_rect;
+ // Get the height of the controls (less the volume slider)
+ S32 controls_height = mMediaControlsStack->getRect().getHeight() - mVolumeSliderCtrl->getRect().getHeight();
+ getParent()->screenRectToLocal(LLRect(screen_min.mX, screen_max.mY, screen_max.mX, screen_min.mY), &media_panel_rect);
+ media_panel_rect.mTop += controls_height;
- // keep all parts of HUD on-screen
- LLRect window_rect = getParent()->getLocalRect();
- media_controls_rect.intersectWith(window_rect);
+ // keep all parts of panel on-screen
+ // Area of the top of the world view to avoid putting the controls
+ window_rect.mTop -= mTopWorldViewAvoidZone;
+ // Don't include "spacing" bookends on left & right of the media controls
+ window_rect.mLeft -= mLeftBookend->getRect().getWidth();
+ window_rect.mRight += mRightBookend->getRect().getWidth();
+ // Don't include the volume slider
+ window_rect.mBottom -= mVolumeSliderCtrl->getRect().getHeight();
+ media_panel_rect.intersectWith(window_rect);
// clamp to minimum size, keeping rect inside window
- S32 centerX = media_controls_rect.getCenterX();
- S32 centerY = media_controls_rect.getCenterY();
+ S32 centerX = media_panel_rect.getCenterX();
+ S32 centerY = media_panel_rect.getCenterY();
+ // Shrink screen rect by min width and height, to ensure containment
window_rect.stretch(-mMinWidth/2, -mMinHeight/2);
window_rect.clampPointToRect(centerX, centerY);
- media_controls_rect.setCenterAndSize(centerX, centerY,
- llmax(mMinWidth, media_controls_rect.getWidth()), llmax(mMinHeight, media_controls_rect.getHeight()));
+ media_panel_rect.setCenterAndSize(centerX, centerY,
+ llmax(mMinWidth, media_panel_rect.getWidth()),
+ llmax(mMinHeight, media_panel_rect.getHeight()));
- setShape(media_controls_rect, true);
+ // Finally set the size of the panel
+ setShape(media_panel_rect, true);
// Test mouse position to see if the cursor is stationary
LLCoordWindow cursor_pos_window;
@@ -699,13 +711,13 @@ void LLPanelPrimMediaControls::updateShape()
/*virtual*/
void LLPanelPrimMediaControls::draw()
{
- F32 alpha = 1.f;
+ F32 alpha = getDrawContext().mAlpha;
if(mFadeTimer.getStarted())
{
F32 time = mFadeTimer.getElapsedTimeF32();
- alpha = llmax(lerp(1.0, 0.0, time / mControlFadeTime), 0.0f);
+ alpha *= llmax(lerp(1.0, 0.0, time / mControlFadeTime), 0.0f);
- if(mFadeTimer.getElapsedTimeF32() >= mControlFadeTime)
+ if(time >= mControlFadeTime)
{
if(mClearFaceOnFade)
{
@@ -726,27 +738,30 @@ void LLPanelPrimMediaControls::draw()
// Build rect for icon area in coord system of this panel
// Assumes layout_stack is a direct child of this panel
mMediaControlsStack->updateLayout();
- LLRect icon_area = mMediaControlsStack->getRect();
-
+
+ // adjust for layout stack spacing
+ S32 space = mMediaControlsStack->getPanelSpacing() + 1;
+ LLRect controls_bg_area = mMediaControlsStack->getRect();
+
+ controls_bg_area.mTop += space;
+
// adjust to ignore space from volume slider
- icon_area.mTop -= mVolumeSliderCtrl->getRect().getHeight();
+ controls_bg_area.mBottom += mVolumeSliderCtrl->getRect().getHeight();
// adjust to ignore space from left bookend padding
- icon_area.mLeft += mLeftBookend->getRect().getWidth();
+ controls_bg_area.mLeft += mLeftBookend->getRect().getWidth() - space;
// ignore space from right bookend padding
- icon_area.mRight -= mRightBookend->getRect().getWidth();
+ controls_bg_area.mRight -= mRightBookend->getRect().getWidth() - space;
// draw control background UI image
- mBackgroundImage->draw( icon_area, UI_VERTEX_COLOR % alpha);
+ mBackgroundImage->draw( controls_bg_area, UI_VERTEX_COLOR % alpha);
// draw volume slider background UI image
if (mVolumeSliderCtrl->getVisible())
{
- LLRect volume_slider_rect = mVolumeSliderCtrl->getRect();
- // For some reason the rect is not in the right place (??)
- // This translates the bg to under the slider
- volume_slider_rect.translate(mVolumeSliderCtrl->getParent()->getRect().mLeft, icon_area.getHeight());
+ LLRect volume_slider_rect;
+ screenRectToLocal(mVolumeSliderCtrl->calcScreenRect(), &volume_slider_rect);
mVolumeSliderBackgroundImage->draw(volume_slider_rect, UI_VERTEX_COLOR % alpha);
}
@@ -1259,6 +1274,11 @@ void LLPanelPrimMediaControls::onToggleMute()
{
media_impl->setVolume(0.0);
}
+ else if (mVolumeSliderCtrl->getValueF32() == 0.0)
+ {
+ media_impl->setVolume(1.0);
+ mVolumeSliderCtrl->setValue(1.0);
+ }
else
{
media_impl->setVolume(mVolumeSliderCtrl->getValueF32());
@@ -1271,8 +1291,12 @@ void LLPanelPrimMediaControls::showVolumeSlider()
mVolumeSliderVisible++;
}
-
void LLPanelPrimMediaControls::hideVolumeSlider()
{
mVolumeSliderVisible--;
}
+
+bool LLPanelPrimMediaControls::shouldVolumeSliderBeVisible()
+{
+ return mVolumeSliderVisible > 0;
+}
diff --git a/indra/newview/llpanelprimmediacontrols.h b/indra/newview/llpanelprimmediacontrols.h
index d899ee4473..419f033628 100644
--- a/indra/newview/llpanelprimmediacontrols.h
+++ b/indra/newview/llpanelprimmediacontrols.h
@@ -111,6 +111,7 @@ private:
void onToggleMute();
void showVolumeSlider();
void hideVolumeSlider();
+ bool shouldVolumeSliderBeVisible();
static void onScrollUp(void* user_data);
static void onScrollUpHeld(void* user_data);
@@ -171,6 +172,7 @@ private:
F32 mZoomNearPadding;
F32 mZoomMediumPadding;
F32 mZoomFarPadding;
+ S32 mTopWorldViewAvoidZone;
LLUICtrl *mMediaPanelScroll;
LLButton *mScrollUpCtrl;
diff --git a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
index 677d0de243..4cef1f9c60 100644
--- a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
@@ -1,54 +1,99 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="left|right|top|bottom"
- name="MediaControls"
+ name="MediaControlsPanel"
background_visible="false"
height="200"
layout="topleft"
help_topic="prim_media_controls"
mouse_opaque="false"
+ min_width="300"
width="800">
<string name="control_background_image_name">Inspector_Background</string>
<string name="skip_step">0.2</string>
- <string name="min_width">400</string>
- <string name="min_height">120</string>
+ <string name="min_width">300</string>
+ <string name="min_height">75</string>
<string name="zoom_near_padding">1.0</string>
<string name="zoom_medium_padding">1.25</string>
<string name="zoom_far_padding">1.5</string>
- <panel
- name="media_region"
- height="100"
- follows="left|right|top|bottom"
+ <string name="top_world_view_avoid_zone">50</string>
+ <layout_stack
+ name="progress_indicator_area"
+ follows="left|right|top"
+ height="8"
layout="topleft"
- mouse_opaque="false"
- top="0" />
+ animate="false"
+ left="0"
+ orientation="horizontal"
+ top="22">
+ <!-- outer layout_panels center the inner one -->
+ <layout_panel
+ width="0"
+ name="left_bookend_bottom"
+ mouse_opaque="false"
+ layout="topleft"
+ user_resize="false" />
+ <panel
+ name="media_progress_indicator"
+ mouse_opaque="false"
+ follows="left|right|top"
+ height="8"
+ layout="topleft"
+ left="0"
+ top="0"
+ auto_resize="false"
+ user_resize="false"
+ min_width="100"
+ width="200">
+ <progress_bar
+ name="media_progress_bar"
+ color_bg="1 1 1 1"
+ color_bar="1 1 1 0.96"
+ follows="left|right|top"
+ height="8"
+ layout="topleft"
+ top="0"
+ left="0"
+ tool_tip="Media is Loading"/>
+ </panel>
+ <layout_panel
+ name="right_bookend_bottom"
+ width="0"
+ mouse_opaque="false"
+ layout="topleft"
+ user_resize="false" />
+ </layout_stack>
<layout_stack
name="media_controls"
- follows="left|right"
+ follows="left|right|top"
animate="false"
height="75"
layout="topleft"
+ top="0"
left="0"
+ border_size="1"
mouse_opaque="false"
- orientation="horizontal"
- top="100">
+ orientation="horizontal">
<!-- outer layout_panels center the inner one -->
<layout_panel
name="left_bookend"
+ top="0"
width="0"
- mouse_opaque="false"
+ mouse_opaque="false"
layout="topleft"
user_resize="false" />
<layout_panel
name="back"
+ top="0"
auto_resize="false"
user_resize="false"
layout="topleft"
- mouse_opaque="false"
+ mouse_opaque="false"
min_width="22"
- width="22"
- top="4">
+ width="22">
<button
+ name="back_btn"
+ follows="top"
image_overlay="Arrow_Left_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
@@ -56,12 +101,12 @@
image_unselected="PushButton_Off"
hover_glow_amount="0.15"
auto_resize="false"
- height="22"
layout="topleft"
tool_tip="Navigate back"
- width="22"
+ top="0"
left="0"
- top_delta="4">
+ width="22"
+ height="22">
<button.commit_callback
function="MediaCtrl.Back" />
</button>
@@ -71,22 +116,24 @@
auto_resize="false"
user_resize="false"
layout="topleft"
- top="10"
min_width="22"
+ top="0"
+ height="22"
width="22">
<button
+ follows="top"
image_overlay="Arrow_Right_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
image_selected="PushButton_Selected"
image_unselected="PushButton_Off"
hover_glow_amount="0.15"
+ top="0"
height="22"
- layout="topleft"
- tool_tip="Navigate forward"
- top_delta="0"
min_width="22"
- width="22">
+ width="22"
+ layout="topleft"
+ tool_tip="Navigate forward">
<button.commit_callback
function="MediaCtrl.Forward" />
</button>
@@ -96,10 +143,12 @@
auto_resize="false"
user_resize="false"
layout="topleft"
- top="-2"
+ top="0"
+ height="22"
min_width="22"
width="22">
<button
+ follows="top"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
image_overlay="Home_Off"
@@ -108,6 +157,7 @@
hover_glow_amount="0.15"
layout="topleft"
tool_tip="Home page"
+ top="0"
height="22"
min_width="22"
width="22">
@@ -120,19 +170,22 @@
auto_resize="false"
user_resize="false"
layout="topleft"
- top="2"
+ top="0"
+ height="22"
min_width="22"
width="22">
<button
+ follows="top"
image_overlay="Stop_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
image_selected="PushButton_Selected"
image_unselected="PushButton_Off"
hover_glow_amount="0.15"
- height="22"
layout="topleft"
tool_tip="Stop media"
+ top="0"
+ height="22"
min_width="22"
width="22">
<button.commit_callback
@@ -144,11 +197,12 @@
auto_resize="false"
user_resize="false"
layout="topleft"
- top="6"
+ top="0"
+ height="22"
min_width="22"
width="22">
<button
- height="22"
+ follows="top"
image_overlay="Refresh_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
@@ -157,6 +211,8 @@
hover_glow_amount="0.15"
layout="topleft"
tool_tip="Reload"
+ top="0"
+ height="22"
min_width="22"
width="22">
<button.commit_callback
@@ -168,11 +224,12 @@
auto_resize="false"
user_resize="false"
layout="topleft"
- top="10"
+ top="0"
+ height="22"
min_width="22"
width="22">
<button
- height="22"
+ follows="top"
image_overlay="StopReload_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
@@ -181,6 +238,8 @@
hover_glow_amount="0.15"
layout="topleft"
tool_tip = "Stop loading"
+ top="0"
+ height="22"
min_width="22"
width="22">
<button.commit_callback
@@ -192,10 +251,12 @@
auto_resize="false"
user_resize="false"
layout="topleft"
- top="14"
+ top="0"
+ height="22"
min_width="22"
width="24">
<button
+ follows="top"
image_overlay="Play_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
@@ -205,7 +266,7 @@
layout="topleft"
tool_tip = "Play media"
left_delta="2"
- top="4"
+ top="0"
height="22"
min_width="22"
width="22">
@@ -218,10 +279,11 @@
auto_resize="false"
user_resize="false"
layout="topleft"
- top="18"
+ top="0"
min_width="22"
width="24">
<button
+ follows="top"
image_overlay="Pause_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
@@ -229,10 +291,10 @@
image_unselected="PushButton_Off"
hover_glow_amount="0.15"
layout="topleft"
+ top="0"
height="22"
width="22"
left_delta="-1"
- top="4"
tool_tip = "Pause media">
<button.commit_callback
function="MediaCtrl.Pause" />
@@ -246,11 +308,12 @@
height="24"
follows="left|right|bottom"
layout="topleft"
+ top="0"
width="190"
min_width="90">
<line_editor
name="media_address_url"
- follows="left|right"
+ follows="top|left|right"
height="22"
top="0"
tool_tip="Media URL"
@@ -261,17 +324,18 @@
<layout_stack
name="media_address_url_icons"
animate="false"
- follows="right"
+ follows="top|right"
height="20"
width="38"
- right="-2"
- top="-1"
- mouse_opaque="false"
+ top="0"
+ right="-1"
+ border_size="0"
+ mouse_opaque="false"
orientation="horizontal">
<layout_panel
layout="topleft"
width="16"
- mouse_opaque="false"
+ mouse_opaque="false"
auto_resize="false"
user_resize="false">
<icon
@@ -287,7 +351,7 @@
<layout_panel
layout="topleft"
width="16"
- mouse_opaque="false"
+ mouse_opaque="false"
auto_resize="false"
user_resize="false">
<icon
@@ -305,16 +369,17 @@
name="media_play_position"
auto_resize="true"
user_resize="false"
- follows="left|right|top|bottom"
+ follows="left|right"
layout="topleft"
- height="16"
+ top="0"
+ height="22"
min_width="100"
width="200">
<slider_bar
name="media_play_slider"
follows="left|right|top"
- height="20"
- bottom="88"
+ top="0"
+ height="22"
increment="0.01"
initial_value="0.5"
layout="topleft"
@@ -330,9 +395,11 @@
auto_resize="false"
user_resize="false"
layout="topleft"
+ top="0"
min_width="22"
width="22">
<button
+ follows="top"
image_overlay="SkipBackward_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
@@ -343,7 +410,7 @@
height="22"
layout="topleft"
tool_tip="Step back"
- top="-14"
+ top="0"
width="22"
left="0">
<button.commit_callback
@@ -355,9 +422,11 @@
auto_resize="false"
user_resize="false"
layout="topleft"
+ top="0"
min_width="22"
width="22">
<button
+ follows="top"
image_overlay="SkipForward_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
@@ -367,7 +436,7 @@
height="22"
layout="topleft"
tool_tip="Step forward"
- top="-14"
+ top="0"
min_width="22"
width="22">
<button.commit_callback
@@ -379,26 +448,28 @@
auto_resize="false"
user_resize="false"
layout="topleft"
- top="-50"
+ top="0"
height="72"
min_width="22"
width="22">
<!-- Note: this is not quite right either...the mute button is not the -->
<!-- same as the others because it cannot have the "image_overlay" be -->
<!-- two different images. -->
+ <!-- Note also: the button and the slider must overlap! -->
<button
+ follows="top"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
image_selected="AudioMute_Off"
image_unselected="Audio_Off"
hover_glow_amount="0.15"
name="media_mute_button"
- height="22"
is_toggle="true"
layout="topleft"
scale_image="false"
tool_tip="Mute This Media"
- top="118"
+ top="0"
+ height="20"
min_width="22"
width="22" >
<button.commit_callback
@@ -411,7 +482,7 @@
<slider
orientation="vertical"
left="0"
- top="-2"
+ top="16"
height="50"
layout="topleft"
increment="0.01"
@@ -428,35 +499,24 @@
function="MediaCtrl.HideVolumeSlider" />
</slider>
</layout_panel>
- <panel
- height="28"
- layout="topleft"
- auto_resize="false"
- min_width="3"
- width="3">
- <icon
- height="26"
- image_name="media_panel_divider.png"
- layout="topleft"
- top="0"
- min_width="3"
- width="3" />
- </panel>
<layout_panel
name="zoom_frame"
auto_resize="false"
user_resize="false"
layout="topleft"
+ top="0"
height="28"
min_width="22"
width="22">
<button
+ follows="top"
image_overlay="Zoom_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
image_selected="PushButton_Selected"
image_unselected="PushButton_Off"
hover_glow_amount="0.15"
+ top="0"
height="22"
layout="topleft"
tool_tip="Zoom into media"
@@ -471,15 +531,18 @@
auto_resize="false"
user_resize="false"
layout="topleft"
+ top="0"
min_width="21"
width="21" >
<button
+ follows="top"
image_overlay="UnZoom_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
image_selected="PushButton_Selected"
image_unselected="PushButton_Off"
hover_glow_amount="0.15"
+ top="0"
height="22"
layout="topleft"
tool_tip ="Zoom Back"
@@ -494,9 +557,11 @@
auto_resize="false"
user_resize="false"
layout="topleft"
+ top="0"
min_width="22"
width="22">
<button
+ follows="top"
image_overlay="ExternalBrowser_Off"
image_disabled="PushButton_Disabled"
image_disabled_selected="PushButton_Disabled"
@@ -506,7 +571,7 @@
height="22"
layout="topleft"
tool_tip = "Open URL in browser"
- top_delta="-4"
+ top="0"
min_width="24"
width="24" >
<button.commit_callback
@@ -516,46 +581,16 @@
<!-- bookend panel -->
<layout_panel
name="right_bookend"
- width="0"
- layout="topleft"
- user_resize="false" />
- </layout_stack>
- <layout_stack
- follows="left|right|bottom"
- height="20"
- layout="topleft"
- animate="false"
- left="0"
- orientation="horizontal"
- top="170">
- <!-- outer layout_panels center the inner one -->
- <layout_panel
- width="0"
- layout="topleft"
- user_resize="false" />
- <panel
- name="media_progress_indicator"
- height="20"
- layout="topleft"
- left="0"
top="0"
- auto_resize="false"
- user_resize="false"
- min_width="100"
- width="200">
- <progress_bar
- name="media_progress_bar"
- color_bar="1 1 1 0.96"
- follows="left|right|top"
- top="5"
- height="8"
- layout="topleft"
- left="0"
- tool_tip="Media is Loading"/>
- </panel>
- <layout_panel
width="0"
layout="topleft"
user_resize="false" />
</layout_stack>
+ <panel
+ name="media_region"
+ height="100"
+ follows="left|right|top|bottom"
+ layout="topleft"
+ mouse_opaque="false"
+ top="30" />
</panel>