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 LLFloaterProperties : public LLFloater
00051 {
00052 public:
00053 static LLFloaterProperties* find(const LLUUID& item_id,
00054 const LLUUID& object_id);
00055 static LLFloaterProperties* show(const LLUUID& item_id,
00056 const LLUUID& object_id);
00057 static void dirtyAll();
00058
00059 static void closeByID(const LLUUID& item_id, const LLUUID& object_id);
00060
00061 LLFloaterProperties(const std::string& name, const LLRect& rect, const std::string& title, const LLUUID& item_id, const LLUUID& object_id);
00062 virtual ~LLFloaterProperties();
00063
00064
00065 void dirty() { mDirty = TRUE; }
00066 void refresh();
00067
00068 protected:
00069
00070 static void onClickCreator(void* data);
00071 static void onClickOwner(void* data);
00072 static void onCommitName(LLUICtrl* ctrl, void* data);
00073 static void onCommitDescription(LLUICtrl* ctrl, void* data);
00074 static void onCommitPermissions(LLUICtrl* ctrl, void* data);
00075 static void onCommitSaleInfo(LLUICtrl* ctrl, void* data);
00076 static void onCommitSaleType(LLUICtrl* ctrl, void* data);
00077 void updateSaleInfo();
00078
00079 LLInventoryItem* findItem() const;
00080
00081 void refreshFromItem(LLInventoryItem* item);
00082 virtual void draw();
00083
00084 protected:
00085
00086 LLUUID mItemID;
00087
00088
00089
00090
00091 LLUUID mObjectID;
00092
00093 BOOL mDirty;
00094
00095 typedef std::map<LLUUID, LLFloaterProperties*, lluuid_less> instance_map;
00096 static instance_map sInstances;
00097 };
00098
00099 class LLMultiProperties : public LLMultiFloater
00100 {
00101 public:
00102 LLMultiProperties(const LLRect& rect);
00103 };
00104
00105 #endif // LL_LLFLOATERPROPERTIES_H