diff options
author | Maki <maki@hotmilk.space> | 2024-05-15 20:58:28 -0400 |
---|---|---|
committer | Maki <maki@hotmilk.space> | 2024-05-15 20:58:28 -0400 |
commit | ec23d45e2e9a87147641fed6f8c3ef6083c2f878 (patch) | |
tree | 169edbab006d8bbd86b2980ab98fb62e097067ff /indra/llui/lllayoutstack.h | |
parent | 8d824e8923b26c7a1d858e6cb587be1cf7d4dfeb (diff) | |
parent | 2f25f87ee719a79efc8316079f3c881eddb4d266 (diff) |
Merge branch 'release/maint-b' into pipewire-linux-volume-catcher
Diffstat (limited to 'indra/llui/lllayoutstack.h')
-rw-r--r-- | indra/llui/lllayoutstack.h | 270 |
1 files changed, 135 insertions, 135 deletions
diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h index 000b919ae7..884850285a 100644 --- a/indra/llui/lllayoutstack.h +++ b/indra/llui/lllayoutstack.h @@ -1,4 +1,4 @@ -/** +/** * @file lllayoutstack.h * @author Richard Nelson * @brief LLLayout class - dynamic stacking of UI elements @@ -6,21 +6,21 @@ * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Reshasearch, 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$ */ @@ -39,98 +39,98 @@ class LLLayoutStack : public LLView, public LLInstanceTracker<LLLayoutStack> { public: - struct LayoutStackRegistry : public LLChildRegistry<LayoutStackRegistry> - { - LLSINGLETON_EMPTY_CTOR(LayoutStackRegistry); - }; - - struct Params : public LLInitParam::Block<Params, LLView::Params> - { - Mandatory<EOrientation> orientation; - Optional<S32> border_size; - Optional<bool> animate, - clip; - Optional<F32> open_time_constant, - close_time_constant; - Optional<S32> resize_bar_overlap; - Optional<bool> show_drag_handle; - Optional<S32> drag_handle_first_indent; - Optional<S32> drag_handle_second_indent; - Optional<S32> drag_handle_thickness; - Optional<S32> drag_handle_shift; + struct LayoutStackRegistry : public LLChildRegistry<LayoutStackRegistry> + { + LLSINGLETON_EMPTY_CTOR(LayoutStackRegistry); + }; + + struct Params : public LLInitParam::Block<Params, LLView::Params> + { + Mandatory<EOrientation> orientation; + Optional<S32> border_size; + Optional<bool> animate, + clip; + Optional<F32> open_time_constant, + close_time_constant; + Optional<S32> resize_bar_overlap; + Optional<bool> show_drag_handle; + Optional<S32> drag_handle_first_indent; + Optional<S32> drag_handle_second_indent; + Optional<S32> drag_handle_thickness; + Optional<S32> drag_handle_shift; Optional<LLUIColor> drag_handle_color; - Params(); - }; + Params(); + }; - typedef LayoutStackRegistry child_registry_t; + typedef LayoutStackRegistry child_registry_t; - virtual ~LLLayoutStack(); + virtual ~LLLayoutStack(); - /*virtual*/ void draw(); + /*virtual*/ void draw(); /*virtual*/ void deleteAllChildren(); - /*virtual*/ void removeChild(LLView*); - /*virtual*/ BOOL postBuild(); - /*virtual*/ bool addChild(LLView* child, S32 tab_group = 0); - /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); + /*virtual*/ void removeChild(LLView*); + /*virtual*/ BOOL postBuild(); + /*virtual*/ bool addChild(LLView* child, S32 tab_group = 0); + /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); - static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr output_node = NULL); + static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr output_node = NULL); - typedef enum e_animate - { - NO_ANIMATE, - ANIMATE - } EAnimate; + typedef enum e_animate + { + NO_ANIMATE, + ANIMATE + } EAnimate; - void addPanel(LLLayoutPanel* panel, EAnimate animate = NO_ANIMATE); - void collapsePanel(LLPanel* panel, BOOL collapsed = TRUE); - S32 getNumPanels() { return mPanels.size(); } + void addPanel(LLLayoutPanel* panel, EAnimate animate = NO_ANIMATE); + void collapsePanel(LLPanel* panel, BOOL collapsed = TRUE); + S32 getNumPanels() { return mPanels.size(); } - void updateLayout(); + void updateLayout(); - S32 getPanelSpacing() const { return mPanelSpacing; } + S32 getPanelSpacing() const { return mPanelSpacing; } void setPanelSpacing(S32 val); - - static void updateClass(); + + static void updateClass(); protected: - LLLayoutStack(const Params&); - friend class LLUICtrlFactory; - friend class LLLayoutPanel; + LLLayoutStack(const Params&); + friend class LLUICtrlFactory; + friend class LLLayoutPanel; private: - void updateResizeBarLimits(); - bool animatePanels(); - void createResizeBar(LLLayoutPanel* panel); - - const EOrientation mOrientation; - - typedef std::vector<LLLayoutPanel*> e_panel_list_t; - e_panel_list_t mPanels; - - LLLayoutPanel* findEmbeddedPanel(LLPanel* panelp) const; - LLLayoutPanel* findEmbeddedPanelByName(const std::string& name) const; - void updateFractionalSizes(); - void normalizeFractionalSizes(); - void updatePanelRect( LLLayoutPanel* param1, const LLRect& new_rect ); - - S32 mPanelSpacing; - - // true if we already applied animation this frame - bool mAnimatedThisFrame; - bool mAnimate; - bool mClip; - F32 mOpenTimeConstant; - F32 mCloseTimeConstant; - bool mNeedsLayout; - S32 mResizeBarOverlap; - bool mShowDragHandle; - S32 mDragHandleFirstIndent; - S32 mDragHandleSecondIndent; - S32 mDragHandleThickness; - S32 mDragHandleShift; + void updateResizeBarLimits(); + bool animatePanels(); + void createResizeBar(LLLayoutPanel* panel); + + const EOrientation mOrientation; + + typedef std::vector<LLLayoutPanel*> e_panel_list_t; + e_panel_list_t mPanels; + + LLLayoutPanel* findEmbeddedPanel(LLPanel* panelp) const; + LLLayoutPanel* findEmbeddedPanelByName(const std::string& name) const; + void updateFractionalSizes(); + void normalizeFractionalSizes(); + void updatePanelRect( LLLayoutPanel* param1, const LLRect& new_rect ); + + S32 mPanelSpacing; + + // true if we already applied animation this frame + bool mAnimatedThisFrame; + bool mAnimate; + bool mClip; + F32 mOpenTimeConstant; + F32 mCloseTimeConstant; + bool mNeedsLayout; + S32 mResizeBarOverlap; + bool mShowDragHandle; + S32 mDragHandleFirstIndent; + S32 mDragHandleSecondIndent; + S32 mDragHandleThickness; + S32 mDragHandleShift; LLUIColor mDragHandleColor; }; // end class LLLayoutStack @@ -140,76 +140,76 @@ class LLLayoutPanel : public LLPanel friend class LLLayoutStack; friend class LLUICtrlFactory; public: - struct Params : public LLInitParam::Block<Params, LLPanel::Params> - { - Optional<S32> expanded_min_dim, - min_dim; - Optional<bool> user_resize, - auto_resize; + struct Params : public LLInitParam::Block<Params, LLPanel::Params> + { + Optional<S32> expanded_min_dim, + min_dim; + Optional<bool> user_resize, + auto_resize; + + Params(); + }; + + ~LLLayoutPanel(); + + void initFromParams(const Params& p); + + void handleReshape(const LLRect& new_rect, bool by_user); - Params(); - }; + void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); - ~LLLayoutPanel(); - void initFromParams(const Params& p); + void setVisible(BOOL visible); - void handleReshape(const LLRect& new_rect, bool by_user); + S32 getLayoutDim() const; + S32 getTargetDim() const; + void setTargetDim(S32 value); + S32 getMinDim() const { return llmax(0, mMinDim); } + void setMinDim(S32 value) { mMinDim = value; } - void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); - + S32 getExpandedMinDim() const { return mExpandedMinDim >= 0 ? mExpandedMinDim : getMinDim(); } + void setExpandedMinDim(S32 value) { mExpandedMinDim = value; } - void setVisible(BOOL visible); + S32 getRelevantMinDim() const + { + S32 min_dim = mMinDim; - S32 getLayoutDim() const; - S32 getTargetDim() const; - void setTargetDim(S32 value); - S32 getMinDim() const { return llmax(0, mMinDim); } - void setMinDim(S32 value) { mMinDim = value; } + if (!mCollapsed) + { + min_dim = getExpandedMinDim(); + } - S32 getExpandedMinDim() const { return mExpandedMinDim >= 0 ? mExpandedMinDim : getMinDim(); } - void setExpandedMinDim(S32 value) { mExpandedMinDim = value; } - - S32 getRelevantMinDim() const - { - S32 min_dim = mMinDim; - - if (!mCollapsed) - { - min_dim = getExpandedMinDim(); - } - - return min_dim; - } + return min_dim; + } - F32 getAutoResizeFactor() const; - F32 getVisibleAmount() const; - S32 getVisibleDim() const; - LLResizeBar* getResizeBar() { return mResizeBar; } + F32 getAutoResizeFactor() const; + F32 getVisibleAmount() const; + S32 getVisibleDim() const; + LLResizeBar* getResizeBar() { return mResizeBar; } - bool isCollapsed() const { return mCollapsed;} + bool isCollapsed() const { return mCollapsed;} - void setOrientation(LLView::EOrientation orientation); - void storeOriginalDim(); + void setOrientation(LLView::EOrientation orientation); + void storeOriginalDim(); - void setIgnoreReshape(bool ignore) { mIgnoreReshape = ignore; } + void setIgnoreReshape(bool ignore) { mIgnoreReshape = ignore; } protected: - LLLayoutPanel(const Params& p); - - const bool mAutoResize; - const bool mUserResize; - - S32 mExpandedMinDim; - S32 mMinDim; - bool mCollapsed; - F32 mVisibleAmt; - F32 mCollapseAmt; - F32 mFractionalSize; - S32 mTargetDim; - bool mIgnoreReshape; - LLView::EOrientation mOrientation; - class LLResizeBar* mResizeBar; + LLLayoutPanel(const Params& p); + + const bool mAutoResize; + const bool mUserResize; + + S32 mExpandedMinDim; + S32 mMinDim; + bool mCollapsed; + F32 mVisibleAmt; + F32 mCollapseAmt; + F32 mFractionalSize; + S32 mTargetDim; + bool mIgnoreReshape; + LLView::EOrientation mOrientation; + class LLResizeBar* mResizeBar; }; |