diff options
| author | Vadim Savchuk <vsavchuk@productengine.com> | 2009-11-19 16:17:02 +0200 | 
|---|---|---|
| committer | Vadim Savchuk <vsavchuk@productengine.com> | 2009-11-19 16:17:02 +0200 | 
| commit | 8cd7a2b5f4595c4d824a25147a15ab72aa66a920 (patch) | |
| tree | fb0bd37176d01890176ccde6689ea99a3a9ea966 | |
| parent | 5725b04b084f5ad2699e834421b12795af351975 (diff) | |
| parent | e40c3d247f9bc909de4f41d24c2b1e3288ec9540 (diff) | |
merge
--HG--
branch : product-engine
| -rw-r--r-- | indra/newview/llchiclet.cpp | 105 | ||||
| -rw-r--r-- | indra/newview/llchiclet.h | 487 | 
2 files changed, 305 insertions, 287 deletions
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 9845664c74..6a5877f673 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -1,34 +1,34 @@  /**  -* @file llchiclet.cpp -* @brief LLChiclet class implementation -* -* $LicenseInfo:firstyear=2002&license=viewergpl$ -*  -* Copyright (c) 2002-2009, Linden Research, Inc. -*  -* Second Life Viewer Source Code -* The source code in this file ("Source Code") is provided by Linden Lab -* to you under the terms of the GNU General Public License, version 2.0 -* ("GPL"), unless you have obtained a separate licensing agreement -* ("Other License"), formally executed by you and Linden Lab.  Terms of -* the GPL can be found in doc/GPL-license.txt in this distribution, or -* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 -*  -* There are special exceptions to the terms and conditions of the GPL as -* it is applied to this Source Code. View the full text of the exception -* in the file doc/FLOSS-exception.txt in this software distribution, or -* online at -* http://secondlifegrid.net/programs/open_source/licensing/flossexception -*  -* By copying, modifying or distributing this software, you acknowledge -* that you have read and understood your obligations described above, -* and agree to abide by those obligations. -*  -* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO -* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, -* COMPLETENESS OR PERFORMANCE. -* $/LicenseInfo$ -*/ + * @file llchiclet.cpp + * @brief LLChiclet class implementation + * + * $LicenseInfo:firstyear=2002&license=viewergpl$ + *  + * Copyright (c) 2002-2009, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */  #include "llviewerprecompiledheaders.h" // must be first include  #include "llchiclet.h" @@ -922,34 +922,45 @@ void LLChicletPanel::onCurrentVoiceChannelChanged(const LLUUID& session_id)  	s_previous_active_voice_session_id = session_id;  } -S32 LLChicletPanel::calcChickletPanleWidth() -{ -	S32 res = 0; - -	for (chiclet_list_t::iterator it = mChicletList.begin(); it -			!= mChicletList.end(); it++) -	{ -		res = (*it)->getRect().getWidth() + getChicletPadding(); -	} -	return res; -} -  bool LLChicletPanel::addChiclet(LLChiclet* chiclet, S32 index)  {  	if(mScrollArea->addChild(chiclet))  	{ -		// chicklets should be aligned to right edge of scroll panel -		S32 offset = 0; +		// chiclets should be aligned to right edge of scroll panel +		S32 left_shift = 0;  		if (!canScrollLeft())  		{ -			offset = mScrollArea->getRect().getWidth() -					- chiclet->getRect().getWidth() - calcChickletPanleWidth(); +			// init left shift for the first chiclet in the list... +			if (mChicletList.empty()) +			{ +				// ...start from the right border of the scroll area for the first added chiclet  +				left_shift = mScrollArea->getRect().getWidth(); +			} +			else +			{ +				// ... start from the left border of the first chiclet minus padding +				left_shift = getChiclet(0)->getRect().mLeft - getChicletPadding(); +			} + +			// take into account width of the being added chiclet +			left_shift -= chiclet->getRequiredRect().getWidth(); + +			// if we overflow the scroll area we do not need to shift chiclets +			if (left_shift < 0) +			{ +				left_shift = 0; +			}  		}  		mChicletList.insert(mChicletList.begin() + index, chiclet); -		getChiclet(0)->translate(offset, 0); +		// shift first chiclet to place it in correct position.  +		// rest ones will be placed in arrange() +		if (!canScrollLeft()) +		{ +			getChiclet(0)->translate(left_shift - getChiclet(0)->getRect().mLeft, 0); +		}  		chiclet->setLeftButtonClickCallback(boost::bind(&LLChicletPanel::onChicletClick, this, _1, _2));  		chiclet->setChicletSizeChangedCallback(boost::bind(&LLChicletPanel::onChicletSizeChanged, this, _1, index)); diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h index bb5dc1e550..03935d21a6 100644 --- a/indra/newview/llchiclet.h +++ b/indra/newview/llchiclet.h @@ -1,34 +1,34 @@  /**  -* @file llchiclet.h -* @brief LLChiclet class header file -* -* $LicenseInfo:firstyear=2002&license=viewergpl$ -*  -* Copyright (c) 2002-2009, Linden Research, Inc. -*  -* Second Life Viewer Source Code -* The source code in this file ("Source Code") is provided by Linden Lab -* to you under the terms of the GNU General Public License, version 2.0 -* ("GPL"), unless you have obtained a separate licensing agreement -* ("Other License"), formally executed by you and Linden Lab.  Terms of -* the GPL can be found in doc/GPL-license.txt in this distribution, or -* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 -*  -* There are special exceptions to the terms and conditions of the GPL as -* it is applied to this Source Code. View the full text of the exception -* in the file doc/FLOSS-exception.txt in this software distribution, or -* online at -* http://secondlifegrid.net/programs/open_source/licensing/flossexception -*  -* By copying, modifying or distributing this software, you acknowledge -* that you have read and understood your obligations described above, -* and agree to abide by those obligations. -*  -* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO -* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, -* COMPLETENESS OR PERFORMANCE. -* $/LicenseInfo$ -*/ + * @file llchiclet.h + * @brief LLChiclet class header file + * + * $LicenseInfo:firstyear=2002&license=viewergpl$ + *  + * Copyright (c) 2002-2009, Linden Research, Inc. + *  + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + *  the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + *  + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + *  + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + *  + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */  #ifndef LL_LLCHICLET_H  #define LL_LLCHICLET_H @@ -44,9 +44,9 @@ class LLVoiceControlPanel;  class LLMenuGL;  class LLIMFloater; -/* +/**   * Class for displaying amount of messages/notifications(unread). -*/ + */  class LLChicletNotificationCounterCtrl : public LLTextBox  {  public: @@ -57,30 +57,30 @@ public:  		{};  	}; -	/* +	/**  	 * Sets number of notifications -	*/ +	 */  	virtual void setCounter(S32 counter); -	/* +	/**  	 * Returns number of notifications -	*/ +	 */  	virtual S32 getCounter() const { return mCounter; } -	/* +	/**  	 * Returns width, required to display amount of notifications in text form.  	 * Width is the only valid value. -	*/ +	 */  	/*virtual*/ LLRect getRequiredRect(); -	/* +	/**  	 * Sets number of notifications using LLSD -	*/ +	 */  	/*virtual*/ void setValue(const LLSD& value); -	/* +	/**  	 * Returns number of notifications wrapped in LLSD -	*/ +	 */  	/*virtual*/ LLSD getValue() const;  protected: @@ -94,9 +94,9 @@ private:  	S32 mInitialWidth;  }; -/* +/**   * Class for displaying avatar's icon in P2P chiclet. -*/ + */  class LLChicletAvatarIconCtrl : public LLAvatarIconCtrl  {  public: @@ -147,9 +147,9 @@ protected:  	std::string mDefaultIcon;  }; -/* +/**   * Class for displaying of speaker's voice indicator  -*/ + */  class LLChicletSpeakerCtrl : public LLOutputMonitorCtrl  {  public: @@ -164,7 +164,7 @@ protected:  	friend class LLUICtrlFactory;  }; -/* +/**   * Base class for all chiclets.   */  class LLChiclet : public LLUICtrl @@ -180,59 +180,59 @@ public:  	/*virtual*/ ~LLChiclet(); -	/* +	/**  	 * Associates chat session id with chiclet. -	*/ +	 */  	virtual void setSessionId(const LLUUID& session_id) { mSessionId = session_id; } -	/* +	/**  	 * Returns associated chat session. -	*/ +	 */  	virtual const LLUUID& getSessionId() const { return mSessionId; } -	/* +	/**  	 * Sets number of unread notifications. -	*/ +	 */  	virtual void setCounter(S32 counter) = 0; -	/* +	/**  	 * Returns number of unread notifications. -	*/ +	 */  	virtual S32 getCounter() = 0; -	/* +	/**  	 * Sets show counter state. -	*/ +	 */  	virtual void setShowCounter(bool show) { mShowCounter = show; } -	/* +	/**  	 * Returns show counter state. -	*/ +	 */  	virtual bool getShowCounter() {return mShowCounter;}; -	/* +	/**  	 * Connects chiclet clicked event with callback. -	*/ +	 */  	/*virtual*/ boost::signals2::connection setLeftButtonClickCallback(  		const commit_callback_t& cb);  	typedef boost::function<void (LLChiclet* ctrl, const LLSD& param)>   		chiclet_size_changed_callback_t; -	/* +	/**  	 * Connects chiclets size changed event with callback. -	*/ +	 */  	virtual boost::signals2::connection setChicletSizeChangedCallback(  		const chiclet_size_changed_callback_t& cb); -	/* +	/**  	 * Sets IM Session id using LLSD -	*/ +	 */  	/*virtual*/ LLSD getValue() const; -	/* +	/**  	 * Returns IM Session id using LLSD -	*/ +	 */  	/*virtual*/ void setValue(const LLSD& value);  protected: @@ -240,14 +240,14 @@ protected:  	friend class LLUICtrlFactory;  	LLChiclet(const Params& p); -	/* +	/**  	 * Notifies subscribers about click on chiclet. -	*/ +	 */  	/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); -	/* +	/**  	 * Notifies subscribers about chiclet size changed event. -	*/ +	 */  	virtual void onChicletSizeChanged();  private: @@ -263,11 +263,11 @@ private:  }; -/* -* Base class for Instant Message chiclets. -* IMChiclet displays icon, number of unread messages(optional) -* and voice chat status(optional). -*/ +/** + * Base class for Instant Message chiclets. + * IMChiclet displays icon, number of unread messages(optional) + * and voice chat status(optional). + */  class LLIMChiclet : public LLChiclet  {  public: @@ -288,50 +288,50 @@ public:  	/*virtual*/ ~LLIMChiclet() {}; -	/* +	/**  	 * Sets IM session name. This name will be displayed in chiclet tooltip. -	*/ +	 */  	virtual void setIMSessionName(const std::string& name) { setToolTip(name); } -	/* +	/**  	 * Sets id of person/group user is chatting with.  	 * Session id should be set before calling this -	*/ +	 */  	virtual void setOtherParticipantId(const LLUUID& other_participant_id) { mOtherParticipantId = other_participant_id; } -	/* +	/**  	 * Gets id of person/group user is chatting with.  	 */  	virtual LLUUID getOtherParticipantId() { return mOtherParticipantId; } -	/* -	* Init Speaker Control with speaker's ID -	*/ +	/** +	 * Init Speaker Control with speaker's ID +	 */  	virtual void initSpeakerControl(); -	/* +	/**  	 * set status (Shows/Hide) for voice control. -	*/ +	 */  	virtual void setShowSpeaker(bool show); -	/* +	/**  	 * Returns voice chat status control visibility. -	*/ +	 */  	virtual bool getShowSpeaker() {return mShowSpeaker;}; -	/* -	* Shows/Hides for voice control for a chiclet. -	*/ +	/** +	 * Shows/Hides for voice control for a chiclet. +	 */  	virtual void toggleSpeakerControl(); -	/* -	* Shows/hides overlay icon concerning new unread messages. -	*/ +	/** +	 * Shows/hides overlay icon concerning new unread messages. +	 */  	virtual void setShowNewMessagesIcon(bool show); -	/* -	* Returns visibility of overlay icon concerning new unread messages. -	*/ +	/** +	 * Returns visibility of overlay icon concerning new unread messages. +	 */  	virtual bool getShowNewMessagesIcon();  	virtual void draw(); @@ -418,45 +418,45 @@ public:  	/* virtual */ void setOtherParticipantId(const LLUUID& other_participant_id); -	/* -	* Sets number of unread messages. Will update chiclet's width if number text  -	* exceeds size of counter and notify it's parent about size change. -	*/ +	/** +	 * Sets number of unread messages. Will update chiclet's width if number text  +	 * exceeds size of counter and notify it's parent about size change. +	 */  	/*virtual*/ void setCounter(S32); -	/* -	* Init Speaker Control with speaker's ID -	*/ +	/** +	 * Init Speaker Control with speaker's ID +	 */  	/*virtual*/ void initSpeakerControl(); -	/* -	* Returns number of unread messages. -	*/ +	/** +	 * Returns number of unread messages. +	 */  	/*virtual*/ S32 getCounter() { return mCounterCtrl->getCounter(); }  protected:  	LLIMP2PChiclet(const Params& p);  	friend class LLUICtrlFactory; -	/* -	* Creates chiclet popup menu. Will create P2P or Group IM Chat menu  -	* based on other participant's id. -	*/ +	/** +	 * Creates chiclet popup menu. Will create P2P or Group IM Chat menu  +	 * based on other participant's id. +	 */  	virtual void createPopupMenu(); -	/* -	* Processes clicks on chiclet popup menu. -	*/ +	/** +	 * Processes clicks on chiclet popup menu. +	 */  	virtual void onMenuItemClicked(const LLSD& user_data); -	/* -	* Displays popup menu. -	*/ +	/** +	 * Displays popup menu. +	 */  	/*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); -	/*  -	* Enables/disables menus based on relationship with other participant. -	*/ +	/**  +	 * Enables/disables menus based on relationship with other participant. +	 */  	virtual void updateMenuItems();  private: @@ -492,39 +492,39 @@ public:  	 */  	/*virtual*/ void setSessionId(const LLUUID& session_id); -	/* -	* Sets number of unread messages. Will update chiclet's width if number text  -	* exceeds size of counter and notify it's parent about size change. -	*/ +	/** +	 * Sets number of unread messages. Will update chiclet's width if number text  +	 * exceeds size of counter and notify it's parent about size change. +	 */  	/*virtual*/ void setCounter(S32); -	/* -	* Keep Speaker Control with actual speaker's ID -	*/ +	/** +	 * Keep Speaker Control with actual speaker's ID +	 */  	/*virtual*/ void draw(); -	/* -	* Init Speaker Control with speaker's ID -	*/ +	/** +	 * Init Speaker Control with speaker's ID +	 */  	/*virtual*/ void initSpeakerControl(); -	/* -	* Returns number of unread messages. -	*/ +	/** +	 * Returns number of unread messages. +	 */  	/*virtual*/ S32 getCounter() { return mCounterCtrl->getCounter(); }  protected:  	LLAdHocChiclet(const Params& p);  	friend class LLUICtrlFactory; -	/* -	* Displays popup menu. -	*/ +	/** +	 * Displays popup menu. +	 */  	virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); -	/* -	* Finds a current speaker and resets the SpeakerControl with speaker's ID -	*/ +	/** +	 * Finds a current speaker and resets the SpeakerControl with speaker's ID +	 */  	/*virtual*/ void switchToCurrentSpeaker();  private: @@ -559,9 +559,9 @@ public:  	 */  	/*virtual*/ void setSessionId(const LLUUID& session_id); -	/* -	* Keep Speaker Control with actual speaker's ID -	*/ +	/** +	 * Keep Speaker Control with actual speaker's ID +	 */  	/*virtual*/ void draw();  	/** @@ -570,20 +570,20 @@ public:  	 */  	/*virtual*/ void changed(LLGroupChange gc); -	/* -	* Sets number of unread messages. Will update chiclet's width if number text  -	* exceeds size of counter and notify it's parent about size change. -	*/ +	/** +	 * Sets number of unread messages. Will update chiclet's width if number text  +	 * exceeds size of counter and notify it's parent about size change. +	 */  	/*virtual*/ void setCounter(S32); -	/* -	* Init Speaker Control with speaker's ID -	*/ +	/** +	 * Init Speaker Control with speaker's ID +	 */  	/*virtual*/ void initSpeakerControl(); -	/* -	* Returns number of unread messages. -	*/ +	/** +	 * Returns number of unread messages. +	 */  	/*virtual*/ S32 getCounter() { return mCounterCtrl->getCounter(); }  	~LLIMGroupChiclet(); @@ -592,25 +592,25 @@ protected:  	LLIMGroupChiclet(const Params& p);  	friend class LLUICtrlFactory; -	/* -	* Finds a current speaker and resets the SpeakerControl with speaker's ID -	*/ +	/** +	 * Finds a current speaker and resets the SpeakerControl with speaker's ID +	 */  	/*virtual*/ void switchToCurrentSpeaker(); -	/* -	* Creates chiclet popup menu. Will create P2P or Group IM Chat menu  -	* based on other participant's id. -	*/ +	/** +	 * Creates chiclet popup menu. Will create P2P or Group IM Chat menu  +	 * based on other participant's id. +	 */  	virtual void createPopupMenu(); -	/* -	* Processes clicks on chiclet popup menu. -	*/ +	/** +	 * Processes clicks on chiclet popup menu. +	 */  	virtual void onMenuItemClicked(const LLSD& user_data); -	/* -	* Displays popup menu. -	*/ +	/** +	 * Displays popup menu. +	 */  	/*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);  private: @@ -619,10 +619,10 @@ private:  	LLMenuGL* mPopupMenu;  }; -/* +/**   * Implements notification chiclet. Used to display total amount of unread messages    * across all IM sessions, total amount of system notifications. -*/ + */  class LLNotificationChiclet : public LLChiclet  {  public: @@ -666,10 +666,10 @@ protected:  	S32 mCounter;  }; -/* +/**   * Storage class for all IM chiclets. Provides mechanism to display,    * scroll, create, remove chiclets. -*/ + */  class LLChicletPanel : public LLPanel  {  public: @@ -686,62 +686,62 @@ public:  	virtual ~LLChicletPanel(); -	/* +	/**  	 * Creates chiclet and adds it to chiclet list at specified index. -	*/ +	 */  	template<class T> T* createChiclet(const LLUUID& session_id, S32 index); -	/* +	/**  	 * Creates chiclet and adds it to chiclet list at right. -	*/ +	 */  	template<class T> T* createChiclet(const LLUUID& session_id); -	/* +	/**  	 * Returns pointer to chiclet of specified type at specified index. -	*/ +	 */  	template<class T> T* getChiclet(S32 index); -	/* +	/**  	 * Returns pointer to LLChiclet at specified index. -	*/ +	 */  	LLChiclet* getChiclet(S32 index) { return getChiclet<LLChiclet>(index); } -	/* +	/**  	 * Searches a chiclet using IM session id. -	*/ +	 */  	template<class T> T* findChiclet(const LLUUID& im_session_id); -	/* +	/**  	 * Returns number of hosted chiclets. -	*/ +	 */  	S32 getChicletCount() {return mChicletList.size();}; -	/* +	/**  	 * Returns index of chiclet in list. -	*/ +	 */  	S32 getChicletIndex(const LLChiclet* chiclet); -	/* +	/**  	 * Removes chiclet by index. -	*/ +	 */  	void removeChiclet(S32 index); -	/* +	/**  	 * Removes chiclet by pointer. -	*/ +	 */  	void removeChiclet(LLChiclet* chiclet); -	/* +	/**  	 * Removes chiclet by IM session id. -	*/ +	 */  	void removeChiclet(const LLUUID& im_session_id); -	/* +	/**  	 * Removes all chiclets. -	*/ +	 */  	void removeAll(); -	/* +	/**  	 * Scrolls the panel to the specified chiclet  	 */  	void scrollToChiclet(const LLChiclet* chiclet); @@ -751,14 +751,14 @@ public:  	/*virtual*/ BOOL postBuild(); -	/* -	* Handler for the Voice Client's signal. Finds a corresponding chiclet and toggles its SpeakerControl -	*/ +	/** +	 * Handler for the Voice Client's signal. Finds a corresponding chiclet and toggles its SpeakerControl +	 */  	void onCurrentVoiceChannelChanged(const LLUUID& session_id); -	/* +	/**  	 * Reshapes controls and rearranges chiclets if needed. -	*/ +	 */  	/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE );  	/*virtual*/ void draw(); @@ -769,100 +769,107 @@ protected:  	LLChicletPanel(const Params&p);  	friend class LLUICtrlFactory; -	S32 calcChickletPanleWidth(); - -	/* -	 * Adds chiclet to list and rearranges all chiclets. -	*/ +	/** +	 * Adds chiclet to list and rearranges all chiclets.  +	 * They should be right aligned, most recent right. See EXT-1293 +	 * +	 * It calculates position of the first chiclet in the list. Other chiclets are placed in arrange(). +	 * +	 * @see arrange() +	 */  	bool addChiclet(LLChiclet*, S32 index); -	/* -	 * Arranges chiclets. -	*/ +	/** +	 * Arranges chiclets to have them in correct positions. +	 * +	 * Method bases on assumption that first chiclet has correct rect and starts from the its position. +	 * +	 * @see addChiclet() +	 */  	void arrange(); -	/* +	/**  	 * Returns true if chiclets can be scrolled right. -	*/ +	 */  	bool canScrollRight(); -	/* -	* Returns true if chiclets can be scrolled left. -	*/ +	/** +	 * Returns true if chiclets can be scrolled left. +	 */  	bool canScrollLeft(); -	/* -	* Shows or hides chiclet scroll buttons if chiclets can or can not be scrolled. -	*/ +	/** +	 * Shows or hides chiclet scroll buttons if chiclets can or can not be scrolled. +	 */  	void showScrollButtonsIfNeeded(); -	/* +	/**  	 * Shifts chiclets left or right. -	*/ +	 */  	void shiftChiclets(S32 offset, S32 start_index = 0); -	/* +	/**  	 * Removes gaps between first chiclet and scroll area left side,  	 * last chiclet and scroll area right side. -	*/ +	 */  	void trimChiclets(); -	/* +	/**  	 * Scrolls chiclets to right or left. -	*/ +	 */  	void scroll(S32 offset); -	/* +	/**  	 * Verifies that chiclets can be scrolled left, then calls scroll() -	*/ +	 */  	void scrollLeft(); -	/* +	/**  	 * Verifies that chiclets can be scrolled right, then calls scroll() -	*/ +	 */  	void scrollRight(); -	/* +	/**  	 * Callback for left scroll button clicked -	*/ +	 */  	void onLeftScrollClick(); -	/* -	* Callback for right scroll button clicked -	*/ +	/** +	 * Callback for right scroll button clicked +	 */  	void onRightScrollClick(); -	/* -	* Callback for right scroll button held down event -	*/ +	/** +	 * Callback for right scroll button held down event +	 */  	void onLeftScrollHeldDown(); -	/* +	/**  	 * Callback for left scroll button held down event  	 */  	void onRightScrollHeldDown(); -	/* +	/**  	 * Callback for mouse wheel scrolled, calls scrollRight() or scrollLeft() -	*/ +	 */  	BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); -	/* +	/**  	 * Notifies subscribers about click on chiclet.  	 * Do not place any code here, instead subscribe on event (see setChicletClickedCallback). -	*/ +	 */  	void onChicletClick(LLUICtrl*ctrl,const LLSD¶m); -	/* +	/**  	 * Callback for chiclet size changed event, rearranges chiclets. -	*/ +	 */  	void onChicletSizeChanged(LLChiclet* ctrl, const LLSD& param);  	typedef std::vector<LLChiclet*> chiclet_list_t; -	/* +	/**  	 * Removes chiclet from scroll area and chiclet list. -	*/ +	 */  	void removeChiclet(chiclet_list_t::iterator it);  	S32 getChicletPadding() { return mChicletPadding; }  | 
