diff options
Diffstat (limited to 'indra/newview/llsidetray.cpp')
-rw-r--r-- | indra/newview/llsidetray.cpp | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index 5e5608460c..afa8e5f072 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -40,6 +40,7 @@ #include "llaccordionctrl.h" #include "llfocusmgr.h" #include "llrootview.h" +#include "llnavigationbar.h" #include "llaccordionctrltab.h" @@ -641,22 +642,41 @@ LLPanel* LLSideTray::showPanel (const std::string& panel_name, const LLSD& para return NULL; } +// *TODO: Eliminate magic constants. static const S32 fake_offset = 132; -static const S32 fake_top_offset = 78; +static const S32 fake_top_offset = 18; + +void LLSideTray::resetPanelRect () +{ + const LLRect& parent_rect = gViewerWindow->getRootView()->getRect(); + + static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams<LLSideTray>()); + + S32 panel_width = sidetray_params.default_button_width; + panel_width += mCollapsed ? sidetray_params.default_button_margin : mMaxBarWidth; + + S32 panel_height = parent_rect.getHeight()-fake_top_offset; + + reshape(panel_width,panel_height); +} void LLSideTray::setPanelRect () { + LLNavigationBar* nav_bar = LLNavigationBar::getInstance(); + LLRect nav_rect = nav_bar->getRect(); + static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams<LLSideTray>()); const LLRect& parent_rect = gViewerWindow->getRootView()->getRect(); - S32 panel_width = sidetray_params.default_button_width+sidetray_params.default_button_margin; - if(!mCollapsed) - panel_width+=mMaxBarWidth; + S32 panel_width = sidetray_params.default_button_width; + panel_width += mCollapsed ? sidetray_params.default_button_margin : mMaxBarWidth; + + S32 panel_height = parent_rect.getHeight()-fake_top_offset - nav_rect.getHeight(); + S32 panel_top = parent_rect.mTop-fake_top_offset - nav_rect.getHeight(); - S32 panel_height = parent_rect.getHeight() - fake_top_offset - LLBottomTray::getInstance()->getRect().getHeight(); LLRect panel_rect; - panel_rect.setLeftTopAndSize( parent_rect.mRight-panel_width, parent_rect.mTop-fake_top_offset, panel_width, panel_height); + panel_rect.setLeftTopAndSize( parent_rect.mRight-panel_width, panel_top, panel_width, panel_height); setRect(panel_rect); } |