Display an arrow overlay on item links.
This commit is contained in:
@@ -72,6 +72,7 @@ void LLBuildNewViewsScheduler::buildNewViews(LLInventoryPanel* panelp, LLInvento
|
||||
{
|
||||
LLFolderViewFolder* folderp = new LLFolderViewFolder(new_listener->getDisplayName(),
|
||||
new_listener->getIcon(),
|
||||
NULL,
|
||||
panelp->getRootFolder(),
|
||||
new_listener);
|
||||
|
||||
@@ -94,6 +95,7 @@ void LLBuildNewViewsScheduler::buildNewViews(LLInventoryPanel* panelp, LLInvento
|
||||
{
|
||||
itemp = new LLFolderViewItem(new_listener->getDisplayName(),
|
||||
new_listener->getIcon(),
|
||||
NULL,
|
||||
new_listener->getCreationDate(),
|
||||
panelp->getRootFolder(),
|
||||
new_listener);
|
||||
|
||||
@@ -196,13 +196,13 @@ void LLCloseAllFoldersFunctor::doItem(LLFolderViewItem* item)
|
||||
///----------------------------------------------------------------------------
|
||||
|
||||
// Default constructor
|
||||
LLFolderView::LLFolderView( const std::string& name, LLUIImagePtr root_folder_icon,
|
||||
LLFolderView::LLFolderView( const std::string& name, LLUIImagePtr root_folder_icon,
|
||||
const LLRect& rect, const LLUUID& source_id, LLPanel *parent_view, LLFolderViewEventListener* listener ) :
|
||||
#if LL_WINDOWS
|
||||
#pragma warning( push )
|
||||
#pragma warning( disable : 4355 ) // warning C4355: 'this' : used in base member initializer list
|
||||
#endif
|
||||
LLFolderViewFolder( name, root_folder_icon, this, listener ),
|
||||
LLFolderViewFolder( name, root_folder_icon, NULL, this, listener ),
|
||||
#if LL_WINDOWS
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
@@ -75,6 +75,7 @@ void LLFolderViewItem::cleanupClass()
|
||||
// Default constructor
|
||||
// NOTE: Optimize this, we call it a *lot* when opening a large inventory
|
||||
LLFolderViewItem::LLFolderViewItem( const std::string& name, LLUIImagePtr icon,
|
||||
LLUIImagePtr icon_overlay,
|
||||
S32 creation_date,
|
||||
LLFolderView* root,
|
||||
LLFolderViewEventListener* listener ) :
|
||||
@@ -100,6 +101,7 @@ LLFolderViewItem::LLFolderViewItem( const std::string& name, LLUIImagePtr icon,
|
||||
mRoot( root ),
|
||||
mCreationDate(creation_date),
|
||||
mIcon(icon),
|
||||
mIconOverlay(icon_overlay),
|
||||
mListener(listener)
|
||||
{
|
||||
sFolderViewItems.insert(this);
|
||||
@@ -917,12 +919,22 @@ void LLFolderViewItem::draw()
|
||||
mDragAndDropTarget = FALSE;
|
||||
}
|
||||
|
||||
const LLViewerInventoryItem *item = getInventoryItem();
|
||||
const BOOL highlight_link = mIconOverlay && item && item->getIsLinkType();
|
||||
//--------------------------------------------------------------------------------//
|
||||
// Draw open icon
|
||||
//
|
||||
const S32 icon_x = mIndentation + ARROW_SIZE + TEXT_PAD;
|
||||
if (mIcon)
|
||||
{
|
||||
mIcon->draw(icon_x, getRect().getHeight() - mIcon->getHeight() - TOP_PAD + 1);
|
||||
}
|
||||
|
||||
if (highlight_link)
|
||||
{
|
||||
mIconOverlay->draw(icon_x, getRect().getHeight() - mIcon->getHeight() - TOP_PAD + 1);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------//
|
||||
// Exit if no label to draw
|
||||
//
|
||||
@@ -1032,9 +1044,10 @@ void LLFolderViewItem::draw()
|
||||
|
||||
// Default constructor
|
||||
LLFolderViewFolder::LLFolderViewFolder( const std::string& name, LLUIImagePtr icon,
|
||||
LLUIImagePtr icon_link,
|
||||
LLFolderView* root,
|
||||
LLFolderViewEventListener* listener ):
|
||||
LLFolderViewItem( name, icon, 0, root, listener ), // 0 = no create time
|
||||
LLFolderViewItem( name, icon, icon_link, 0, root, listener ), // 0 = no create time
|
||||
mNumDescendantsSelected(0),
|
||||
mIsOpen(FALSE),
|
||||
mExpanderHighlighted(FALSE),
|
||||
|
||||
@@ -125,6 +125,7 @@ protected:
|
||||
std::string mLabelSuffix;
|
||||
LLUIImagePtr mIcon;
|
||||
std::string mStatusText;
|
||||
LLUIImagePtr mIconOverlay;
|
||||
BOOL mHasVisibleChildren;
|
||||
S32 mIndentation;
|
||||
BOOL mPassedFilter;
|
||||
@@ -166,7 +167,7 @@ public:
|
||||
void filterFromRoot( void );
|
||||
|
||||
// creation_date is in UTC seconds
|
||||
LLFolderViewItem( const std::string& name, LLUIImagePtr icon, S32 creation_date, LLFolderView* root, LLFolderViewEventListener* listener );
|
||||
LLFolderViewItem( const std::string& name, LLUIImagePtr icon, LLUIImagePtr icon_overlay, S32 creation_date, LLFolderView* root, LLFolderViewEventListener* listener );
|
||||
virtual ~LLFolderViewItem( void );
|
||||
|
||||
// addToFolder() returns TRUE if it succeeds. FALSE otherwise
|
||||
@@ -325,6 +326,7 @@ class LLFolderViewFolder : public LLFolderViewItem
|
||||
{
|
||||
protected:
|
||||
LLFolderViewFolder( const std::string& name, LLUIImagePtr icon,
|
||||
LLUIImagePtr icon_link,
|
||||
LLFolderView* root,
|
||||
LLFolderViewEventListener* listener );
|
||||
|
||||
|
||||
@@ -598,7 +598,14 @@ LLFolderView * LLInventoryPanel::createFolderView(LLInvFVBridge * bridge, bool u
|
||||
getRect().getWidth(),
|
||||
0);
|
||||
|
||||
LLFolderView* ret = new LLFolderView(getName(), NULL, folder_rect, LLUUID::null, this, bridge);
|
||||
LLFolderView* ret = new LLFolderView(
|
||||
|
||||
getName(),
|
||||
NULL,
|
||||
folder_rect,
|
||||
LLUUID::null,
|
||||
this,
|
||||
bridge);
|
||||
ret->setAllowMultiSelect(mAllowMultiSelect);
|
||||
return ret;
|
||||
}
|
||||
@@ -608,6 +615,7 @@ LLFolderViewFolder * LLInventoryPanel::createFolderViewFolder(LLInvFVBridge * br
|
||||
return new LLFolderViewFolder(
|
||||
bridge->getDisplayName(),
|
||||
bridge->getIcon(),
|
||||
LLUI::getUIImage("inv_link_overlay.tga"),
|
||||
mFolderRoot,
|
||||
bridge);
|
||||
}
|
||||
@@ -617,6 +625,7 @@ LLFolderViewItem * LLInventoryPanel::createFolderViewItem(LLInvFVBridge * bridge
|
||||
return new LLFolderViewItem(
|
||||
bridge->getDisplayName(),
|
||||
bridge->getIcon(),
|
||||
LLUI::getUIImage("inv_link_overlay.tga"),
|
||||
bridge->getCreationDate(),
|
||||
mFolderRoot,
|
||||
bridge);
|
||||
|
||||
@@ -1760,6 +1760,7 @@ void LLPanelObjectInventory::createFolderViews(LLInventoryObject* inventory_root
|
||||
LLFolderViewFolder* new_folder = NULL;
|
||||
new_folder = new LLFolderViewFolder(inventory_root->getName(),
|
||||
bridge->getIcon(),
|
||||
NULL,
|
||||
mFolders,
|
||||
bridge);
|
||||
new_folder->addToFolder(mFolders, mFolders);
|
||||
@@ -1797,6 +1798,7 @@ void LLPanelObjectInventory::createViewsForCategory(LLInventoryObject::object_li
|
||||
{
|
||||
view = new LLFolderViewFolder(obj->getName(),
|
||||
bridge->getIcon(),
|
||||
NULL,
|
||||
mFolders,
|
||||
bridge);
|
||||
child_categories.put(new obj_folder_pair(obj,
|
||||
@@ -1806,6 +1808,7 @@ void LLPanelObjectInventory::createViewsForCategory(LLInventoryObject::object_li
|
||||
{
|
||||
view = new LLFolderViewItem(obj->getName(),
|
||||
bridge->getIcon(),
|
||||
NULL,
|
||||
bridge->getCreationDate(),
|
||||
mFolders,
|
||||
bridge);
|
||||
|
||||
BIN
indra/newview/skins/default/textures/inv_link_overlay.tga
Normal file
BIN
indra/newview/skins/default/textures/inv_link_overlay.tga
Normal file
Binary file not shown.
Reference in New Issue
Block a user