diff options
Diffstat (limited to 'indra/newview/llpanelclassified.h')
-rw-r--r-- | indra/newview/llpanelclassified.h | 166 |
1 files changed, 160 insertions, 6 deletions
diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h index 7d2b1ae571..eaf652ca06 100644 --- a/indra/newview/llpanelclassified.h +++ b/indra/newview/llpanelclassified.h @@ -33,20 +33,174 @@ // Display of a classified used both for the global view in the // Find directory, and also for each individual user's classified in their // profile. + #ifndef LL_LLPANELCLASSIFIED_H #define LL_LLPANELCLASSIFIED_H #include "llavatarpropertiesprocessor.h" -#include "llclassifiedinfo.h" -#include "llfloater.h" #include "llpanel.h" -#include "llrect.h" -#include "lluuid.h" +#include "llclassifiedinfo.h" #include "v3dmath.h" - -class LLScrollContainer; +#include "lluuid.h" +#include "llfloater.h" +//#include "llrect.h" + +class LLButton; +class LLCheckBoxCtrl; +class LLComboBox; +class LLIconCtrl; +class LLLineEditor; +class LLTextBox; +class LLTextEditor; class LLTextureCtrl; class LLUICtrl; +class LLMessageSystem; +class LLScrollContainer; + +// *TODO deprecated, should be removed. +// New class implemented in ticket EXT-2095 +class LLPanelClassified : public LLPanel +{ +public: + LLPanelClassified(bool in_finder, bool from_search); + /*virtual*/ ~LLPanelClassified(); + + void reset(); + + /*virtual*/ BOOL postBuild(); + + /*virtual*/ void draw(); + + /*virtual*/ void refresh(); + + void apply(); + + // If can close, return TRUE. If cannot close, pop save/discard dialog + // and return FALSE. + BOOL canClose(); + + // Setup a new classified, including creating an id, giving a sane + // initial position, etc. + void initNewClassified(); + + void setClassifiedID(const LLUUID& id); + void setClickThroughText(const std::string& text); + static void setClickThrough(const LLUUID& classified_id, + S32 teleport, S32 map, S32 profile, bool from_new_table); + + // check that the title is valid (E.G. starts with a number or letter) + BOOL titleIsValid(); + + // Schedules the panel to request data + // from the server next time it is drawn. + void markForServerRequest(); + + std::string getClassifiedName(); + const LLUUID& getClassifiedID() const { return mClassifiedID; } + + void sendClassifiedInfoRequest(); + void sendClassifiedInfoUpdate(); + void resetDirty(); + + static void processClassifiedInfoReply(LLMessageSystem* msg, void**); + + // Confirmation dialogs flow in this order + bool confirmMature(const LLSD& notification, const LLSD& response); + void gotMature(); + static void callbackGotPriceForListing(S32 option, std::string text, void* data); + bool confirmPublish(const LLSD& notification, const LLSD& response); + + void sendClassifiedClickMessage(const std::string& type); + +protected: + bool saveCallback(const LLSD& notification, const LLSD& response); + + static void onClickUpdate(void* data); + static void onClickTeleport(void* data); + static void onClickMap(void* data); + static void onClickProfile(void* data); + static void onClickSet(void* data); + + static void focusReceived(LLFocusableElement* ctrl, void* data); + static void onCommitAny(LLUICtrl* ctrl, void* data); + + void setDefaultAccessCombo(); // Default AO and PG regions to proper classified access + + BOOL checkDirty(); // Update and return mDirty + +protected: + bool mInFinder; + bool mFromSearch; // from web-based "All" search sidebar + BOOL mDirty; + bool mForceClose; + bool mLocationChanged; + LLUUID mClassifiedID; + LLUUID mRequestedID; + LLUUID mCreatorID; + LLUUID mParcelID; + S32 mPriceForListing; + + // Needed for stat tracking + S32 mTeleportClicksOld; + S32 mMapClicksOld; + S32 mProfileClicksOld; + S32 mTeleportClicksNew; + S32 mMapClicksNew; + S32 mProfileClicksNew; + + // Data will be requested on first draw + BOOL mDataRequested; + + // For avatar panel classifieds only, has the user been charged + // yet for this classified? That is, have they saved once? + BOOL mPaidFor; + + std::string mSimName; + LLVector3d mPosGlobal; + + // Values the user may change + LLTextureCtrl* mSnapshotCtrl; + LLLineEditor* mNameEditor; + LLTextEditor* mDescEditor; + LLLineEditor* mLocationEditor; + LLComboBox* mCategoryCombo; + LLComboBox* mMatureCombo; + LLCheckBoxCtrl* mAutoRenewCheck; + + LLButton* mUpdateBtn; + LLButton* mTeleportBtn; + LLButton* mMapBtn; + LLButton* mProfileBtn; + + LLTextBox* mInfoText; + LLButton* mSetBtn; + LLTextBox* mClickThroughText; + + LLRect mSnapshotSize; + typedef std::list<LLPanelClassified*> panel_list_t; + static panel_list_t sAllPanels; +}; + + +class LLFloaterPriceForListing +: public LLFloater +{ +public: + LLFloaterPriceForListing(); + virtual ~LLFloaterPriceForListing(); + virtual BOOL postBuild(); + + static void show( void (*callback)(S32 option, std::string value, void* userdata), void* userdata ); + +private: + static void onClickSetPrice(void*); + static void onClickCancel(void*); + static void buttonCore(S32 button, void* data); + +private: + void (*mCallback)(S32 option, std::string, void*); + void* mUserData; +}; class LLPublishClassifiedFloater : public LLFloater { |