[Floater Flexibility] Part one: Refactor all floaters to work with the dictionary in one way or another.
This commit is contained in:
@@ -42,7 +42,7 @@ class LLViewerJointMesh;
|
||||
|
||||
class LLPreviewAnimation : public LLViewerDynamicTexture
|
||||
{
|
||||
protected:
|
||||
public:
|
||||
virtual ~LLPreviewAnimation();
|
||||
|
||||
public:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -495,10 +495,7 @@ void LLToolBar::onClickChat(void* user_data)
|
||||
// static
|
||||
void LLToolBar::onClickAppearance(void*)
|
||||
{
|
||||
if (gAgentWearables.areWearablesLoaded())
|
||||
{
|
||||
LLFloaterCustomize::show();
|
||||
}
|
||||
LLFloaterCustomize::show();
|
||||
}
|
||||
|
||||
// static
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user