diff options
| author | Sergei Litovchuk <slitovchuk@productengine.com> | 2009-11-18 19:49:49 +0200 | 
|---|---|---|
| committer | Sergei Litovchuk <slitovchuk@productengine.com> | 2009-11-18 19:49:49 +0200 | 
| commit | a27706ad2e42718ad107e25fe7c29f1c0513fabc (patch) | |
| tree | b3ab98076cc49a677dbc7283edc04e077e98f01f /indra/newview | |
| parent | f5bada7e3d78b26b0138ce762f182fb32a48393e (diff) | |
Fixed normal bug EXT-2461 "Edit Landmark panel isn't resized":
- Added vertical scroll appearing for Place Profile and Landmark info panels.
- Added horizontal reshaping to avoid redundant horizontal scroll.
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llpanelplaceinfo.cpp | 33 | ||||
| -rw-r--r-- | indra/newview/llpanelplaceinfo.h | 6 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_landmark_info.xml | 6 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_place_profile.xml | 6 | 
4 files changed, 44 insertions, 7 deletions
| diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp index 963d39de8a..6ba3790fe2 100644 --- a/indra/newview/llpanelplaceinfo.cpp +++ b/indra/newview/llpanelplaceinfo.cpp @@ -57,7 +57,11 @@ LLPanelPlaceInfo::LLPanelPlaceInfo()  :	LLPanel(),  	mParcelID(),  	mRequestedID(), -	mPosRegion() +	mPosRegion(), +	mScrollingPanelMinHeight(0), +	mScrollingPanelWidth(0), +	mScrollingPanel(NULL), +	mScrollContainer(NULL)  {}  //virtual @@ -83,6 +87,12 @@ BOOL LLPanelPlaceInfo::postBuild()  	mMaturityRatingIcon = getChild<LLIconCtrl>("maturity_icon");  	mMaturityRatingText = getChild<LLTextBox>("maturity_value"); +	mScrollingPanel = getChild<LLPanel>("scrolling_panel"); +	mScrollContainer = getChild<LLScrollContainer>("place_scroll"); + +	mScrollingPanelMinHeight = mScrollContainer->getScrolledViewRect().getHeight(); +	mScrollingPanelWidth = mScrollingPanel->getRect().getWidth(); +  	return TRUE;  } @@ -231,6 +241,27 @@ void LLPanelPlaceInfo::processParcelInfo(const LLParcelData& parcel_data)  }  // virtual +void LLPanelPlaceInfo::reshape(S32 width, S32 height, BOOL called_from_parent) +{ +	LLPanel::reshape(width, height, called_from_parent); + +	if (!mScrollContainer || !mScrollingPanel) +		return; + +	static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0); + +	S32 scroll_height = mScrollContainer->getRect().getHeight(); +	if (mScrollingPanelMinHeight >= scroll_height) +	{ +		mScrollingPanel->reshape(mScrollingPanelWidth, mScrollingPanelMinHeight); +	} +	else +	{ +		mScrollingPanel->reshape(mScrollingPanelWidth + scrollbar_size, scroll_height); +	} +} + +// virtual  void LLPanelPlaceInfo::handleVisibilityChange(BOOL new_visibility)  {  	LLPanel::handleVisibilityChange(new_visibility); diff --git a/indra/newview/llpanelplaceinfo.h b/indra/newview/llpanelplaceinfo.h index 133933a880..b9bf92b534 100644 --- a/indra/newview/llpanelplaceinfo.h +++ b/indra/newview/llpanelplaceinfo.h @@ -45,6 +45,7 @@ class LLIconCtrl;  class LLInventoryItem;  class LLPanelPickEdit;  class LLParcel; +class LLScrollContainer;  class LLTextBox;  class LLTextureCtrl;  class LLViewerRegion; @@ -92,6 +93,7 @@ public:  	/*virtual*/ void processParcelInfo(const LLParcelData& parcel_data); +	/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);  	/*virtual*/ void handleVisibilityChange (BOOL new_visibility);  	// Create a pick for the location specified @@ -110,8 +112,12 @@ protected:  	LLUUID					mRequestedID;  	LLVector3				mPosRegion;  	std::string				mCurrentTitle; +	S32						mScrollingPanelMinHeight; +	S32						mScrollingPanelWidth;  	INFO_TYPE 				mInfoType; +	LLScrollContainer*		mScrollContainer; +	LLPanel*				mScrollingPanel;  	LLTextBox*				mTitle;  	LLTextureCtrl*			mSnapshotCtrl;  	LLTextBox*				mRegionName; diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml index b01ddbf75a..a219e30b8b 100644 --- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml @@ -87,8 +87,8 @@       width="313">          <panel           bg_alpha_color="DkGray2" -         follows="all" -         height="533" +         follows="left|top|right" +         height="610"           layout="topleft"           left="0"           min_height="300" @@ -145,7 +145,7 @@               top_pad="10"               width="18" />              <text -             follows="right|top" +             follows="left|top|right"               height="16"               layout="topleft"               left_pad="8" diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml index e6084202d7..9ab5c6b4f7 100644 --- a/indra/newview/skins/default/xui/en/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml @@ -172,7 +172,7 @@       width="313">          <panel           bg_alpha_color="DkGray2" -         follows="all" +         follows="left|top|right"           height="533"           layout="topleft"           left="0" @@ -192,7 +192,7 @@              <layout_stack               border_size="0"               clip="false" -             follows="all" +             follows="left|top|right"               height="50"               layout="topleft"               mouse_opaque="false" @@ -305,7 +305,7 @@               top_delta="0"               width="18" />              <text -             follows="right|top" +             follows="left|top|right"               height="16"               layout="topleft"               left_pad="8" | 
