[Floater Flexibility] Part one: Refactor all floaters to work with the dictionary in one way or another.

This commit is contained in:
Inusaito Sayori
2014-03-25 00:23:56 -04:00
parent ee610ceb3f
commit f37d83abe1
22 changed files with 219 additions and 512 deletions

View File

@@ -42,7 +42,7 @@ class LLViewerJointMesh;
class LLPreviewAnimation : public LLViewerDynamicTexture
{
protected:
public:
virtual ~LLPreviewAnimation();
public:

View File

@@ -253,6 +253,8 @@ void LLFloaterCustomize::editWearable(LLViewerWearable* wearable, bool disable_c
//static
void LLFloaterCustomize::show()
{
if (!gAgentWearables.areWearablesLoaded()) return;
if(!LLFloaterCustomize::instanceExists())
{
const BOOL disable_camera_switch = LLWearableType::getDisableCameraSwitch(LLWearableType::WT_SHAPE);

View File

@@ -59,6 +59,7 @@
#include "llwlparammanager.h"
#include "llfloaterwindlight.h"
#include "rlvactions.h"
LLFloaterDayCycle* LLFloaterDayCycle::sDayCycle = NULL;
std::map<std::string, LLWLSkyKey> LLFloaterDayCycle::sSliderToKey;
@@ -277,6 +278,7 @@ bool LLFloaterDayCycle::isOpen()
void LLFloaterDayCycle::show()
{
if (RlvActions::hasBehaviour(RLV_BHVR_SETENV)) return;
LLFloaterDayCycle* dayCycle = instance();
dayCycle->syncMenu();
syncSliderTrack();

View File

@@ -50,6 +50,7 @@
#include "llviewerwindow.h"
#include "pipeline.h"
#include "rlvactions.h"
#include <sstream>
@@ -175,13 +176,12 @@ LLFloaterEnvSettings* LLFloaterEnvSettings::instance()
if (!sEnvSettings)
{
sEnvSettings = new LLFloaterEnvSettings();
sEnvSettings->open();
sEnvSettings->setFocus(TRUE);
}
return sEnvSettings;
}
void LLFloaterEnvSettings::show()
{
if (RlvActions::hasBehaviour(RLV_BHVR_SETENV)) return;
LLFloaterEnvSettings* envSettings = instance();
envSettings->syncMenu();
@@ -189,7 +189,10 @@ void LLFloaterEnvSettings::show()
//LLUICtrlFactory::getInstance()->buildFloater(envSettings, "floater_env_settings.xml");
//envSettings->initCallbacks();
envSettings->open();
if (envSettings->getVisible())
envSettings->close();
else
envSettings->open();
}
bool LLFloaterEnvSettings::isOpen()

View File

@@ -4,6 +4,7 @@
#include "llfloaterexploreanimations.h"
#include "lluictrlfactory.h"
#include "llscrolllistctrl.h"
#include "llagentdata.h"
#include "llfloaterbvhpreview.h"
#include "llvoavatar.h"
#include "llviewercamera.h"
@@ -14,42 +15,51 @@
#include "llselectmgr.h"
// </stuff for jelly roll>
std::map< LLUUID, std::list< LLAnimHistoryItem* > > LLFloaterExploreAnimations::animHistory;
LLFloaterExploreAnimations* LLFloaterExploreAnimations::sInstance;
std::map< LLUUID, std::list< LLAnimHistoryItem > > LLFloaterExploreAnimations::animHistory;
LLAnimHistoryItem::LLAnimHistoryItem(LLUUID assetid)
LLAnimHistoryItem::LLAnimHistoryItem(LLUUID assetid, bool playing)
: mAssetID(assetid)
, mPlaying(playing)
, mTimeStarted(LLTimer::getElapsedSeconds())
, mTimeStopped(playing ? 0.f : mTimeStarted)
{}
bool LLAnimHistoryItem::setPlaying(bool playing)
{
mAssetID = assetid;
if (mPlaying == playing) return false;
mPlaying = playing;
playing ? mTimeStarted : mTimeStopped = LLTimer::getElapsedSeconds();
return true;
}
LLFloaterExploreAnimations::LLFloaterExploreAnimations(LLUUID avatarid)
: LLFloater()
void LLFloaterExploreAnimations::show()
{
LLViewerObject* avatar = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
const LLUUID& id(avatar ? avatar->getID() : gAgentID);
if (LLFloaterExploreAnimations* f = getInstance(id))
if (avatar) f->open();
else f->close();
else
(new LLFloaterExploreAnimations(id))->open();
}
LLFloaterExploreAnimations::LLFloaterExploreAnimations(const LLUUID avatarid)
: LLInstanceTracker(avatarid)
, mAnimPreview(256, 256)
{
mLastMouseX = 0;
mLastMouseY = 0;
LLFloaterExploreAnimations::sInstance = this;
mAvatarID = avatarid;
mAnimPreview = new LLPreviewAnimation(256, 256);
mAnimPreview->setZoom(2.0f);
mAnimPreview.setZoom(2.0f);
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_explore_animations.xml");
}
void LLFloaterExploreAnimations::close(bool app_quitting)
{
LLFloater::close(app_quitting);
}
LLFloaterExploreAnimations::~LLFloaterExploreAnimations()
{
mAnimPreview = NULL;
LLFloaterExploreAnimations::sInstance = NULL;
}
BOOL LLFloaterExploreAnimations::postBuild(void)
BOOL LLFloaterExploreAnimations::postBuild()
{
childSetCommitCallback("anim_list", onSelectAnimation, this);
getChild<LLUICtrl>("anim_list")->setCommitCallback(boost::bind(&LLFloaterExploreAnimations::onSelectAnimation, this));
LLRect r = getRect();
mPreviewRect.set(r.getWidth() - 266, r.getHeight() - 25, r.getWidth() - 10, r.getHeight() - 256);
update();
@@ -59,29 +69,28 @@ BOOL LLFloaterExploreAnimations::postBuild(void)
void LLFloaterExploreAnimations::update()
{
LLScrollListCtrl* list = getChild<LLScrollListCtrl>("anim_list");
LLUUID selection = list->getSelectedValue().asUUID();
LLUUID selection = list->getCurrentID();
list->clearRows(); // do this differently probably
std::list<LLAnimHistoryItem*> history = animHistory[mAvatarID];
std::list<LLAnimHistoryItem*>::iterator iter = history.begin();
std::list<LLAnimHistoryItem*>::iterator end = history.end();
for( ; iter != end; ++iter)
std::list<LLAnimHistoryItem> history = animHistory[getKey()];
std::list<LLAnimHistoryItem>::iterator end = history.end();
for(std::list<LLAnimHistoryItem>::iterator iter = history.begin(); iter != end; ++iter)
{
LLAnimHistoryItem* item = (*iter);
LLAnimHistoryItem item = (*iter);
LLSD element;
element["id"] = item->mAssetID;
element["id"] = item.mAssetID;
LLSD& name_column = element["columns"][0];
name_column["column"] = "name";
name_column["value"] = item->mAssetID.asString();
name_column["value"] = item.mAssetID.asString();
LLSD& info_column = element["columns"][1];
info_column["column"] = "info";
if(item->mPlaying)
if(item.mPlaying)
info_column["value"] = "Playing";
else
info_column["value"] = llformat("%.1f min ago", (LLTimer::getElapsedSeconds() - item->mTimeStopped) / 60.f);
info_column["value"] = llformat("%.1f min ago", (LLTimer::getElapsedSeconds() - item.mTimeStopped) / 60.f);
list->addElement(element, ADD_BOTTOM);
}
@@ -98,7 +107,7 @@ void LLFloaterExploreAnimations::draw()
gGL.color3f(1.f, 1.f, 1.f);
gGL.getTexUnit(0)->bind(mAnimPreview);
gGL.getTexUnit(0)->bind(&mAnimPreview);
gGL.begin( LLRender::QUADS );
{
@@ -115,157 +124,82 @@ void LLFloaterExploreAnimations::draw()
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
//LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
//LLVOAvatar* avatarp = mAnimPreview.getDummyAvatar();
//if (!avatarp->areAnimationsPaused())
//{
// mAnimPreview->requestUpdate();
// mAnimPreview.requestUpdate();
//}
}
// static
void LLFloaterExploreAnimations::startAnim(LLUUID avatarid, LLUUID assetid)
void LLFloaterExploreAnimations::processAnim(LLUUID avatarid, LLUUID assetid, bool playing)
{
std::string asset_str = assetid.asString();
if(asset_str.find("17132261-c061") != std::string::npos) return; // dog1
else if(asset_str.find("fea558cb-8b9b") != std::string::npos) return; // dog2
else if(asset_str.find("50cb5750-0743") != std::string::npos) return; // dog3
else if(asset_str.find("-dead-") != std::string::npos) return; // emo
LLAnimHistoryItem* item = NULL;
std::list<LLAnimHistoryItem*> history = animHistory[avatarid];
std::list<LLAnimHistoryItem*>::iterator iter = history.begin();
std::list<LLAnimHistoryItem*>::iterator end = history.end();
for( ; iter != end; ++iter)
std::list<LLAnimHistoryItem>& history = animHistory[avatarid];
std::list<LLAnimHistoryItem>::iterator end = history.end();
for(std::list<LLAnimHistoryItem>::iterator iter = history.begin(); iter != end; ++iter)
{
if((*iter)->mAssetID == assetid)
{
item = (*iter);
break;
}
LLAnimHistoryItem& item = (*iter);
if (item.mAssetID != assetid) continue;
if (item.setPlaying(playing))
handleHistoryChange(avatarid);
return;
}
if(!item)
{
item = new LLAnimHistoryItem(assetid);
item->mAvatarID = avatarid;
item->mTimeStarted = LLTimer::getElapsedSeconds();
}
item->mPlaying = true;
history.push_back(item);
animHistory[avatarid] = history; // is this really necessary?
handleHistoryChange();
}
// Trim it
if (history.size() > 31)
history.resize(31);
// static
void LLFloaterExploreAnimations::stopAnim(LLUUID avatarid, LLUUID assetid)
{
std::string asset_str = assetid.asString();
if(asset_str.find("17132261-c061") != std::string::npos) return; // dog1
else if(asset_str.find("fea558cb-8b9b") != std::string::npos) return; // dog2
else if(asset_str.find("50cb5750-0743") != std::string::npos) return; // dog3
else if(asset_str.find("-dead-") != std::string::npos) return; // emo
LLAnimHistoryItem* item = NULL;
std::list<LLAnimHistoryItem*> history = animHistory[avatarid];
std::list<LLAnimHistoryItem*>::iterator iter = history.begin();
std::list<LLAnimHistoryItem*>::iterator end = history.end();
for( ; iter != end; ++iter)
{
if((*iter)->mAssetID == assetid)
{
item = (*iter);
break;
}
}
if(!item)
{
item = new LLAnimHistoryItem(assetid);
item->mAvatarID = avatarid;
item->mTimeStarted = LLTimer::getElapsedSeconds();
history.push_back(item);
}
item->mPlaying = false;
item->mTimeStopped = LLTimer::getElapsedSeconds();
handleHistoryChange();
history.push_back(LLAnimHistoryItem(assetid, playing));
handleHistoryChange(avatarid);
}
class LLAnimHistoryItemCompare
{
public:
bool operator() (LLAnimHistoryItem* first, LLAnimHistoryItem* second)
bool operator() (LLAnimHistoryItem first, LLAnimHistoryItem second)
{
if(first->mPlaying)
if (first.mPlaying)
{
if(second->mPlaying)
if (second.mPlaying)
{
return (first->mTimeStarted > second->mTimeStarted);
return (first.mTimeStarted > second.mTimeStarted);
}
else
{
return true;
}
}
else if(second->mPlaying)
else if (second.mPlaying)
{
return false;
}
else
{
return (first->mTimeStopped > second->mTimeStopped);
return (first.mTimeStopped > second.mTimeStopped);
}
}
};
// static
void LLFloaterExploreAnimations::handleHistoryChange()
void LLFloaterExploreAnimations::handleHistoryChange(LLUUID avatarid)
{
std::map< LLUUID, std::list< LLAnimHistoryItem* > >::iterator av_iter = animHistory.begin();
std::map< LLUUID, std::list< LLAnimHistoryItem* > >::iterator av_end = animHistory.end();
for( ; av_iter != av_end; ++av_iter)
{
std::list<LLAnimHistoryItem*> history = (*av_iter).second;
// Sort it
LLAnimHistoryItemCompare c;
history.sort(c);
// Remove dupes
history.unique();
// Trim it
if(history.size() > 32)
{
history.resize(32);
}
animHistory[(*av_iter).first] = history;
}
// Sort it
animHistory[avatarid].sort(LLAnimHistoryItemCompare());
// Update floater
if(LLFloaterExploreAnimations::sInstance)
LLFloaterExploreAnimations::sInstance->update();
if (LLFloaterExploreAnimations* f = getInstance(avatarid))
f->update();
}
// static
void LLFloaterExploreAnimations::onSelectAnimation(LLUICtrl* ctrl, void* user_data)
void LLFloaterExploreAnimations::onSelectAnimation()
{
LLFloaterExploreAnimations* floater = (LLFloaterExploreAnimations*)user_data;
LLPreviewAnimation* preview = (LLPreviewAnimation*)floater->mAnimPreview;
LLScrollListCtrl* list = floater->getChild<LLScrollListCtrl>("anim_list");
LLUUID selection = list->getSelectedValue().asUUID();
preview->getDummyAvatar()->deactivateAllMotions();
preview->getDummyAvatar()->startMotion(selection, 0.f);
preview->setZoom(2.0f);
mAnimPreview.getDummyAvatar()->deactivateAllMotions();
mAnimPreview.getDummyAvatar()->startMotion(getChild<LLScrollListCtrl>("anim_list")->getCurrentID(), 0.f);
mAnimPreview.setZoom(2.0f);
}
//-----------------------------------------------------------------------------
@@ -305,35 +239,35 @@ BOOL LLFloaterExploreAnimations::handleHover(S32 x, S32 y, MASK mask)
{
MASK local_mask = mask & ~MASK_ALT;
if (mAnimPreview && hasMouseCapture())
if (hasMouseCapture())
{
if (local_mask == MASK_PAN)
{
// pan here
mAnimPreview->pan((F32)(x - mLastMouseX) * -0.005f, (F32)(y - mLastMouseY) * -0.005f);
mAnimPreview.pan((F32)(x - mLastMouseX) * -0.005f, (F32)(y - mLastMouseY) * -0.005f);
}
else if (local_mask == MASK_ORBIT)
{
F32 yaw_radians = (F32)(x - mLastMouseX) * -0.01f;
F32 pitch_radians = (F32)(y - mLastMouseY) * 0.02f;
mAnimPreview->rotate(yaw_radians, pitch_radians);
mAnimPreview.rotate(yaw_radians, pitch_radians);
}
else
{
F32 yaw_radians = (F32)(x - mLastMouseX) * -0.01f;
F32 zoom_amt = (F32)(y - mLastMouseY) * 0.02f;
mAnimPreview->rotate(yaw_radians, 0.f);
mAnimPreview->zoom(zoom_amt);
mAnimPreview.rotate(yaw_radians, 0.f);
mAnimPreview.zoom(zoom_amt);
}
mAnimPreview->requestUpdate();
mAnimPreview.requestUpdate();
LLUI::setMousePositionLocal(this, mLastMouseX, mLastMouseY);
}
if (!mPreviewRect.pointInRect(x, y) || !mAnimPreview)
if (!mPreviewRect.pointInRect(x, y))
{
return LLFloater::handleHover(x, y, mask);
}
@@ -358,8 +292,8 @@ BOOL LLFloaterExploreAnimations::handleHover(S32 x, S32 y, MASK mask)
//-----------------------------------------------------------------------------
BOOL LLFloaterExploreAnimations::handleScrollWheel(S32 x, S32 y, S32 clicks)
{
mAnimPreview->zoom((F32)clicks * -0.2f);
mAnimPreview->requestUpdate();
mAnimPreview.zoom((F32)clicks * -0.2f);
mAnimPreview.requestUpdate();
return TRUE;
}

View File

@@ -2,16 +2,15 @@
#ifndef LL_LLFLOATEREXPLOREANIMATIONS_H
#define LL_LLFLOATEREXPLOREANIMATIONS_H
#include "llfloater.h"
#include "llfloaterbvhpreview.h"
#include "llviewerwindow.h" // gViewerWindow
#include "llinstancetracker.h"
class LLAnimHistoryItem
{
public:
LLAnimHistoryItem(LLUUID assetid);
LLAnimHistoryItem(LLUUID assetid = LLUUID(), bool playing = true);
bool setPlaying(bool playing);
LLUUID mAvatarID;
LLUUID mAssetID;
bool mPlaying;
F64 mTimeStarted;
@@ -19,25 +18,20 @@ public:
};
class LLFloaterExploreAnimations
: public LLFloater
: public LLFloater, public LLInstanceTracker<LLFloaterExploreAnimations, LLUUID>
{
public:
static void show();
LLFloaterExploreAnimations(LLUUID avatarid);
BOOL postBuild(void);
void close(bool app_quitting);
BOOL postBuild();
void update();
LLUUID mAvatarID;
LLPointer<LLPreviewAnimation> mAnimPreview;
private:
virtual ~LLFloaterExploreAnimations();
// static stuff!
public:
static void onSelectAnimation(LLUICtrl* ctrl, void* user_data);
void onSelectAnimation();
BOOL handleMouseDown(S32 x, S32 y, MASK mask);
BOOL handleMouseUp(S32 x, S32 y, MASK mask);
@@ -45,16 +39,17 @@ public:
BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
void onMouseCaptureLost();
static void startAnim(LLUUID avatarid, LLUUID assetid);
static void stopAnim(LLUUID avatarid, LLUUID assetid);
// static stuff!
static void processAnim(LLUUID avatarid, LLUUID assetid, bool playing);
static std::map< LLUUID, std::list< LLAnimHistoryItem* > > animHistory;
static LLFloaterExploreAnimations* sInstance;
static std::map< LLUUID, std::list< LLAnimHistoryItem > > animHistory;
private:
static void handleHistoryChange();
static void handleHistoryChange(LLUUID avatarid);
protected:
void draw();
LLPreviewAnimation mAnimPreview;
LLRect mPreviewRect;
S32 mLastMouseX;
S32 mLastMouseY;

View File

@@ -882,12 +882,6 @@ void LLPanelLandGeneral::setGroup(const LLUUID& group_id)
// static
void LLPanelLandGeneral::onClickBuyLand(void* data)
{
// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a)
if ( (rlv_handler_t::isEnabled()) && (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) )
{
return;
}
// [/RLVa:KB]
BOOL* for_group = (BOOL*)data;
LLViewerParcelMgr::getInstance()->startBuyLand(*for_group);
}

View File

@@ -43,6 +43,7 @@
#include "llfontgl.h"
#include "llimagej2c.h"
#include "llinventory.h"
#include "llmenugl.h"
#include "llnotificationsutil.h"
#include "llstring.h"
#include "llsys.h"
@@ -462,6 +463,8 @@ void LLFloaterReporter::showFromMenu(EReportType report_type)
return;
}
// Prevent menu from appearing in screen shot.
LLMenuGL::sMenuContainer->hideMenus();
LLFloaterReporter* f = getInstance();
if (f)
{

View File

@@ -48,6 +48,7 @@
#include "llagent.h"
#include "llwaterparammanager.h"
#include "llwaterparamset.h"
#include "rlvactions.h"
#undef max // Fixes a Windows compiler error
@@ -284,6 +285,7 @@ LLFloaterWater* LLFloaterWater::instance()
}
void LLFloaterWater::show()
{
if (RlvActions::hasBehaviour(RLV_BHVR_SETENV)) return;
if (!sWaterMenu)
{
LLFloaterWater* water = instance();

View File

@@ -52,10 +52,6 @@
#include "hippogridmanager.h"
// [RLVa:KB]
#include "rlvhandler.h"
// [/RLVa:KB]
LLPanelLandSelectObserver* LLPanelLandInfo::sObserver = NULL;
LLPanelLandInfo* LLPanelLandInfo::sInstance = NULL;
@@ -239,12 +235,6 @@ void LLPanelLandInfo::refresh()
//static
void LLPanelLandInfo::onClickClaim(void*)
{
// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a)
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
{
return;
}
// [/RLVa:KB]
LLViewerParcelMgr::getInstance()->startBuyLand();
}

View File

@@ -923,13 +923,6 @@ static void onClickScripts(void*)
static void onClickBuyLand(void*)
{
// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a)
if (RlvActions::isRlvEnabled() && RlvActions::hasBehaviour(RLV_BHVR_SHOWLOC))
{
return;
}
// [/RLVa:KB]
LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal());
LLViewerParcelMgr::getInstance()->startBuyLand();
}

View File

@@ -495,10 +495,7 @@ void LLToolBar::onClickChat(void* user_data)
// static
void LLToolBar::onClickAppearance(void*)
{
if (gAgentWearables.areWearablesLoaded())
{
LLFloaterCustomize::show();
}
LLFloaterCustomize::show();
}
// static

View File

@@ -42,6 +42,7 @@
#include "llfeaturemanager.h"
#include "llsecondlifeurls.h"
// <edit>
#include "floaterlocalassetbrowse.h"
#include "llfloaterexploreanimations.h"
#include "llfloaterexploresounds.h"
#include "llfloaterblacklist.h"
@@ -103,7 +104,9 @@
#include "llfloaterreporter.h"
#include "llfloaterscriptdebug.h"
#include "llfloaterscriptlimits.h"
#include "llfloatersearch.h"
#include "llfloatersettingsdebug.h"
#include "llfloatersnapshot.h"
#include "llfloaterenvsettings.h"
#include "llfloaterstats.h"
@@ -1984,23 +1987,6 @@ class LLViewCheckJoystickFlycam : public view_listener_t
}
};
class LLViewCommunicate : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
static LLCachedControl<bool> only_comm("CommunicateSpecificShortcut");
if (!only_comm && LLFloaterChatterBox::getInstance()->getFloaterCount() == 0)
{
LLFloaterMyFriends::toggleInstance();
}
else
{
LLFloaterChatterBox::toggleInstance();
}
return true;
}
};
void handle_toggle_flycam()
{
@@ -2128,15 +2114,6 @@ void handle_attachment_edit(const LLUUID& idItem)
}
// [/SL:KB]
class LLObjectInspect : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
LLFloaterInspect::showInstance();
return true;
}
};
// <dogmode> Derenderizer. Originally by Phox.
class LLObjectDerender : public view_listener_t
{
@@ -2883,19 +2860,6 @@ class LLObjectPFLinksetsSelected : public view_listener_t
}
};
class LLAvatarAnims : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
if(avatar)
{
new LLFloaterExploreAnimations(avatar->getID()); //temporary
}
return true;
}
};
// </edit>
bool handle_go_to()
@@ -5769,15 +5733,6 @@ class LLViewEnableLastChatter : public view_listener_t
}
};
class LLViewToggleRadar: public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
LLFloaterAvatarList::toggle(0);
return true;
}
};
class LLEditEnableDeselect : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -6449,32 +6404,87 @@ void handle_viewer_disable_message_log(void*)
gMessageSystem->stopLogging();
}
void show_outfit_dialog() { new LLMakeOutfitDialog(false); }
bool is_visible_view(boost::function<LLView* ()> get)
{
if (LLView* v = get())
return v->getVisible();
return false;
}
struct MenuFloaterDict : public LLSingleton<MenuFloaterDict>
{
typedef std::map<const std::string, std::pair<boost::function<void ()>, boost::function<bool ()> > > menu_floater_map_t;
menu_floater_map_t mEntries;
struct CommWrapper
{
static bool only_comm()
{
static const LLCachedControl<bool> only("CommunicateSpecificShortcut");
return only || LLFloaterChatterBox::getInstance()->getFloaterCount();
}
static bool instanceVisible(const LLSD& key)
{
return only_comm()
? LLFloaterChatterBox::instanceVisible(key)
: LLFloaterMyFriends::instanceVisible(key);
}
static void toggleInstance(const LLSD& key)
{
if (only_comm())
LLFloaterChatterBox::toggleInstance(key);
else
LLFloaterMyFriends::toggleInstance(key);
}
};
MenuFloaterDict()
{
registerFloater("about", boost::bind(&LLFloaterAbout::show,(void*)NULL));
//registerFloater("about region", boost::bind(&LLFloaterRegionInfo::showInstance,LLSD()));
registerFloater("ao", boost::bind(LLFloaterAO::show, (void*)NULL));
registerFloater("appearance", boost::bind(LLFloaterCustomize::show));
registerFloater("buy currency", boost::bind(&LLFloaterBuyCurrency::buyCurrency));
registerFloater("buy land", boost::bind(&LLViewerParcelMgr::startBuyLand, boost::bind(LLViewerParcelMgr::getInstance), false));
registerFloater("complaint reporter", boost::bind(LLFloaterReporter::showFromMenu, COMPLAINT_REPORT));
registerFloater("debug avatar", boost::bind(handle_debug_avatar_textures, (void*)NULL));
registerFloater("debug settings", boost::bind(handle_singleton_toggle<LLFloaterSettingsDebug>, (void*)NULL));
registerFloater("displayname", boost::bind(&LLFloaterDisplayName::show));
//registerFloater("friends", boost::bind(&LLFloaterMyFriends::toggleInstance,0), boost::bind(&LLFloaterMyFriends::instanceVisible,0));
registerFloater("gestures", boost::bind(&LLFloaterGesture::toggleVisibility), boost::bind(&LLFloaterGesture::instanceVisible));
registerFloater("grid options", boost::bind(&LLFloaterBuildOptions::show,(void*)NULL));
//Singu TODO: Re-implement f1 help.
/*else if (floater_name == "help f1")
{
gViewerHtmlHelp.show();
}*/
registerFloater("help tutorial",boost::bind(&LLFloaterHUD::showHUD));
registerFloater("im", boost::bind(&LLFloaterChatterBox::toggleInstance,LLSD()), boost::bind(&LLFloaterMyFriends::instanceVisible,0));
registerFloater("inspect", boost::bind(LLFloaterInspect::showInstance));
registerFloater("inventory", boost::bind(LLInventoryView::toggleVisibility, (void*)NULL), boost::bind(is_visible_view, static_cast<boost::function<LLView* ()> >(LLInventoryView::getActiveInventory)));
//registerFloater("lag meter", boost::bind(&LLFloaterLagMeter::showInstance,LLSD()));
registerFloater("local assets", boost::bind(FloaterLocalAssetBrowser::show, (void*)0));
registerFloater("mean events", boost::bind(LLFloaterBump::show, (void*)NULL));
registerFloater("media ticker", boost::bind(handle_ticker_toggle, (void*)NULL), boost::bind(SHFloaterMediaTicker::instanceExists));
registerFloater("my land", boost::bind(&LLFloaterLandHoldings::show,(void*)NULL));
registerFloater("outfit", boost::bind(show_outfit_dialog));
registerFloater("preferences", boost::bind(&LLFloaterPreference::show,(void*)NULL));
registerFloater("radar", boost::bind(LLFloaterAvatarList::toggle, (void*)NULL), boost::bind(LLFloaterAvatarList::instanceVisible));
registerFloater("script errors",boost::bind(&LLFloaterScriptDebug::show,LLUUID::null));
//registerFloater("script info", boost::bind(&LLFloaterScriptLimits::showInstance,LLSD()));
registerFloater("search", boost::bind(LLFloaterSearch::showInstance, LLFloaterSearch::SearchQuery(), false));
registerFloater("snapshot", boost::bind(LLFloaterSnapshot::show, (void*)NULL));
// Phoenix: Wolfspirit: Enabled Show Floater out of viewer menu
registerFloater("toolbar", boost::bind(&LLToolBar::toggle,(void*)NULL), boost::bind(&LLToolBar::visible,(void*)NULL));
registerFloater("web", boost::bind(LLFloaterWebContent::showInstance, "dict web", LLFloaterWebContent::Params()));
registerFloater("world map", boost::bind(&LLFloaterWorldMap::toggle));
registerFloater("anims_explorer", boost::bind(LLFloaterExploreAnimations::show));
registerFloater("sound_explorer", boost::bind(&LLFloaterExploreSounds::toggle), boost::bind(&LLFloaterExploreSounds::visible));
registerFloater("asset_blacklist", boost::bind(&LLFloaterBlacklist::toggle), boost::bind(&LLFloaterBlacklist::visible));
registerFloater("DayCycle", boost::bind(LLFloaterDayCycle::show), boost::bind(LLFloaterDayCycle::isOpen));
registerFloater("EnvSettings", boost::bind(LLFloaterEnvSettings::show), boost::bind(LLFloaterEnvSettings::isOpen));
registerFloater("PostProcess", boost::bind(LLFloaterPostProcess::show));
registerFloater("RegionDebugConsole", boost::bind(handle_singleton_toggle<LLFloaterRegionDebugConsole>, (void*)NULL), boost::bind(LLFloaterRegionDebugConsole::instanceExists));
registerFloater("WaterSettings", boost::bind(LLFloaterWater::show), boost::bind(LLFloaterWater::isOpen));
registerFloater<CommWrapper> ("im");
registerFloater<LLFloaterLand> ("about land");
registerFloater<LLFloaterRegionInfo> ("about region");
registerFloater<LLFloaterActiveSpeakers> ("active speakers");
@@ -6484,6 +6494,7 @@ struct MenuFloaterDict : public LLSingleton<MenuFloaterDict>
registerFloater<LLFloaterChat> ("chat history");
registerFloater<LLFloaterChatterBox> ("communicate");
registerFloater<LLFloaterMyFriends> ("friends",0);
registerFloater<LLFloaterMyFriends> ("groups",1);
registerFloater<LLFloaterLagMeter> ("lag meter");
registerFloater<SLFloaterMediaFilter> ("media filter");
registerFloater<LLFloaterMap> ("mini map");
@@ -6497,6 +6508,11 @@ struct MenuFloaterDict : public LLSingleton<MenuFloaterDict>
registerFloater<LLFloaterVoiceEffect> ("voice effect");
registerFloater<LLFloaterPathfindingCharacters> ("pathfinding_characters");
registerFloater<LLFloaterPathfindingLinksets> ("pathfinding_linksets");
// [RLVa:LF]
registerFloater<RlvFloaterBehaviours>("rlv restrictions");
registerFloater<RlvFloaterLocks>("rlv locks");
registerFloater<RlvFloaterStrings>("rlv strings");
// [/RLVa:LF]
}
void registerFloater(const std::string& name, boost::function<void ()> show, boost::function<bool ()> visible = NULL)
@@ -6523,56 +6539,6 @@ class LLShowFloater : public view_listener_t
{
it->second.first();
}
else if (floater_name == "appearance")
{
if (gAgentWearables.areWearablesLoaded())
{
LLFloaterCustomize::show();
}
}
else if (floater_name == "outfit")
{
new LLMakeOutfitDialog(false);
}
else if (floater_name == "inventory")
{
LLInventoryView::toggleVisibility(NULL);
}
else if (floater_name == "buy land")
{
// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a)
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
{
return true;
}
// [/RLVa:KB]
if (LLViewerParcelMgr::getInstance()->selectionEmpty())
{
LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal());
}
LLViewerParcelMgr::getInstance()->startBuyLand();
}
//Singu TODO: Re-implement f1 help.
/*else if (floater_name == "help f1")
{
llinfos << "Spawning HTML help window" << llendl;
gViewerHtmlHelp.show();
}*/
else if (floater_name == "complaint reporter")
{
// Prevent menu from appearing in screen shot.
gMenuHolder->hideMenus();
LLFloaterReporter::showFromMenu(COMPLAINT_REPORT);
}
else if (floater_name == "mean events")
{
if (!gNoRender)
{
LLFloaterBump::show(NULL);
}
}
else // Simple codeless floater
{
LLFloater* floater = LLUICtrlFactory::getInstance()->getBuiltFloater(floater_name);
@@ -6597,11 +6563,6 @@ class LLFloaterVisible : public view_listener_t
{
new_value = it->second.second();
}
else if (floater_name == "inventory")
{
LLInventoryView* iv = LLInventoryView::getActiveInventory();
new_value = (NULL != iv && TRUE == iv->getVisible());
}
gMenuHolder->findControl(control_name)->setValue(new_value);
return true;
}
@@ -6715,15 +6676,6 @@ class LLShowAgentProfile : public view_listener_t
}
};
class LLShowAgentGroups : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
LLFloaterMyFriends::toggleInstance(1);
return true;
}
};
class LLLandEdit : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -9055,22 +9007,6 @@ class LLWorldEnvSettings : public view_listener_t
// [/RLVa:KB]
std::string tod = userdata.asString();
if (tod == "editor")
{
// if not there or is hidden, show it
if( !LLFloaterEnvSettings::isOpen() ||
!LLFloaterEnvSettings::instance()->getVisible())
{
LLFloaterEnvSettings::show();
}
else
{
// otherwise, close it button acts like a toggle
LLFloaterEnvSettings::instance()->close();
}
return true;
}
if (tod == "sunrise")
{
@@ -9097,60 +9033,6 @@ class LLWorldEnvSettings : public view_listener_t
}
};
/// Water Menu callbacks
class LLWorldWaterSettings : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g)
if (gRlvHandler.hasBehaviour(RLV_BHVR_SETENV))
{
return true;
}
// [/RLVa:KB]
// if not there or is hidden, show it
if( !LLFloaterWater::isOpen() ||
!LLFloaterWater::instance()->getVisible()) {
LLFloaterWater::show();
// otherwise, close it button acts like a toggle
}
else
{
LLFloaterWater::instance()->close();
}
return true;
}
};
/// Post-Process callbacks
class LLWorldPostProcess : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
LLFloaterPostProcess::show();
return true;
}
};
/// Day Cycle callbacks
class LLWorldDayCycle : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g)
if (gRlvHandler.hasBehaviour(RLV_BHVR_SETENV))
{
return true;
}
// [/RLVa:KB]
LLFloaterDayCycle::show();
return true;
}
};
class SinguCloseAllDialogs : public view_listener_t
{
@@ -9161,16 +9043,6 @@ class SinguCloseAllDialogs : public view_listener_t
}
};
class SinguAnimationOverride : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
LLFloaterAO::show(NULL);
return true;
}
};
class SinguNimble : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -9191,36 +9063,6 @@ class SinguCheckNimble : public view_listener_t
}
};
class SinguAssetBlacklist : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
LLFloaterBlacklist::toggle();
return true;
}
};
class SinguStreamingAudioDisplay : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
handle_ticker_toggle(NULL);
return true;
}
};
class SinguCheckStreamingAudioDisplay : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
gMenuHolder->findControl(userdata["control"].asString())->setValue(handle_singleton_check<SHFloaterMediaTicker>(NULL));
return true;
}
};
class SinguEnableStreamingAudioDisplay : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -9257,33 +9099,12 @@ class SinguRebake : public view_listener_t
}
};
class SinguDebugConsole : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
handle_singleton_toggle<LLFloaterRegionDebugConsole>(NULL);
return true;
}
};
class SinguCheckDebugConsole : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
gMenuHolder->findControl(userdata["control"].asString())->setValue(handle_singleton_check<LLFloaterRegionDebugConsole>(NULL));
return true;
}
};
class SinguVisibleDebugConsole : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
if (LLViewerRegion* region = gAgent.getRegion())
{
if (LLView* item = gMenuBarView->getChildView("Region Debug Console", true, false))
item->setVisible(!(region->getCapability("SimConsoleAsync").empty() || region->getCapability("SimConsole").empty()));
}
LLViewerRegion* region = gAgent.getRegion();
gMenuHolder->findControl(userdata["control"].asString())->setValue(region && !(region->getCapability("SimConsoleAsync").empty() || region->getCapability("SimConsole").empty()));
return true;
}
};
@@ -9704,7 +9525,6 @@ void initialize_menus()
// View menu
addMenu(new LLViewMouselook(), "View.Mouselook");
addMenu(new LLViewJoystickFlycam(), "View.JoystickFlycam");
addMenu(new LLViewCommunicate(), "View.Communicate");
addMenu(new LLViewResetView(), "View.ResetView");
addMenu(new LLViewResetPresetAngles(), "View.ResetPresetAngles");
addMenu(new LLViewLookAtLastChatter(), "View.LookAtLastChatter");
@@ -9721,7 +9541,6 @@ void initialize_menus()
addMenu(new LLViewEnableMouselook(), "View.EnableMouselook");
addMenu(new LLViewEnableJoystickFlycam(), "View.EnableJoystickFlycam");
addMenu(new LLViewEnableLastChatter(), "View.EnableLastChatter");
addMenu(new LLViewToggleRadar(), "View.ToggleAvatarList");
addMenu(new LLViewCheckJoystickFlycam(), "View.CheckJoystickFlycam");
addMenu(new LLViewCheckShowHoverTips(), "View.CheckShowHoverTips");
@@ -9749,11 +9568,7 @@ void initialize_menus()
addMenu(new LLWorldEnableBuyLand(), "World.EnableBuyLand");
addMenu(new LLWorldCheckAlwaysRun(), "World.CheckAlwaysRun");
(new LLWorldEnvSettings())->registerListener(gMenuHolder, "World.EnvSettings");
(new LLWorldWaterSettings())->registerListener(gMenuHolder, "World.WaterSettings");
(new LLWorldPostProcess())->registerListener(gMenuHolder, "World.PostProcess");
(new LLWorldDayCycle())->registerListener(gMenuHolder, "World.DayCycle");
// Tools menu
@@ -9777,7 +9592,6 @@ void initialize_menus()
addMenu(new LLToolsLookAtSelection(), "Tools.LookAtSelection");
addMenu(new LLToolsBuyOrTake(), "Tools.BuyOrTake");
addMenu(new LLToolsTakeCopy(), "Tools.TakeCopy");
addMenu(new LLToolsTakeCopy(), "Tools.TakeCopy");
// <edit>
addMenu(new LLToolsEnableAdminDelete(), "Tools.EnableAdminDelete");
@@ -9827,7 +9641,6 @@ void initialize_menus()
addMenu(new LLAvatarEject(), "Avatar.Eject");
addMenu(new LLAvatarSendIM(), "Avatar.SendIM");
addMenu(new LLAvatarReportAbuse(), "Avatar.ReportAbuse");
addMenu(new LLAvatarAnims(),"Avatar.Anims");
addMenu(new LLObjectEnableMute(), "Avatar.EnableMute");
addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend");
addMenu(new LLAvatarEnableFreezeEject(), "Avatar.EnableFreezeEject");
@@ -9858,7 +9671,6 @@ void initialize_menus()
addMenu(new LLObjectMute(), "Object.Mute");
addMenu(new LLObjectBuy(), "Object.Buy");
addMenu(new LLObjectEdit(), "Object.Edit");
addMenu(new LLObjectInspect(), "Object.Inspect");
// <dogmode> Visual mute, originally by Phox.
addMenu(new LLObjectDerender(), "Object.DERENDER");
addMenu(new LLAvatarReloadTextures(), "Avatar.ReloadTextures");
@@ -9905,7 +9717,6 @@ void initialize_menus()
addMenu(new LLShowFloater(), "ShowFloater");
addMenu(new LLPromptShowURL(), "PromptShowURL");
addMenu(new LLShowAgentProfile(), "ShowAgentProfile");
addMenu(new LLShowAgentGroups(), "ShowAgentGroups");
addMenu(new LLToggleControl(), "ToggleControl");
addMenu(new LLGoToObject(), "GoToObject");
@@ -9928,17 +9739,12 @@ void initialize_menus()
// Singularity menu
addMenu(new SinguCloseAllDialogs(), "CloseAllDialogs");
// ---- Fake away handled elsewhere
addMenu(new SinguAnimationOverride(), "AnimationOverride");
addMenu(new SinguNimble(), "Nimble");
addMenu(new SinguCheckNimble(), "CheckNimble");
addMenu(new SinguStreamingAudioDisplay(), "StreamingAudioDisplay");
addMenu(new SinguEnableStreamingAudioDisplay(), "EnableStreamingAudioDisplay");
addMenu(new SinguCheckStreamingAudioDisplay(), "CheckStreamingAudioDisplay");
addMenu(new SinguPoseStand(), "PoseStand");
addMenu(new SinguCheckPoseStand(), "CheckPoseStand");
addMenu(new SinguRebake(), "Rebake");
addMenu(new SinguDebugConsole(), "RegionDebugConsole");
addMenu(new SinguCheckDebugConsole(), "CheckRegionDebugConsole");
addMenu(new SinguVisibleDebugConsole(), "VisibleRegionDebugConsole");
// [RLVa:KB] - Checked: 2010-01-18 (RLVa-1.1.0m) | Added: RLVa-1.1.0m | OK

