From 2b2a6d5ea6ae3843d9342c886973fa71cdab13c2 Mon Sep 17 00:00:00 2001 From: Inusaito Sayori Date: Sat, 27 Jul 2013 16:40:26 -0400 Subject: [PATCH] Touchups to scroll list building Moved handling of mouse_wheel_opaque and menu_file to setScrollListParameters Removed setToolTip block from LLScrollListCtrl::fromXML since setToolTip lives inside of LLView::initFromXML which is called by LLUICtrl::initFromXML which was already called at this point Added support for building columns from xml with relative_width which is synonymous with relwidth Fixed namelist columns not supporting dynamic_width in xml (dynamicwidth is only acceptable in older xmls) --- indra/llui/llscrolllistctrl.cpp | 34 +++++++++++++++----------------- indra/newview/llnamelistctrl.cpp | 16 +++++++++++++-- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp index 20c53ca42..e0c0cb1e0 100644 --- a/indra/llui/llscrolllistctrl.cpp +++ b/indra/llui/llscrolllistctrl.cpp @@ -2545,6 +2545,19 @@ void LLScrollListCtrl::setScrollListParameters(LLXMLNodePtr node) node->getAttributeS32("column_padding", column_padding); setColumnPadding(column_padding); } + + if (node->hasAttribute("mouse_wheel_opaque")) + { + node->getAttribute_bool("mouse_wheel_opaque", mMouseWheelOpaque); + } + + if (node->hasAttribute("menu_file")) + { + std::string menu_file; + node->getAttributeString("menu_file", menu_file); + mPopupMenu = LLUICtrlFactory::getInstance()->buildMenu(menu_file, LLMenuGL::sMenuContainer); + LLMenuGL::sMenuContainer->addChild(mPopupMenu); + } } // static @@ -2579,22 +2592,6 @@ LLView* LLScrollListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac scroll_list->initFromXML(node, parent); scroll_list->setSearchColumn(search_column); - BOOL mouse_wheel_opaque = true; - node->getAttributeBOOL("mouse_wheel_opaque", mouse_wheel_opaque); - scroll_list->mMouseWheelOpaque = mouse_wheel_opaque; - - std::string tool_tip; - node->getAttributeString("tool_tip", tool_tip); - scroll_list->setToolTip(tool_tip); - - std::string menu_file; - if (node->getAttributeString("menu_file", menu_file)) - { - LLMenuGL* menu = LLUICtrlFactory::getInstance()->buildMenu(menu_file, LLMenuGL::sMenuContainer); - LLMenuGL::sMenuContainer->addChild(menu); - scroll_list->setContextMenu(menu); - } - LLSD columns; S32 index = 0; for (LLXMLNodePtr child = node->getFirstChild(); child.notNull(); child = child->getNextSibling()) @@ -2634,8 +2631,9 @@ LLView* LLScrollListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac columns[index]["width"] = columnwidth; F32 columnrelwidth = 0.f; - if (child->getAttributeF32("relwidth", columnrelwidth)) - columns[index]["relwidth"] = columnrelwidth; + if (child->getAttributeF32("relative_width", columnrelwidth) + || child->getAttributeF32("relwidth", columnrelwidth)) + columns[index]["relative_width"] = columnrelwidth; BOOL columndynamicwidth = false; if (child->getAttributeBOOL("dynamic_width", columndynamicwidth) diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 2cce1f2de..ab2283644 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -360,11 +360,23 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto std::string sortname(columnname); child->getAttributeString("sort", sortname); - if (child->hasAttribute("relwidth")) + if (child->hasAttribute("relative_width")) + { + F32 columnrelwidth = 0.f; + child->getAttributeF32("relative_width", columnrelwidth); + columns[index]["relative_width"] = columnrelwidth; + } + else if (child->hasAttribute("relwidth")) { F32 columnrelwidth = 0.f; child->getAttributeF32("relwidth", columnrelwidth); - columns[index]["relwidth"] = columnrelwidth; + columns[index]["relative_width"] = columnrelwidth; + } + else if (child->hasAttribute("dynamic_width")) + { + BOOL columndynamicwidth = FALSE; + child->getAttributeBOOL("dynamic_width", columndynamicwidth); + columns[index]["dynamic_width"] = columndynamicwidth; } else if (child->hasAttribute("dynamicwidth")) {