00001 00032 #ifndef LL_LLFLOATERPOSTCARD_H 00033 #define LL_LLFLOATERPOSTCARD_H 00034 00035 #include "llfloater.h" 00036 #include "llcheckboxctrl.h" 00037 00038 #include "llmemory.h" 00039 #include "llimagegl.h" 00040 00041 class LLTextEditor; 00042 class LLLineEditor; 00043 class LLButton; 00044 00045 class LLFloaterPostcard 00046 : public LLFloater 00047 { 00048 public: 00049 LLFloaterPostcard(LLImageJPEG* jpeg, LLImageGL *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global); 00050 virtual ~LLFloaterPostcard(); 00051 00052 virtual void init(); 00053 virtual BOOL postBuild(); 00054 virtual void draw(); 00055 00056 static LLFloaterPostcard* showFromSnapshot(LLImageJPEG *jpeg, LLImageGL *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global); 00057 00058 static void onClickCancel(void* data); 00059 static void onClickSend(void* data); 00060 00061 static void uploadCallback(const LLUUID& asset_id, 00062 void *user_data, 00063 S32 result, LLExtStat ext_status); 00064 00065 static void updateUserInfo(const char *email); 00066 00067 static void onMsgFormFocusRecieved(LLFocusableElement* receiver, void* data); 00068 static void missingSubjMsgAlertCallback(S32 option, void* data); 00069 00070 void sendPostcard(); 00071 00072 protected: 00073 00074 LLPointer<LLImageJPEG> mJPEGImage; 00075 LLPointer<LLImageGL> mViewerImage; 00076 LLTransactionID mTransactionID; 00077 LLAssetID mAssetID; 00078 LLVector2 mImageScale; 00079 LLVector3d mPosTakenGlobal; 00080 boolean mHasFirstMsgFocus; 00081 00082 typedef std::set<LLFloaterPostcard*> instance_list_t; 00083 static instance_list_t sInstances; 00084 }; 00085 00086 00087 #endif // LL_LLFLOATERPOSTCARD_H