diff options
Diffstat (limited to 'indra/newview/lljoystickbutton.h')
-rw-r--r-- | indra/newview/lljoystickbutton.h | 242 |
1 files changed, 121 insertions, 121 deletions
diff --git a/indra/newview/lljoystickbutton.h b/indra/newview/lljoystickbutton.h index b7fdf63e58..053cf0348a 100644 --- a/indra/newview/lljoystickbutton.h +++ b/indra/newview/lljoystickbutton.h @@ -1,25 +1,25 @@ -/** +/** * @file lljoystickbutton.h * @brief LLJoystick class definition * * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, 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$ */ @@ -34,159 +34,159 @@ typedef enum e_joystick_quadrant { - JQ_ORIGIN, - JQ_UP, - JQ_DOWN, - JQ_LEFT, - JQ_RIGHT + JQ_ORIGIN, + JQ_UP, + JQ_DOWN, + JQ_LEFT, + JQ_RIGHT } EJoystickQuadrant; struct QuadrantNames : public LLInitParam::TypeValuesHelper<EJoystickQuadrant, QuadrantNames> { - static void declareValues(); + static void declareValues(); }; class LLJoystick -: public LLButton +: public LLButton { public: - struct Params - : public LLInitParam::Block<Params, LLButton::Params> - { - Optional<EJoystickQuadrant, QuadrantNames> quadrant; - - Params() - : quadrant("quadrant", JQ_ORIGIN) - { - changeDefault(label, ""); - } - }; - LLJoystick(const Params&); - - virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); - virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); - virtual BOOL handleHover(S32 x, S32 y, MASK mask); - - virtual void onMouseUp() {} - virtual void onHeldDown() = 0; - F32 getElapsedHeldDownTime(); - - static void onBtnHeldDown(void *userdata); // called by llbutton callback handler - void setInitialQuadrant(EJoystickQuadrant initial) { mInitialQuadrant = initial; }; - - /** - * Checks if click location is inside joystick circle. - * - * Image containing circle is square and this square has adherent points with joystick - * circle. Make sure to change method according to shape other than square. - */ - bool pointInCircle(S32 x, S32 y) const; - bool pointInCenterDot(S32 x, S32 y, S32 radius) const; - - static std::string nameFromQuadrant(const EJoystickQuadrant quadrant); - static EJoystickQuadrant quadrantFromName(const std::string& name); - static EJoystickQuadrant selectQuadrant(LLXMLNodePtr node); + struct Params + : public LLInitParam::Block<Params, LLButton::Params> + { + Optional<EJoystickQuadrant, QuadrantNames> quadrant; + + Params() + : quadrant("quadrant", JQ_ORIGIN) + { + changeDefault(label, ""); + } + }; + LLJoystick(const Params&); + + virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); + virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); + virtual BOOL handleHover(S32 x, S32 y, MASK mask); + + virtual void onMouseUp() {} + virtual void onHeldDown() = 0; + F32 getElapsedHeldDownTime(); + + static void onBtnHeldDown(void *userdata); // called by llbutton callback handler + void setInitialQuadrant(EJoystickQuadrant initial) { mInitialQuadrant = initial; }; + + /** + * Checks if click location is inside joystick circle. + * + * Image containing circle is square and this square has adherent points with joystick + * circle. Make sure to change method according to shape other than square. + */ + bool pointInCircle(S32 x, S32 y) const; + bool pointInCenterDot(S32 x, S32 y, S32 radius) const; + + static std::string nameFromQuadrant(const EJoystickQuadrant quadrant); + static EJoystickQuadrant quadrantFromName(const std::string& name); + static EJoystickQuadrant selectQuadrant(LLXMLNodePtr node); protected: - virtual void updateSlop(); // recompute slop margins + virtual void updateSlop(); // recompute slop margins protected: - EJoystickQuadrant mInitialQuadrant; // mousedown = click in this quadrant - LLCoordGL mInitialOffset; // pretend mouse started here - LLCoordGL mLastMouse; // where was mouse on last hover event - LLCoordGL mFirstMouse; // when mouse clicked, where was it - S32 mVertSlopNear; // where the slop regions end - S32 mVertSlopFar; // where the slop regions end - S32 mHorizSlopNear; // where the slop regions end - S32 mHorizSlopFar; // where the slop regions end - BOOL mHeldDown; - LLFrameTimer mHeldDownTimer; + EJoystickQuadrant mInitialQuadrant; // mousedown = click in this quadrant + LLCoordGL mInitialOffset; // pretend mouse started here + LLCoordGL mLastMouse; // where was mouse on last hover event + LLCoordGL mFirstMouse; // when mouse clicked, where was it + S32 mVertSlopNear; // where the slop regions end + S32 mVertSlopFar; // where the slop regions end + S32 mHorizSlopNear; // where the slop regions end + S32 mHorizSlopFar; // where the slop regions end + BOOL mHeldDown; + LLFrameTimer mHeldDownTimer; }; // Turn agent left and right, move forward and back class LLJoystickAgentTurn -: public LLJoystick +: public LLJoystick { public: - struct Params : public LLJoystick::Params {}; - LLJoystickAgentTurn(const Params& p) : LLJoystick(p) {} - virtual void onHeldDown(); + struct Params : public LLJoystick::Params {}; + LLJoystickAgentTurn(const Params& p) : LLJoystick(p) {} + virtual void onHeldDown(); }; // Slide left and right, move forward and back class LLJoystickAgentSlide -: public LLJoystick +: public LLJoystick { public: - struct Params : public LLJoystick::Params {}; - LLJoystickAgentSlide(const Params& p) : LLJoystick(p) {} + struct Params : public LLJoystick::Params {}; + LLJoystickAgentSlide(const Params& p) : LLJoystick(p) {} - virtual void onHeldDown(); - virtual void onMouseUp(); + virtual void onHeldDown(); + virtual void onMouseUp(); }; // Rotate camera around the focus point class LLJoystickCameraRotate -: public LLJoystick +: public LLJoystick { public: - struct Params - : public LLInitParam::Block<Params, LLJoystick::Params> - { - Params() - { - changeDefault(held_down_delay.seconds, 0.0); - } - }; - - LLJoystickCameraRotate(const LLJoystickCameraRotate::Params&); - - virtual void setToggleState( BOOL left, BOOL top, BOOL right, BOOL bottom ); - - virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); - virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); - virtual BOOL handleHover(S32 x, S32 y, MASK mask); - virtual void onHeldDown(); - virtual void resetJoystickCamera(); - virtual void draw(); + struct Params + : public LLInitParam::Block<Params, LLJoystick::Params> + { + Params() + { + changeDefault(held_down_delay.seconds, 0.0); + } + }; + + LLJoystickCameraRotate(const LLJoystickCameraRotate::Params&); + + virtual void setToggleState( BOOL left, BOOL top, BOOL right, BOOL bottom ); + + virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); + virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); + virtual BOOL handleHover(S32 x, S32 y, MASK mask); + virtual void onHeldDown(); + virtual void resetJoystickCamera(); + virtual void draw(); protected: - F32 getOrbitRate(); - virtual void updateSlop(); - void drawRotatedImage( LLPointer<LLUIImage> image, S32 rotations ); + F32 getOrbitRate(); + virtual void updateSlop(); + void drawRotatedImage( LLPointer<LLUIImage> image, S32 rotations ); protected: - BOOL mInLeft; - BOOL mInTop; - BOOL mInRight; - BOOL mInBottom; - BOOL mInCenter; + BOOL mInLeft; + BOOL mInTop; + BOOL mInRight; + BOOL mInBottom; + BOOL mInCenter; - std::string mCenterImageName; + std::string mCenterImageName; }; // Track the camera focus point forward/backward and side to side class LLJoystickCameraTrack -: public LLJoystickCameraRotate +: public LLJoystickCameraRotate { public: - struct Params - : public LLInitParam::Block<Params, LLJoystickCameraRotate::Params> - { - Params(); - }; - - LLJoystickCameraTrack(const LLJoystickCameraTrack::Params&); - virtual void onHeldDown(); - virtual void resetJoystickCamera(); + struct Params + : public LLInitParam::Block<Params, LLJoystickCameraRotate::Params> + { + Params(); + }; + + LLJoystickCameraTrack(const LLJoystickCameraTrack::Params&); + virtual void onHeldDown(); + virtual void resetJoystickCamera(); }; -// +// class LLJoystickQuaternion : public LLJoystick { @@ -199,25 +199,25 @@ public: LLJoystickQuaternion(const LLJoystickQuaternion::Params &); - virtual void setToggleState(BOOL left, BOOL top, BOOL right, BOOL bottom); + virtual void setToggleState(BOOL left, BOOL top, BOOL right, BOOL bottom); - virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); - virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); - virtual void onHeldDown(); - virtual void draw(); + virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); + virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); + virtual void onHeldDown(); + virtual void draw(); void setRotation(const LLQuaternion &value); LLQuaternion getRotation() const; protected: - F32 getOrbitRate(); - virtual void updateSlop(); - void drawRotatedImage(LLPointer<LLUIImage> image, S32 rotations); - - BOOL mInLeft; - BOOL mInTop; - BOOL mInRight; - BOOL mInBottom; + F32 getOrbitRate(); + virtual void updateSlop(); + void drawRotatedImage(LLPointer<LLUIImage> image, S32 rotations); + + BOOL mInLeft; + BOOL mInTop; + BOOL mInRight; + BOOL mInBottom; S32 mXAxisIndex; S32 mYAxisIndex; |