/** * @file lltextureview.h * @brief LLTextureView class header file * * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ #ifndef LL_LLTEXTUREVIEW_H #define LL_LLTEXTUREVIEW_H #include "llcontainerview.h" class LLViewerFetchedTexture; class LLTextureBar; class LLGLTexMemBar; class LLAvatarTexBar; class LLTextureView : public LLContainerView { friend class LLTextureBar; friend class LLGLTexMemBar; friend class LLAvatarTexBar; protected: LLTextureView(const Params&); friend class LLUICtrlFactory; public: ~LLTextureView(); /*virtual*/ void draw(); /*virtual*/ bool handleMouseDown(S32 x, S32 y, MASK mask); /*virtual*/ bool handleMouseUp(S32 x, S32 y, MASK mask); /*virtual*/ BOOL handleKey(KEY key, MASK mask, BOOL called_from_parent); static void addDebugImage(LLViewerFetchedTexture* image) { sDebugImages.insert(image); } static void removeDebugImage(LLViewerFetchedTexture* image) { sDebugImages.insert(image); } static void clearDebugImages() { sDebugImages.clear(); } private: BOOL addBar(LLViewerFetchedTexture *image, BOOL hilight = FALSE); void removeAllBars(); private: BOOL mFreezeView; BOOL mOrderFetch; BOOL mPrintList; LLTextBox *mInfoTextp; std::vector mTextureBars; U32 mNumTextureBars; LLGLTexMemBar* mGLTexMemBar; LLAvatarTexBar* mAvatarTexBar; public: static std::set sDebugImages; }; class LLGLTexSizeBar; extern LLTextureView *gTextureView; #endif // LL_TEXTURE_VIEW_H