View File

@@ -62,7 +62,6 @@
#include "lltrans.h"
#include "llfloaterbuycurrency.h"
// <edit>
#include "floaterlocalassetbrowse.h"
#include "llassettype.h"
#include "llinventorytype.h"
// </edit>
@@ -517,15 +516,6 @@ class LLFileMinimizeAllWindows : public view_listener_t
return true;
}
};
class LLFileLocalAssetBrowser : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent>, const LLSD&)
{
FloaterLocalAssetBrowser::show(0);
return true;
}
};
// </edit>
class LLFileSavePreview : public view_listener_t
@@ -541,15 +531,6 @@ class LLFileSavePreview : public view_listener_t
}
};
class LLFileTakeSnapshot : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
LLFloaterSnapshot::show(NULL);
return true;
}
};
class LLFileTakeSnapshotToDisk : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -979,21 +960,21 @@ void temp_upload_callback(const LLUUID& uuid, void* user_data, S32 result, LLExt
{
LLUUID item_id;
item_id.generate();
LLPermissions* perms = new LLPermissions();
perms->set(LLPermissions::DEFAULT);
perms->setOwnerAndGroup(gAgentID, gAgentID, gAgentID, false);
LLPermissions perms;
perms.set(LLPermissions::DEFAULT);
perms.setOwnerAndGroup(gAgentID, gAgentID, gAgentID, false);
perms->setMaskBase(PERM_ALL);
perms->setMaskOwner(PERM_ALL);
perms->setMaskEveryone(PERM_ALL);
perms->setMaskGroup(PERM_ALL);
perms->setMaskNext(PERM_ALL);
perms.setMaskBase(PERM_ALL);
perms.setMaskOwner(PERM_ALL);
perms.setMaskEveryone(PERM_ALL);
perms.setMaskGroup(PERM_ALL);
perms.setMaskNext(PERM_ALL);
LLViewerInventoryItem* item = new LLViewerInventoryItem(
item_id,
gInventory.findCategoryUUIDForType(LLFolderType::FT_TEXTURE),
*perms,
perms,
uuid,
(LLAssetType::EType)data->mAssetInfo.mType,
(LLInventoryType::EType)data->mInventoryType,
@@ -1368,10 +1349,8 @@ void init_menu_file()
(new LLFileEnableCloseAllWindows())->registerListener(gMenuHolder, "File.EnableCloseAllWindows");
// <edit>
(new LLFileMinimizeAllWindows())->registerListener(gMenuHolder, "File.MinimizeAllWindows");
(new LLFileLocalAssetBrowser())->registerListener(gMenuHolder, "File.LocalAssetBrowser");
// </edit>
(new LLFileSavePreview())->registerListener(gMenuHolder, "File.SavePreview");
(new LLFileTakeSnapshot())->registerListener(gMenuHolder, "File.TakeSnapshot");
(new LLFileTakeSnapshotToDisk())->registerListener(gMenuHolder, "File.TakeSnapshotToDisk");
(new LLFileQuit())->registerListener(gMenuHolder, "File.Quit");
(new LLFileEnableUpload())->registerListener(gMenuHolder, "File.EnableUpload");

View File

@@ -69,6 +69,7 @@
#include "lloverlaybar.h"
#include "roles_constants.h"
#include "llweb.h"
#include "rlvactions.h"
const F32 PARCEL_COLLISION_DRAW_SECS = 1.f;
@@ -2226,6 +2227,12 @@ bool LLViewerParcelMgr::canAgentBuyParcel(LLParcel* parcel, bool forGroup) const
void LLViewerParcelMgr::startBuyLand(BOOL is_for_group)
{
// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a)
if (RlvActions::isRlvEnabled() && RlvActions::canShowLocation())
return;
// [/RLVa:KB]
if (selectionEmpty()) selectParcelAt(gAgent.getPositionGlobal());
LLFloaterBuyLand::buyLand(getSelectionRegion(), mCurrentParcelSelection, is_for_group == TRUE);
}

View File

@@ -5456,7 +5456,7 @@ void LLVOAvatar::processAnimationStateChanges()
processSingleAnimationStateChange(anim_it->first, FALSE);
// <edit>
LLFloaterExploreAnimations::stopAnim(getID(), anim_it->first);
LLFloaterExploreAnimations::processAnim(getID(), anim_it->first, false);
// </edit>
mPlayingAnimations.erase(anim_it++);
continue;
@@ -5474,7 +5474,7 @@ void LLVOAvatar::processAnimationStateChanges()
if (found_anim == mPlayingAnimations.end() || found_anim->second != anim_it->second)
{
// <edit>
LLFloaterExploreAnimations::startAnim(getID(), anim_it->first);
LLFloaterExploreAnimations::processAnim(getID(), anim_it->first, true);
// </edit>
if (processSingleAnimationStateChange(anim_it->first, TRUE))
{

View File

@@ -188,13 +188,13 @@ void RlvUIEnabler::onToggleSetEnv()
if (!fEnable)
{
// Only close the floaters if their instance exists and they're actually visible
if ( (LLFloaterEnvSettings::isOpen()) && (LLFloaterEnvSettings::instance()->getVisible()) )
if ( (LLFloaterEnvSettings::isOpen()) )
LLFloaterEnvSettings::instance()->close();
if ( (LLFloaterWindLight::isOpen()) && (LLFloaterWindLight::instance()->getVisible()) )
if ( (LLFloaterWindLight::isOpen()) )
LLFloaterWindLight::instance()->close();
if ( (LLFloaterWater::isOpen()) && (LLFloaterWater::instance()->getVisible()) )
if ( (LLFloaterWater::isOpen()) )
LLFloaterWater::instance()->close();
if ( (LLFloaterDayCycle::isOpen()) && (LLFloaterDayCycle::instance()->getVisible()) )
if ( (LLFloaterDayCycle::isOpen()) )
LLFloaterDayCycle::instance()->close();
}

View File

@@ -55,7 +55,7 @@
</menu_item_call>
</pie_menu>
<menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect">
<on_click function="Object.Inspect" />
<on_click function="ShowFloater" userdata="inspect" />
<on_enable function="Object.EnableInspect"/>
</menu_item_call>
<menu_item_call enabled="false" label="Data" mouse_opaque="true" name="Data">

View File

@@ -56,7 +56,7 @@
</menu_item_call>
<menu_item_separator />
<menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect">
<on_click function="Object.Inspect" />
<on_click function="ShowFloater" userdata="inspect" />
<on_enable function="Object.EnableInspect" />
</menu_item_call>
</pie_menu>

View File

@@ -81,7 +81,7 @@
<on_enable function="Object.EnableMute" />
</menu_item_call>
<menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect">
<on_click function="Object.Inspect" />
<on_click function="ShowFloater" userdata="inspect" />
<on_enable function="Object.EnableInspect" />
</menu_item_call>
<menu_item_call enabled="true" label="Derender" mouse_opaque="true" name="Derender">

View File

@@ -4,7 +4,7 @@
<on_click function="ShowAgentProfile" userdata="agent" />
</menu_item_call>
<menu_item_call enabled="true" label="Groups..." name="Groups...">
<on_click function="ShowAgentGroups" userdata="agent" />
<on_click function="ShowFloater" userdata="groups" />
</menu_item_call>
<pie_menu enabled="true" label="Take Off" name="Take Off">
<pie_menu enabled="true" label="Clothes" name="Clothes">
@@ -91,7 +91,7 @@
</menu_item_call>
<menu_item_call enabled="true" hidden="false" label="Anims..." mouse_opaque="true"
name="Anims...">
<on_click function="Avatar.Anims" />
<on_click function="ShowFloater" userdata="anims_explorer" />
</menu_item_call>
<menu_item_call enabled="false" hidden="false" label="S. Count" mouse_opaque="true" name="ScriptCount">
<on_click function="Object.ScriptCount" />

View File

@@ -38,7 +38,7 @@
<on_enable function="Object.EnableImport" />
</menu_item_call>
<menu_item_call label="Change Local Textures" mouse_opaque="true" name="Change Local Textures">
<on_click function="File.LocalAssetBrowser"/>
<on_click function="ShowFloater" userdata="local assets"/>
</menu_item_call>
<menu_item_separator enabled="true" label="-----------" mouse_opaque="true" name="separator" />
<menu_item_call enabled="true" label="Set Default Permissions..."
@@ -77,7 +77,7 @@
<menu_item_call bottom="-167" enabled="true" height="19" label="Take Snapshot" left="0"
mouse_opaque="true" name="Take Snapshot" shortcut="control|shift|S"
width="243">
<on_click function="File.TakeSnapshot" userdata="" />
<on_click function="ShowFloater" userdata="snapshot"/>
</menu_item_call>
<menu_item_call bottom="-186" enabled="true" height="19" label="Snapshot to Disk" left="0"
mouse_opaque="true" name="Snapshot to Disk" shortcut="control|`"
@@ -269,7 +269,7 @@
</menu_item_check>
<menu_item_call bottom="-408" enabled="true" height="19" label="Groups..." left="0"
mouse_opaque="true" name="Groups..." shortcut="control|shift|G" width="153">
<on_click function="ShowAgentGroups" userdata="agent" />
<on_click function="ShowFloater" userdata="groups" />
</menu_item_call>
<menu_item_separator bottom="-416" enabled="true" height="8" label="-----------" left="0"
mouse_opaque="true" name="separator8" width="153" />
@@ -331,8 +331,8 @@
</menu_item_check>
<menu_item_check bottom="-151" enabled="true" height="19" label="Communicate" left="0"
mouse_opaque="true" name="Instant Message" shortcut="control|T" width="211">
<on_click function="View.Communicate"/>
<on_check function="FloaterVisible" userdata="communicate" />
<on_click function="ShowFloater" userdata="im"/>
<on_check function="FloaterVisible" userdata="im"/>
</menu_item_check>
<menu_item_check bottom="-170" enabled="true" height="19" label="Inventory" left="0"
mouse_opaque="true" name="Inventory" shortcut="control|I" width="211">
@@ -383,7 +383,7 @@
</menu_item_check>
<menu_item_check bottom="-273" enabled="true" height="19" label="Radar" left="0"
mouse_opaque="true" name="Radar" shortcut="control|shift|A" width="211">
<on_click function="View.ToggleAvatarList" userdata="radar" />
<on_click function="ShowFloater" userdata="radar" />
<on_check control="ShowRadar" />
</menu_item_check>
<menu_item_separator bottom="-281" enabled="true" height="8" label="-----------" left="0"
@@ -635,15 +635,15 @@
mouse_opaque="true" name="separator" width="169" />
<menu_item_call bottom="-132" enabled="false" height="19" label="Environment Editor" left="0"
mouse_opaque="true" name="Environment Editor" width="169">
<on_click function="World.EnvSettings" userdata="editor" />
<on_click function="ShowFloater" userdata="EnvSettings" />
</menu_item_call>
<menu_item_call bottom="-151" enabled="false" height="19" label="Day Cycle Editor" left="0"
mouse_opaque="true" name="Day Cycle Editor" width="169">
<on_click function="World.DayCycle" userdata="editor" />
<on_click function="ShowFloater" userdata="DayCycle" />
</menu_item_call>
<menu_item_call bottom="-173" enabled="false" height="19" label="Post-Processing Effects" left="0"
mouse_opaque="true" name="Post-Processing Effects" width="169">
<on_click function="World.PostProcess" userdata="editor" />
<on_click function="ShowFloater" userdata="PostProcess" />
</menu_item_call>
</menu>
</menu>
@@ -1002,7 +1002,7 @@
</menu_item_call>
<menu_item_separator mouse_opaque="true" name="separators2"/>
<menu_item_call label="Animation Override..." mouse_opaque="true" name="Animation Override ...">
<on_click function="AnimationOverride"/>
<on_click function="ShowFloater" userdata="ao"/>
</menu_item_call>
<menu_item_check label="Nimble" mouse_opaque="true" name="Nimble">
<on_click function="Nimble"/>
@@ -1022,8 +1022,8 @@
<on_check function="FloaterVisible" userdata="asset_blacklist"/>
</menu_item_check>
<menu_item_check label="Streaming Audio Display" mouse_opaque="true" name="Streaming Audio Display">
<on_click function="StreamingAudioDisplay"/>
<on_check function="CheckStreamingAudioDisplay"/>
<on_click function="ShowFloater" userdata="media ticker"/>
<on_check function="FloaterVisible" userdata="media ticker"/>
<on_enable function="EnableStreamingAudioDisplay"/>
</menu_item_check>
<menu_item_check label="Pose Stand" mouse_opaque="true" name="Pose Stand">
@@ -1031,8 +1031,8 @@
<on_check function="CheckPoseStand"/>
</menu_item_check>
<menu_item_check label="Region Debug Console" mouse_opaque="true" name="Region Debug Console">
<on_click function="RegionDebugConsole"/>
<on_check function="CheckRegionDebugConsole"/>
<on_click function="ShowFloater" userdata="RegionDebugConsole"/>
<on_check function="FloaterVisible" userdata="RegionDebugConsole"/>
<on_visible function="VisibleRegionDebugConsole"/>
</menu_item_check>
<menu_item_separator mouse_opaque="true" name="separators3" />