Refactoring, pull FS structs out of LL files
parent
365aeed15c
commit
a06a012abc
|
|
@ -141,6 +141,7 @@ set(llui_HEADER_FILES
|
|||
CMakeLists.txt
|
||||
|
||||
fsregistrarutils.h
|
||||
fssearchablecontrol.h
|
||||
|
||||
llaccordionctrl.h
|
||||
llaccordionctrltab.h
|
||||
|
|
|
|||
|
|
@ -0,0 +1,70 @@
|
|||
#ifndef FS_SEARCHABLE_CONTROL_H
|
||||
#define FS_SEARCHABLE_CONTROL_H
|
||||
|
||||
/**
|
||||
* $LicenseInfo:firstyear=2014&license=fsviewerlgpl$
|
||||
* Phoenix Firestorm Viewer Source Code
|
||||
* Copyright (C) 2014, Nicky Dasmijn
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA
|
||||
* http://www.firestormviewer.org
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "lluicolortable.h"
|
||||
#include "lluicolor.h"
|
||||
|
||||
namespace nd
|
||||
{
|
||||
namespace ui
|
||||
{
|
||||
class SearchableControl
|
||||
{
|
||||
mutable bool mIsHighlighed;
|
||||
public:
|
||||
SearchableControl()
|
||||
: mIsHighlighed( false )
|
||||
{ }
|
||||
virtual ~SearchableControl()
|
||||
{ }
|
||||
|
||||
LLColor4 getHighlightColor( ) const
|
||||
{
|
||||
static LLUIColor highlight_color = LLUIColorTable::instance().getColor("SearchableControlHighlightColor", LLColor4::red);
|
||||
return highlight_color.get();
|
||||
}
|
||||
|
||||
void setHighlighted( bool aVal ) const
|
||||
{
|
||||
mIsHighlighed = aVal;
|
||||
onSetHighlight( );
|
||||
}
|
||||
bool getHighlighted( ) const
|
||||
{ return mIsHighlighed; }
|
||||
|
||||
std::string getSearchText() const
|
||||
{ return _getSearchText(); }
|
||||
protected:
|
||||
virtual std::string _getSearchText() const = 0;
|
||||
virtual void onSetHighlight( ) const
|
||||
{ }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -38,49 +38,11 @@
|
|||
#include "llview.h"
|
||||
#include "llviewmodel.h" // *TODO move dependency to .cpp file
|
||||
|
||||
#include "fssearchablecontrol.h"
|
||||
|
||||
const BOOL TAKE_FOCUS_YES = TRUE;
|
||||
const BOOL TAKE_FOCUS_NO = FALSE;
|
||||
|
||||
// <FS:ND> To search in prefs. A control which can advertise a searchable text and can be highlighted for matching.
|
||||
namespace nd
|
||||
{
|
||||
namespace ui
|
||||
{
|
||||
class SearchableControl
|
||||
{
|
||||
mutable bool mIsHighlighed;
|
||||
public:
|
||||
SearchableControl()
|
||||
: mIsHighlighed( false )
|
||||
{ }
|
||||
virtual ~SearchableControl()
|
||||
{ }
|
||||
|
||||
LLColor4 getHighlightColor( ) const
|
||||
{
|
||||
static LLUIColor highlight_color = LLUIColorTable::instance().getColor("SearchableControlHighlightColor", LLColor4::red);
|
||||
return highlight_color.get();
|
||||
}
|
||||
|
||||
void setHighlighted( bool aVal ) const
|
||||
{
|
||||
mIsHighlighed = aVal;
|
||||
onSetHighlight( );
|
||||
}
|
||||
bool getHighlighted( ) const
|
||||
{ return mIsHighlighed; }
|
||||
|
||||
std::string getSearchText() const
|
||||
{ return _getSearchText(); }
|
||||
protected:
|
||||
virtual std::string _getSearchText() const = 0;
|
||||
virtual void onSetHighlight( ) const
|
||||
{ }
|
||||
};
|
||||
}
|
||||
}
|
||||
// </FS:ND>
|
||||
|
||||
class LLUICtrl
|
||||
: public LLView, public boost::signals2::trackable
|
||||
{
|
||||
|
|
|
|||
|
|
@ -195,6 +195,7 @@ set(viewer_SOURCE_FILES
|
|||
fsradarmenu.cpp
|
||||
fsscriptlibrary.cpp
|
||||
fsscrolllistctrl.cpp
|
||||
fssearchableui.cpp
|
||||
fsslurlcommand.cpp
|
||||
fswsassetblacklist.cpp
|
||||
groupchatlistener.cpp
|
||||
|
|
@ -907,6 +908,7 @@ set(viewer_HEADER_FILES
|
|||
fsradarmenu.h
|
||||
fsscriptlibrary.h
|
||||
fsscrolllistctrl.h
|
||||
fssearchableui.h
|
||||
fsslurl.h
|
||||
fsslurlcommand.h
|
||||
fswsassetblacklist.h
|
||||
|
|
|
|||
|
|
@ -0,0 +1,153 @@
|
|||
/**
|
||||
* $LicenseInfo:firstyear=2014&license=fsviewerlgpl$
|
||||
* Phoenix Firestorm Viewer Source Code
|
||||
* Copyright (C) 2014, Nicky Dasmijn
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA
|
||||
* http://www.firestormviewer.org
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
#include "fssearchableui.h"
|
||||
|
||||
#include "llview.h"
|
||||
#include "lltabcontainer.h"
|
||||
#include "llmenugl.h"
|
||||
|
||||
nd::prefs::SearchableItem::~SearchableItem()
|
||||
{}
|
||||
|
||||
void nd::prefs::SearchableItem::setNotHighlighted()
|
||||
{
|
||||
mCtrl->setHighlighted( false );
|
||||
}
|
||||
|
||||
bool nd::prefs::SearchableItem::hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
if( mCtrl->getHighlighted() )
|
||||
return true;
|
||||
|
||||
LLView const *pView = dynamic_cast< LLView const* >( mCtrl );
|
||||
if( pView && !pView->getVisible() )
|
||||
return false;
|
||||
|
||||
if( aFilter.empty() )
|
||||
{
|
||||
mCtrl->setHighlighted( false );
|
||||
return true;
|
||||
}
|
||||
|
||||
if( mLabel.find( aFilter ) != LLWString::npos )
|
||||
{
|
||||
mCtrl->setHighlighted( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
nd::prefs::PanelData::~PanelData()
|
||||
{}
|
||||
|
||||
bool nd::prefs::PanelData::hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
(*itr)->setNotHighlighted( );
|
||||
|
||||
bool bVisible(false);
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
bVisible |= (*itr)->hightlightAndHide( aFilter );
|
||||
|
||||
for( tPanelDataList::iterator itr = mChildPanel.begin(); itr != mChildPanel.end(); ++itr )
|
||||
bVisible |= (*itr)->hightlightAndHide( aFilter );
|
||||
|
||||
return bVisible;
|
||||
}
|
||||
|
||||
bool nd::prefs::TabContainerData::hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
(*itr)->setNotHighlighted( );
|
||||
|
||||
bool bVisible(false);
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
bVisible |= (*itr)->hightlightAndHide( aFilter );
|
||||
|
||||
for( tPanelDataList::iterator itr = mChildPanel.begin(); itr != mChildPanel.end(); ++itr )
|
||||
{
|
||||
bool bPanelVisible = (*itr)->hightlightAndHide( aFilter );
|
||||
if( (*itr)->mPanel )
|
||||
mTabContainer->setTabVisibility( (*itr)->mPanel, bPanelVisible );
|
||||
bVisible |= bPanelVisible;
|
||||
}
|
||||
|
||||
return bVisible;
|
||||
}
|
||||
|
||||
nd::statusbar::SearchableItem::SearchableItem()
|
||||
: mMenu(0)
|
||||
, mCtrl(0)
|
||||
, mWasHiddenBySearch( false )
|
||||
{ }
|
||||
|
||||
void nd::statusbar::SearchableItem::setNotHighlighted( )
|
||||
{
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
(*itr)->setNotHighlighted( );
|
||||
|
||||
if( mCtrl )
|
||||
{
|
||||
mCtrl->setHighlighted( false );
|
||||
|
||||
if( mWasHiddenBySearch )
|
||||
mMenu->setVisible( TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
bool nd::statusbar::SearchableItem::hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
if( mMenu && !mMenu->getVisible() && !mWasHiddenBySearch )
|
||||
return false;
|
||||
|
||||
setNotHighlighted( );
|
||||
|
||||
bool bVisible(false);
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
bVisible |= (*itr)->hightlightAndHide( aFilter );
|
||||
|
||||
if( aFilter.empty() )
|
||||
{
|
||||
if( mCtrl )
|
||||
mCtrl->setHighlighted( false );
|
||||
return true;
|
||||
}
|
||||
|
||||
if( mLabel.find( aFilter ) != LLWString::npos )
|
||||
{
|
||||
if( mCtrl )
|
||||
mCtrl->setHighlighted( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
if( mCtrl && !bVisible )
|
||||
{
|
||||
mWasHiddenBySearch = true;
|
||||
mMenu->setVisible(FALSE);
|
||||
}
|
||||
return bVisible;
|
||||
}
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
#ifndef FS_SEARCHABLE_UI_H
|
||||
#define FS_SEARCHABLE_UI_H
|
||||
|
||||
/**
|
||||
* $LicenseInfo:firstyear=2014&license=fsviewerlgpl$
|
||||
* Phoenix Firestorm Viewer Source Code
|
||||
* Copyright (C) 2014, Nicky Dasmijn
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA
|
||||
* http://www.firestormviewer.org
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
class LLMenuItemGL;
|
||||
class LLView;
|
||||
class LLPanel;
|
||||
class LLTabContainer;
|
||||
|
||||
#include "fssearchablecontrol.h"
|
||||
|
||||
namespace nd
|
||||
{
|
||||
namespace prefs
|
||||
{
|
||||
struct SearchableItem;
|
||||
struct PanelData;
|
||||
struct TabContainerData;
|
||||
|
||||
typedef boost::shared_ptr< SearchableItem > SearchableItemPtr;
|
||||
typedef boost::shared_ptr< PanelData > PanelDataPtr;
|
||||
typedef boost::shared_ptr< TabContainerData > TabContainerDataPtr;
|
||||
|
||||
typedef std::vector< TabContainerData > tTabContainerDataList;
|
||||
typedef std::vector< SearchableItemPtr > tSearchableItemList;
|
||||
typedef std::vector< PanelDataPtr > tPanelDataList;
|
||||
|
||||
struct SearchableItem
|
||||
{
|
||||
LLWString mLabel;
|
||||
LLView const *mView;
|
||||
nd::ui::SearchableControl const *mCtrl;
|
||||
|
||||
std::vector< boost::shared_ptr< SearchableItem > > mChildren;
|
||||
|
||||
virtual ~SearchableItem();
|
||||
|
||||
void setNotHighlighted();
|
||||
virtual bool hightlightAndHide( LLWString const &aFilter );
|
||||
};
|
||||
|
||||
struct PanelData
|
||||
{
|
||||
LLPanel const *mPanel;
|
||||
std::string mLabel;
|
||||
|
||||
std::vector< boost::shared_ptr< SearchableItem > > mChildren;
|
||||
std::vector< boost::shared_ptr< PanelData > > mChildPanel;
|
||||
|
||||
virtual ~PanelData();
|
||||
|
||||
virtual bool hightlightAndHide( LLWString const &aFilter );
|
||||
};
|
||||
|
||||
struct TabContainerData: public PanelData
|
||||
{
|
||||
LLTabContainer *mTabContainer;
|
||||
virtual bool hightlightAndHide( LLWString const &aFilter );
|
||||
};
|
||||
|
||||
struct SearchData
|
||||
{
|
||||
TabContainerDataPtr mRootTab;
|
||||
LLWString mLastFilter;
|
||||
};
|
||||
}
|
||||
namespace statusbar
|
||||
{
|
||||
struct SearchableItem;
|
||||
|
||||
typedef boost::shared_ptr< SearchableItem > SearchableItemPtr;
|
||||
|
||||
typedef std::vector< SearchableItemPtr > tSearchableItemList;
|
||||
|
||||
struct SearchableItem
|
||||
{
|
||||
LLWString mLabel;
|
||||
LLMenuItemGL *mMenu;
|
||||
tSearchableItemList mChildren;
|
||||
nd::ui::SearchableControl const *mCtrl;
|
||||
bool mWasHiddenBySearch;
|
||||
|
||||
SearchableItem();
|
||||
|
||||
void setNotHighlighted( );
|
||||
bool hightlightAndHide( LLWString const &aFilter );
|
||||
};
|
||||
|
||||
struct SearchData
|
||||
{
|
||||
SearchableItemPtr mRootMenu;
|
||||
LLWString mLastFilter;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -137,127 +137,7 @@
|
|||
#include "NACLantispam.h"
|
||||
#include "../llcrashlogger/llcrashlogger.h"
|
||||
|
||||
// <FS:ND> To search in prefs: Data that is collected from all floater
|
||||
namespace nd
|
||||
{
|
||||
namespace prefs
|
||||
{
|
||||
struct SearchableItem;
|
||||
struct PanelData;
|
||||
struct TabContainerData;
|
||||
|
||||
typedef boost::shared_ptr< SearchableItem > SearchableItemPtr;
|
||||
typedef boost::shared_ptr< PanelData > PanelDataPtr;
|
||||
typedef boost::shared_ptr< TabContainerData > TabContainerDataPtr;
|
||||
|
||||
typedef std::vector< TabContainerData > tTabContainerDataList;
|
||||
typedef std::vector< SearchableItemPtr > tSearchableItemList;
|
||||
typedef std::vector< PanelDataPtr > tPanelDataList;
|
||||
|
||||
struct SearchableItem
|
||||
{
|
||||
LLWString mLabel;
|
||||
LLView const *mView;
|
||||
nd::ui::SearchableControl const *mCtrl;
|
||||
|
||||
std::vector< boost::shared_ptr< SearchableItem > > mChildren;
|
||||
|
||||
virtual ~SearchableItem()
|
||||
{}
|
||||
|
||||
void setNotHighlighted()
|
||||
{
|
||||
mCtrl->setHighlighted( false );
|
||||
}
|
||||
|
||||
virtual bool hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
if( mCtrl->getHighlighted() )
|
||||
return true;
|
||||
|
||||
LLView const *pView = dynamic_cast< LLView const* >( mCtrl );
|
||||
if( pView && !pView->getVisible() )
|
||||
return false;
|
||||
|
||||
if( aFilter.empty() )
|
||||
{
|
||||
mCtrl->setHighlighted( false );
|
||||
return true;
|
||||
}
|
||||
|
||||
if( mLabel.find( aFilter ) != LLWString::npos )
|
||||
{
|
||||
mCtrl->setHighlighted( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
struct PanelData
|
||||
{
|
||||
LLPanel const *mPanel;
|
||||
std::string mLabel;
|
||||
|
||||
std::vector< boost::shared_ptr< SearchableItem > > mChildren;
|
||||
std::vector< boost::shared_ptr< PanelData > > mChildPanel;
|
||||
|
||||
virtual ~PanelData()
|
||||
{}
|
||||
|
||||
virtual bool hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
(*itr)->setNotHighlighted( );
|
||||
|
||||
bool bVisible(false);
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
bVisible |= (*itr)->hightlightAndHide( aFilter );
|
||||
|
||||
for( tPanelDataList::iterator itr = mChildPanel.begin(); itr != mChildPanel.end(); ++itr )
|
||||
bVisible |= (*itr)->hightlightAndHide( aFilter );
|
||||
|
||||
return bVisible;
|
||||
}
|
||||
};
|
||||
|
||||
struct TabContainerData: public PanelData
|
||||
{
|
||||
LLTabContainer *mTabContainer;
|
||||
virtual bool hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
(*itr)->setNotHighlighted( );
|
||||
|
||||
bool bVisible(false);
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
bVisible |= (*itr)->hightlightAndHide( aFilter );
|
||||
|
||||
for( tPanelDataList::iterator itr = mChildPanel.begin(); itr != mChildPanel.end(); ++itr )
|
||||
{
|
||||
bool bPanelVisible = (*itr)->hightlightAndHide( aFilter );
|
||||
if( (*itr)->mPanel )
|
||||
mTabContainer->setTabVisibility( (*itr)->mPanel, bPanelVisible );
|
||||
bVisible |= bPanelVisible;
|
||||
}
|
||||
|
||||
return bVisible;
|
||||
}
|
||||
};
|
||||
|
||||
struct SearchData
|
||||
{
|
||||
~SearchData()
|
||||
{
|
||||
}
|
||||
|
||||
TabContainerDataPtr mRootTab;
|
||||
LLWString mLastFilter;
|
||||
};
|
||||
}
|
||||
}
|
||||
// </FS:ND>
|
||||
#include "fssearchableui.h"
|
||||
|
||||
const F32 MAX_USER_FAR_CLIP = 512.f;
|
||||
const F32 MIN_USER_FAR_CLIP = 64.f;
|
||||
|
|
|
|||
|
|
@ -107,90 +107,13 @@
|
|||
#include "llviewernetwork.h"
|
||||
#endif // OPENSIM
|
||||
// </FS:CR>
|
||||
|
||||
#include "fssearchableui.h"
|
||||
|
||||
//
|
||||
// Globals
|
||||
//
|
||||
|
||||
namespace nd
|
||||
{
|
||||
namespace statusbar
|
||||
{
|
||||
struct SearchableItem;
|
||||
|
||||
typedef boost::shared_ptr< SearchableItem > SearchableItemPtr;
|
||||
|
||||
typedef std::vector< SearchableItemPtr > tSearchableItemList;
|
||||
|
||||
struct SearchableItem
|
||||
{
|
||||
LLWString mLabel;
|
||||
LLMenuItemGL *mMenu;
|
||||
tSearchableItemList mChildren;
|
||||
nd::ui::SearchableControl const *mCtrl;
|
||||
bool mWasHiddenBySearch;
|
||||
|
||||
SearchableItem()
|
||||
: mMenu(0)
|
||||
, mCtrl(0)
|
||||
, mWasHiddenBySearch( false )
|
||||
{ }
|
||||
|
||||
void setNotHighlighted( )
|
||||
{
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
(*itr)->setNotHighlighted( );
|
||||
|
||||
if( mCtrl )
|
||||
{
|
||||
mCtrl->setHighlighted( false );
|
||||
|
||||
if( mWasHiddenBySearch )
|
||||
mMenu->setVisible( TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
bool hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
if( mMenu && !mMenu->getVisible() && !mWasHiddenBySearch )
|
||||
return false;
|
||||
|
||||
setNotHighlighted( );
|
||||
|
||||
bool bVisible(false);
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
bVisible |= (*itr)->hightlightAndHide( aFilter );
|
||||
|
||||
if( aFilter.empty() )
|
||||
{
|
||||
if( mCtrl )
|
||||
mCtrl->setHighlighted( false );
|
||||
return true;
|
||||
}
|
||||
|
||||
if( mLabel.find( aFilter ) != LLWString::npos )
|
||||
{
|
||||
if( mCtrl )
|
||||
mCtrl->setHighlighted( true );
|
||||
return true;
|
||||
}
|
||||
|
||||
if( mCtrl && !bVisible )
|
||||
{
|
||||
mWasHiddenBySearch = true;
|
||||
mMenu->setVisible(FALSE);
|
||||
}
|
||||
return bVisible;
|
||||
}
|
||||
};
|
||||
|
||||
struct SearchData
|
||||
{
|
||||
SearchableItemPtr mRootMenu;
|
||||
LLWString mLastFilter;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
LLStatusBar *gStatusBar = NULL;
|
||||
S32 STATUS_BAR_HEIGHT = 26;
|
||||
extern S32 MENU_BAR_HEIGHT;
|
||||
|
|
|
|||
Loading…
Reference in New Issue