summaryrefslogtreecommitdiff
path: root/indra/newview/llteleporthistory.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llteleporthistory.h')
-rw-r--r--indra/newview/llteleporthistory.h362
1 files changed, 181 insertions, 181 deletions
diff --git a/indra/newview/llteleporthistory.h b/indra/newview/llteleporthistory.h
index db0ccdda59..b534b136b0 100644
--- a/indra/newview/llteleporthistory.h
+++ b/indra/newview/llteleporthistory.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file llteleporthistory.h
* @brief Teleport history
*
* $LicenseInfo:firstyear=2009&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$
*/
@@ -38,201 +38,201 @@
/**
* An item of the teleport history.
- *
+ *
* Contains the location's global coordinates and its title.
*/
class LLTeleportHistoryItem
{
public:
- LLTeleportHistoryItem()
- {}
-
- LLTeleportHistoryItem(std::string title, LLVector3d global_pos)
- : mTitle(title), mGlobalPos(global_pos)
- {}
-
- /**
- * @return title formatted according to the current value of the
- * NavBarShowCoordinates setting.
- */
- const std::string& getTitle() const;
-
- std::string mTitle; // human-readable location title
- std::string mFullTitle; // human-readable location title including coordinates
- LLVector3d mGlobalPos; // global position
- LLUUID mRegionID; // region ID for getting the region info
+ LLTeleportHistoryItem()
+ {}
+
+ LLTeleportHistoryItem(std::string title, LLVector3d global_pos)
+ : mTitle(title), mGlobalPos(global_pos)
+ {}
+
+ /**
+ * @return title formatted according to the current value of the
+ * NavBarShowCoordinates setting.
+ */
+ const std::string& getTitle() const;
+
+ std::string mTitle; // human-readable location title
+ std::string mFullTitle; // human-readable location title including coordinates
+ LLVector3d mGlobalPos; // global position
+ LLUUID mRegionID; // region ID for getting the region info
};
/**
* Teleport history.
- *
+ *
* Along with the navigation bar "Back" and "Forward" buttons
* implements web browser-like navigation functionality.
- *
+ *
* @see LLNavigationBar
*/
class LLTeleportHistory: public LLSingleton<LLTeleportHistory>
{
- LLSINGLETON(LLTeleportHistory);
- ~LLTeleportHistory();
- LOG_CLASS(LLTeleportHistory);
+ LLSINGLETON(LLTeleportHistory);
+ ~LLTeleportHistory();
+ LOG_CLASS(LLTeleportHistory);
public:
-
- typedef std::vector<LLTeleportHistoryItem> slurl_list_t;
- typedef boost::function<void()> history_callback_t;
- typedef boost::signals2::signal<void()> history_signal_t;
-
- /**
- * Go back in the history.
- */
- void goBack() { goToItem(getCurrentItemIndex() - 1); }
-
- /**
- * Go forward in the history.
- */
- void goForward() { goToItem(getCurrentItemIndex() + 1); }
-
- /**
- * Go to specific item in the history.
- *
- * The item is specified by its index (starting from 0).
- */
- void goToItem(int idx);
-
- /**
- * @return history items.
- */
- const slurl_list_t& getItems() const { return mItems; }
- void purgeItems();
- /**
- * Is the history empty?
- *
- * History containing single item is treated as empty
- * because the item points to the current location.
- */
- bool isEmpty() const { return mItems.size() <= 1; }
-
- /**
- * Get index of the current location in the history.
- */
- int getCurrentItemIndex() const { return mCurrentItem; }
- /**
- * Set a callback to be called upon history changes.
- *
- * Multiple callbacks can be set.
- */
- boost::signals2::connection setHistoryChangedCallback(history_callback_t cb);
-
- /**
- * Save history to a file so that we can restore it on startup.
- *
- * @see load()
- */
- void dump() const;
- /**
- * Process login complete event. Basically put current location into history
- */
- void handleLoginComplete();
+
+ typedef std::vector<LLTeleportHistoryItem> slurl_list_t;
+ typedef boost::function<void()> history_callback_t;
+ typedef boost::signals2::signal<void()> history_signal_t;
+
+ /**
+ * Go back in the history.
+ */
+ void goBack() { goToItem(getCurrentItemIndex() - 1); }
+
+ /**
+ * Go forward in the history.
+ */
+ void goForward() { goToItem(getCurrentItemIndex() + 1); }
+
+ /**
+ * Go to specific item in the history.
+ *
+ * The item is specified by its index (starting from 0).
+ */
+ void goToItem(int idx);
+
+ /**
+ * @return history items.
+ */
+ const slurl_list_t& getItems() const { return mItems; }
+ void purgeItems();
+ /**
+ * Is the history empty?
+ *
+ * History containing single item is treated as empty
+ * because the item points to the current location.
+ */
+ bool isEmpty() const { return mItems.size() <= 1; }
+
+ /**
+ * Get index of the current location in the history.
+ */
+ int getCurrentItemIndex() const { return mCurrentItem; }
+ /**
+ * Set a callback to be called upon history changes.
+ *
+ * Multiple callbacks can be set.
+ */
+ boost::signals2::connection setHistoryChangedCallback(history_callback_t cb);
+
+ /**
+ * Save history to a file so that we can restore it on startup.
+ *
+ * @see load()
+ */
+ void dump() const;
+ /**
+ * Process login complete event. Basically put current location into history
+ */
+ void handleLoginComplete();
private:
-
- /**
- * Called by when a teleport fails.
- *
- * Called via callback set on the LLViewerParcelMgr "teleport failed" signal.
- *
- * @see mTeleportFailedConn
- */
- void onTeleportFailed();
-
- /**
- * Update current location.
- *
- * @param new_pos Current agent global position. After local teleports we
- * cannot rely on gAgent.getPositionGlobal(),
- * so the new position gets passed explicitly.
- *
- * Called when a teleport finishes.
- * Called via callback set on the LLViewerParcelMgr "teleport finished" signal.
- *
- * Takes mRequestedItem into consideration: if it's not -1
- * (i.e. user is teleporting to an arbitrary location, not to a history item)
- * we purge forward items and append a new one, making it current. Otherwise
- * we just modify mCurrentItem.
- *
- * @see mRequestedItem
- * @see mGotInitialUpdate
- */
- void updateCurrentLocation(const LLVector3d& new_pos);
-
- /**
- * Invokes the "history changed" callback(s).
- */
- void onHistoryChanged();
-
- /**
- * Format current agent location in a human-readable manner.
- *
- * @param full whether to include coordinates
- * @param local_pos_override hack: see description of updateCurrentLocation()
- * @return
- */
- static std::string getCurrentLocationTitle(bool full, const LLVector3& local_pos_override);
-
- /**
- * Actually, the teleport history.
- */
- slurl_list_t mItems;
-
- /**
- * Current position within the history.
- */
- int mCurrentItem;
-
- /**
- * Requested position within the history.
- *
- * When a teleport succeeds, this is checked by updateCurrentLocation() to tell
- * if this is a teleport within the history (mRequestedItem >=0) or not (-1).
- *
- * Set by goToItem(); reset by onTeleportFailed() (if teleport fails).
- *
- * @see goToItem()
- * @see updateCurrentLocation()
- */
- int mRequestedItem;
-
- /**
- * Have we received the initial location update?
- *
- * @see updateCurrentLocation()
- */
- bool mGotInitialUpdate;
-
- LLTeleportHistoryStorage* mTeleportHistoryStorage;
-
- /**
- * Signal emitted when the history gets changed.
- *
- * Invokes callbacks set with setHistoryChangedCallback().
- */
- history_signal_t mHistoryChangedSignal;
-
- /**
- * Teleport success notification connection.
- *
- * Using this connection we get notified when a teleport finishes
- * or initial location update occurs.
- */
- boost::signals2::connection mTeleportFinishedConn;
-
- /**
- * Teleport failure notification connection.
- *
- * Using this connection we get notified when a teleport fails.
- */
- boost::signals2::connection mTeleportFailedConn;
+
+ /**
+ * Called by when a teleport fails.
+ *
+ * Called via callback set on the LLViewerParcelMgr "teleport failed" signal.
+ *
+ * @see mTeleportFailedConn
+ */
+ void onTeleportFailed();
+
+ /**
+ * Update current location.
+ *
+ * @param new_pos Current agent global position. After local teleports we
+ * cannot rely on gAgent.getPositionGlobal(),
+ * so the new position gets passed explicitly.
+ *
+ * Called when a teleport finishes.
+ * Called via callback set on the LLViewerParcelMgr "teleport finished" signal.
+ *
+ * Takes mRequestedItem into consideration: if it's not -1
+ * (i.e. user is teleporting to an arbitrary location, not to a history item)
+ * we purge forward items and append a new one, making it current. Otherwise
+ * we just modify mCurrentItem.
+ *
+ * @see mRequestedItem
+ * @see mGotInitialUpdate
+ */
+ void updateCurrentLocation(const LLVector3d& new_pos);
+
+ /**
+ * Invokes the "history changed" callback(s).
+ */
+ void onHistoryChanged();
+
+ /**
+ * Format current agent location in a human-readable manner.
+ *
+ * @param full whether to include coordinates
+ * @param local_pos_override hack: see description of updateCurrentLocation()
+ * @return
+ */
+ static std::string getCurrentLocationTitle(bool full, const LLVector3& local_pos_override);
+
+ /**
+ * Actually, the teleport history.
+ */
+ slurl_list_t mItems;
+
+ /**
+ * Current position within the history.
+ */
+ int mCurrentItem;
+
+ /**
+ * Requested position within the history.
+ *
+ * When a teleport succeeds, this is checked by updateCurrentLocation() to tell
+ * if this is a teleport within the history (mRequestedItem >=0) or not (-1).
+ *
+ * Set by goToItem(); reset by onTeleportFailed() (if teleport fails).
+ *
+ * @see goToItem()
+ * @see updateCurrentLocation()
+ */
+ int mRequestedItem;
+
+ /**
+ * Have we received the initial location update?
+ *
+ * @see updateCurrentLocation()
+ */
+ bool mGotInitialUpdate;
+
+ LLTeleportHistoryStorage* mTeleportHistoryStorage;
+
+ /**
+ * Signal emitted when the history gets changed.
+ *
+ * Invokes callbacks set with setHistoryChangedCallback().
+ */
+ history_signal_t mHistoryChangedSignal;
+
+ /**
+ * Teleport success notification connection.
+ *
+ * Using this connection we get notified when a teleport finishes
+ * or initial location update occurs.
+ */
+ boost::signals2::connection mTeleportFinishedConn;
+
+ /**
+ * Teleport failure notification connection.
+ *
+ * Using this connection we get notified when a teleport fails.
+ */
+ boost::signals2::connection mTeleportFailedConn;
};
#endif