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 static void onClickPublishHelp(void *data); 00061 00062 static void uploadCallback(const LLUUID& asset_id, 00063 void *user_data, 00064 S32 result, LLExtStat ext_status); 00065 00066 static void updateUserInfo(const char *email); 00067 00068 static void onMsgFormFocusRecieved(LLUICtrl* receiver, void* data); 00069 static void missingSubjMsgAlertCallback(S32 option, void* data); 00070 00071 void sendPostcard(); 00072 00073 protected: 00074 00075 LLPointer<LLImageJPEG> mJPEGImage; 00076 LLPointer<LLImageGL> mViewerImage; 00077 LLTransactionID mTransactionID; 00078 LLAssetID mAssetID; 00079 LLVector2 mImageScale; 00080 LLVector3d mPosTakenGlobal; 00081 boolean mHasFirstMsgFocus; 00082 00083 static LLLinkedList<LLFloaterPostcard> sInstances; 00084 }; 00085 00086 00087 #endif // LL_LLFLOATERPOSTCARD_H