Skip to content
Snippets Groups Projects
lliconctrl.h 2.33 KiB
Newer Older
  • Learn to ignore specific revisions
  • James Cook's avatar
    James Cook committed
    /** 
     * @file lliconctrl.h
     * @brief LLIconCtrl base class
     *
    
     * $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$
    
    James Cook's avatar
    James Cook committed
     */
    
    #ifndef LL_LLICONCTRL_H
    #define LL_LLICONCTRL_H
    
    #include "lluuid.h"
    #include "v4color.h"
    #include "lluictrl.h"
    
    James Cook's avatar
    James Cook committed
    
    class LLTextBox;
    
    James Cook's avatar
    James Cook committed
    
    //
    // Classes
    //
    
    James Cook's avatar
    James Cook committed
    class LLIconCtrl
    : public LLUICtrl
    {
    public:
    
    	struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
    	{
    		Optional<LLUIImage*>	image;
    		Optional<LLUIColor>		color;
    
    		Optional<S32>			min_width,
    								min_height;
    
    		Params();
    	};
    protected:
    	LLIconCtrl(const Params&);
    	friend class LLUICtrlFactory;
    
    	void setValue(const LLSD& value, S32 priority);
    
    
    James Cook's avatar
    James Cook committed
    	virtual ~LLIconCtrl();
    
    	// llview overrides
    	virtual void	draw();
    
    
    James Cook's avatar
    James Cook committed
    	virtual void	setValue(const LLSD& value );
    
    
    	std::string	getImageName() const;
    
    James Cook's avatar
    James Cook committed
    
    
    	void			setColor(const LLColor4& color) { mColor = color; }
    
    	void			setImage(LLPointer<LLUIImage> image) { mImagep = image; }
    
    	const LLPointer<LLUIImage> getImage() { return mImagep; }
    
    James Cook's avatar
    James Cook committed
    
    
    	//the output size of the icon image if set.
    
    	S32 mMinWidth,
    
    		mMinHeight,
    		mMaxWidth,
    		mMaxHeight;
    
    	// If set to true (default), use the draw context transparency.
    	// If false, will use transparency returned by getCurrentTransparency(). See STORM-698.
    	bool mUseDrawContextAlpha;
    
    
    James Cook's avatar
    James Cook committed
    };
    
    #endif