From cadaa6ec0d4925484f927cb1e3ce6ee224107b47 Mon Sep 17 00:00:00 2001 From: Rye Mutt <rye@alchemyviewer.org> Date: Wed, 24 Jun 2020 09:32:18 -0400 Subject: [PATCH] Restore top button bar --- indra/llui/lltoolbar.h | 3 +- indra/newview/lltoolbarview.cpp | 34 +++++++++++++++++-- indra/newview/lltoolbarview.h | 3 +- .../default/xui/en/panel_toolbar_view.xml | 29 ++++++++++++++++ 4 files changed, 65 insertions(+), 4 deletions(-) diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h index 370941c787e..6ba3c662d41 100644 --- a/indra/llui/lltoolbar.h +++ b/indra/llui/lltoolbar.h @@ -131,11 +131,12 @@ namespace LLToolBarEnums TOOLBAR_LEFT, TOOLBAR_RIGHT, TOOLBAR_BOTTOM, + TOOLBAR_TOP, TOOLBAR_COUNT, TOOLBAR_FIRST = TOOLBAR_LEFT, - TOOLBAR_LAST = TOOLBAR_BOTTOM, + TOOLBAR_LAST = TOOLBAR_TOP, }; LLView::EOrientation getOrientation(SideType sideType); diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index 01d799dcd50..e11f1bd00fa 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -64,7 +64,8 @@ LLToolBarView::Toolbar::Toolbar() LLToolBarView::ToolbarSet::ToolbarSet() : left_toolbar("left_toolbar"), right_toolbar("right_toolbar"), - bottom_toolbar("bottom_toolbar") + bottom_toolbar("bottom_toolbar"), + top_toolbar("top_toolbar") {} @@ -105,6 +106,9 @@ BOOL LLToolBarView::postBuild() mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM] = getChild<LLToolBar>("toolbar_bottom"); mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]->getCenterLayoutPanel()->setLocationId(LLToolBarEnums::TOOLBAR_BOTTOM); + mToolbars[LLToolBarEnums::TOOLBAR_TOP] = getChild<LLToolBar>("toolbar_top"); + mToolbars[LLToolBarEnums::TOOLBAR_TOP]->getCenterLayoutPanel()->setLocationId(LLToolBarEnums::TOOLBAR_TOP); + mBottomToolbarPanel = getChild<LLView>("bottom_toolbar_panel"); for (int i = LLToolBarEnums::TOOLBAR_FIRST; i <= LLToolBarEnums::TOOLBAR_LAST; i++) @@ -319,6 +323,26 @@ bool LLToolBarView::loadToolbars(bool force_default) } } } + if (toolbar_set.top_toolbar.isProvided() && mToolbars[LLToolBarEnums::TOOLBAR_TOP]) + { + if (toolbar_set.top_toolbar.button_display_mode.isProvided()) + { + LLToolBarEnums::ButtonType button_type = toolbar_set.top_toolbar.button_display_mode; + mToolbars[LLToolBarEnums::TOOLBAR_TOP]->setButtonType(button_type); + } + //if (toolbar_set.top_toolbar.button_layout_mode.isProvided()) + //{ + // LLToolBarEnums::LayoutType layout_type = toolbar_set.top_toolbar.button_layout_mode; + // mToolbars[LLToolBarEnums::TOOLBAR_TOP]->setLayoutType(layout_type); + //} + for (const LLCommandId::Params& command_params : toolbar_set.top_toolbar.commands) + { + if (addCommandInternal(LLCommandId(command_params), mToolbars[LLToolBarEnums::TOOLBAR_TOP])) + { + LL_WARNS() << "Error adding command '" << command_params.name() << "' to top toolbar." << LL_ENDL; + } + } + } mToolbarsLoaded = true; return true; } @@ -392,6 +416,12 @@ void LLToolBarView::saveToolbars() const toolbar_set.bottom_toolbar.button_display_mode = mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]->getButtonType(); addToToolset(mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]->getCommandsList(), toolbar_set.bottom_toolbar); } + if (mToolbars[LLToolBarEnums::TOOLBAR_TOP]) + { + toolbar_set.top_toolbar.button_display_mode = mToolbars[LLToolBarEnums::TOOLBAR_TOP]->getButtonType(); + //toolbar_set.top_toolbar.button_layout_mode = mToolbars[LLToolBarEnums::TOOLBAR_TOP]->getLayoutType(); + addToToolset(mToolbars[LLToolBarEnums::TOOLBAR_TOP]->getCommandsList(), toolbar_set.top_toolbar); + } // Serialize the parameter tree LLXMLNodePtr output_node = new LLXMLNode("toolbars", false); @@ -548,7 +578,7 @@ void LLToolBarView::draw() // Draw drop zones if drop of a tool is active if (isToolDragged()) { - LLColor4 drop_color = LLUIColorTable::instance().getColor( "ToolbarDropZoneColor" ); + static const LLUIColor drop_color = LLUIColorTable::instance().getColor( "ToolbarDropZoneColor" ); for (S32 i = LLToolBarEnums::TOOLBAR_FIRST; i <= LLToolBarEnums::TOOLBAR_LAST; i++) { diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h index a230c2fdee7..a4f7039011a 100644 --- a/indra/newview/lltoolbarview.h +++ b/indra/newview/lltoolbarview.h @@ -60,7 +60,8 @@ class LLToolBarView : public LLUICtrl { Optional<Toolbar> left_toolbar, right_toolbar, - bottom_toolbar; + bottom_toolbar, + top_toolbar; ToolbarSet(); }; diff --git a/indra/newview/skins/default/xui/en/panel_toolbar_view.xml b/indra/newview/skins/default/xui/en/panel_toolbar_view.xml index f5c559fe1dd..bd445ea836b 100644 --- a/indra/newview/skins/default/xui/en/panel_toolbar_view.xml +++ b/indra/newview/skins/default/xui/en/panel_toolbar_view.xml @@ -18,6 +18,35 @@ height="500" follows="all" mouse_opaque="false"> + <layout_panel name="top_toolbar_panel" + auto_resize="false" + height="30" + width="1024" + mouse_opaque="false"> + <toolbar layout="topleft" + button_panel.bg_opaque_image="Rounded_Rect_Top" + name="toolbar_top" + height="30" + left="40" + right="-40" + top="1" + side="top" + follows="left|right|top" + button_display_mode="icons_with_text" + visible="true"> + <icon layout="topleft" + height="28" + width="15" + follows="left|top" + top="20" + left="10" + tab_stop="false" + visible="false" + use_draw_context_alpha="false" + image_name="Caret_Top_Icon" + name="caret" /> + </toolbar> + </layout_panel> <layout_panel name="vertical_toolbar_panel" auto_resize="true" width="1024" -- GitLab