summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/CMakeLists.txt2
-rw-r--r--indra/llui/lltoolbar.cpp77
-rw-r--r--indra/llui/lltoolbar.h60
-rw-r--r--indra/llui/llui.cpp2
4 files changed, 141 insertions, 0 deletions
diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index b3b2f4ae56..cf3f9b1a7b 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -99,6 +99,7 @@ set(llui_SOURCE_FILES
lltimectrl.cpp
lltransutil.cpp
lltoggleablemenu.cpp
+ lltoolbar.cpp
lltooltip.cpp
llui.cpp
lluicolortable.cpp
@@ -200,6 +201,7 @@ set(llui_HEADER_FILES
lltextvalidate.h
lltimectrl.h
lltoggleablemenu.h
+ lltoolbar.h
lltooltip.h
lltransutil.h
lluicolortable.h
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..dd454e3f0b
--- /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 class LLUICtrlFactory;
+ LLToolBar(const Params&);
+ void initFromParams(const Params&);
+
+private:
+ LLLayoutStack::ELayoutOrientation mOrientation;
+ LLLayoutStack* mStack;
+};
+
+
+#endif // LL_LLTOOLBAR_H
diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index 58ba9e05f5..593354ee9b 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -57,6 +57,7 @@
#include "llfiltereditor.h"
#include "llflyoutbutton.h"
#include "llsearcheditor.h"
+#include "lltoolbar.h"
// for XUIParse
#include "llquaternion.h"
@@ -91,6 +92,7 @@ std::list<std::string> gUntranslated;
static LLDefaultChildRegistry::Register<LLFilterEditor> register_filter_editor("filter_editor");
static LLDefaultChildRegistry::Register<LLFlyoutButton> register_flyout_button("flyout_button");
static LLDefaultChildRegistry::Register<LLSearchEditor> register_search_editor("search_editor");
+static LLDefaultChildRegistry::Register<LLToolBar> r1("toolbar");
// register other widgets which otherwise may not be linked in
static LLDefaultChildRegistry::Register<LLLoadingIndicator> register_loading_indicator("loading_indicator");