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