Merge viewer-neko
commit
9526a45bf2
|
|
@ -340,43 +340,24 @@ bool LLKeyBind::addKeyData(const LLKeyData& data)
|
|||
|
||||
void LLKeyBind::replaceKeyData(EMouseClickType mouse, KEY key, MASK mask, bool ignore, U32 index)
|
||||
{
|
||||
if (mouse != CLICK_NONE || key != KEY_NONE )
|
||||
{
|
||||
// if both click and key are none, we are inserting a placeholder, we don't want to reset anything
|
||||
// otherwise reset identical key
|
||||
for (data_vector_t::iterator iter = mData.begin(); iter != mData.end(); iter++)
|
||||
{
|
||||
if (iter->mKey == key
|
||||
&& iter->mMouse == mouse
|
||||
&& iter->mIgnoreMasks == ignore
|
||||
&& (iter->mIgnoreMasks || iter->mMask == mask))
|
||||
{
|
||||
iter->reset();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mData.size() > index)
|
||||
{
|
||||
mData[index] = LLKeyData(mouse, key, mask, ignore);
|
||||
}
|
||||
else
|
||||
{
|
||||
mData.push_back(LLKeyData(mouse, key, mask, ignore));
|
||||
}
|
||||
replaceKeyData(LLKeyData(mouse, key, mask, ignore), index);
|
||||
}
|
||||
|
||||
void LLKeyBind::replaceKeyData(const LLKeyData& data, U32 index)
|
||||
{
|
||||
if (!data.isEmpty())
|
||||
{
|
||||
// if both click and key are none (isEmpty()), we are inserting a placeholder, we don't want to reset anything
|
||||
// otherwise reset identical key
|
||||
for (data_vector_t::iterator iter = mData.begin(); iter != mData.end(); iter++)
|
||||
{
|
||||
if (iter->mKey == data.mKey
|
||||
&& iter->mMouse == data.mMouse
|
||||
&& iter->mIgnoreMasks == data.mIgnoreMasks
|
||||
&& (iter->mIgnoreMasks || iter->mMask == data.mMask))
|
||||
&& iter->mMask == data.mMask)
|
||||
{
|
||||
// Replacing only fully equal combinations even in case 'ignore' is set
|
||||
// Reason: Simplicity and user might decide to do a 'move' command as W and Shift+Ctrl+W, and 'run' as Shift+W
|
||||
iter->reset();
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
#include "lluictrlfactory.h"
|
||||
#include "llbutton.h"
|
||||
#include "llcheckboxctrl.h"
|
||||
#include "llcriticaldamp.h" // LLSmoothInterpolation
|
||||
#include "lldir.h"
|
||||
#include "lldraghandle.h"
|
||||
#include "llfloaterreg.h"
|
||||
|
|
@ -64,6 +65,10 @@
|
|||
// use this to control "jumping" behavior when Ctrl-Tabbing
|
||||
const S32 TABBED_FLOATER_OFFSET = 0;
|
||||
|
||||
const F32 LLFloater::CONTEXT_CONE_IN_ALPHA = 0.0f;
|
||||
const F32 LLFloater::CONTEXT_CONE_OUT_ALPHA = 1.f;
|
||||
const F32 LLFloater::CONTEXT_CONE_FADE_TIME = 0.08f;
|
||||
|
||||
namespace LLInitParam
|
||||
{
|
||||
void TypeValues<LLFloaterEnums::EOpenPositioning>::declareValues()
|
||||
|
|
@ -2254,6 +2259,70 @@ void LLFloater::updateTitleButtons()
|
|||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
void LLFloater::drawConeToOwner(F32 &context_cone_opacity,
|
||||
F32 max_cone_opacity,
|
||||
LLView *owner_view,
|
||||
F32 fade_time,
|
||||
F32 contex_cone_in_alpha,
|
||||
F32 contex_cone_out_alpha)
|
||||
{
|
||||
if (owner_view
|
||||
&& owner_view->isInVisibleChain()
|
||||
&& hasFocus()
|
||||
&& context_cone_opacity > 0.001f
|
||||
&& gFocusMgr.childHasKeyboardFocus(this))
|
||||
{
|
||||
// draw cone of context pointing back to owner (e.x. texture swatch)
|
||||
LLRect owner_rect;
|
||||
owner_view->localRectToOtherView(owner_view->getLocalRect(), &owner_rect, this);
|
||||
LLRect local_rect = getLocalRect();
|
||||
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
LLGLEnable(GL_CULL_FACE);
|
||||
gGL.begin(LLRender::QUADS);
|
||||
{
|
||||
gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
|
||||
gGL.vertex2i(owner_rect.mLeft, owner_rect.mTop);
|
||||
gGL.vertex2i(owner_rect.mRight, owner_rect.mTop);
|
||||
gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
|
||||
gGL.vertex2i(local_rect.mRight, local_rect.mTop);
|
||||
gGL.vertex2i(local_rect.mLeft, local_rect.mTop);
|
||||
|
||||
gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
|
||||
gGL.vertex2i(local_rect.mLeft, local_rect.mTop);
|
||||
gGL.vertex2i(local_rect.mLeft, local_rect.mBottom);
|
||||
gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
|
||||
gGL.vertex2i(owner_rect.mLeft, owner_rect.mBottom);
|
||||
gGL.vertex2i(owner_rect.mLeft, owner_rect.mTop);
|
||||
|
||||
gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
|
||||
gGL.vertex2i(local_rect.mRight, local_rect.mBottom);
|
||||
gGL.vertex2i(local_rect.mRight, local_rect.mTop);
|
||||
gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
|
||||
gGL.vertex2i(owner_rect.mRight, owner_rect.mTop);
|
||||
gGL.vertex2i(owner_rect.mRight, owner_rect.mBottom);
|
||||
|
||||
|
||||
gGL.color4f(0.f, 0.f, 0.f, contex_cone_out_alpha * context_cone_opacity);
|
||||
gGL.vertex2i(local_rect.mLeft, local_rect.mBottom);
|
||||
gGL.vertex2i(local_rect.mRight, local_rect.mBottom);
|
||||
gGL.color4f(0.f, 0.f, 0.f, contex_cone_in_alpha * context_cone_opacity);
|
||||
gGL.vertex2i(owner_rect.mRight, owner_rect.mBottom);
|
||||
gGL.vertex2i(owner_rect.mLeft, owner_rect.mBottom);
|
||||
}
|
||||
gGL.end();
|
||||
}
|
||||
|
||||
if (gFocusMgr.childHasMouseCapture(getDragHandle()))
|
||||
{
|
||||
context_cone_opacity = lerp(context_cone_opacity, max_cone_opacity, LLSmoothInterpolation::getInterpolant(fade_time));
|
||||
}
|
||||
else
|
||||
{
|
||||
context_cone_opacity = lerp(context_cone_opacity, 0.f, LLSmoothInterpolation::getInterpolant(fade_time));
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloater::buildButtons(const Params& floater_params)
|
||||
{
|
||||
static LLUICachedControl<S32> floater_close_box_size ("UIFloaterCloseBoxSize", 0);
|
||||
|
|
|
|||
|
|
@ -413,6 +413,15 @@ protected:
|
|||
|
||||
virtual void updateTitleButtons();
|
||||
|
||||
// Draws a cone from this floater to parent floater or view (owner)
|
||||
// Modifies context_cone_opacity (interpolates according to fade time and returns new value)
|
||||
void drawConeToOwner(F32 &context_cone_opacity,
|
||||
F32 max_cone_opacity,
|
||||
LLView *owner_view,
|
||||
F32 context_fade_time = CONTEXT_CONE_FADE_TIME,
|
||||
F32 contex_cone_in_alpha = CONTEXT_CONE_IN_ALPHA,
|
||||
F32 contex_cone_out_alpha = CONTEXT_CONE_OUT_ALPHA);
|
||||
|
||||
private:
|
||||
void setForeground(BOOL b); // called only by floaterview
|
||||
void cleanupHandles(); // remove handles to dead floaters
|
||||
|
|
@ -442,6 +451,10 @@ private:
|
|||
void updateTransparency(LLView* view, ETypeTransparency transparency_type);
|
||||
|
||||
public:
|
||||
static const F32 CONTEXT_CONE_IN_ALPHA;
|
||||
static const F32 CONTEXT_CONE_OUT_ALPHA;
|
||||
static const F32 CONTEXT_CONE_FADE_TIME;
|
||||
|
||||
// Called when floater is opened, passes mKey
|
||||
// Public so external views or floaters can watch for this floater opening
|
||||
commit_signal_t mOpenSignal;
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@ BOOL LLKeyboard::keyFromString(const std::string& str, KEY *key)
|
|||
|
||||
|
||||
// static
|
||||
std::string LLKeyboard::stringFromKey(KEY key)
|
||||
std::string LLKeyboard::stringFromKey(KEY key, bool translate)
|
||||
{
|
||||
std::string res = get_if_there(sKeysToNames, key, std::string());
|
||||
if (res.empty())
|
||||
|
|
@ -338,10 +338,13 @@ std::string LLKeyboard::stringFromKey(KEY key)
|
|||
res = std::string(buffer);
|
||||
}
|
||||
|
||||
LLKeyStringTranslatorFunc *trans = gKeyboard->mStringTranslator;
|
||||
if (trans != NULL)
|
||||
if (translate)
|
||||
{
|
||||
res = trans(res.c_str());
|
||||
LLKeyStringTranslatorFunc *trans = gKeyboard->mStringTranslator;
|
||||
if (trans != NULL)
|
||||
{
|
||||
res = trans(res.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public:
|
|||
|
||||
static BOOL maskFromString(const std::string& str, MASK *mask); // False on failure
|
||||
static BOOL keyFromString(const std::string& str, KEY *key); // False on failure
|
||||
static std::string stringFromKey(KEY key);
|
||||
static std::string stringFromKey(KEY key, bool translate = true);
|
||||
static std::string stringFromAccelerator( MASK accel_mask ); // separated for convinience, returns with "+": "Shift+" or "Shift+Alt+"...
|
||||
static std::string stringFromAccelerator( MASK accel_mask, KEY key );
|
||||
|
||||
|
|
|
|||
|
|
@ -291,7 +291,6 @@ set(viewer_SOURCE_FILES
|
|||
lldonotdisturbnotificationstorage.cpp
|
||||
lldndbutton.cpp
|
||||
lldrawable.cpp
|
||||
lldrawfrustum.cpp
|
||||
lldrawpool.cpp
|
||||
lldrawpoolalpha.cpp
|
||||
lldrawpoolavatar.cpp
|
||||
|
|
@ -1054,7 +1053,6 @@ set(viewer_HEADER_FILES
|
|||
lldonotdisturbnotificationstorage.h
|
||||
lldndbutton.h
|
||||
lldrawable.h
|
||||
lldrawfrustum.h
|
||||
lldrawpool.h
|
||||
lldrawpoolalpha.h
|
||||
lldrawpoolavatar.h
|
||||
|
|
|
|||
|
|
@ -1,138 +0,0 @@
|
|||
/**
|
||||
* @file lldrawfrustum.cpp
|
||||
* @brief Implementation of lldrawfrustum
|
||||
*
|
||||
* $LicenseInfo:firstyear=2019&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2019, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "lldrawfrustum.h"
|
||||
|
||||
#include "llviewercontrol.h"
|
||||
|
||||
LLDrawFrustum::LLDrawFrustum()
|
||||
: mContextConeOpacity(0.f)
|
||||
{
|
||||
mContextConeInAlpha = gSavedSettings.getF32("ContextConeInAlpha"); // 0.0f
|
||||
mContextConeOutAlpha = gSavedSettings.getF32("ContextConeOutAlpha"); // 1.f
|
||||
mContextConeFadeTime = gSavedSettings.getF32("ContextConeFadeTime"); // 0.08f
|
||||
}
|
||||
|
||||
LLDrawFrustum::LLDrawFrustum(LLView *origin)
|
||||
: mContextConeOpacity(0.f)
|
||||
{
|
||||
mContextConeInAlpha = gSavedSettings.getF32("ContextConeInAlpha");
|
||||
mContextConeOutAlpha = gSavedSettings.getF32("ContextConeOutAlpha");
|
||||
mContextConeFadeTime = gSavedSettings.getF32("ContextConeFadeTime");
|
||||
setFrustumOrigin(origin);
|
||||
}
|
||||
|
||||
void LLDrawFrustum::setFrustumOrigin(LLView *origin)
|
||||
{
|
||||
if (origin)
|
||||
{
|
||||
mFrustumOrigin = origin->getHandle();
|
||||
}
|
||||
}
|
||||
|
||||
void LLDrawFrustum::drawFrustum(const LLRect &derived_local_rect, const LLView *root_view, const LLView *drag_handle, bool has_focus)
|
||||
{
|
||||
if (mFrustumOrigin.get())
|
||||
{
|
||||
LLView * frustumOrigin = mFrustumOrigin.get();
|
||||
LLRect origin_rect;
|
||||
frustumOrigin->localRectToOtherView(frustumOrigin->getLocalRect(), &origin_rect, root_view);
|
||||
// draw context cone connecting derived floater (ex: color picker) with view (ex: color swatch) in parent floater
|
||||
if (has_focus && frustumOrigin->isInVisibleChain() && mContextConeOpacity > 0.001f)
|
||||
{
|
||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||
LLGLEnable(GL_CULL_FACE);
|
||||
// <FS:Ansariel> Remove QUADS rendering mode
|
||||
//gGL.begin(LLRender::QUADS);
|
||||
//{
|
||||
// gGL.color4f(0.f, 0.f, 0.f, mContextConeInAlpha * mContextConeOpacity);
|
||||
// gGL.vertex2i(origin_rect.mLeft, origin_rect.mTop);
|
||||
// gGL.vertex2i(origin_rect.mRight, origin_rect.mTop);
|
||||
// gGL.color4f(0.f, 0.f, 0.f, mContextConeOutAlpha * mContextConeOpacity);
|
||||
// gGL.vertex2i(derived_local_rect.mRight, derived_local_rect.mTop);
|
||||
// gGL.vertex2i(derived_local_rect.mLeft, derived_local_rect.mTop);
|
||||
|
||||
// gGL.color4f(0.f, 0.f, 0.f, mContextConeOutAlpha * mContextConeOpacity);
|
||||
// gGL.vertex2i(derived_local_rect.mLeft, derived_local_rect.mTop);
|
||||
// gGL.vertex2i(derived_local_rect.mLeft, derived_local_rect.mBottom);
|
||||
// gGL.color4f(0.f, 0.f, 0.f, mContextConeInAlpha * mContextConeOpacity);
|
||||
// gGL.vertex2i(origin_rect.mLeft, origin_rect.mBottom);
|
||||
// gGL.vertex2i(origin_rect.mLeft, origin_rect.mTop);
|
||||
|
||||
// gGL.color4f(0.f, 0.f, 0.f, mContextConeOutAlpha * mContextConeOpacity);
|
||||
// gGL.vertex2i(derived_local_rect.mRight, derived_local_rect.mBottom);
|
||||
// gGL.vertex2i(derived_local_rect.mRight, derived_local_rect.mTop);
|
||||
// gGL.color4f(0.f, 0.f, 0.f, mContextConeInAlpha * mContextConeOpacity);
|
||||
// gGL.vertex2i(origin_rect.mRight, origin_rect.mTop);
|
||||
// gGL.vertex2i(origin_rect.mRight, origin_rect.mBottom);
|
||||
|
||||
// gGL.color4f(0.f, 0.f, 0.f, mContextConeOutAlpha * mContextConeOpacity);
|
||||
// gGL.vertex2i(derived_local_rect.mLeft, derived_local_rect.mBottom);
|
||||
// gGL.vertex2i(derived_local_rect.mRight, derived_local_rect.mBottom);
|
||||
// gGL.color4f(0.f, 0.f, 0.f, mContextConeInAlpha * mContextConeOpacity);
|
||||
// gGL.vertex2i(origin_rect.mRight, origin_rect.mBottom);
|
||||
// gGL.vertex2i(origin_rect.mLeft, origin_rect.mBottom);
|
||||
//}
|
||||
//gGL.end();
|
||||
gGL.begin(LLRender::TRIANGLE_STRIP);
|
||||
{
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeInAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(origin_rect.mLeft, origin_rect.mTop);
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeOutAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(derived_local_rect.mLeft, derived_local_rect.mTop);
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeInAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(origin_rect.mRight, origin_rect.mTop);
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeOutAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(derived_local_rect.mRight, derived_local_rect.mTop);
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeInAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(origin_rect.mRight, origin_rect.mBottom);
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeOutAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(derived_local_rect.mRight, derived_local_rect.mBottom);
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeInAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(origin_rect.mLeft, origin_rect.mBottom);
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeOutAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(derived_local_rect.mLeft, derived_local_rect.mBottom);
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeInAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(origin_rect.mLeft, origin_rect.mTop);
|
||||
gGL.color4f(0.f, 0.f, 0.f, mContextConeOutAlpha * mContextConeOpacity);
|
||||
gGL.vertex2i(derived_local_rect.mLeft, derived_local_rect.mTop);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
if (gFocusMgr.childHasMouseCapture(drag_handle))
|
||||
{
|
||||
mContextConeOpacity = lerp(mContextConeOpacity, gSavedSettings.getF32("PickerContextOpacity"), LLCriticalDamp::getInterpolant(mContextConeFadeTime));
|
||||
}
|
||||
else
|
||||
{
|
||||
mContextConeOpacity = lerp(mContextConeOpacity, 0.f, LLCriticalDamp::getInterpolant(mContextConeFadeTime));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
/**
|
||||
* @file lldrawfrustum.h
|
||||
* @brief Header file for lldrawfrustum
|
||||
*
|
||||
* $LicenseInfo:firstyear=2019&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2019, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
#ifndef LL_LLDRAWFRUSTUM_H
|
||||
#define LL_LLDRAWFRUSTUM_H
|
||||
|
||||
#include "llview.h"
|
||||
|
||||
class LLDrawFrustum
|
||||
{
|
||||
public:
|
||||
LLDrawFrustum();
|
||||
LLDrawFrustum(LLView *origin);
|
||||
protected:
|
||||
|
||||
// Draw's a cone from origin to derived view or floater
|
||||
// @derived_local_rect derived flaoter's local rect
|
||||
// @droot_view usually it is a derived floater
|
||||
// @drag_handle floater's drag handle getDragHandle()
|
||||
void drawFrustum(const LLRect &derived_local_rect, const LLView *root_view, const LLView *drag_handle, bool has_focus);
|
||||
|
||||
void setFrustumOrigin(LLView *origin);
|
||||
private:
|
||||
|
||||
LLHandle <LLView> mFrustumOrigin;
|
||||
F32 mContextConeOpacity;
|
||||
F32 mContextConeInAlpha;
|
||||
F32 mContextConeOutAlpha;
|
||||
F32 mContextConeFadeTime;
|
||||
};
|
||||
|
||||
#endif // LL_LLDRAWFRUSTUM_H
|
||||
|
||||
|
|
@ -92,7 +92,6 @@ LLFloaterAvatarPicker* LLFloaterAvatarPicker::show(select_callback_t callback,
|
|||
floater->mNearMeListComplete = FALSE;
|
||||
floater->mCloseOnSelect = closeOnSelect;
|
||||
floater->mExcludeAgentFromSearchResults = skip_agent;
|
||||
floater->setFrustumOrigin(frustumOrigin);
|
||||
|
||||
if (!closeOnSelect)
|
||||
{
|
||||
|
|
@ -103,6 +102,10 @@ LLFloaterAvatarPicker* LLFloaterAvatarPicker::show(select_callback_t callback,
|
|||
floater->getChild<LLButton>("cancel_btn")->setLabel(close_string);
|
||||
}
|
||||
|
||||
if(frustumOrigin)
|
||||
{
|
||||
floater->mFrustumOrigin = frustumOrigin->getHandle();
|
||||
}
|
||||
|
||||
return floater;
|
||||
}
|
||||
|
|
@ -113,9 +116,17 @@ LLFloaterAvatarPicker::LLFloaterAvatarPicker(const LLSD& key)
|
|||
mNumResultsReturned(0),
|
||||
mNearMeListComplete(FALSE),
|
||||
mCloseOnSelect(FALSE),
|
||||
mContextConeOpacity (0.f),
|
||||
mContextConeInAlpha(0.f),
|
||||
mContextConeOutAlpha(0.f),
|
||||
mContextConeFadeTime(0.f),
|
||||
mFindUUIDAvatarNameCacheConnection() // <FS:Ansariel> Search by UUID
|
||||
{
|
||||
mCommitCallbackRegistrar.add("Refresh.FriendList", boost::bind(&LLFloaterAvatarPicker::populateFriend, this));
|
||||
|
||||
mContextConeInAlpha = gSavedSettings.getF32("ContextConeInAlpha");
|
||||
mContextConeOutAlpha = gSavedSettings.getF32("ContextConeOutAlpha");
|
||||
mContextConeFadeTime = gSavedSettings.getF32("ContextConeFadeTime");
|
||||
}
|
||||
|
||||
BOOL LLFloaterAvatarPicker::postBuild()
|
||||
|
|
@ -507,10 +518,15 @@ void LLFloaterAvatarPicker::populateFriend()
|
|||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
void LLFloaterAvatarPicker::drawFrustum()
|
||||
{
|
||||
static LLCachedControl<F32> max_opacity(gSavedSettings, "PickerContextOpacity", 0.4f);
|
||||
drawConeToOwner(mContextConeOpacity, max_opacity, mFrustumOrigin.get(), mContextConeFadeTime, mContextConeInAlpha, mContextConeOutAlpha);
|
||||
}
|
||||
|
||||
void LLFloaterAvatarPicker::draw()
|
||||
{
|
||||
LLRect local_rect = getLocalRect();
|
||||
drawFrustum(local_rect, this, getDragHandle(), hasFocus());
|
||||
drawFrustum();
|
||||
|
||||
// sometimes it is hard to determine when Select/Ok button should be disabled (see LLAvatarActions::shareWithAvatars).
|
||||
// lets check this via mOkButtonValidateSignal callback periodically.
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
#define LLFLOATERAVATARPICKER_H
|
||||
|
||||
#include "llfloater.h"
|
||||
#include "lldrawfrustum.h"
|
||||
#include "lleventcoro.h"
|
||||
#include "llcoros.h"
|
||||
|
||||
|
|
@ -37,7 +36,7 @@
|
|||
class LLAvatarName;
|
||||
class LLScrollListCtrl;
|
||||
|
||||
class LLFloaterAvatarPicker :public LLFloater, public LLDrawFrustum
|
||||
class LLFloaterAvatarPicker :public LLFloater
|
||||
{
|
||||
public:
|
||||
typedef boost::signals2::signal<bool(const uuid_vec_t&), boost_boolean_combiner> validate_signal_t;
|
||||
|
|
@ -103,6 +102,7 @@ private:
|
|||
void setAllowMultiple(BOOL allow_multiple);
|
||||
LLScrollListCtrl* getActiveList();
|
||||
|
||||
void drawFrustum();
|
||||
virtual void draw();
|
||||
virtual BOOL handleKeyHere(KEY key, MASK mask);
|
||||
|
||||
|
|
@ -111,6 +111,11 @@ private:
|
|||
BOOL mNearMeListComplete;
|
||||
BOOL mCloseOnSelect;
|
||||
BOOL mExcludeAgentFromSearchResults;
|
||||
LLHandle <LLView> mFrustumOrigin;
|
||||
F32 mContextConeOpacity;
|
||||
F32 mContextConeInAlpha;
|
||||
F32 mContextConeOutAlpha;
|
||||
F32 mContextConeFadeTime;
|
||||
|
||||
validate_signal_t mOkButtonValidateSignal;
|
||||
select_callback_t mSelectionCallback;
|
||||
|
|
|
|||
|
|
@ -73,7 +73,6 @@
|
|||
|
||||
LLFloaterColorPicker::LLFloaterColorPicker (LLColorSwatchCtrl* swatch, BOOL show_apply_immediate )
|
||||
: LLFloater(LLSD()),
|
||||
LLDrawFrustum(swatch),
|
||||
mComponents ( 3 ),
|
||||
mMouseDownInLumRegion ( FALSE ),
|
||||
mMouseDownInHueRegion ( FALSE ),
|
||||
|
|
@ -104,7 +103,11 @@ LLFloaterColorPicker::LLFloaterColorPicker (LLColorSwatchCtrl* swatch, BOOL show
|
|||
mPaletteRegionHeight ( 40 ),
|
||||
mSwatch ( swatch ),
|
||||
mActive ( TRUE ),
|
||||
mCanApplyImmediately ( show_apply_immediate )
|
||||
mCanApplyImmediately ( show_apply_immediate ),
|
||||
mContextConeOpacity ( 0.f ),
|
||||
mContextConeInAlpha ( 0.f ),
|
||||
mContextConeOutAlpha ( 0.f ),
|
||||
mContextConeFadeTime ( 0.f )
|
||||
{
|
||||
buildFromFile ( "floater_color_picker.xml");
|
||||
|
||||
|
|
@ -116,6 +119,10 @@ LLFloaterColorPicker::LLFloaterColorPicker (LLColorSwatchCtrl* swatch, BOOL show
|
|||
mApplyImmediateCheck->setEnabled(FALSE);
|
||||
mApplyImmediateCheck->set(FALSE);
|
||||
}
|
||||
|
||||
mContextConeInAlpha = gSavedSettings.getF32("ContextConeInAlpha");
|
||||
mContextConeOutAlpha = gSavedSettings.getF32("ContextConeOutAlpha");
|
||||
mContextConeFadeTime = gSavedSettings.getF32("ContextConeFadeTime");
|
||||
}
|
||||
|
||||
LLFloaterColorPicker::~LLFloaterColorPicker()
|
||||
|
|
@ -491,10 +498,8 @@ BOOL LLFloaterColorPicker::isColorChanged()
|
|||
//
|
||||
void LLFloaterColorPicker::draw()
|
||||
{
|
||||
// draw context cone connecting color picker with color swatch in parent floater
|
||||
LLRect local_rect = getLocalRect();
|
||||
drawFrustum(local_rect, this, getDragHandle(), hasFocus());
|
||||
|
||||
static LLCachedControl<F32> max_opacity(gSavedSettings, "PickerContextOpacity", 0.4f);
|
||||
drawConeToOwner(mContextConeOpacity, max_opacity, mSwatch, mContextConeFadeTime, mContextConeInAlpha, mContextConeOutAlpha);
|
||||
|
||||
mPipetteBtn->setToggleState(LLToolMgr::getInstance()->getCurrentTool() == LLToolPipette::getInstance());
|
||||
mApplyImmediateCheck->setEnabled(mActive && mCanApplyImmediately);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
#include <vector>
|
||||
|
||||
#include "llfloater.h"
|
||||
#include "lldrawfrustum.h"
|
||||
#include "llpointer.h"
|
||||
#include "llcolorswatch.h"
|
||||
#include "llspinctrl.h"
|
||||
|
|
@ -42,7 +41,7 @@ class LLCheckBoxCtrl;
|
|||
//////////////////////////////////////////////////////////////////////////////
|
||||
// floater class
|
||||
class LLFloaterColorPicker
|
||||
: public LLFloater, public LLDrawFrustum
|
||||
: public LLFloater
|
||||
{
|
||||
public:
|
||||
LLFloaterColorPicker (LLColorSwatchCtrl* swatch, BOOL show_apply_immediate = FALSE);
|
||||
|
|
@ -64,7 +63,7 @@ class LLFloaterColorPicker
|
|||
void destroyUI ();
|
||||
void cancelSelection ();
|
||||
LLColorSwatchCtrl* getSwatch () { return mSwatch; };
|
||||
void setSwatch(LLColorSwatchCtrl* swatch) { mSwatch = swatch; setFrustumOrigin(mSwatch); }
|
||||
void setSwatch( LLColorSwatchCtrl* swatch) { mSwatch = swatch; }
|
||||
|
||||
// mutator / accessor for original RGB value
|
||||
void setOrigRgb ( F32 origRIn, F32 origGIn, F32 origBIn );
|
||||
|
|
@ -198,6 +197,11 @@ class LLFloaterColorPicker
|
|||
|
||||
LLButton* mPipetteBtn;
|
||||
|
||||
F32 mContextConeOpacity;
|
||||
F32 mContextConeInAlpha;
|
||||
F32 mContextConeOutAlpha;
|
||||
F32 mContextConeFadeTime;
|
||||
|
||||
// <FS:Zi> Add float LSL color entry widgets
|
||||
protected:
|
||||
static void onClickCopyLSL ( void* data );
|
||||
|
|
|
|||
|
|
@ -64,22 +64,37 @@ LLFloaterExperiencePicker* LLFloaterExperiencePicker::show( select_callback_t ca
|
|||
floater->mSearchPanel->filterContent();
|
||||
}
|
||||
|
||||
floater->setFrustumOrigin(frustumOrigin);
|
||||
if(frustumOrigin)
|
||||
{
|
||||
floater->mFrustumOrigin = frustumOrigin->getHandle();
|
||||
}
|
||||
|
||||
return floater;
|
||||
}
|
||||
|
||||
void LLFloaterExperiencePicker::drawFrustum()
|
||||
{
|
||||
static LLCachedControl<F32> max_opacity(gSavedSettings, "PickerContextOpacity", 0.4f);
|
||||
drawConeToOwner(mContextConeOpacity, max_opacity, mFrustumOrigin.get(), mContextConeFadeTime, mContextConeInAlpha, mContextConeOutAlpha);
|
||||
}
|
||||
|
||||
void LLFloaterExperiencePicker::draw()
|
||||
{
|
||||
LLRect local_rect = getLocalRect();
|
||||
drawFrustum(local_rect, this, getDragHandle(), hasFocus());
|
||||
drawFrustum();
|
||||
LLFloater::draw();
|
||||
}
|
||||
|
||||
LLFloaterExperiencePicker::LLFloaterExperiencePicker( const LLSD& key )
|
||||
:LLFloater(key)
|
||||
,mSearchPanel(NULL)
|
||||
,mContextConeOpacity(0.f)
|
||||
,mContextConeInAlpha(0.f)
|
||||
,mContextConeOutAlpha(0.f)
|
||||
,mContextConeFadeTime(0.f)
|
||||
{
|
||||
mContextConeInAlpha = gSavedSettings.getF32("ContextConeInAlpha");
|
||||
mContextConeOutAlpha = gSavedSettings.getF32("ContextConeOutAlpha");
|
||||
mContextConeFadeTime = gSavedSettings.getF32("ContextConeFadeTime");
|
||||
}
|
||||
|
||||
LLFloaterExperiencePicker::~LLFloaterExperiencePicker()
|
||||
|
|
|
|||
|
|
@ -28,14 +28,13 @@
|
|||
#define LL_LLFLOATEREXPERIENCEPICKER_H
|
||||
|
||||
#include "llfloater.h"
|
||||
#include "lldrawfrustum.h"
|
||||
|
||||
class LLScrollListCtrl;
|
||||
class LLLineEditor;
|
||||
class LLPanelExperiencePicker;
|
||||
|
||||
|
||||
class LLFloaterExperiencePicker : public LLFloater, public LLDrawFrustum
|
||||
class LLFloaterExperiencePicker : public LLFloater
|
||||
{
|
||||
public:
|
||||
|
||||
|
|
@ -55,6 +54,13 @@ public:
|
|||
private:
|
||||
|
||||
LLPanelExperiencePicker* mSearchPanel;
|
||||
|
||||
void drawFrustum();
|
||||
LLHandle <LLView> mFrustumOrigin;
|
||||
F32 mContextConeOpacity;
|
||||
F32 mContextConeInAlpha;
|
||||
F32 mContextConeOutAlpha;
|
||||
F32 mContextConeFadeTime;
|
||||
};
|
||||
|
||||
#endif // LL_LLFLOATEREXPERIENCEPICKER_H
|
||||
|
|
|
|||
|
|
@ -4380,21 +4380,26 @@ void LLPanelPreferenceControls::populateControlTable()
|
|||
return;
|
||||
}
|
||||
|
||||
std::string full_filename = gDirUtilp->findSkinnedFilenameBaseLang(LLDir::XUI, filename);
|
||||
LLSimpleXUIParser parser;
|
||||
LLXMLNodePtr xmlNode;
|
||||
LLScrollListCtrl::Contents contents;
|
||||
if (!parser.readXUI(full_filename, contents)
|
||||
|| !contents.validateBlock())
|
||||
if (!LLUICtrlFactory::getLayeredXMLNode(filename, xmlNode))
|
||||
{
|
||||
LL_WARNS() << "Failed to load " << filename << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
LLXUIParser parser;
|
||||
parser.readXUI(xmlNode, contents, filename);
|
||||
|
||||
if (!contents.validateBlock())
|
||||
{
|
||||
LL_INFOS() << "Failed to load" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
for (LLInitParam::ParamIterator<LLScrollListColumn::Params>::const_iterator row_it = contents.columns.begin();
|
||||
row_it != contents.columns.end();
|
||||
++row_it)
|
||||
for (LLInitParam::ParamIterator<LLScrollListColumn::Params>::const_iterator col_it = contents.columns.begin();
|
||||
col_it != contents.columns.end();
|
||||
++col_it)
|
||||
{
|
||||
pControlsTable->addColumn(*row_it);
|
||||
pControlsTable->addColumn(*col_it);
|
||||
}
|
||||
|
||||
LLScrollListCell::Params cell_params;
|
||||
|
|
|
|||
|
|
@ -517,8 +517,7 @@ void LLKeyConflictHandler::saveToSettings(bool temporary)
|
|||
}
|
||||
else
|
||||
{
|
||||
// Note: this is UI string, we might want to hardcode our own for 'fixed' use in keys.xml
|
||||
binding.key = LLKeyboard::stringFromKey(data.mKey);
|
||||
binding.key = LLKeyboard::stringFromKey(data.mKey, false /*Do not localize*/);
|
||||
}
|
||||
binding.mask = string_from_mask(data.mMask);
|
||||
if (data.mMouse == CLICK_NONE)
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ public:
|
|||
|
||||
LLKeyData getControl(const std::string &control_name, U32 data_index);
|
||||
|
||||
// localized string
|
||||
static std::string getStringFromKeyData(const LLKeyData& keydata);
|
||||
std::string getControlString(const std::string &control_name, U32 data_index);
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "llfloaterreg.h"
|
||||
#include "llfocusmgr.h"
|
||||
#include "llkeyconflict.h"
|
||||
#include "llviewercontrol.h"
|
||||
|
||||
class LLSetKeyBindDialog::Updater : public LLEventTimer
|
||||
{
|
||||
|
|
@ -70,8 +71,15 @@ LLSetKeyBindDialog::LLSetKeyBindDialog(const LLSD& key)
|
|||
: LLModalDialog(key),
|
||||
pParent(NULL),
|
||||
mKeyFilterMask(DEFAULT_KEY_FILTER),
|
||||
pUpdater(NULL)
|
||||
pUpdater(NULL),
|
||||
mContextConeOpacity(0.f),
|
||||
mContextConeInAlpha(0.f),
|
||||
mContextConeOutAlpha(0.f),
|
||||
mContextConeFadeTime(0.f)
|
||||
{
|
||||
mContextConeInAlpha = gSavedSettings.getF32("ContextConeInAlpha");
|
||||
mContextConeOutAlpha = gSavedSettings.getF32("ContextConeOutAlpha");
|
||||
mContextConeFadeTime = gSavedSettings.getF32("ContextConeFadeTime");
|
||||
}
|
||||
|
||||
LLSetKeyBindDialog::~LLSetKeyBindDialog()
|
||||
|
|
@ -119,18 +127,23 @@ void LLSetKeyBindDialog::onClose(bool app_quiting)
|
|||
LLModalDialog::onClose(app_quiting);
|
||||
}
|
||||
|
||||
void LLSetKeyBindDialog::drawFrustum()
|
||||
{
|
||||
static LLCachedControl<F32> max_opacity(gSavedSettings, "PickerContextOpacity", 0.4f);
|
||||
drawConeToOwner(mContextConeOpacity, max_opacity, mFrustumOrigin.get(), mContextConeFadeTime, mContextConeInAlpha, mContextConeOutAlpha);
|
||||
}
|
||||
|
||||
//virtual
|
||||
void LLSetKeyBindDialog::draw()
|
||||
{
|
||||
LLRect local_rect;
|
||||
drawFrustum(local_rect, this, (LLView*)getDragHandle(), hasFocus());
|
||||
drawFrustum();
|
||||
LLModalDialog::draw();
|
||||
}
|
||||
|
||||
void LLSetKeyBindDialog::setParent(LLKeyBindResponderInterface* parent, LLView* frustum_origin, U32 key_mask)
|
||||
{
|
||||
pParent = parent;
|
||||
setFrustumOrigin(frustum_origin);
|
||||
mFrustumOrigin = frustum_origin->getHandle();
|
||||
mKeyFilterMask = key_mask;
|
||||
|
||||
std::string input;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
#define LL_LLSETKEYBINDDIALOG_H
|
||||
|
||||
#include "llmodaldialog.h"
|
||||
#include "lldrawfrustum.h"
|
||||
|
||||
class LLCheckBoxCtrl;
|
||||
class LLTextBase;
|
||||
|
|
@ -54,7 +53,7 @@ public:
|
|||
virtual bool onSetKeyBind(EMouseClickType click, KEY key, MASK mask, bool all_modes) = 0;
|
||||
};
|
||||
|
||||
class LLSetKeyBindDialog : public LLModalDialog, public LLDrawFrustum
|
||||
class LLSetKeyBindDialog : public LLModalDialog
|
||||
{
|
||||
public:
|
||||
LLSetKeyBindDialog(const LLSD& key);
|
||||
|
|
@ -90,6 +89,16 @@ private:
|
|||
Updater *pUpdater;
|
||||
|
||||
static bool sRecordKeys; // for convinience and not to check instance each time
|
||||
|
||||
// drawFrustum
|
||||
private:
|
||||
void drawFrustum();
|
||||
|
||||
LLHandle <LLView> mFrustumOrigin;
|
||||
F32 mContextConeOpacity;
|
||||
F32 mContextConeInAlpha;
|
||||
F32 mContextConeOutAlpha;
|
||||
F32 mContextConeFadeTime;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ LLFloaterTexturePicker::LLFloaterTexturePicker(
|
|||
mImmediateFilterPermMask(immediate_filter_perm_mask),
|
||||
mDnDFilterPermMask(dnd_filter_perm_mask),
|
||||
mNonImmediateFilterPermMask(non_immediate_filter_perm_mask),
|
||||
mContextConeOpacity(0.f),
|
||||
mSelectedItemPinned( FALSE ),
|
||||
mCanApply(true),
|
||||
mCanPreview(true),
|
||||
|
|
@ -126,7 +127,6 @@ LLFloaterTexturePicker::LLFloaterTexturePicker(
|
|||
buildFromFile("floater_texture_ctrl.xml");
|
||||
mCanApplyImmediately = can_apply_immediately;
|
||||
setCanMinimize(FALSE);
|
||||
setFrustumOrigin(mOwner);
|
||||
|
||||
// <FS:Ansariel> Threaded filepickers
|
||||
mLocalBitmapsAddedCallbackConnection = LLLocalBitmapMgr::setBitmapsAddedCallback(boost::bind(&LLFloaterTexturePicker::onLocalBitmapsAddedCallback, this));
|
||||
|
|
@ -494,9 +494,8 @@ BOOL LLFloaterTexturePicker::postBuild()
|
|||
// virtual
|
||||
void LLFloaterTexturePicker::draw()
|
||||
{
|
||||
// draw cone of context pointing back to texture swatch
|
||||
LLRect local_rect = getLocalRect();
|
||||
drawFrustum(local_rect, this, getDragHandle(), hasFocus());
|
||||
static LLCachedControl<F32> max_opacity(gSavedSettings, "PickerContextOpacity", 0.4f);
|
||||
drawConeToOwner(mContextConeOpacity, max_opacity, mOwner);
|
||||
|
||||
updateImageStats();
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
#define LL_LLTEXTURECTRL_H
|
||||
|
||||
#include "llcoord.h"
|
||||
#include "lldrawfrustum.h"
|
||||
#include "llfiltereditor.h"
|
||||
#include "llfloater.h"
|
||||
#include "llfolderview.h"
|
||||
|
|
@ -259,7 +258,7 @@ typedef boost::function<void()> floater_close_callback;
|
|||
typedef boost::function<void(const LLUUID& asset_id)> set_image_asset_id_callback;
|
||||
typedef boost::function<void(LLPointer<LLViewerTexture> texture)> set_on_update_image_stats_callback;
|
||||
|
||||
class LLFloaterTexturePicker : public LLFloater, public LLDrawFrustum
|
||||
class LLFloaterTexturePicker : public LLFloater
|
||||
{
|
||||
public:
|
||||
LLFloaterTexturePicker(
|
||||
|
|
@ -303,7 +302,7 @@ public:
|
|||
void setActive(BOOL active);
|
||||
|
||||
LLView* getOwner() const { return mOwner; }
|
||||
void setOwner(LLView* owner) { mOwner = owner; setFrustumOrigin(owner); }
|
||||
void setOwner(LLView* owner) { mOwner = owner; }
|
||||
void stopUsingPipette();
|
||||
PermissionMask getFilterPermMask();
|
||||
|
||||
|
|
@ -381,6 +380,7 @@ protected:
|
|||
PermissionMask mNonImmediateFilterPermMask;
|
||||
BOOL mCanApplyImmediately;
|
||||
BOOL mNoCopyTextureSelected;
|
||||
F32 mContextConeOpacity;
|
||||
LLSaveFolderState mSavedFolderState;
|
||||
BOOL mSelectedItemPinned;
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
name="lst_ctrl3" />
|
||||
<rows
|
||||
enabled="false"
|
||||
name="move_actions"
|
||||
value="">
|
||||
<columns
|
||||
type="icontext"
|
||||
|
|
@ -29,6 +30,7 @@
|
|||
value="Move_Walk_Off" />
|
||||
</rows>
|
||||
<rows
|
||||
name="walk_to"
|
||||
value="walk_to">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -39,6 +41,7 @@
|
|||
value="Walk to" />
|
||||
</rows>
|
||||
<rows
|
||||
name="teleport_to"
|
||||
value="teleport_to">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -49,6 +52,7 @@
|
|||
value="Teleport to" />
|
||||
</rows>
|
||||
<rows
|
||||
name="push_forward"
|
||||
value="push_forward">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -58,6 +62,7 @@
|
|||
value="Move Forward" />
|
||||
</rows>
|
||||
<rows
|
||||
name="push_backward"
|
||||
value="push_backward">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -67,6 +72,7 @@
|
|||
value="Move Backward" />
|
||||
</rows>
|
||||
<rows
|
||||
name="turn_left"
|
||||
value="turn_left">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -76,6 +82,7 @@
|
|||
value="Left" />
|
||||
</rows>
|
||||
<rows
|
||||
name="turn_right"
|
||||
value="turn_right">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -85,6 +92,7 @@
|
|||
value="Right" />
|
||||
</rows>
|
||||
<rows
|
||||
name="slide_left"
|
||||
value="slide_left">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -94,6 +102,7 @@
|
|||
value="Strafe left" />
|
||||
</rows>
|
||||
<rows
|
||||
name="slide_right"
|
||||
value="slide_right">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -103,6 +112,7 @@
|
|||
value="Strafe right" />
|
||||
</rows>
|
||||
<rows
|
||||
name="jump"
|
||||
value="jump">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -112,6 +122,7 @@
|
|||
value="Jump/Up" />
|
||||
</rows>
|
||||
<rows
|
||||
name="push_down"
|
||||
value="push_down">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -121,6 +132,7 @@
|
|||
value="Down" />
|
||||
</rows>
|
||||
<rows
|
||||
name="run_forward"
|
||||
value="run_forward">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -130,6 +142,7 @@
|
|||
value="Run Forward" />
|
||||
</rows>
|
||||
<rows
|
||||
name="run_backward"
|
||||
value="run_backward">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -139,6 +152,7 @@
|
|||
value="Run Backward" />
|
||||
</rows>
|
||||
<rows
|
||||
name="run_left"
|
||||
value="run_left">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -148,6 +162,7 @@
|
|||
value="Run Left" />
|
||||
</rows>
|
||||
<rows
|
||||
name="run_right"
|
||||
value="run_right">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -157,6 +172,7 @@
|
|||
value="Run Right" />
|
||||
</rows>
|
||||
<rows
|
||||
name="toggle_run"
|
||||
value="toggle_run">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -166,6 +182,7 @@
|
|||
value="Toggle Run" />
|
||||
</rows>
|
||||
<rows
|
||||
name="toggle_fly"
|
||||
value="toggle_fly">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -175,6 +192,7 @@
|
|||
value="Fly/Stop flying" />
|
||||
</rows>
|
||||
<rows
|
||||
name="toggle_sit"
|
||||
value="toggle_sit">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -184,6 +202,7 @@
|
|||
value="Sit/Stand" />
|
||||
</rows>
|
||||
<rows
|
||||
name="stop_moving"
|
||||
value="stop_moving">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -202,6 +221,7 @@
|
|||
</rows>
|
||||
<rows
|
||||
enabled="false"
|
||||
name="camera_actions"
|
||||
value="">
|
||||
<columns
|
||||
type="icontext"
|
||||
|
|
@ -213,6 +233,7 @@
|
|||
value="Cam_FreeCam_Off" />
|
||||
</rows>
|
||||
<rows
|
||||
name="look_up"
|
||||
value="look_up">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -222,6 +243,7 @@
|
|||
value="Look Up" />
|
||||
</rows>
|
||||
<rows
|
||||
name="look_down"
|
||||
value="look_down">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -231,6 +253,7 @@
|
|||
value="Look Down" />
|
||||
</rows>
|
||||
<rows
|
||||
name="move_forward"
|
||||
value="move_forward">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -240,6 +263,7 @@
|
|||
value="Camera Forward" />
|
||||
</rows>
|
||||
<rows
|
||||
name="move_backward"
|
||||
value="move_backward">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -249,6 +273,7 @@
|
|||
value="Camera Backward" />
|
||||
</rows>
|
||||
<rows
|
||||
name="move_forward_fast"
|
||||
value="move_forward_fast">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -258,6 +283,7 @@
|
|||
value="Camera Forward Fast" />
|
||||
</rows>
|
||||
<rows
|
||||
name="move_backward_fast"
|
||||
value="move_backward_fast">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -267,6 +293,7 @@
|
|||
value="Camera Backward Fast" />
|
||||
</rows>
|
||||
<rows
|
||||
name="move_forward_sitting"
|
||||
value="move_forward_sitting">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -276,6 +303,7 @@
|
|||
value="Camera Forward Sitting" />
|
||||
</rows>
|
||||
<rows
|
||||
name="move_backward_sitting"
|
||||
value="move_backward_sitting">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -285,6 +313,7 @@
|
|||
value="Camera Backward Sitting" />
|
||||
</rows>
|
||||
<rows
|
||||
name="spin_over"
|
||||
value="spin_over">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -294,6 +323,7 @@
|
|||
value="Camera Spin Over" />
|
||||
</rows>
|
||||
<rows
|
||||
name="spin_under"
|
||||
value="spin_under">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -303,6 +333,7 @@
|
|||
value="Camera Spin Under" />
|
||||
</rows>
|
||||
<rows
|
||||
name="spin_over_sitting"
|
||||
value="spin_over_sitting">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -312,6 +343,7 @@
|
|||
value="Camera Spin Over" />
|
||||
</rows>
|
||||
<rows
|
||||
name="spin_under_sitting"
|
||||
value="spin_under_sitting">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -321,6 +353,7 @@
|
|||
value="Camera Spin Under" />
|
||||
</rows>
|
||||
<rows
|
||||
name="pan_up"
|
||||
value="pan_up">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -330,6 +363,7 @@
|
|||
value="Camera Pan Up" />
|
||||
</rows>
|
||||
<rows
|
||||
name="pan_down"
|
||||
value="pan_down">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -339,6 +373,7 @@
|
|||
value="Camera Pan Down" />
|
||||
</rows>
|
||||
<rows
|
||||
name="pan_left"
|
||||
value="pan_left">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -348,6 +383,7 @@
|
|||
value="Camera Pan Left" />
|
||||
</rows>
|
||||
<rows
|
||||
name="pan_right"
|
||||
value="pan_right">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -357,6 +393,7 @@
|
|||
value="Camera Pan Right" />
|
||||
</rows>
|
||||
<rows
|
||||
name="pan_in"
|
||||
value="pan_in">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -366,6 +403,7 @@
|
|||
value="Camera Pan In" />
|
||||
</rows>
|
||||
<rows
|
||||
name="pan_out"
|
||||
value="pan_out">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -375,6 +413,7 @@
|
|||
value="Camera Pan Out" />
|
||||
</rows>
|
||||
<rows
|
||||
name="spin_around_ccw"
|
||||
value="spin_around_ccw">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -385,6 +424,7 @@
|
|||
value="Counterclockwise" />
|
||||
</rows>
|
||||
<rows
|
||||
name="spin_around_cw"
|
||||
value="spin_around_cw">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -395,6 +435,7 @@
|
|||
value="Clockwise" />
|
||||
</rows>
|
||||
<rows
|
||||
name="spin_around_ccw_sitting"
|
||||
value="spin_around_ccw_sitting">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -405,6 +446,7 @@
|
|||
value="Counterclockwise Sitting" />
|
||||
</rows>
|
||||
<rows
|
||||
name="spin_around_cw_sitting"
|
||||
value="spin_around_cw_sitting">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -424,6 +466,7 @@
|
|||
</rows>
|
||||
<rows
|
||||
enabled="false"
|
||||
name="editing_actions"
|
||||
value="">
|
||||
<columns
|
||||
type="icontext"
|
||||
|
|
@ -435,6 +478,7 @@
|
|||
value="Tool_Dozer" />
|
||||
</rows>
|
||||
<rows
|
||||
name="edit_avatar_spin_ccw"
|
||||
value="edit_avatar_spin_ccw">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -445,6 +489,7 @@
|
|||
value="Counterclockwise" />
|
||||
</rows>
|
||||
<rows
|
||||
name="edit_avatar_spin_cw"
|
||||
value="edit_avatar_spin_cw">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -455,6 +500,7 @@
|
|||
value="Clockwise" />
|
||||
</rows>
|
||||
<rows
|
||||
name="edit_avatar_spin_over"
|
||||
value="edit_avatar_spin_over">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -465,6 +511,7 @@
|
|||
value="Camera Spin Over" />
|
||||
</rows>
|
||||
<rows
|
||||
name="edit_avatar_spin_under"
|
||||
value="edit_avatar_spin_under">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -475,6 +522,7 @@
|
|||
value="Camera Spin Under" />
|
||||
</rows>
|
||||
<rows
|
||||
name="edit_avatar_move_forward"
|
||||
value="edit_avatar_move_forward">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -484,6 +532,7 @@
|
|||
value="Camera Forward" />
|
||||
</rows>
|
||||
<rows
|
||||
name="edit_avatar_move_backward"
|
||||
value="edit_avatar_move_backward">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -502,6 +551,7 @@
|
|||
</rows>
|
||||
<rows
|
||||
enabled="false"
|
||||
name="media_actions"
|
||||
value="">
|
||||
<columns
|
||||
type="icontext"
|
||||
|
|
@ -513,6 +563,7 @@
|
|||
value="Audio_Press" />
|
||||
</rows>
|
||||
<rows
|
||||
name="toggle_pause_media"
|
||||
value="toggle_pause_media">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -522,6 +573,7 @@
|
|||
value="Play/Pause Media" />
|
||||
</rows>
|
||||
<rows
|
||||
name="toggle_enable_media"
|
||||
value="toggle_enable_media">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -531,6 +583,7 @@
|
|||
value="Play/Stop All Media" />
|
||||
</rows>
|
||||
<rows
|
||||
name="voice_follow_key"
|
||||
value="voice_follow_key">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -540,6 +593,7 @@
|
|||
value="Voice" />
|
||||
</rows>
|
||||
<rows
|
||||
name="toggle_voice"
|
||||
value="toggle_voice">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -549,6 +603,7 @@
|
|||
value="Toggle Voice" />
|
||||
</rows>
|
||||
<rows
|
||||
name="start_chat"
|
||||
value="start_chat">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
@ -558,6 +613,7 @@
|
|||
value="Start Chat" />
|
||||
</rows>
|
||||
<rows
|
||||
name="start_gesture"
|
||||
value="start_gesture">
|
||||
<columns
|
||||
column="lst_action"
|
||||
|
|
|
|||
Loading…
Reference in New Issue