diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2026-03-15 16:54:33 +0200 |
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2026-03-15 17:05:48 +0200 |
| commit | 777c76839563041f44d98f543d6695bd66e421ea (patch) | |
| tree | 8c624d5ff14e4f487da2fedf0ceacc6d193cda53 | |
| parent | e3b28fddff322e39d26f369712f7237854cabd5b (diff) | |
#5462 Login form update #2
| -rw-r--r-- | indra/llui/lllayoutstack.cpp | 11 | ||||
| -rw-r--r-- | indra/llui/lllayoutstack.h | 6 | ||||
| -rw-r--r-- | indra/newview/skins/default/colors.xml | 3 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_login.xml | 73 |
4 files changed, 73 insertions, 20 deletions
diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp index fe0591ce4b..a55e58f4bb 100644 --- a/indra/llui/lllayoutstack.cpp +++ b/indra/llui/lllayoutstack.cpp @@ -48,17 +48,21 @@ static LLLayoutStack::LayoutStackRegistry::Register<LLLayoutPanel> register_layo LLLayoutPanel::Params::Params() : expanded_min_dim("expanded_min_dim", 0), min_dim("min_dim", -1), + max_dim("max_dim", -1), user_resize("user_resize", false), auto_resize("auto_resize", true) { addSynonym(min_dim, "min_width"); addSynonym(min_dim, "min_height"); + addSynonym(max_dim, "max_width"); + addSynonym(max_dim, "max_height"); } LLLayoutPanel::LLLayoutPanel(const Params& p) : LLPanel(p), mExpandedMinDim(p.expanded_min_dim.isProvided() ? p.expanded_min_dim : p.min_dim), mMinDim(p.min_dim), + mMaxDim(p.max_dim), mAutoResize(p.auto_resize), mUserResize(p.user_resize), mCollapsed(false), @@ -75,6 +79,7 @@ LLLayoutPanel::LLLayoutPanel(const Params& p) { mVisibleAmt = 0.f; } + setMaxDim(mMaxDim); } void LLLayoutPanel::initFromParams(const Params& p) @@ -113,6 +118,8 @@ S32 LLLayoutPanel::getTargetDim() const void LLLayoutPanel::setTargetDim(S32 value) { + value = llmin(value, mMaxDim); + LLRect new_rect(getRect()); if (mOrientation == LLLayoutStack::HORIZONTAL) { @@ -145,6 +152,7 @@ void LLLayoutPanel::setOrientation( LLView::EOrientation orientation ) setMinDim(layout_dim); } mTargetDim = llmax(layout_dim, getMinDim()); + mTargetDim = llmin(mTargetDim, mMaxDim); } void LLLayoutPanel::setVisible( bool visible ) @@ -167,6 +175,7 @@ void LLLayoutPanel::reshape( S32 width, S32 height, bool called_from_parent /*= if (!mIgnoreReshape && !mAutoResize) { mTargetDim = (mOrientation == LLLayoutStack::HORIZONTAL) ? width : height; + mTargetDim = llmin(mTargetDim, mMaxDim); LLLayoutStack* stackp = dynamic_cast<LLLayoutStack*>(getParent()); if (stackp) { @@ -439,6 +448,7 @@ void LLLayoutStack::updateLayout() F32 fraction_to_distribute = (panelp->mFractionalSize * panelp->getAutoResizeFactor()) / (total_visible_fraction); S32 delta = ll_round((F32)space_to_distribute * fraction_to_distribute); panelp->mTargetDim += delta; + panelp->mTargetDim = llmin(panelp->mTargetDim, panelp->mMaxDim); remaining_space -= delta; } } @@ -455,6 +465,7 @@ void LLLayoutStack::updateLayout() { S32 space_for_panel = remaining_space > 0 ? 1 : -1; panelp->mTargetDim += space_for_panel; + panelp->mTargetDim = llmin(panelp->mTargetDim, panelp->mMaxDim); remaining_space -= space_for_panel; } } diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h index 9e3536aaff..4c78c8a289 100644 --- a/indra/llui/lllayoutstack.h +++ b/indra/llui/lllayoutstack.h @@ -140,7 +140,8 @@ public: struct Params : public LLInitParam::Block<Params, LLPanel::Params> { Optional<S32> expanded_min_dim, - min_dim; + min_dim, + max_dim; Optional<bool> user_resize, auto_resize; @@ -164,6 +165,8 @@ public: S32 getMinDim() const { return llmax(0, mMinDim); } void setMinDim(S32 value) { mMinDim = value; } + void setMaxDim(S32 value) { mMaxDim = value < 0 ? S32_MAX : value; } + S32 getExpandedMinDim() const { return mExpandedMinDim >= 0 ? mExpandedMinDim : getMinDim(); } void setExpandedMinDim(S32 value) { mExpandedMinDim = value; } @@ -198,6 +201,7 @@ protected: S32 mExpandedMinDim; S32 mMinDim; + S32 mMaxDim; bool mCollapsed; F32 mVisibleAmt; F32 mCollapseAmt; diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 8752e3fe3d..a2e7b54390 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -56,6 +56,9 @@ <color name="DkGray2" value="0.169 0.169 0.169 1" /> + <color + name="DkGrayLogin" + value="0.149 0.149 0.149 1" /> <color name="MouseGray" value="0.191 0.191 0.191 1" /> diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index d33464e158..848c9b7bbd 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -6,7 +6,7 @@ name="panel_login" focus_root="true" background_visible="true" - bg_opaque_color="PanelDark" + bg_opaque_color="DkGrayLogin" background_opaque="true" width="1024"> <panel.string @@ -17,13 +17,40 @@ name="sign_up_url"> https://join.secondlife.com/ </panel.string> - <panel - follows="left|top" - name="ui_container" - width="300" - left="0" + <layout_stack + follows="all" + layout="topleft" + orientation="horizontal" + name="main_stack" + border_size="0" + animate="false" top="0" + left="0" height="768"> + <layout_panel + auto_resize="true" + user_resize="false" + layout="topleft" + name="left_container" + background_visible="true" + bg_opaque_color="DkGrayLogin" + background_opaque="true" + min_width="2" + max_width="200" + expanded_min_dim="2" + width="40"> + </layout_panel> + <layout_panel + auto_resize="false" + user_resize="false" + layout="topleft" + name="ui_container" + min_width="300" + max_width="300" + width="300" + background_visible="true" + bg_opaque_color="PanelDark" + background_opaque="true"> <icon height="77" width="160" @@ -240,17 +267,25 @@ left="40" top_pad="25" pad_bottom="1" /> - </panel> - <web_browser - tab_stop="false" - trusted_content="true" - bg_opaque_color="Black" - border_visible="false" - follows="all" - left="300" - name="login_html" - start_url="" - top="0" - height="768" - width="724" /> + </layout_panel> + <layout_panel + auto_resize="true" + layout="topleft" + name="web_container" + min_width="500" + width="810"> + <web_browser + tab_stop="false" + trusted_content="true" + bg_opaque_color="Black" + border_visible="false" + follows="all" + left="0" + top="0" + right="-1" + bottom="-1" + name="login_html" + start_url="" /> + </layout_panel> + </layout_stack> </panel> |
