diff options
| -rw-r--r-- | indra/llui/lltoolbar.cpp | 77 | ||||
| -rw-r--r-- | indra/llui/lltoolbar.h | 60 | 
2 files changed, 137 insertions, 0 deletions
| diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp new file mode 100644 index 0000000000..0356fd5c8a --- /dev/null +++ b/indra/llui/lltoolbar.cpp @@ -0,0 +1,77 @@ +/**  + * @file lltoolbar.cpp + * @author Richard Nelson + * @brief User customizable toolbar class + * + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2011, 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$ + */ + +#include "linden_common.h" + +#include "boost/foreach.hpp" +#include "lltoolbar.h" + +//static LLDefaultChildRegistry::Register<LLToolBar> r1("toolbar"); + +LLToolBar::Params::Params() +:	orientation("orientation"), +	buttons("button") +{} + +LLToolBar::LLToolBar(const Params& p) +:	LLUICtrl(p), +	mOrientation(p.orientation), +	mStack(NULL) +{ + +} + +void LLToolBar::draw() +{ +	gl_rect_2d(getLocalRect(), LLColor4::blue, TRUE); +} + +void LLToolBar::initFromParams(const LLToolBar::Params& p) +{ +	LLLayoutStack::Params stack_p; +	stack_p.rect = getLocalRect(); +	stack_p.follows.flags = FOLLOWS_ALL; +	stack_p.name = "button_stack"; +	stack_p.orientation = p.orientation; + +	mStack = LLUICtrlFactory::create<LLLayoutStack>(stack_p); +	addChild(mStack); + +	BOOST_FOREACH (LLButton::Params button_p, p.buttons) +	{ +		LLLayoutPanel::Params panel_p; +		panel_p.name = button_p.name() + "_panel"; +		panel_p.rect = button_p.rect; +		panel_p.user_resize = false; +		panel_p.auto_resize= false; + +		LLLayoutPanel* panel = LLUICtrlFactory::create<LLLayoutPanel>(panel_p); +		LLButton* button = LLUICtrlFactory::create<LLButton>(button_p); +		panel->addChild(button); +		mStack->addChild(panel); +	} +} diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h new file mode 100644 index 0000000000..768f42309d --- /dev/null +++ b/indra/llui/lltoolbar.h @@ -0,0 +1,60 @@ +/**  + * @file lltoolbar.h + * @author Richard Nelson + * @brief User customizable toolbar class + * + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2011, 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$ + */ + +#ifndef LL_LLTOOLBAR_H +#define LL_LLTOOLBAR_H + +#include "lluictrl.h" +#include "lllayoutstack.h" +#include "llbutton.h" + +class LLToolBar +:	public LLUICtrl +{ +public: +	struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> +	{ +		Mandatory<LLLayoutStack::ELayoutOrientation>	orientation; +		Multiple<LLButton::Params>						buttons; + +		Params(); +	}; + +	void draw(); + +protected: +	friend LLUICtrlFactory; +	LLToolBar(const Params&); +	void initFromParams(const Params&); + +private: +	LLLayoutStack::ELayoutOrientation mOrientation; +	LLLayoutStack* mStack; +}; + + +#endif  // LL_LLTOOLBAR_H | 
