00001
00032 #ifndef LL_LLFLOATERLANDMARK_H
00033 #define LL_LLFLOATERLANDMARK_H
00034
00035 #include "llcoord.h"
00036 #include "llfloater.h"
00037 #include "llstring.h"
00038 #include "lluictrl.h"
00039 #include "llpermissionsflags.h"
00040
00041 class LLButton;
00042 class LLFloaterTexturePicker;
00043 class LLInventoryItem;
00044 class LLTextBox;
00045 class LLViewBorder;
00046 class LLFolderViewItem;
00047 class LLSearchEditor;
00048 class LLInventoryPanel;
00049 class LLSaveFolderState;
00050 class LLViewerImage;
00051
00052
00053 typedef BOOL (*drag_n_drop_callback)(LLUICtrl*, LLInventoryItem*, void*);
00054
00055
00057
00058
00059 class LLFloaterLandmark: public LLFloater, public LLFloaterSingleton<LLFloaterLandmark>
00060 {
00061 public:
00062 LLFloaterLandmark(const LLSD& data);
00063 virtual ~LLFloaterLandmark();
00064
00065
00066 virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask,
00067 BOOL drop, EDragAndDropType cargo_type, void *cargo_data,
00068 EAcceptance *accept,
00069 LLString& tooltip_msg);
00070 virtual BOOL handleKeyHere(KEY key, MASK mask);
00071
00072
00073 virtual void onClose(bool app_quitting);
00074
00075 const LLUUID& getAssetID() { return mImageAssetID; }
00076 const LLUUID& findItemID(const LLUUID& asset_id, BOOL copyable_only);
00077
00078 void setDirty( BOOL b ) { mIsDirty = b; }
00079 BOOL isDirty() const { return mIsDirty; }
00080 void setActive( BOOL active );
00081
00082 static void onBtnClose( void* userdata );
00083 static void onBtnNew( void* userdata );
00084 static void onBtnEdit( void* userdata );
00085 static void onBtnDelete( void* userdata );
00086 static void onBtnNewFolder( void* userdata );
00087 static void onBtnRename( void* userdata );
00088 static void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action, void* data);
00089 static void onShowFolders(LLUICtrl* ctrl, void* userdata);
00090 static void onSearchEdit(const LLString& search_string, void* user_data );
00091
00092 protected:
00093 LLPointer<LLViewerImage> mLandmarkp;
00094
00095 LLUUID mImageAssetID;
00096
00097 LLUUID mWhiteImageAssetID;
00098 LLUUID mSpecialCurrentImageAssetID;
00099 LLUUID mOriginalImageAssetID;
00100
00101 LLTextBox* mTentativeLabel;
00102 LLTextBox* mResolutionLabel;
00103
00104 LLString mPendingName;
00105 BOOL mIsDirty;
00106 BOOL mActive;
00107
00108 LLSearchEditor* mSearchEdit;
00109 LLInventoryPanel* mInventoryPanel;
00110 PermissionMask mImmediateFilterPermMask;
00111 PermissionMask mNonImmediateFilterPermMask;
00112 BOOL mNoCopyLandmarkSelected;
00113 F32 mContextConeOpacity;
00114 LLSaveFolderState* mSavedFolderState;
00115 };
00116
00117 #endif // LL_FLOATERLANDMARK_H