From 97a6f8aeb0225b04c4913106d0b6758c664ea072 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Sat, 9 Feb 2019 21:46:21 -0500 Subject: [PATCH] [Favorites Bar] Compiles, but does it work yet? Gimme time to put it somewhere and we'll find out~ Also here's navbar/ textures, because we'll need the favorites one. --- indra/newview/llfavoritesbar.cpp | 164 ++++++++---------- indra/newview/llfavoritesbar.h | 10 +- .../textures/navbar/Arrow_Left_Off.png | Bin 0 -> 382 bytes .../textures/navbar/Arrow_Right_Off.png | Bin 0 -> 380 bytes .../default/textures/navbar/BuyArrow_Over.png | Bin 0 -> 294 bytes .../textures/navbar/BuyArrow_Press.png | Bin 0 -> 294 bytes .../textures/navbar/Favorite_Link_Over.png | Bin 0 -> 191 bytes .../textures/navbar/Favorite_Star_Active.png | Bin 0 -> 704 bytes .../textures/navbar/Favorite_Star_Off.png | Bin 0 -> 444 bytes .../textures/navbar/Favorite_Star_Over.png | Bin 0 -> 445 bytes .../textures/navbar/Favorite_Star_Press.png | Bin 0 -> 616 bytes .../textures/navbar/FileMenu_Divider.png | Bin 0 -> 116 bytes .../skins/default/textures/navbar/Flag.png | Bin 0 -> 338 bytes .../default/textures/navbar/Help_Press.png | Bin 0 -> 384 bytes .../default/textures/navbar/Home_Off.png | Bin 0 -> 379 bytes .../textures/navbar/Icon_Lightshare.png | Bin 0 -> 775 bytes .../default/textures/navbar/Info_Off.png | Bin 0 -> 608 bytes .../default/textures/navbar/Info_Over.png | Bin 0 -> 622 bytes .../default/textures/navbar/Info_Press.png | Bin 0 -> 605 bytes .../skins/default/textures/navbar/Lock.png | Bin 0 -> 302 bytes .../default/textures/navbar/NavBar_BG.png | Bin 0 -> 195 bytes .../textures/navbar/NavBar_BG_NoFav_Bevel.png | Bin 0 -> 231 bytes .../textures/navbar/NavBar_BG_NoNav_Bevel.png | Bin 0 -> 218 bytes .../default/textures/navbar/Row_Selection.png | Bin 0 -> 231 bytes .../skins/default/textures/navbar/Search.png | Bin 0 -> 516 bytes .../default/textures/navbar/separator.png | Bin 0 -> 330 bytes .../skins/default/textures/textures.xml | 7 + 27 files changed, 81 insertions(+), 100 deletions(-) create mode 100644 indra/newview/skins/default/textures/navbar/Arrow_Left_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/Arrow_Right_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/BuyArrow_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/BuyArrow_Press.png create mode 100644 indra/newview/skins/default/textures/navbar/Favorite_Link_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png create mode 100644 indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png create mode 100644 indra/newview/skins/default/textures/navbar/FileMenu_Divider.png create mode 100644 indra/newview/skins/default/textures/navbar/Flag.png create mode 100644 indra/newview/skins/default/textures/navbar/Help_Press.png create mode 100644 indra/newview/skins/default/textures/navbar/Home_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/Icon_Lightshare.png create mode 100644 indra/newview/skins/default/textures/navbar/Info_Off.png create mode 100644 indra/newview/skins/default/textures/navbar/Info_Over.png create mode 100644 indra/newview/skins/default/textures/navbar/Info_Press.png create mode 100644 indra/newview/skins/default/textures/navbar/Lock.png create mode 100644 indra/newview/skins/default/textures/navbar/NavBar_BG.png create mode 100644 indra/newview/skins/default/textures/navbar/NavBar_BG_NoFav_Bevel.png create mode 100644 indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.png create mode 100644 indra/newview/skins/default/textures/navbar/Row_Selection.png create mode 100644 indra/newview/skins/default/textures/navbar/Search.png create mode 100644 indra/newview/skins/default/textures/navbar/separator.png diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 969dff5a8..64f8924d1 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -29,28 +29,26 @@ #include "llviewerprecompiledheaders.h" #include "llfavoritesbar.h" -#if 0 //#include "llfloaterreg.h" #include "llfocusmgr.h" #include "llinventory.h" #include "lllandmarkactions.h" -#include "lltoolbarview.h" +//#include "lltoolbarview.h" #include "lltrans.h" #include "llmenugl.h" -#include "lltooltip.h" -#endif +//#include "lltooltip.h" +#include "lluictrlfactory.h" #include "llagent.h" #include "llavatarnamecache.h" #include "llclipboard.h" #include "llinventorybridge.h" +#include "llinventoryclipboard.h" #include "llinventoryfunctions.h" //#include "llfloatersidepanelcontainer.h" #include "llfloaterworldmap.h" #include "lllandmarkactions.h" -#if 0 -#include "lllogininstance.h" -#endif +//#include "lllogininstance.h" #include "llnotificationsutil.h" //#include "lltoggleablemenu.h" #include "llviewerinventory.h" @@ -59,7 +57,8 @@ #include "lltooldraganddrop.h" #include "llsdserialize.h" -#if 0 +void open_landmark(LLViewerInventoryItem* inv_item, const std::string& title, BOOL show_keep_discard, const LLUUID& source_id, BOOL take_focus); + static LLRegisterWidget r("favorites_bar"); const S32 DROP_DOWN_MENU_WIDTH = 250; @@ -165,7 +164,7 @@ class LLFavoriteLandmarkButton : public LLButton { public: - BOOL handleToolTip(S32 x, S32 y, MASK mask) override + BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect) override { std::string region_name = mLandmarkInfoGetter.getName(); @@ -174,12 +173,8 @@ public: std::string extra_message = llformat("%s (%d, %d, %d)", region_name.c_str(), mLandmarkInfoGetter.getPosX(), mLandmarkInfoGetter.getPosY(), mLandmarkInfoGetter.getPosZ()); - LLToolTip::Params params; - params.message = llformat("%s\n%s", getLabelSelected().c_str(), extra_message.c_str()); - params.max_width = 1000; - params.sticky_rect = calcScreenRect(); - - LLToolTipMgr::instance().show(params); + msg = llformat("%s\n%s", getLabelSelected().c_str(), extra_message.c_str()); + *sticky_rect = calcScreenRect(); } return TRUE; } @@ -211,7 +206,7 @@ public: } } -protected: +//protected: LLFavoriteLandmarkButton(const LLButton::Params& p) : LLButton(p) {} friend class LLUICtrlFactory; @@ -229,15 +224,13 @@ private: class LLFavoriteLandmarkMenuItem : public LLMenuItemCallGL { public: - BOOL handleToolTip(S32 x, S32 y, MASK mask) override + BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect) override { std::string region_name = mLandmarkInfoGetter.getName(); if (!region_name.empty()) { - LLToolTip::Params params; - params.message = llformat("%s\n%s (%d, %d)", getLabel().c_str(), region_name.c_str(), mLandmarkInfoGetter.getPosX(), mLandmarkInfoGetter.getPosY()); - params.sticky_rect = calcScreenRect(); - LLToolTipMgr::instance().show(params); + msg = llformat("%s\n%s (%d, %d)", getLabel().c_str(), region_name.c_str(), mLandmarkInfoGetter.getPosX(), mLandmarkInfoGetter.getPosY()); + *sticky_rect = calcScreenRect(); } return TRUE; } @@ -270,9 +263,9 @@ public: void initFavoritesBarPointer(LLFavoritesBarCtrl* fb) { this->fb = fb; } -protected: +//protected: - LLFavoriteLandmarkMenuItem(const LLMenuItemCallGL::Params& p) : LLMenuItemCallGL(p), fb(nullptr) {} + LLFavoriteLandmarkMenuItem(const LLMenuItemCallGL::Params& p) : LLMenuItemCallGL(p.name(), p.label(), nullptr), fb(nullptr) {} friend class LLUICtrlFactory; private: @@ -287,7 +280,7 @@ private: * because otherwise LLToolDragAndDrop will initiate drag and drop operation * with the world. */ -class LLFavoriteLandmarkToggleableMenu : public LLToggleableMenu +class LLFavoriteLandmarkToggleableMenu : public LLMenuGL { public: BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, @@ -300,9 +293,9 @@ public: return TRUE; } -protected: - LLFavoriteLandmarkToggleableMenu(const LLToggleableMenu::Params& p): - LLToggleableMenu(p) +//protected: + LLFavoriteLandmarkToggleableMenu(): + LLMenuGL("favorites menu") { } @@ -341,7 +334,6 @@ public: private: S32 mSortField; }; -#endif // updateButtons's helper struct LLFavoritesSort @@ -371,7 +363,6 @@ struct LLFavoritesSort } }; -#if 0 LLFavoritesBarCtrl::Params::Params() : image_drag_indication("image_drag_indication"), more_button("more_button"), @@ -403,15 +394,16 @@ LLFavoritesBarCtrl::LLFavoritesBarCtrl(const LLFavoritesBarCtrl::Params& p) gInventory.addObserver(this); //make chevron button - LLTextBox::Params more_button_params(p.more_button); - mMoreTextBox = LLUICtrlFactory::create (more_button_params); + mMoreTextBox = new LLTextBox(">>", "\u0032", 50); + mMoreTextBox->setFollows(FOLLOWS_LEFT | FOLLOWS_BOTTOM); + mMoreTextBox->setToolTip(LLStringExplicit("Show more of My Favorites")); + mMoreTextBox->setTabStop(false); mMoreTextBox->setClickedCallback(boost::bind(&LLFavoritesBarCtrl::showDropDownMenu, this)); addChild(mMoreTextBox); mDropDownItemsCount = 0; - LLTextBox::Params label_param(p.label); - mBarLabel = LLUICtrlFactory::create (label_param); + mBarLabel = new LLTextBox(p.label.name, p.label.label); addChild(mBarLabel); } @@ -544,7 +536,7 @@ void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y) LLFavoritesOrderStorage::instance().saveItemsOrder(mItems); - LLToggleableMenu* menu = (LLToggleableMenu*) mOverflowMenuHandle.get(); + LLMenuGL* menu = (LLMenuGL*) mOverflowMenuHandle.get(); if (menu && menu->getVisible()) { @@ -712,12 +704,11 @@ const LLButton::Params& LLFavoritesBarCtrl::getButtonParams() if (!params_initialized) { - LLXMLNodePtr button_xml_node; - if(LLUICtrlFactory::getLayeredXMLNode("favorites_bar_button.xml", button_xml_node)) - { - LLXUIParser parser; - parser.readXUI(button_xml_node, button_params, "favorites_bar_button.xml"); - } + button_params.image_overlay(LLUI::getUIImage("Favorite_Link_Over")) + .hover_glow_amount(0.15f) + .use_ellipses(true).tab_stop(false) + .name("favorites_bar_btn") + .follows.flags(FOLLOWS_LEFT|FOLLOWS_BOTTOM); params_initialized = true; } @@ -840,7 +831,7 @@ void LLFavoritesBarCtrl::updateButtons() mMoreTextBox->setVisible(TRUE); } // Update overflow menu - LLToggleableMenu* overflow_menu = static_cast (mOverflowMenuHandle.get()); + LLMenuGL* overflow_menu = static_cast (mOverflowMenuHandle.get()); if (overflow_menu && overflow_menu->getVisible() && (overflow_menu->getItemCount() != mDropDownItemsCount)) { overflow_menu->setVisible(FALSE); @@ -879,7 +870,7 @@ LLButton* LLFavoritesBarCtrl::createButton(const LLPointer(fav_btn_params); + fav_btn = new LLFavoriteLandmarkButton(fav_btn_params); if (NULL == fav_btn) { LL_WARNS("FavoritesBar") << "Unable to create LLFavoriteLandmarkButton widget: " << item->getName() << LL_ENDL; @@ -910,19 +901,18 @@ LLButton* LLFavoritesBarCtrl::createButton(const LLPointercreateFromFile("menu_favorites.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); + LLMenuGL* menu = LLUICtrlFactory::getInstance()->buildMenu("menu_favorites.xml", gMenuHolder); if (!menu) { - menu = LLUICtrlFactory::getDefaultWidget("inventory_menu"); + return FALSE; //menu = LLUICtrlFactory::getDefaultWidget("inventory_menu"); } - menu->setBackgroundColor(LLUIColorTable::instance().getColor("MenuPopupBgColor")); + menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor")); mContextMenuHandle = menu->getHandle(); return TRUE; } -#endif -BOOL /*LLFavoritesBarCtrl::*/collectFavoriteItems() +BOOL LLFavoritesBarCtrl::collectFavoriteItems(LLInventoryModel::item_array_t& items) { auto mFavoriteFolderId = gInventory.findCategoryUUIDForType(LLFolderType::FT_FAVORITE); @@ -931,16 +921,13 @@ BOOL /*LLFavoritesBarCtrl::*/collectFavoriteItems() LLInventoryModel::cat_array_t cats; - LLInventoryModel::item_array_t items; LLIsType is_type(LLAssetType::AT_LANDMARK); gInventory.collectDescendentsIf(mFavoriteFolderId, cats, items, LLInventoryModel::EXCLUDE_TRASH, is_type); std::sort(items.begin(), items.end(), LLFavoritesSort()); -#if 0 - //if (needToSaveItemsOrder(items)) -#endif + if (needToSaveItemsOrder(items)) { S32 sortField = 0; for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i) @@ -952,7 +939,6 @@ BOOL /*LLFavoritesBarCtrl::*/collectFavoriteItems() return TRUE; } -#if 0 void LLFavoritesBarCtrl::showDropDownMenu() { if (mOverflowMenuHandle.isDead()) @@ -960,9 +946,10 @@ void LLFavoritesBarCtrl::showDropDownMenu() createOverflowMenu(); } - LLToggleableMenu* menu = (LLToggleableMenu*)mOverflowMenuHandle.get(); - if (menu && menu->toggleVisibility()) + LLMenuGL* menu = (LLMenuGL*)mOverflowMenuHandle.get(); + if (menu) { + if (mUpdateDropDownItems) { updateMenuItems(menu); @@ -970,7 +957,7 @@ void LLFavoritesBarCtrl::showDropDownMenu() menu->buildDrawLabels(); menu->updateParent(LLMenuGL::sMenuContainer); - menu->setButtonRect(mMoreTextBox->getRect(), this); + //menu->setButtonRect(mMoreTextBox->getRect(), this); positionAndShowMenu(menu); mDropDownItemsCount = menu->getItemCount(); } @@ -978,19 +965,16 @@ void LLFavoritesBarCtrl::showDropDownMenu() void LLFavoritesBarCtrl::createOverflowMenu() { - LLToggleableMenu::Params menu_p; - menu_p.name("favorites menu"); - menu_p.can_tear_off(false); - menu_p.visible(false); - menu_p.scrollable(true); - menu_p.max_scrollable_items = 10; - menu_p.preferred_width = DROP_DOWN_MENU_WIDTH; - - LLToggleableMenu* menu = LLUICtrlFactory::create(menu_p); + LLMenuGL* menu = new LLFavoriteLandmarkToggleableMenu(); + menu->setCanTearOff(false); + menu->setVisible(false); + menu->setScrollable(true); + //menu_p.max_scrollable_items = 10; + //menu_p.preferred_width = DROP_DOWN_MENU_WIDTH; mOverflowMenuHandle = menu->getHandle(); } -void LLFavoritesBarCtrl::updateMenuItems(LLToggleableMenu* menu) +void LLFavoritesBarCtrl::updateMenuItems(LLMenuGL* menu) { menu->empty(); @@ -1004,9 +988,9 @@ void LLFavoritesBarCtrl::updateMenuItems(LLToggleableMenu* menu) LLFavoriteLandmarkMenuItem::Params item_params; item_params.name(item_name); item_params.label(item_name); - item_params.on_click.function(boost::bind(&LLFavoritesBarCtrl::onButtonClick, this, item->getUUID())); - LLFavoriteLandmarkMenuItem *menu_item = LLUICtrlFactory::create(item_params); + LLFavoriteLandmarkMenuItem *menu_item = new LLFavoriteLandmarkMenuItem(item_params); + menu_item->setMouseUpCallback(std::bind(&LLFavoritesBarCtrl::onButtonClick, this, item->getUUID())); menu_item->initFavoritesBarPointer(this); menu_item->setRightMouseDownCallback(boost::bind(&LLFavoritesBarCtrl::onButtonRightClick, this, item->getUUID(), _1, _2, _3, _4)); menu_item->LLUICtrl::setMouseDownCallback(boost::bind(&LLFavoritesBarCtrl::onButtonMouseDown, this, item->getUUID(), _1, _2, _3, _4)); @@ -1049,40 +1033,32 @@ void LLFavoritesBarCtrl::fitLabelWidth(LLMenuItemCallGL* menu_item) } } -void LLFavoritesBarCtrl::addOpenLandmarksMenuItem(LLToggleableMenu* menu) +void LLFavoritesBarCtrl::addOpenLandmarksMenuItem(LLMenuGL* menu) { std::string label_untrans = "Open landmarks"; std::string label_transl; bool translated = LLTrans::findString(label_transl, label_untrans); - LLMenuItemCallGL::Params item_params; - item_params.name("open_my_landmarks"); - item_params.label(translated ? label_transl: label_untrans); - LLSD key; - key["type"] = "open_landmark_tab"; - item_params.on_click.function(boost::bind(&LLFloaterSidePanelContainer::showPanel, "places", key)); - LLMenuItemCallGL* menu_item = LLUICtrlFactory::create(item_params); + LLMenuItemCallGL* menu_item = new LLMenuItemCallGL(std::string("open_my_landmarks"), std::string(translated ? label_transl : label_untrans), nullptr); + void show_floater(const std::string& floater_name); + menu_item->setMouseUpCallback(std::bind(show_floater, "floater_inventory_favs.xml")); fitLabelWidth(menu_item); - LLMenuItemSeparatorGL::Params sep_params; - sep_params.enabled_color=LLUIColorTable::instance().getColor("MenuItemEnabledColor"); - sep_params.disabled_color=LLUIColorTable::instance().getColor("MenuItemDisabledColor"); - sep_params.highlight_bg_color=LLUIColorTable::instance().getColor("MenuItemHighlightBgColor"); - sep_params.highlight_fg_color=LLUIColorTable::instance().getColor("MenuItemHighlightFgColor"); - LLMenuItemSeparatorGL* separator = LLUICtrlFactory::create(sep_params); + LLMenuItemSeparatorGL* separator = new LLMenuItemSeparatorGL; menu->addChild(separator); menu->addChild(menu_item); } -void LLFavoritesBarCtrl::positionAndShowMenu(LLToggleableMenu* menu) +void LLFavoritesBarCtrl::positionAndShowMenu(LLMenuGL* menu) { U32 max_width = llmin(DROP_DOWN_MENU_WIDTH, getRect().getWidth()); S32 menu_x = getRect().getWidth() - max_width; S32 menu_y = getParent()->getRect().mBottom - DROP_DOWN_MENU_TOP_PAD; + /* Singu TODO: Side Toolbar? // the menu should be offset of the right edge of the window // so it's no covered by buttons in the right-side toolbar. LLToolBar* right_toolbar = gToolBarView->getChild("toolbar_right"); @@ -1107,6 +1083,7 @@ void LLFavoritesBarCtrl::positionAndShowMenu(LLToggleableMenu* menu) menu_x -= right_toolbar->getRect().getWidth(); } } + */ LLMenuGL::showPopup(this, menu, menu_x, menu_y); } @@ -1146,17 +1123,17 @@ void LLFavoritesBarCtrl::onButtonRightClick( LLUUID item_id,LLView* fav_button,S BOOL LLFavoritesBarCtrl::handleRightMouseDown(S32 x, S32 y, MASK mask) { BOOL handled = childrenHandleRightMouseDown( x, y, mask) != NULL; - if(!handled && !gMenuHolder->hasVisibleMenu()) + /*if(!handled && !gMenuHolder->hasVisibleMenu()) { show_navbar_context_menu(this,x,y); handled = true; - } + }*/ return handled; } void copy_slurl_to_clipboard_cb(std::string& slurl) { - LLClipboard::instance().copyToClipboard(utf8str_to_wstring(slurl),0,slurl.size()); + LLView::getWindow()->copyTextToClipboard(utf8str_to_wstring(slurl)); LLSD args; args["SLURL"] = slurl; @@ -1195,7 +1172,7 @@ void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata) key["type"] = "landmark"; key["id"] = mSelectedItemID; - LLFloaterSidePanelContainer::showPanel("places", key); + open_landmark(item, "Favorite", false, mSelectedItemID, true); } else if (action == "copy_slurl") { @@ -1209,7 +1186,7 @@ void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata) } else if (action == "show_on_map") { - LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance(); + LLFloaterWorldMap* worldmap_instance = gFloaterWorldMap; LLVector3d posGlobal; LLLandmarkActions::getLandmarkGlobalPos(mSelectedItemID, posGlobal); @@ -1217,7 +1194,7 @@ void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata) if (!posGlobal.isExactlyZero() && worldmap_instance) { worldmap_instance->trackLocation(posGlobal); - LLFloaterReg::showInstance("world_map", "center"); + LLFloaterWorldMap::show(true); } } else if (action == "cut") @@ -1225,7 +1202,7 @@ void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata) } else if (action == "copy") { - LLClipboard::instance().copyToClipboard(mSelectedItemID, LLAssetType::AT_LANDMARK); + LLInventoryClipboard::instance().add(mSelectedItemID); } else if (action == "paste") { @@ -1238,7 +1215,7 @@ void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata) // Pop-up the overflow menu again (it gets hidden whenever the user clicks a context menu item). // See EXT-4217 and STORM-207. - LLToggleableMenu* menu = (LLToggleableMenu*) mOverflowMenuHandle.get(); + LLMenuGL* menu = (LLMenuGL*) mOverflowMenuHandle.get(); if (mRestoreOverflowMenu && menu && !menu->getVisible()) { menu->resetScrollPositionOnShow(false); @@ -1249,13 +1226,13 @@ void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata) BOOL LLFavoritesBarCtrl::isClipboardPasteable() const { - if (!LLClipboard::instance().hasContents()) + if (!LLInventoryClipboard::instance().hasContents()) { return FALSE; } std::vector objects; - LLClipboard::instance().pasteFromClipboard(objects); + LLInventoryClipboard::instance().retrieve(objects); S32 count = objects.size(); for(S32 i = 0; i < count; i++) { @@ -1284,7 +1261,7 @@ void LLFavoritesBarCtrl::pasteFromClipboard() const { LLInventoryItem* item = NULL; std::vector objects; - LLClipboard::instance().pasteFromClipboard(objects); + LLInventoryClipboard::instance().retrieve(objects); S32 count = objects.size(); LLUUID parent_id(mFavoriteFolderId); for(S32 i = 0; i < count; i++) @@ -1427,7 +1404,6 @@ void LLFavoritesBarCtrl::insertItem(LLInventoryModel::item_array_t& items, const items.push_back(insertedItem); } } -#endif const std::string LLFavoritesOrderStorage::SORTING_DATA_FILE_NAME = "landmarks_sorting.xml"; const S32 LLFavoritesOrderStorage::NO_INDEX = -1; diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h index ad3c8e95c..ef6f55c5e 100644 --- a/indra/newview/llfavoritesbar.h +++ b/indra/newview/llfavoritesbar.h @@ -35,10 +35,9 @@ #include "llinventorymodel.h" #include "llviewerinventory.h" #include "llui.h" //"llinitdestroyclass.h" -#if 0 class LLMenuItemCallGL; -class LLToggleableMenu; +class LLMenuGL; class LLFavoritesBarCtrl : public LLUICtrl, public LLInventoryObserver { @@ -141,14 +140,14 @@ private: void createOverflowMenu(); - void updateMenuItems(LLToggleableMenu* menu); + void updateMenuItems(LLMenuGL* menu); // Fits menu item label width with favorites menu width void fitLabelWidth(LLMenuItemCallGL* menu_item); - void addOpenLandmarksMenuItem(LLToggleableMenu* menu); + void addOpenLandmarksMenuItem(LLMenuGL* menu); - void positionAndShowMenu(LLToggleableMenu* menu); + void positionAndShowMenu(LLMenuGL* menu); BOOL mShowDragMarker; LLUICtrl* mLandingTab; @@ -164,7 +163,6 @@ private: boost::signals2::connection mEndDragConnection; }; -#endif /** * Class to store sorting order of favorites landmarks in a local file. EXT-3985. diff --git a/indra/newview/skins/default/textures/navbar/Arrow_Left_Off.png b/indra/newview/skins/default/textures/navbar/Arrow_Left_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..19569501fed8e12b9887a72978d98e5d7729e66f GIT binary patch literal 382 zcmV-^0fGLBP)>Yo z>%n7y=gO5Um%udt{{4GBkk%u{08qI2p=n+Vq*c*fjLiT(K|#Uj&6_tbhiU%v=g$ft zt%c3Y7zS8dTZbJva%2rm^N$}tCIe|nTw#V`05Fg$k!;>;Vq%g6)Wc7-0U&<@H7*1h z@bBNh{f7=6T5V)xR0z~3K$HPc1%iM7{%wW1T~8#0m`gc4R{w z92^>eQffq}10bIZh~Z)K_U+r9b#--xq$DJmK{+r(zJLE-OR@n_LqIM8MJYeJ0gRMp cXMg|$02GbV0X^cc@c;k-07*qoM6N<$g8Z|b7XSbN literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Arrow_Right_Off.png b/indra/newview/skins/default/textures/navbar/Arrow_Right_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..3648c42656132bd26ece55cbaa8c7dc1ff11336e GIT binary patch literal 380 zcmV-?0fYXDP)vq{LC^^x(~$Agr%&5~^nMUtv0}v%pprl! zX2+!m!vG+*`19w_I+!6qm#mPMmX1UAE?xtm3KV|*`ZX73$kC%m*YNT2MFXXHh%x}G zNCMfABS(&`QBzYZ1WHK~WdPI=v2WkLfx=`T$dCsQ9&AlYN=hKw03Z-FFfhpa{rmSm zm`gr=`cy)!0Wu~gCRG7_S?5_cjD4a(16dMKi45?P9v0hv86;YAnpX>IAW4NBc<6H aAiw}&IL}9QF_Y#10000Dj literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png b/indra/newview/skins/default/textures/navbar/BuyArrow_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..0b3f252ccf61f02f9f42bb639233f4e2da074a21 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`JjK-FhRhmeNVVs!uQ)BpXKOJ3v!*yy6Fa!=ASru dna=tCkJ;jtbk-ElZUXsPVJ83p literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png b/indra/newview/skins/default/textures/navbar/BuyArrow_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..5c4c150bed9a2c4d04e552f18d7dfd6070b5c9d7 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`JjbP0l+XkKsrO|# literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Link_Over.png b/indra/newview/skins/default/textures/navbar/Favorite_Link_Over.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f126f9692110c2f8ecb9f6c80e85c05d947e65 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^6+q0-!3HGtow-*7DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MTwp+jv*Dd-dx_udBA|jCD4^+y5^q$dQm5rm{>g7a_pmh z%$?U0SFdt&v5DIMID)QPUsn;x1-t;7nke!Jr1BBod04?B*QY mcKLw!?;WkNxx4BZ*%;!zxiST&3(o{v#^CAd=d#Wzp$PyfZbe=I literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png new file mode 100644 index 0000000000000000000000000000000000000000..e27dbe2cadc5f32d71829fa49a2d9fe3addda558 GIT binary patch literal 704 zcmV;x0zdtUP)qKphj$a;kg^12MDR0!Gt^dmi5r;(>p0Ah6XwlZYW;A^F z2BongULr|3VJ%W=1f}F;97J~pM~;8yu>ZW_yb0M?k%-~AQFfU)1PkM!?t1P zPLJi?{h5;;U1@0gRR}jKZ<9f2o1>q17GKMgY zKq>_x*ARFVY7m28_I;sMULrm$&OG}3+Z^?d9ZPD7*D#h-8Zp~B)W?C4ZQr1w_T`%- zloqJN=Lo0s>x&=6UvtzV0iF=fW{v-v2^vu0)?;hS+rHIVecRu^v9wY~jVoGXfKnO* z1xiFMv~`O&eXHAbjs`|^ZiahD3Bo}zfk(9_G>WB?MO$0m_O0$uBfh<8Dv^LtP0&n7 zceA+R6Gq*_w%-(_tJl2HV zCxl!Po0T~ecE8J6#>lHX8l`iGT@lMZ^J1Pje9BNu{=34jEb5tDcERwgfclcv8GWg` myt;KNvRC&Jg*{q71Q-CgcuJkPE4*d^0000M2C(UToWkhA0UE@{U6Ni(9O+)MMseiMZvWwxYR{Z5Ybi}zmZ>{hVxt+ z`0(hvm)GmNqfQh>nNd8B@B6m(8LZ$E&!&Pf41c2g&llwpC|Vy|qbyeOsF<}i8n>)1 zU=tgd!#VD4J8~4qQi__-ykgN%;|4+CB#q)@8{jL&!w#MlJwwfaVMj@$c#sv`pr^)> zPN}Y)*Y!DB>#4rNj`B&PF4{QLV9S_9H8qB+@@3V<^=)?49Uk@r_Hl&+EMpoULyacz zqA%UWDf*`4@9Si0xJ4BJNkafEF&@re_x;~3Yfd;4og@pfm?z?z!Gvv}7XYAWAQ m-LIeLjOzc$&5Y>z7GMBhYGGMN>e*ia0000x<4(xcnmOJ?H z$N&4^-{=25bb=sACGj|^gH_x580K(=XH!A2eex6Cf4(S#4Mpo?Yvf@bkBXkH(V%5* z3d>l+1TJuI+mWL<5R=nm6ibGh9>WfzM&TffxItHq z1D#S;JFn_CjB;!YW#tR13+tQgsM9~}2khb+dzi&2KKdFB z;YDA%g){i3oIzVBb*b1^K5M$1 zuHk})FYTa#73?cElrNbsay&7DX&hl4b$sF!i#SG0b#H&|DBSKiYFJQ{a2D^nLv`hA ns{8fxoTUDb+*Cr(w*UhGBDP^!bgFFl00000NkvXXu0mjfL)^s( literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..6670667022ad09a9b0f188733d5c633a358610e0 GIT binary patch literal 616 zcmV-u0+;=XP)AJ2q8V!S%{!EQBnT!mu-0%0L z@dSpjk82$U0s*B~tLYw(=aVE!N8=cW!(sY-J|mGx7*oZLL?Rb%w|f%=0)(R7Zs!Yy z!qzmgrDQVs7GK&%M<3C}OPkF$x~`%q0z?#CAVwmAD_TP^P@|!vG-`gPQmL}d>-FCF z{r>h~FnHbT^;S^)0&7%E62t|bfWQ+F5S~|Nhj$=4!#+-@)4w0YE*6WI0PZ=R&d<=R zs%hE~9SUxeS!c$XCysd5{WrBzsnmh_hIYT=OV{Xb)QPp}GtNA5_xQ=BzI-sN&F)a&&-5adyK zL`$D>=81diWiR3?ubRzfA6guMWEY}-!8uN!apsA8Ok}qXp-@PHpsOf61;GypdtR+p zEiIbCVDJRfx`JNshyz}$R4V$zPh@WYNAn{3C%^y_NKgs7SxdwK0000|6H_V+Po~-c6^VJeIEGZ*O8WEv|9+9f8WOC{0t_q?3_{t=k_RL@X9HC* Nc)I$ztaD0e0sxH?APoQj literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Flag.png b/indra/newview/skins/default/textures/navbar/Flag.png new file mode 100644 index 0000000000000000000000000000000000000000..df53c8922480451b49e14f87dfd7d42aa7d502b2 GIT binary patch literal 338 zcmV-Y0j>UtP)1C;;^GN-7h zsE(15F%pPR1G%q(_$E~94iJ9|# z;@`i2%s`qL-+aVr(4Rklzy|&N`IE9R0(lK&(D(1(iP0;B%wa^2{)B{tzi;2ZB_=js zY~H+C5@+=Pf&d1P_Xyy>ZfgHSx=I+xRe=htLz4n17A}C2!v6jH zZ{iFiXn=!~fG|+uJ|Ml1tiXoF9FUTrDAp)3hzXn5fLNMhgFvYph$;6PFxIFOMnHou k1F2k64PvBL!3Gdu08o&WCTrZK6#xJL07*qoM6N<$f@IT*PXGV_ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Help_Press.png b/indra/newview/skins/default/textures/navbar/Help_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..ed3695f9d5c69844b0b125ae77fa1cb30352dbd3 GIT binary patch literal 384 zcmV-`0e}99P)h2R1Bg!m@dI=VnXnk@P*70dasU2(0gz%4UcY|5hJ%Ac0#Hr?T`?oFi9i={G&D3+ z)YsR;gdRX$0d`49NXVl#Yu3y|F#%=^2)nqr$N}jFD7Jv9dGh2*El6zNzI|oL>OmOA z3%hsk{sp!50njxkVBzul^=oDjLseDv8-|CGO~V2_fZ@@A0fhdEP)sDJ~VPST3%^)Bl zArTFv*kF8Q16Xx*bP^XVSl}ooCdQ7-$v|)Uii(QH0GS*pUJwxxNjQ4+Xpp+PIxnG^ zJ9qBfdw+lb9giPBo&`7H*|TS}rKF@(2xx+Dqi1)%2LK2-w+Wkgw-stRl9P&X+BN;E3zXY70%QoA}$9t z;cXwb6gZ)2DwdaJq@wGtx_!2j{R6k$7kVx>{?~=ADQo%Kx(2J&1>bca{QgpSJevs3 zVJIvhQ0dKW;>hrQ!RahG+SlKAz|6qwl3Ya@scc4dB#P{L4LnIm@ zzeiHKX=X6LlwJb0KP9EY$wbm;wMrWRPN^G^WjPFm0<*#C40Q~cHUUNvVF%{i zKi;B(A9Oeze%(06_}v-fucuz=8++)Q8NV4ppR3T%{|2hbK|BJTgl_-<002ovPDHLk FV1ndQXK(-j literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Info_Off.png b/indra/newview/skins/default/textures/navbar/Info_Off.png new file mode 100644 index 0000000000000000000000000000000000000000..64722255a33f4cb596a2b9d623ad923a7c63069e GIT binary patch literal 608 zcmV-m0-ybfP)HDJ_yzu`^AIXyX;ZE5z!qyFLU`3E`@g$sb?}g9t)WcmcsJRC`r&uh?E87PSfIYyl?@XWpRDe5ouy?s!I_EHO2ILou#pZlI z7y4{}Qqwdd@9}u9{C@uh?z)Nq!A|nm)oOJzo6UsDKA%qv!w@7$r_&Mm1hE^_>GacN zGTB1>=U_1SLyyPfbbdjlk8r32RFG&iDuqHp5{ZN&7!HR51)}RZ3+|whUM`m_8mjFB z`O#>k{jMBZiWOVkmPhZoOSjNfk}b}DkmKk|3iR*KWO+=!1PQ4Zook}9DWJp+3mA| zMOpV8;vI0sox2B=&1Tgc2%cXL5CzNCYW2};Ka2~g*upxG?UyE{Qc2#i>%m~~4gY67 z5{Ymaf57^k&l8v1fS(gy0}J!IMDk^`+5E}(rn5gfF~HxoTCEZah1wwc3+EE|oA^)g ue?oyz9;iG|pBO$y;4X_6|7;z1Nai%1gj{Qt@K zJytP?Imp1b`}WPuH{Y8#>nIco^1zOP6W|Ci?L7;)1**W!Zm_Xhtv2f*a1Nvvi^TyT z%jHsRe^k@7sIKcNhr@C0a=9+C_gxV%&`!=H_~mRillgou2$FC(EJ%=cyRC>o=$%fd z7vu5xaJ^o?^7(vs8wKY~hEq^QJRXk(gF#6qlS*2#Sd><)C5B-rKMI_JlOP*G8_&ipU=y` z3?yC@d~SgCh|oeCh9aR+`aVM=pQu}4 z02_pjt+QUQZ`ZrZ9uNo>SU{8nY|cJ=M1e(uTikDy9cLf@hXBexX?Rr8&3h71>IQ*8 zU>nHwuFuABFc^H~9NggJnsczZYa)?Ih-Fy{T<`h_6ns-El|CExU|d4QA!gx}y`bfC zIeEn1^?JRxc;D-$X|fr=!1x7ZI@V7?=wyfYV2DCj-EQ})R;zV6Z+avWQBKVG&vLn3 z_51zbFc-h!Tw(tJm?G&b$Uk5@Uso!X_xQQ`OpeFn%Rd4P0PMPtP++*HGynhq07*qo IM6N<$g8Wq&zyJUM literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Info_Press.png b/indra/newview/skins/default/textures/navbar/Info_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..169105829ecc1c148eb998663904c0c0eb25d026 GIT binary patch literal 605 zcmV-j0;2tiP)0Uq zi^XCts@3XI5-jtTA4O;E&TW%GgR-O1=zo4MU@y4?ApvLC@@f5k|M5R_o-&Tm0c@{) zZJOX%j0SZb65QfpYZV6x&l14@ojYit(>-N+=L?6!t^$JZBRiPR=ksqWolgHkQVaw( z6|gIj&*x<_nYc(K64LAS9%BS*D$Qo|hIhbEcn#+%#(0hMbmi6Sb$P}*M1Iz<&a00000NkvXXu0mjfCs+=s literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Lock.png b/indra/newview/skins/default/textures/navbar/Lock.png new file mode 100644 index 0000000000000000000000000000000000000000..cf569d6ad29c42622f8cd7f4ccbec90cc864b26f GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G7d%}YLn>}1{rUgjp4pT^SdkS7UOD9Wc*rX2i8Gr1W?bo` z@U4OCF3Y2r!fHMmY6za$_M6^ybf<16ejgCZ1nf{ z=RcFcCYEy3zW!g0g3-+z42B-M%3;lQ|Nr@xHMtnRxV}FAis6gr=jR{3s*oTdtDy8M w@d1NfGgF6;yMi-Q$Em*|`u!cO42*0HZ=C%92rs`L3iKO;r>mdKI;Vst0NkH$rvLx| literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/NavBar_BG.png b/indra/newview/skins/default/textures/navbar/NavBar_BG.png new file mode 100644 index 0000000000000000000000000000000000000000..38eea783e6ab496ddf602d4bf61e186a4ab2a303 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^8bEBr!3HEncK&z(q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6{UK*IEGZ*dUO3CZ-W63^8qo%(%zI{Ge2{NV;qlke%ABX z+bBPh>n-ki#>j#J{^)1AG!M?p#%<_zE4402`6zAP~ RVGp#B!PC{xWt~$(69D6jI)?xN literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/NavBar_BG_NoFav_Bevel.png b/indra/newview/skins/default/textures/navbar/NavBar_BG_NoFav_Bevel.png new file mode 100644 index 0000000000000000000000000000000000000000..a79d999932cef5ea2bed1fbe0f8162b192f2af5e GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^8bGYV!3HFM+f;}FDVB6cUq=Rpjs4tz5?O(Kwj^(N z7l!{JxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwMor%|&o5yn9OrVftiEBiO zbAE1aYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI8c$jr;B4q#NoH+7a*U1WjyK{7~n_#hm!Aa5<+|V?1TeZ?p4TXSOAS;@O1TaS?83{1OO{; BKFa_A literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.png b/indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.png new file mode 100644 index 0000000000000000000000000000000000000000..b692ed92daed6b149341e802ba126f41c6b29843 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^8bB}RK1;6V=_l?0g(OQ{BTAg}b8}PkN*J7rQWHy3QxwWG zOEMJPJ$(bh8~Mb6irhV2977@wzrAkA%V5BB6}tq)G-xCKe6>1&0O@KO)78&qol`;+ E0DB@lWdHyG literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/Row_Selection.png b/indra/newview/skins/default/textures/navbar/Row_Selection.png new file mode 100644 index 0000000000000000000000000000000000000000..fc4f0c07eff0fe695e5f582b974fbdc026ae78ca GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^%Yj&wgAGV3i~O4eq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6?J;LIEGZ*dUI&2&=)#QCxwGB-+2t{uaE_U3Y z`gdYy{w|3RG8NGW3J%Y`{`;-PF^kl8M%$WA&(9Q}oc89en#so1dfKNhhm ziOrWj%ir9k`uE1fs7vN8t{t!bMkN=he|%6Dza%StuCbN;q;ostAK%{0&Y;{L{eFG+ zsw3PDZ*IRm|Jol1P(5k-AG50UufDL|?${AJd0LI9>5_<#HIG)l zWeno~jq6{zMdJg9Le7jYV!fNbZ23}Sn%m&qHo4)z6-l3( z!cz>d4@d{guwR*VmhHpICYfK}sxmsEKK!$nC}Q!>*kacgLbeWd`@ Oz~JfX=d#Wzp$P!`o5utI literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/navbar/separator.png b/indra/newview/skins/default/textures/navbar/separator.png new file mode 100644 index 0000000000000000000000000000000000000000..c1d74e5a64434c954bc7d71229cc9fe4a9d99aa2 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^EI`b}0V1z1-1-6}knZT~$iT3%ujY5)WFTK5*(1o8 zfuWtBfuRS8{{l5NIxsNQRx&WW>}FuFdCI^bd8XK=wH&CHDaqU2h2ejD|C#+j9%q3^ zWHAE+w-5+3UbB}`2%3Eh-;xFgRl*w z+baVnb)W*(64!{5l*E!$tK_0oAjM#0U}&OiV5Vze5@KLrWoT|?Y^)7r7#MtJ2%3YU zAvZrIGp!Q0hNjq83P24~ARB`7(@M${i&7Z^5;OBk^!!{y6v~YCO!W*6489aC1gc{2 MboFyt=akR{0CnwH`2YX_ literal 0 HcmV?d00001 diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index d7c0ff419..24bd07eb6 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -40,6 +40,13 @@ with the same filename but different name + + + + + + +