From 38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4 Mon Sep 17 00:00:00 2001
From: Jacek Antonelli
Date: Fri, 15 Aug 2008 23:44:46 -0500
Subject: Second Life viewer sources 1.13.2.12

---
 linden/indra/newview/llfloaterworldmap.h | 189 +++++++++++++++++++++++++++++++
 1 file changed, 189 insertions(+)
 create mode 100644 linden/indra/newview/llfloaterworldmap.h

(limited to 'linden/indra/newview/llfloaterworldmap.h')

diff --git a/linden/indra/newview/llfloaterworldmap.h b/linden/indra/newview/llfloaterworldmap.h
new file mode 100644
index 0000000..67386c9
--- /dev/null
+++ b/linden/indra/newview/llfloaterworldmap.h
@@ -0,0 +1,189 @@
+/** 
+ * @file llfloaterworldmap.h
+ * @brief LLFloaterWorldMap class definition
+ *
+ * Copyright (c) 2003-2007, Linden Research, Inc.
+ * 
+ * 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
+ * ("Other License"), formally executed by you and Linden Lab.  Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlife.com/developers/opensource/gplv2
+ * 
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlife.com/developers/opensource/flossexception
+ * 
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ * 
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ */
+
+/*
+ * Map of the entire world, with multiple background images,
+ * avatar tracking, teleportation by double-click, etc.
+ */
+
+#ifndef LL_LLFLOATERWORLDMAP_H
+#define LL_LLFLOATERWORLDMAP_H
+
+#include "lldarray.h"
+#include "llfloater.h"
+#include "llhudtext.h"
+#include "llmapimagetype.h"
+#include "lltracker.h"
+
+class LLEventInfo;
+class LLFriendObserver;
+class LLInventoryModel;
+class LLInventoryObserver;
+class LLItemInfo;
+class LLTabContainer;
+class LLWorldMapView;
+
+class LLFloaterWorldMap : public LLFloater
+{
+public:
+	LLFloaterWorldMap();
+	virtual ~LLFloaterWorldMap();
+
+	static void *createWorldMapView(void* data);
+	BOOL postBuild();
+
+	virtual void onClose(bool app_quitting);
+
+	static void show(void*, BOOL center_on_target );
+	static void reloadIcons(void*);
+	static void toggle(void*);
+	static void hide(void*); 
+
+	virtual void	reshape( S32 width, S32 height, BOOL called_from_parent = TRUE );
+	virtual BOOL	handleHover(S32 x, S32 y, MASK mask);
+	virtual BOOL	handleScrollWheel(S32 x, S32 y, S32 clicks);
+	virtual void	setVisible(BOOL visible);
+	virtual void	draw();
+
+	// methods for dealing with inventory. The observe() method is
+	// called during program startup. inventoryUpdated() will be
+	// called by a helper object when an interesting change has
+	// occurred.
+	void observeInventory(LLInventoryModel* inventory);
+	void inventoryChanged();
+
+	// Calls for dealing with changes in friendship
+	void observeFriends();
+	void friendsChanged();
+
+	// tracking methods
+	void			trackAvatar( const LLUUID& avatar_id, const LLString& name );
+	void			trackLandmark( const LLUUID& landmark_item_id ); 
+	void			trackLocation(const LLVector3d& pos);
+	void			trackEvent(const LLItemInfo &event_info);
+	void			trackGenericItem(const LLItemInfo &item);
+	void 			trackURL(const LLString& region_name, S32 x_coord, S32 y_coord, S32 z_coord);
+
+	static const LLUUID& getHomeID() { return sHomeID; }
+
+	// A z_attenuation of 0.0f collapses the distance into the X-Y plane
+	F32 			getDistanceToDestination(const LLVector3d& pos_global, F32 z_attenuation = 0.5f) const;
+
+	void 			clearLocationSelection(BOOL clear_ui = FALSE);
+	void 			clearAvatarSelection(BOOL clear_ui = FALSE);
+	void 			clearLandmarkSelection(BOOL clear_ui = FALSE);
+
+	// Adjust the maximally zoomed out limit of the zoom slider so you can
+	// see the whole world, plus a little.
+	void			adjustZoomSliderBounds();
+
+	// Catch changes in the sim list
+	void			updateSims(bool found_null_sim);
+
+protected:
+	static void		onPanBtn( void* userdata );
+
+	static void		onGoHome(void* data);
+
+	static void		onLandmarkComboPrearrange( LLUICtrl* ctrl, void* data );
+	static void		onLandmarkComboCommit( LLUICtrl* ctrl, void* data );
+	
+	static void		onAvatarComboPrearrange( LLUICtrl* ctrl, void* data );
+	static void		onAvatarComboCommit( LLUICtrl* ctrl, void* data );
+
+	static void		onCommitBackground(void* data, bool from_click);
+
+	static void		onClearBtn(void*);
+	static void		onFlyBtn(void*);
+	static void		onTeleportBtn(void*);
+	static void		onShowTargetBtn(void*);
+	static void		onShowAgentBtn(void*);
+	static void		onCopySLURL(void*);
+
+	static void onCheckEvents(LLUICtrl* ctrl, void*);
+
+	void			centerOnTarget(BOOL animate);
+	void			updateLocation();
+
+	// fly to the tracked item, if there is one
+	void			fly();
+
+	// teleport to the tracked item, if there is one
+	void			teleport();
+
+	void			buildLandmarkIDLists();
+	static void		onGoToLandmarkDialog(S32 option,void* userdata);
+	void			flyToLandmark();
+	void			teleportToLandmark();
+	void 			setLandmarkVisited();
+
+	void			buildAvatarIDList();
+	void			flyToAvatar();
+	void			teleportToAvatar();
+
+	static void		updateSearchEnabled( LLUICtrl* ctrl, void* userdata );
+	static void		onLocationCommit( void* userdata );
+	static void		onCommitLocation( LLUICtrl* ctrl, void* userdata );
+	static void		onCommitSearchResult( LLUICtrl* ctrl, void* userdata );
+
+	void 			cacheLandmarkPosition();
+
+protected:
+	LLTabContainerCommon*	mTabs;
+
+	// Sets gMapScale, in pixels per region
+	F32						mCurZoomVal;
+	LLFrameTimer			mZoomTimer;
+
+	LLDynamicArray<LLUUID>	mLandmarkAssetIDList;
+	LLDynamicArray<LLUUID>	mLandmarkItemIDList;
+	BOOL 					mHasLandmarkPosition;
+
+	static const LLUUID	sHomeID;
+
+	LLInventoryModel* mInventory;
+	LLInventoryObserver* mInventoryObserver;
+	LLFriendObserver* mFriendObserver;
+
+	LLString				mCompletingRegionName;
+	LLString				mLastRegionName;
+	BOOL					mWaitingForTracker;
+	BOOL					mExactMatch;
+
+	BOOL					mIsClosing;
+
+	LLVector3d				mTrackedLocation;
+	LLTracker::ETrackingStatus mTrackedStatus;
+	LLString				mTrackedSimName;
+	LLString				mTrackedAvatarName;
+	LLString				mSLURL;
+};
+
+extern LLFloaterWorldMap* gFloaterWorldMap;
+
+#endif
+
-- 
cgit v1.1