diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp index 3f56ec2c3d44a935a2d18f17ba39c08462079029..6c0a2a9a10f687569469c13f52d1ca65aab01112 100644 --- a/indra/llui/lllayoutstack.cpp +++ b/indra/llui/lllayoutstack.cpp @@ -38,6 +38,12 @@ static LLDefaultChildRegistry::Register<LLLayoutStack> register_layout_stack("layout_stack"); static LLLayoutStack::LayoutStackRegistry::Register<LLLayoutPanel> register_layout_panel("layout_panel"); +void LLLayoutStack::OrientationNames::declareValues() +{ + declare("horizontal", HORIZONTAL); + declare("vertical", VERTICAL); +} + // // LLLayoutPanel // @@ -107,7 +113,7 @@ LLLayoutStack::LLLayoutStack(const LLLayoutStack::Params& p) mMinWidth(0), mMinHeight(0), mPanelSpacing(p.border_size), - mOrientation((p.orientation() == "vertical") ? VERTICAL : HORIZONTAL), + mOrientation(p.orientation), mAnimate(p.animate), mAnimatedThisFrame(false), mClip(p.clip) diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h index e19ef403eff7594a9a37bf1835624021d4993bf0..9e8539c716b11f77fb57eddd45ba516249ef4c3e 100644 --- a/indra/llui/lllayoutstack.h +++ b/indra/llui/lllayoutstack.h @@ -37,12 +37,24 @@ class LLLayoutPanel; class LLLayoutStack : public LLView, public LLInstanceTracker<LLLayoutStack> { public: + typedef enum e_layout_orientation + { + HORIZONTAL, + VERTICAL + } ELayoutOrientation; + + struct OrientationNames + : public LLInitParam::TypeValuesHelper<ELayoutOrientation, OrientationNames> + { + static void declareValues(); + }; + struct LayoutStackRegistry : public LLChildRegistry<LayoutStackRegistry> {}; struct Params : public LLInitParam::Block<Params, LLView::Params> { - Mandatory<std::string> orientation; + Mandatory<ELayoutOrientation, OrientationNames> orientation; Optional<S32> border_size; Optional<bool> animate, clip; @@ -52,12 +64,6 @@ class LLLayoutStack : public LLView, public LLInstanceTracker<LLLayoutStack> typedef LayoutStackRegistry child_registry_t; - typedef enum e_layout_orientation - { - HORIZONTAL, - VERTICAL - } ELayoutOrientation; - virtual ~LLLayoutStack(); /*virtual*/ void draw(); diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 271ee0c4a48961ee24e1aeb10687f3ac5bf78d19..e9337706017fc97fecd4a90fa867c25bcd07ed23 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -586,7 +586,7 @@ void LLChatHistory::initFromParams(const LLChatHistory::Params& p) LLLayoutStack::Params layout_p; layout_p.rect = stack_rect; layout_p.follows.flags = FOLLOWS_ALL; - layout_p.orientation = "vertical"; + layout_p.orientation = LLLayoutStack::VERTICAL; layout_p.mouse_opaque = false; LLLayoutStack* stackp = LLUICtrlFactory::create<LLLayoutStack>(layout_p, this); diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 6595ee2bccad9a0b4aa499018ddf2b24a0a64bb4..54c7d361b757342df025b1718ae2e628d3e215b2 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -109,7 +109,7 @@ void LLWindowShade::initFromParams(const LLWindowShade::Params& params) layout_p.rect = LLRect(0,getLocalRect().mTop,getLocalRect().mRight, 30); layout_p.follows.flags = FOLLOWS_ALL; layout_p.mouse_opaque = false; - layout_p.orientation = "vertical"; + layout_p.orientation = LLLayoutStack::VERTICAL; LLLayoutStack* stackp = LLUICtrlFactory::create<LLLayoutStack>(layout_p); addChild(stackp); @@ -135,7 +135,7 @@ void LLWindowShade::initFromParams(const LLWindowShade::Params& params) layout_p = LLUICtrlFactory::getDefaultParams<LLLayoutStack>(); layout_p.rect = LLRect(0, 30, 800, 0); layout_p.follows.flags = FOLLOWS_ALL; - layout_p.orientation = "horizontal"; + layout_p.orientation = LLLayoutStack::HORIZONTAL; stackp = LLUICtrlFactory::create<LLLayoutStack>(layout_p); notification_panel->addChild(stackp);