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