00001
00032 #ifndef LL_LLFLOATERPROPERTIES_H
00033 #define LL_LLFLOATERPROPERTIES_H
00034
00035 #include <map>
00036 #include "llfloater.h"
00037 #include "lliconctrl.h"
00038
00039
00040
00041
00042
00043 class LLButton;
00044 class LLCheckBoxCtrl;
00045 class LLInventoryItem;
00046 class LLLineEditor;
00047 class LLRadioGroup;
00048 class LLTextBox;
00049
00050 class LLPropertiesObserver;
00051
00052 class LLFloaterProperties : public LLFloater
00053 {
00054 public:
00055 static LLFloaterProperties* find(const LLUUID& item_id,
00056 const LLUUID& object_id);
00057 static LLFloaterProperties* show(const LLUUID& item_id,
00058 const LLUUID& object_id);
00059 static void dirtyAll();
00060
00061 static void closeByID(const LLUUID& item_id, const LLUUID& object_id);
00062
00063 LLFloaterProperties(const std::string& name, const LLRect& rect, const std::string& title, const LLUUID& item_id, const LLUUID& object_id);
00064 virtual ~LLFloaterProperties();
00065
00066
00067 void dirty() { mDirty = TRUE; }
00068 void refresh();
00069
00070 protected:
00071
00072 static void onClickCreator(void* data);
00073 static void onClickOwner(void* data);
00074 static void onCommitName(LLUICtrl* ctrl, void* data);
00075 static void onCommitDescription(LLUICtrl* ctrl, void* data);
00076 static void onCommitPermissions(LLUICtrl* ctrl, void* data);
00077 static void onCommitSaleInfo(LLUICtrl* ctrl, void* data);
00078 static void onCommitSaleType(LLUICtrl* ctrl, void* data);
00079 void updateSaleInfo();
00080
00081 LLInventoryItem* findItem() const;
00082
00083 void refreshFromItem(LLInventoryItem* item);
00084 virtual void draw();
00085
00086 protected:
00087
00088 LLUUID mItemID;
00089
00090
00091
00092
00093 LLUUID mObjectID;
00094
00095 BOOL mDirty;
00096
00097 typedef std::map<LLUUID, LLFloaterProperties*, lluuid_less> instance_map;
00098 static instance_map sInstances;
00099 static LLPropertiesObserver* sPropertiesObserver;
00100 static S32 sPropertiesObserverCount;
00101 };
00102
00103 class LLMultiProperties : public LLMultiFloater
00104 {
00105 public:
00106 LLMultiProperties(const LLRect& rect);
00107 };
00108
00109 #endif // LL_LLFLOATERPROPERTIES_H