From 4eb72a12a2280d3be6ac556ad80eb953d249e8eb Mon Sep 17 00:00:00 2001 From: richard Date: Mon, 9 Nov 2009 15:29:47 -0800 Subject: data driven layout of top-level UI elements EXT-1219 Side tray slide-out animation cleaned up some layout of bottom tray contents reviewed by James --- indra/newview/llsidetray.cpp | 200 +++++++++---------------------------------- 1 file changed, 39 insertions(+), 161 deletions(-) (limited to 'indra/newview/llsidetray.cpp') diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index a11ee05532..f0e782d44d 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -100,7 +100,7 @@ LLSideTray* LLSideTray::getInstance() { if (!sInstance) { - sInstance = LLUICtrlFactory::createFromFile("panel_side_tray.xml",gViewerWindow->getRootView(), LLRootView::child_registry_t::instance()); + sInstance = LLUICtrlFactory::createFromFile("panel_side_tray.xml",NULL, LLRootView::child_registry_t::instance()); } return sInstance; @@ -148,7 +148,6 @@ public: /*virtual*/ bool addChild (LLView* view, S32 tab_group); - void arrange (S32 width, S32 height); void reshape (S32 width, S32 height, BOOL called_from_parent = TRUE); static LLSideTrayTab* createInstance (); @@ -156,8 +155,6 @@ public: const std::string& getDescription () const { return mDescription;} const std::string& getTabTitle() const { return mTabTitle;} - void draw(); - void onOpen (const LLSD& key); private: @@ -209,60 +206,24 @@ BOOL LLSideTrayTab::postBuild() static const S32 splitter_margin = 1; -//virtual -void LLSideTrayTab::arrange(S32 width, S32 height ) -{ - if(!mMainPanel) - return; - - S32 offset = 0; - - LLView* title_panel = findChildView(TAB_PANEL_CAPTION_NAME, true); - - if(title_panel) - { - title_panel->setOrigin( 0, height - title_panel->getRect().getHeight() ); - offset = title_panel->getRect().getHeight(); - } - - LLRect sRect = mMainPanel->getRect(); - sRect.setLeftTopAndSize( splitter_margin, height - offset - splitter_margin, width - 2*splitter_margin, height - offset - 2*splitter_margin); - mMainPanel->reshape(sRect.getWidth(),sRect.getHeight()); - mMainPanel->setRect(sRect); - - - -} - void LLSideTrayTab::reshape (S32 width, S32 height, BOOL called_from_parent ) { - if(!mMainPanel) - return; - S32 offset = 0; - + LLPanel::reshape(width, height, called_from_parent); LLView* title_panel = findChildView(TAB_PANEL_CAPTION_NAME, true); - - if(title_panel) + if (!title_panel) { - title_panel->setOrigin( 0, height - title_panel->getRect().getHeight() ); - title_panel->reshape(width,title_panel->getRect().getHeight()); - offset = title_panel->getRect().getHeight(); + // not fully constructed yet + return; } - - - LLRect sRect = mMainPanel->getRect(); - sRect.setLeftTopAndSize( splitter_margin, height - offset - splitter_margin, width - 2*splitter_margin, height - offset - 2*splitter_margin); - //mMainPanel->setMaxWidth(sRect.getWidth()); - mMainPanel->reshape(sRect.getWidth(), sRect.getHeight()); - - mMainPanel->setRect(sRect); - -} + S32 title_height = title_panel->getRect().getHeight(); + title_panel->setOrigin( 0, height - title_height ); + title_panel->reshape(width,title_height); -void LLSideTrayTab::draw() -{ - LLPanel::draw(); + LLRect sRect; + sRect.setLeftTopAndSize( splitter_margin, height - title_height - splitter_margin, + width - 2*splitter_margin, height - title_height - 2*splitter_margin); + mMainPanel->setShape(sRect); } void LLSideTrayTab::onOpen (const LLSD& key) @@ -300,17 +261,20 @@ LLSideTray::LLSideTray(Params& params) ,mActiveTab(0) ,mCollapsed(false) ,mCollapseButton(0) - ,mMaxBarWidth(params.rect.width) { mCollapsed=params.collapsed; - LLUICtrl::CommitCallbackRegistry::Registrar& commit = LLUICtrl::CommitCallbackRegistry::currentRegistrar(); // register handler function to process data from the xml. // panel_name should be specified via "parameter" attribute. commit.add("SideTray.ShowPanel", boost::bind(&LLSideTray::showPanel, this, _2, LLUUID::null)); LLTransientFloaterMgr::getInstance()->addControlView(this); + + LLPanel::Params p; + p.name = "buttons_panel"; + p.mouse_opaque = false; + mButtonsPanel = LLUICtrlFactory::create(p); } @@ -399,7 +363,7 @@ LLButton* LLSideTray::createButton (const std::string& name,const std::string& i rect.setOriginAndSize(0, 0, sidetray_params.default_button_width, sidetray_params.default_button_height); bparams.name(name); - bparams.follows.flags (FOLLOWS_LEFT | FOLLOWS_BOTTOM); + bparams.follows.flags (FOLLOWS_LEFT | FOLLOWS_TOP); bparams.rect (rect); bparams.tab_stop(false); bparams.image_unselected.name(sidetray_params.tab_btn_image_normal); @@ -416,7 +380,7 @@ LLButton* LLSideTray::createButton (const std::string& name,const std::string& i button->setImageOverlay(image); } - addChildInBack(button); + mButtonsPanel->addChildInBack(button); return button; } @@ -500,23 +464,24 @@ void LLSideTray::reflectCollapseChange() } else { - gFloaterView->setSnapOffsetRight(mMaxBarWidth); + gFloaterView->setSnapOffsetRight(getRect().getWidth()); setFocus(TRUE); } gFloaterView->refresh(); } -void LLSideTray::arrange () +void LLSideTray::arrange() { static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams()); setPanelRect(); LLRect ctrl_rect; - ctrl_rect.setLeftTopAndSize(0,getRect().getHeight()-sidetray_params.default_button_width - ,sidetray_params.default_button_width - ,sidetray_params.default_button_height); + ctrl_rect.setLeftTopAndSize(0, + mButtonsPanel->getRect().getHeight() - sidetray_params.default_button_width, + sidetray_params.default_button_width, + sidetray_params.default_button_height); mCollapseButton->setRect(ctrl_rect); @@ -528,9 +493,10 @@ void LLSideTray::arrange () { LLSideTrayTab* sidebar_tab = *child_it; - ctrl_rect.setLeftTopAndSize(0,getRect().getHeight()-offset - ,sidetray_params.default_button_width - ,sidetray_params.default_button_height); + ctrl_rect.setLeftTopAndSize(0, + mButtonsPanel->getRect().getHeight()-offset, + sidetray_params.default_button_width, + sidetray_params.default_button_height); if(mTabButtons.find(sidebar_tab->getName()) == mTabButtons.end()) continue; @@ -544,14 +510,11 @@ void LLSideTray::arrange () btn->setVisible(ctrl_rect.mBottom > 0); } - ctrl_rect.setLeftTopAndSize(sidetray_params.default_button_width,getRect().getHeight(),mMaxBarWidth,getRect().getHeight()); - //arrange tabs - for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it) + for ( child_vector_t::iterator child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it) { LLSideTrayTab* sidebar_tab = *child_it; - sidebar_tab->setRect(ctrl_rect); - sidebar_tab->arrange(mMaxBarWidth,getRect().getHeight()); + sidebar_tab->setShape(getLocalRect()); } } @@ -580,7 +543,7 @@ void LLSideTray::collapseSideBar() { mCollapseButton->setImageOverlay( home_tab->mImage ); } - mActiveTab->setVisible(FALSE); + //mActiveTab->setVisible(FALSE); reflectCollapseChange(); setFocus( FALSE ); @@ -596,7 +559,6 @@ void LLSideTray::expandSideBar() } LLSD key;//empty mActiveTab->onOpen(key); - mActiveTab->setVisible(TRUE); reflectCollapseChange(); } @@ -612,15 +574,6 @@ void LLSideTray::highlightFocused() */ } -BOOL LLSideTray::handleScrollWheel(S32 x, S32 y, S32 mask) -{ - BOOL ret = LLPanel::handleScrollWheel(x,y,mask); - - if(!ret && childFromPoint(x,y) != 0 ) - return TRUE;//mouse wheel over sidetray buttons, eat mouse wheel - return ret; -} - //virtual BOOL LLSideTray::handleMouseDown (S32 x, S32 y, MASK mask) { @@ -630,58 +583,13 @@ BOOL LLSideTray::handleMouseDown (S32 x, S32 y, MASK mask) return ret; } -void LLSideTray::reshape (S32 width, S32 height, BOOL called_from_parent) +void LLSideTray::reshape(S32 width, S32 height, BOOL called_from_parent) { - LLPanel::reshape(width, height, called_from_parent); if(!mActiveTab) return; - static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams()); - - setPanelRect(); - - LLRect ctrl_rect; - ctrl_rect.setLeftTopAndSize(0 - ,getRect().getHeight()-sidetray_params.default_button_width - ,sidetray_params.default_button_width - ,sidetray_params.default_button_height); - - mCollapseButton->setRect(ctrl_rect); - - //arrange tab buttons - child_vector_const_iter_t child_it; - int offset = (sidetray_params.default_button_height+sidetray_params.default_button_margin)*2; - for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it) - { - LLSideTrayTab* sidebar_tab = *child_it; - - ctrl_rect.setLeftTopAndSize(0,getRect().getHeight()-offset - ,sidetray_params.default_button_width - ,sidetray_params.default_button_height); - - if(mTabButtons.find(sidebar_tab->getName()) == mTabButtons.end()) - continue; - - LLButton* btn = mTabButtons[sidebar_tab->getName()]; - - btn->setRect(ctrl_rect); - offset+=sidetray_params.default_button_height; - offset+=sidetray_params.default_button_margin; - - btn->setVisible(ctrl_rect.mBottom > 0); - } - - //arrange tabs - - for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it) - { - LLSideTrayTab* sidebar_tab = *child_it; - sidebar_tab->reshape(mMaxBarWidth,getRect().getHeight()); - ctrl_rect.setLeftTopAndSize(sidetray_params.default_button_width,getRect().getHeight(),mMaxBarWidth,getRect().getHeight()); - sidebar_tab->setRect(ctrl_rect); - - } + arrange(); } /** @@ -729,42 +637,12 @@ LLPanel* LLSideTray::showPanel (const std::string& panel_name, const LLSD& para static const S32 fake_offset = 132; static const S32 fake_top_offset = 18; -void LLSideTray::resetPanelRect () -{ - const LLRect& parent_rect = gViewerWindow->getRootView()->getRect(); - - static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams()); - - S32 panel_width = sidetray_params.default_button_width; - panel_width += mCollapsed ? 0 : 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()); - - const LLRect& parent_rect = gViewerWindow->getRootView()->getRect(); - - S32 panel_width = sidetray_params.default_button_width; - panel_width += mCollapsed ? 0 : 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(); - - LLRect panel_rect; - panel_rect.setLeftTopAndSize( parent_rect.mRight-panel_width, panel_top, panel_width, panel_height); - setRect(panel_rect); + // set visibility of parent container based on collapsed state + if (getParent()) + { + getParent()->setVisible(!mCollapsed); + } } -S32 LLSideTray::getTrayWidth() -{ - static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams()); - return getRect().getWidth() - (sidetray_params.default_button_width + sidetray_params.default_button_margin); -} -- cgit v1.3 From 2bc97bd68a774dd373c5688b5dc660abe90b37cc Mon Sep 17 00:00:00 2001 From: richard Date: Mon, 9 Nov 2009 16:01:21 -0800 Subject: renamed LLLayoutStack::idle to LLLayoutStack::updateClass converted mWorldViewPlaceholder to a LLHandle improved layout of panel_bottomtray reviewed by James --- indra/llui/lllayoutstack.cpp | 2 +- indra/llui/lllayoutstack.h | 2 +- indra/newview/llsidetray.cpp | 6 +++--- indra/newview/llsidetray.h | 5 +---- indra/newview/llviewerwindow.cpp | 8 ++++---- indra/newview/llviewerwindow.h | 2 +- indra/newview/skins/default/xui/en/panel_bottomtray.xml | 4 ++-- 7 files changed, 13 insertions(+), 16 deletions(-) (limited to 'indra/newview/llsidetray.cpp') diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp index 596b3a3e70..5999e1a29e 100644 --- a/indra/llui/lllayoutstack.cpp +++ b/indra/llui/lllayoutstack.cpp @@ -790,7 +790,7 @@ void LLLayoutStack::calcMinExtents() // we might still need to call updateLayout during UI draw phase, in case UI elements // are resizing themselves dynamically //static -void LLLayoutStack::idle() +void LLLayoutStack::updateClass() { for (LLInstanceTracker::instance_iter it = beginInstances(); it != endInstances(); ++it) { diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h index 11d604b7ec..8475079f5e 100644 --- a/indra/llui/lllayoutstack.h +++ b/indra/llui/lllayoutstack.h @@ -83,7 +83,7 @@ public: void updatePanelAutoResize(const std::string& panel_name, BOOL auto_resize); - static void idle(); + static void updateClass(); protected: LLLayoutStack(const Params&); diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index f0e782d44d..061587f11b 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -455,7 +455,7 @@ void LLSideTray::onToggleCollapse() void LLSideTray::reflectCollapseChange() { - setPanelRect(); + updateSidetrayVisibility(); if(mCollapsed) { @@ -475,7 +475,7 @@ void LLSideTray::arrange() { static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams()); - setPanelRect(); + updateSidetrayVisibility(); LLRect ctrl_rect; ctrl_rect.setLeftTopAndSize(0, @@ -637,7 +637,7 @@ LLPanel* LLSideTray::showPanel (const std::string& panel_name, const LLSD& para static const S32 fake_offset = 132; static const S32 fake_top_offset = 18; -void LLSideTray::setPanelRect () +void LLSideTray::updateSidetrayVisibility() { // set visibility of parent container based on collapsed state if (getParent()) diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h index 72a9465baa..4d6081e230 100644 --- a/indra/newview/llsidetray.h +++ b/indra/newview/llsidetray.h @@ -134,9 +134,6 @@ public: void reshape (S32 width, S32 height, BOOL called_from_parent = TRUE); - void resetPanelRect (); - - protected: LLSideTrayTab* getTab (const std::string& name); @@ -147,7 +144,7 @@ protected: void toggleTabButton (LLSideTrayTab* tab); - void setPanelRect (); + void updateSidetrayVisibility(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index b15019f830..5e5aec5cb9 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1406,7 +1406,7 @@ void LLViewerWindow::initBase() getRootView()->addChild(main_view); // placeholder widget that controls where "world" is rendered - mWorldViewPlaceholder = main_view->getChildView("world_view_rect"); + mWorldViewPlaceholder = main_view->getChildView("world_view_rect")->getHandle(); // Constrain floaters to inside the menu and status bar regions. gFloaterView = getRootView()->getChild("Floater View"); @@ -2329,7 +2329,7 @@ void LLViewerWindow::updateUI() static std::string last_handle_msg; // animate layout stacks so we have up to date rect for world view - LLLayoutStack::idle(); + LLLayoutStack::updateClass(); updateWorldViewRect(); @@ -2839,9 +2839,9 @@ void LLViewerWindow::updateWorldViewRect(bool use_full_window) // start off using whole window to render world LLRect new_world_rect = mWindowRect; - if (use_full_window == false) + if (use_full_window == false && mWorldViewPlaceholder.get()) { - new_world_rect = mWorldViewPlaceholder->calcScreenRect(); + new_world_rect = mWorldViewPlaceholder.get()->calcScreenRect(); // clamp to at least a 1x1 rect so we don't try to allocate zero width gl buffers new_world_rect.mTop = llmax(new_world_rect.mTop, new_world_rect.mBottom + 1); new_world_rect.mRight = llmax(new_world_rect.mRight, new_world_rect.mLeft + 1); diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index 31a458a15b..6750c39dbb 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -451,7 +451,7 @@ protected: std::string mInitAlert; // Window / GL initialization requires an alert - LLView* mWorldViewPlaceholder; // widget that spans the portion of screen dedicated to rendering the 3d world + LLHandle mWorldViewPlaceholder; // widget that spans the portion of screen dedicated to rendering the 3d world class LLDebugText* mDebugText; // Internal class for debug text diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index faa38084f1..d990ebfd4a 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -56,9 +56,9 @@ height="28" layout="topleft" min_height="28" - width="100" + width="104" top_delta="0" - min_width="100" + min_width="104" name="speak_panel" user_resize="false"> Date: Tue, 10 Nov 2009 12:43:17 +0200 Subject: merge --HG-- branch : product-engine --- indra/newview/llsidetray.cpp | 43 +++++++++++++++++++++++++++++++++++++++---- indra/newview/llsidetray.h | 2 ++ 2 files changed, 41 insertions(+), 4 deletions(-) (limited to 'indra/newview/llsidetray.cpp') diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index a11ee05532..b25dea92cc 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -460,16 +460,51 @@ void LLSideTray::createButtons () } } +void LLSideTray::processTriState () +{ + if(mCollapsed) + expandSideBar(); + else + { + //!!!!!!!!!!!!!!!!! + //** HARDCODED!!!!! + //!!!!!!!!!!!!!!!!! + + //there is no common way to determine "default" panel for tab + //so default panels for now will be hardcoded + + //hardcoded for people tab and profile tab + + /*if(mActiveTab == getTab("sidebar_people")) + { + LLSideTrayPanelContainer* container = findChild("panel_container"); + if(container && container->getCurrentPanelIndex()>0) + { + container->onOpen(LLSD().insert("sub_panel_name","panel_people")); + } + else + collapseSideBar(); + } + else if(mActiveTab == getTab("sidebar_me")) + { + LLTabContainer* tab_container = findChild("tabs"); + if(tab_container && tab_container->getCurrentPanelIndex()>0) + tab_container->selectFirstTab(); + else + collapseSideBar(); + } + else*/ + collapseSideBar(); + } +} + void LLSideTray::onTabButtonClick(string name) { LLSideTrayTab* side_bar = getTab(name); if(side_bar == mActiveTab) { - if(mCollapsed) - expandSideBar(); - else - collapseSideBar(); + processTriState (); return; } selectTabByName (name); diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h index b49251ec79..246979ac54 100644 --- a/indra/newview/llsidetray.h +++ b/indra/newview/llsidetray.h @@ -135,6 +135,8 @@ public: S32 getTrayWidth(); void resetPanelRect (); + + void processTriState (); protected: -- cgit v1.3 From f112356d77ab0dd6e47446adf0513975bc4f38a7 Mon Sep 17 00:00:00 2001 From: richard Date: Tue, 10 Nov 2009 14:01:55 -0800 Subject: added filenames to xui names output when using filename="" in XUI reviewed by Richard --- indra/llui/llpanel.cpp | 2 ++ indra/newview/llsidetray.cpp | 1 + 2 files changed, 3 insertions(+) (limited to 'indra/newview/llsidetray.cpp') diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp index 07c0f3ce84..89c4656297 100644 --- a/indra/llui/llpanel.cpp +++ b/indra/llui/llpanel.cpp @@ -512,6 +512,8 @@ BOOL LLPanel::initPanelXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr outpu // add children using dimensions from referenced xml for consistent layout setShape(params.rect); LLUICtrlFactory::createChildren(this, referenced_xml, child_registry_t::instance()); + + setXMLFilename(xml_filename); } // ask LLUICtrlFactory for filename, since xml_filename might be empty diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index 061587f11b..c3da246039 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -101,6 +101,7 @@ LLSideTray* LLSideTray::getInstance() if (!sInstance) { sInstance = LLUICtrlFactory::createFromFile("panel_side_tray.xml",NULL, LLRootView::child_registry_t::instance()); + sInstance->setXMLFilename("panel_side_tray.xml"); } return sInstance; -- cgit v1.3 From b8a672adaf547649d555909f1baa2234d4b46699 Mon Sep 17 00:00:00 2001 From: Andrew Dyukov Date: Wed, 11 Nov 2009 18:49:23 +0200 Subject: Fixed low bug EXT-1499 (Finalize the Home panel and add tooltips to the tab grabs). --HG-- branch : product-engine --- indra/newview/llsidetray.cpp | 10 +++++++--- indra/newview/llsidetray.h | 3 ++- indra/newview/skins/default/xui/en/panel_side_tray.xml | 6 +++--- 3 files changed, 12 insertions(+), 7 deletions(-) (limited to 'indra/newview/llsidetray.cpp') diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index b25dea92cc..1d9b1261d6 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -389,7 +389,8 @@ bool LLSideTray::selectTabByName (const std::string& name) return true; } -LLButton* LLSideTray::createButton (const std::string& name,const std::string& image,LLUICtrl::commit_callback_t callback) +LLButton* LLSideTray::createButton (const std::string& name,const std::string& image,const std::string& tooltip, + LLUICtrl::commit_callback_t callback) { static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams()); @@ -410,6 +411,9 @@ LLButton* LLSideTray::createButton (const std::string& name,const std::string& i LLButton* button = LLUICtrlFactory::create (bparams); button->setLabel(name); button->setClickedCallback(callback); + + if(tooltip!="Home") + button->setToolTip(tooltip); if(image.length()) { @@ -448,12 +452,12 @@ void LLSideTray::createButtons () // change if the home screen becomes its own tab. if (name == "sidebar_home") { - mCollapseButton = createButton("",sidebar_tab->mImage, + mCollapseButton = createButton("",sidebar_tab->mImage,sidebar_tab->getTabTitle(), boost::bind(&LLSideTray::onToggleCollapse, this)); } else { - LLButton* button = createButton("",sidebar_tab->mImage, + LLButton* button = createButton("",sidebar_tab->mImage,sidebar_tab->getTabTitle(), boost::bind(&LLSideTray::onTabButtonClick, this, name)); mTabButtons[name] = button; } diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h index 246979ac54..19d9ca8f7e 100644 --- a/indra/newview/llsidetray.h +++ b/indra/newview/llsidetray.h @@ -143,7 +143,8 @@ protected: LLSideTrayTab* getTab (const std::string& name); void createButtons (); - LLButton* createButton (const std::string& name,const std::string& image,LLUICtrl::commit_callback_t callback); + LLButton* createButton (const std::string& name,const std::string& image,const std::string& tooltip, + LLUICtrl::commit_callback_t callback); void arrange (); void reflectCollapseChange(); diff --git a/indra/newview/skins/default/xui/en/panel_side_tray.xml b/indra/newview/skins/default/xui/en/panel_side_tray.xml index a9874f4553..a419a02d75 100644 --- a/indra/newview/skins/default/xui/en/panel_side_tray.xml +++ b/indra/newview/skins/default/xui/en/panel_side_tray.xml @@ -94,7 +94,7 @@