00001 00032 #ifndef LL_LLPANELPLACE_H 00033 #define LL_LLPANELPLACE_H 00034 00035 #include "llpanel.h" 00036 00037 #include "v3dmath.h" 00038 #include "lluuid.h" 00039 00040 class LLButton; 00041 class LLTextBox; 00042 class LLLineEditor; 00043 class LLTextEditor; 00044 class LLTextureCtrl; 00045 class LLMessageSystem; 00046 class LLInventoryItem; 00047 00048 class LLPanelPlace : public LLPanel 00049 { 00050 public: 00051 LLPanelPlace(); 00052 /*virtual*/ ~LLPanelPlace(); 00053 00054 /*virtual*/ BOOL postBuild(); 00055 00056 void resetLocation(); 00057 // Ignore all old location information, useful if you are 00058 // recycling an existing dialog and need to clear it. 00059 00060 void setParcelID(const LLUUID& parcel_id); 00061 // Sends a request for data about the given parcel, which will 00062 // only update the location if there is none already available. 00063 00064 void displayItemInfo(const LLInventoryItem* pItem); 00065 void setRegionID(const LLUUID& region_id) { mRegionID = region_id; } 00066 void setSnapshot(const LLUUID& snapshot_id); 00067 void setLocationString(const std::string& location); 00068 void setErrorStatus(U32 status, const std::string& reason); 00069 00070 void sendParcelInfoRequest(); 00071 void displayParcelInfo(const LLVector3& pos_region, 00072 const LLUUID& landmark_asset_id, 00073 const LLUUID& region_id, 00074 const LLVector3d& pos_global); 00075 static void processParcelInfoReply(LLMessageSystem* msg, void**); 00076 00077 protected: 00078 static void onClickTeleport(void* data); 00079 static void onClickMap(void* data); 00080 //static void onClickLandmark(void* data); 00081 static void onClickAuction(void* data); 00082 00083 // Go to auction web page if user clicked OK 00084 static void callbackAuctionWebPage(S32 option, void* data); 00085 00086 protected: 00087 LLUUID mParcelID; 00088 LLUUID mRequestedID; 00089 LLUUID mRegionID; 00090 LLUUID mLandmarkAssetID; 00091 // Absolute position of the location for teleport, may not 00092 // be available (hence zero) 00093 LLVector3d mPosGlobal; 00094 // Region-local position for teleport, always available. 00095 LLVector3 mPosRegion; 00096 // Zero if this is not an auction 00097 S32 mAuctionID; 00098 00099 LLTextureCtrl* mSnapshotCtrl; 00100 00101 LLTextBox* mNameEditor; 00102 LLTextEditor* mDescEditor; 00103 LLTextBox* mInfoEditor; 00104 LLTextBox* mLocationEditor; 00105 00106 LLButton* mTeleportBtn; 00107 LLButton* mMapBtn; 00108 //LLButton* mLandmarkBtn; 00109 LLButton* mAuctionBtn; 00110 00111 typedef std::list<LLPanelPlace*> panel_list_t; 00112 static panel_list_t sAllPanels; 00113 }; 00114 00115 #endif // LL_LLPANELPLACE_H