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