ToolPie Frosting

Easiest read with Copy/Move detection and no space changes
Adds debug settings: DragAndDropDistanceThreshold, EnableGrab, ClickToWalk, ClickActionBuyEnabled, ClickActionPayEnabled
ClickToWalk was redefaulted to false, though if you are curious enough to read this, you should give it a try, it takes some getting used to but it might be fun.
This commit is contained in:
Lirusaito
2013-03-29 03:56:26 -04:00
parent 126eeb9244
commit 401ea93b57
5 changed files with 750 additions and 343 deletions

View File

@@ -5537,6 +5537,28 @@ This should be as low as possible, but too low may break functionality</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>ClickActionBuyEnabled</key>
<map>
<key>Comment</key>
<string>Enable click to buy actions in tool pie menu</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>ClickActionPayEnabled</key>
<map>
<key>Comment</key>
<string>Enable click to pay actions in tool pie menu</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>DoubleClickAutoPilot</key>
<map>
<key>Comment</key>
@@ -5581,10 +5603,21 @@ This should be as low as possible, but too low may break functionality</string>
<key>Value</key>
<real>0.10000000149</real>
</map>
<key>DragAndDropDistanceThreshold</key>
<map>
<key>Comment</key>
<string>Number of pixels that mouse should move before triggering drag and drop mode</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>3</integer>
</map>
<key>DropShadowButton</key>
<map>
<key>Comment</key>
<string>Drop shadow width for buttons (pixels)</string>
<string>Drop shadow width for buttons (pixels)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -5691,6 +5724,17 @@ This should be as low as possible, but too low may break functionality</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>EnableGrab</key>
<map>
<key>Comment</key>
<string>Use Ctrl+mouse to grab and manipulate objects</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>EnableGestureSounds</key>
<map>
<key>Comment</key>
@@ -16404,6 +16448,17 @@ This should be as low as possible, but too low may break functionality</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>ClickToWalk</key>
<map>
<key>Comment</key>
<string>Click in world to walk to location</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>SimulateFBOFailure</key>
<map>
<key>Comment</key>

View File

@@ -713,8 +713,14 @@ void LLAgent::setFlying(BOOL fly)
//-----------------------------------------------------------------------------
// toggleFlying()
//-----------------------------------------------------------------------------
// static
void LLAgent::toggleFlying()
{
if ( gAgent.mAutoPilot )
{
LLToolPie::instance().stopClickToWalk();
}
BOOL fly = !gAgent.getFlying();
gAgent.setFlying( fly );
@@ -1380,8 +1386,8 @@ void LLAgent::setAFK()
//-----------------------------------------------------------------------------
void LLAgent::clearAFK()
{
if (gSavedSettings.getBOOL("FakeAway")) return;
gAwayTriggerTimer.reset();
if (gSavedSettings.getBOOL("FakeAway") == TRUE) return;
// Gods can sometimes get into away state (via gestures)
// without setting the appropriate control flag. JC
@@ -1877,8 +1883,7 @@ BOOL LLAgent::needsRenderHead()
//-----------------------------------------------------------------------------
void LLAgent::startTyping()
{
if (gSavedSettings.getBOOL("FakeAway"))
return;
if (gSavedSettings.getBOOL("FakeAway")) return;
mTypingTimer.reset();
if (getRenderState() & AGENT_STATE_TYPING)

File diff suppressed because it is too large Load Diff

View File

@@ -3,10 +3,9 @@
* @brief LLToolPie class header file
*
* $LicenseInfo:firstyear=2001&license=viewergpl$
*
* Second Life Viewer Source Code
* Copyright (c) 2001-2009, Linden Research, Inc.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement
@@ -42,9 +41,11 @@ class LLObjectSelection;
class LLToolPie : public LLTool, public LLSingleton<LLToolPie>
{
LOG_CLASS(LLToolPie);
public:
LLToolPie( );
// Virtual functions inherited from LLMouseHandler
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
@@ -58,36 +59,61 @@ public:
virtual void stopEditing();
virtual void onMouseCaptureLost();
virtual void handleSelect();
virtual void handleDeselect();
virtual LLTool* getOverrideTool(MASK mask);
LLPickInfo& getPick() { return mPick; }
// [RLVa:KB] - Checked: 2010-03-06 (RLVa-1.2.0c) | Added: RLVa-1.2.0a
LLPickInfo& getHoverPick() { return mHoverPick; }
// [/RLVa:KB]
U8 getClickAction() { return mClickAction; }
LLViewerObject* getClickActionObject() { return mClickActionObject; }
LLObjectSelection* getLeftClickSelection() { return (LLObjectSelection*)mLeftClickSelection; }
void resetSelection();
void walkToClickedLocation();
void blockClickToWalk() { mBlockClickToWalk = true; }
void stopClickToWalk();
static void leftMouseCallback(const LLPickInfo& pick_info);
static void rightMouseCallback(const LLPickInfo& pick_info);
static void selectionPropertiesReceived();
private:
BOOL outsideSlop(S32 x, S32 y, S32 start_x, S32 start_y);
BOOL pickAndShowMenu(BOOL edit_menu);
BOOL useClickAction(BOOL always_show, MASK mask, LLViewerObject* object,
LLViewerObject* parent);
BOOL outsideSlop (S32 x, S32 y, S32 start_x, S32 start_y);
BOOL handleLeftClickPick();
BOOL handleRightClickPick();
BOOL useClickAction (MASK mask, LLViewerObject* object,LLViewerObject* parent);
void showVisualContextMenuEffect();
ECursorType cursorFromObject(LLViewerObject* object);
bool handleMediaClick(const LLPickInfo& info);
bool handleMediaHover(const LLPickInfo& info);
bool handleMediaMouseUp();
void steerCameraWithMouse(S32 x, S32 y);
void startCameraSteering();
void stopCameraSteering();
bool inCameraSteerMode();
private:
BOOL mPieMouseButtonDown;
BOOL mGrabMouseButtonDown;
BOOL mMouseOutsideSlop; // for this drag, has mouse moved outside slop region
bool mMouseButtonDown;
bool mMouseOutsideSlop; // for this drag, has mouse moved outside slop region
S32 mMouseDownX;
S32 mMouseDownY;
S32 mMouseSteerX;
S32 mMouseSteerY;
bool mClockwise;
bool mBlockClickToWalk;
LLUUID mMediaMouseCaptureID;
LLPickInfo mPick;
LLPickInfo mHoverPick;
LLPickInfo mSteerPick;
LLPointer<LLViewerObject> mClickActionObject;
U8 mClickAction;
LLSafeHandle<LLObjectSelection> mLeftClickSelection;
BOOL mClickActionBuyEnabled;
BOOL mClickActionPayEnabled;
};
#endif

View File

@@ -8810,6 +8810,7 @@ BOOL LLViewerMenuHolderGL::hideMenus()
if (LLMenuHolderGL::hideMenus())
{
LLToolPie::instance().blockClickToWalk();
handled = TRUE;
}