summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/lltoolbar.cpp77
-rw-r--r--indra/llui/lltoolbar.h60
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