diff options
Diffstat (limited to 'indra/newview/llsplitbutton.h')
-rw-r--r-- | indra/newview/llsplitbutton.h | 102 |
1 files changed, 52 insertions, 50 deletions
diff --git a/indra/newview/llsplitbutton.h b/indra/newview/llsplitbutton.h index 4f20c8b379..4571a233fe 100644 --- a/indra/newview/llsplitbutton.h +++ b/indra/newview/llsplitbutton.h @@ -1,25 +1,25 @@ -/** +/** * @file llsplitbutton.h * @brief LLSplitButton base class * * $LicenseInfo:firstyear=2009&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$ */ @@ -37,69 +37,71 @@ #define LL_LLSPLITBUTTON_H class LLSplitButton - : public LLUICtrl + : public LLUICtrl { public: - typedef enum e_arrow_position - { - LEFT, - RIGHT - } EArrowPosition; + typedef enum e_arrow_position + { + LEFT, + RIGHT + } EArrowPosition; - struct ArrowPositionValues : public LLInitParam::TypeValuesHelper<EArrowPosition, ArrowPositionValues> - { - static void declareValues(); - }; + struct ArrowPositionValues : public LLInitParam::TypeValuesHelper<EArrowPosition, ArrowPositionValues> + { + static void declareValues(); + }; - struct ItemParams : public LLInitParam::Block<ItemParams, LLButton::Params> - { - ItemParams(); - }; + struct ItemParams : public LLInitParam::Block<ItemParams, LLButton::Params> + { + ItemParams(); + }; - struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> - { - Optional<EArrowPosition, ArrowPositionValues> arrow_position; - Optional<LLButton::Params> arrow_button; - Optional<LLPanel::Params> items_panel; - Multiple<ItemParams> items; + struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> + { + Optional<EArrowPosition, ArrowPositionValues> arrow_position; + Optional<LLButton::Params> arrow_button; + Optional<LLPanel::Params> items_panel; + Multiple<ItemParams> items; - Params(); - }; + Params(); + }; - virtual ~LLSplitButton() {}; + virtual ~LLSplitButton(); - //Overridden - virtual void onFocusLost(); - virtual void setFocus(BOOL b); - virtual void setEnabled(BOOL enabled); + //Overridden + virtual void onFocusLost(); + virtual void setFocus(BOOL b); + virtual void setEnabled(BOOL enabled); - //Callbacks - void onArrowBtnDown(); - void onHeldDownShownButton(); - void onItemSelected(LLUICtrl* ctrl); - void setSelectionCallback(commit_callback_t cb) { mSelectionCallback = cb; } + //Callbacks + void onArrowBtnDown(); + void onHeldDownShownButton(); + void onItemSelected(LLUICtrl* ctrl); + void setSelectionCallback(commit_callback_t cb) { mSelectionCallback = cb; } - virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); + virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); - virtual void showButtons(); - virtual void hideButtons(); + virtual void showButtons(); + virtual void hideButtons(); protected: - friend class LLUICtrlFactory; - LLSplitButton(const LLSplitButton::Params& p); + friend class LLUICtrlFactory; + LLSplitButton(const LLSplitButton::Params& p); + + LLButton* prepareItemButton(LLButton::Params params); + LLPanel* prepareItemsPanel(LLPanel::Params params, S32 items_count); - LLButton* prepareItemButton(LLButton::Params params); - LLPanel* prepareItemsPanel(LLPanel::Params params, S32 items_count); + LLPanel* mItemsPanel; + std::list<LLButton*> mHidenItems; + LLButton* mArrowBtn; + LLButton* mShownItem; + EArrowPosition mArrowPosition; - LLPanel* mItemsPanel; - std::list<LLButton*> mHidenItems; - LLButton* mArrowBtn; - LLButton* mShownItem; - EArrowPosition mArrowPosition; + boost::signals2::connection mTopLostSignalConnection; - commit_callback_t mSelectionCallback; + commit_callback_t mSelectionCallback; }; |