diff options
Diffstat (limited to 'indra/newview/llfloaterprofiletexture.h')
-rw-r--r-- | indra/newview/llfloaterprofiletexture.h | 62 |
1 files changed, 44 insertions, 18 deletions
diff --git a/indra/newview/llfloaterprofiletexture.h b/indra/newview/llfloaterprofiletexture.h index 66a61213dd..12efbab572 100644 --- a/indra/newview/llfloaterprofiletexture.h +++ b/indra/newview/llfloaterprofiletexture.h @@ -28,11 +28,50 @@ #define LL_LLFLOATERPROFILETEXTURE_H #include "llfloater.h" +#include "lliconctrl.h" #include "llviewertexture.h" class LLButton; class LLImageRaw; -class LLIconCtrl; + +class LLProfileImageCtrl: public LLIconCtrl +{ +public: + struct Params: public LLInitParam::Block<Params, LLIconCtrl::Params> + { + }; + + LLProfileImageCtrl(const Params& p); + virtual ~LLProfileImageCtrl(); + + + virtual void setValue(const LLSD& value) override; + LLUUID getImageAssetId() { return mImageID; } + LLPointer<LLViewerFetchedTexture> getImage() {return mImage;} + void draw() override; + + typedef boost::signals2::signal<void(bool success, LLViewerFetchedTexture* imagep)> image_loaded_signal_t; + boost::signals2::connection setImageLoadedCallback(const image_loaded_signal_t::slot_type& cb); +private: + void onImageLoaded(bool success, LLViewerFetchedTexture* src_vi); + static void onImageLoaded(BOOL success, + LLViewerFetchedTexture* src_vi, + LLImageRaw* src, + LLImageRaw* aux_src, + S32 discard_level, + BOOL final, + void* userdata); + void releaseTexture(); + + void setImageAssetId(const LLUUID& asset_id); +private: + LLPointer<LLViewerFetchedTexture> mImage; + LLUUID mImageID; + S32 mImageOldBoostLevel; + bool mWasNoDelete; + image_loaded_signal_t* mImageLoadedSignal; + LLLoadedCallbackEntry::source_callback_list_t mCallbackTextureList; +}; class LLFloaterProfileTexture : public LLFloater { @@ -46,36 +85,23 @@ public: void resetAsset(); void loadAsset(const LLUUID &image_id); - - static void onTextureLoaded( - BOOL success, - LLViewerFetchedTexture *src_vi, - LLImageRaw* src, - LLImageRaw* aux_src, - S32 discard_level, - BOOL final, - void* userdata); + void onImageLoaded(BOOL success, LLViewerFetchedTexture* imagep); void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE) override; + + LLHandle<LLFloater> getHandle() const { return LLFloater::getHandle(); } protected: BOOL postBuild() override; private: void updateDimensions(); - LLUUID mImageID; - LLPointer<LLViewerFetchedTexture> mImage; - S32 mImageOldBoostLevel; - S32 mAssetStatus; F32 mContextConeOpacity; S32 mLastHeight; S32 mLastWidth; - BOOL mUpdateDimensions; LLHandle<LLView> mOwnerHandle; - LLIconCtrl* mProfileIcon; + LLProfileImageCtrl* mProfileIcon; LLButton* mCloseButton; - - LLLoadedCallbackEntry::source_callback_list_t mCallbackTextureList; }; #endif // LL_LLFLOATERPROFILETEXTURE_H |