LLLayoutStack::LLLayoutStack(const LLLayoutStack::Params& p) : LLView(p), mPanelSpacing(p.border_size), mOrientation(p.orientation), mAnimate(p.animate), mAnimatedThisFrame(false), mNeedsLayout(true), mSaveSizes(p.save_sizes), // <FS:Zi> Save sizes to settings mClip(p.clip), mOpenTimeConstant(p.open_time_constant), mCloseTimeConstant(p.close_time_constant), mResizeBarOverlap(p.resize_bar_overlap), mShowDragHandle(p.show_drag_handle), mDragHandleFirstIndent(p.drag_handle_first_indent), mDragHandleSecondIndent(p.drag_handle_second_indent), mDragHandleThickness(p.drag_handle_thickness), mDragHandleShift(p.drag_handle_shift) { // <FS:Zi> Set up settings control to save sizes if not already present if (mSaveSizes) { std::string res = std::string("layout_size_") + getName(); LLStringUtil::replaceChar(res, ' ', '_'); mSizeControlName = res; LLControlGroup* controlGroup = LLUI::sSettingGroups["account"]; if (!controlGroup->controlExists(mSizeControlName)) { LL_WARNS() << "declaring control " << mSizeControlName << LL_ENDL; controlGroup->declareLLSD( mSizeControlName, LLSD(), llformat("Fractional size for layout panel %s", getName().c_str()) ); } else { mSavedSizes = controlGroup->getLLSD(mSizeControlName); } } // </FS:Zi> }