summaryrefslogtreecommitdiff
path: root/indra/newview/llpersonfolderview.cpp
diff options
context:
space:
mode:
authorGilbert Gonzales <gilbert@lindenlab.com>2013-04-22 18:08:36 -0700
committerGilbert Gonzales <gilbert@lindenlab.com>2013-04-22 18:08:36 -0700
commita505c3734a4a3f644500558030b4496d3cb5a5b5 (patch)
tree50bbd639d59afd514fa53bbf67fad644bacfed75 /indra/newview/llpersonfolderview.cpp
parent0eb2248f55c835e51705c4dc026e177f3930c5db (diff)
ACME 162: Implemented a foundation model for the facebook connect folder view.
Diffstat (limited to 'indra/newview/llpersonfolderview.cpp')
-rw-r--r--indra/newview/llpersonfolderview.cpp126
1 files changed, 126 insertions, 0 deletions
diff --git a/indra/newview/llpersonfolderview.cpp b/indra/newview/llpersonfolderview.cpp
new file mode 100644
index 0000000000..e1f1cbb1fa
--- /dev/null
+++ b/indra/newview/llpersonfolderview.cpp
@@ -0,0 +1,126 @@
+/**
+* @file llpersonfolderview.cpp
+* @brief Implementation of llpersonfolderview
+* @author Gilbert@lindenlab.com
+*
+* $LicenseInfo:firstyear=2013&license=viewerlgpl$
+* Second Life Viewer Source Code
+* Copyright (C) 2013, 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 "llviewerprecompiledheaders.h"
+
+#include "llpersonfolderview.h"
+
+static LLDefaultChildRegistry::Register<LLPersonFolderView> r_person_folder_view("person_folder_view");
+
+const LLColor4U DEFAULT_WHITE(255, 255, 255);
+
+LLPersonFolderView::Params::Params()
+{}
+
+LLPersonFolderView::LLPersonFolderView(const LLPersonFolderView::Params& p) :
+LLFolderViewFolder(p)
+{
+
+}
+
+S32 LLPersonFolderView::getLabelXPos()
+{
+ return getIndentation() + mArrowSize + 15;//Should be a .xml variable but causes crash;
+}
+
+LLPersonFolderView::~LLPersonFolderView()
+{
+
+}
+
+void LLPersonFolderView::draw()
+{
+ static LLUIColor sFgColor = LLUIColorTable::instance().getColor("MenuItemEnabledColor", DEFAULT_WHITE);
+ static const LLFolderViewItem::Params& default_params = LLUICtrlFactory::getDefaultParams<LLFolderViewItem>();
+
+ static LLUIColor sHighlightBgColor = LLUIColorTable::instance().getColor("MenuItemHighlightBgColor", DEFAULT_WHITE);
+ static LLUIColor sFlashBgColor = LLUIColorTable::instance().getColor("MenuItemFlashBgColor", DEFAULT_WHITE);
+ static LLUIColor sFocusOutlineColor = LLUIColorTable::instance().getColor("MenuItemHighlightBgColor", DEFAULT_WHITE);
+ static LLUIColor sMouseOverColor = LLUIColorTable::instance().getColor("DkGray", DEFAULT_WHITE);
+
+ const LLFontGL * font = LLFontGL::getFontSansSerif();
+ F32 text_left = (F32)getLabelXPos();
+ F32 y = (F32)getRect().getHeight() - font->getLineHeight() - (F32)mTextPad;
+ LLColor4 color = sFgColor;
+ F32 right_x = 0;
+
+ drawHighlight(false, mIsSelected, sHighlightBgColor, sFlashBgColor, sFocusOutlineColor, sMouseOverColor);
+
+ updateLabelRotation();
+ drawOpenFolderArrow(default_params, sFgColor);
+
+ drawLabel(font, text_left, y, color, right_x);
+
+ LLView::draw();
+}
+
+//
+// LLPersonFolderModel
+//
+
+
+LLPersonView::Params::Params()
+{}
+
+LLPersonView::LLPersonView(const LLPersonView::Params& p) :
+LLFolderViewItem(p)
+{
+
+}
+
+S32 LLPersonView::getLabelXPos()
+{
+ return getIndentation();
+}
+
+void LLPersonView::addToFolder(LLFolderViewFolder * person_folder_view)
+{
+ LLFolderViewItem::addToFolder(person_folder_view);
+ //Added item to folder, could change folder's mHasVisibleChildren flag so call arrange
+ person_folder_view->requestArrange();
+}
+
+LLPersonView::~LLPersonView()
+{
+
+}
+
+void LLPersonView::draw()
+{
+ static LLUIColor sFgColor = LLUIColorTable::instance().getColor("MenuItemEnabledColor", DEFAULT_WHITE);
+ static LLUIColor sHighlightFgColor = LLUIColorTable::instance().getColor("MenuItemHighlightFgColor", DEFAULT_WHITE);
+
+ const LLFontGL * font = LLFontGL::getFontSansSerifSmall();
+ F32 text_left = (F32)getLabelXPos();
+ F32 y = (F32)getRect().getHeight() - font->getLineHeight() - (F32)mTextPad;
+ LLColor4 color = color = mIsSelected ? sHighlightFgColor : sFgColor;
+ F32 right_x = 0;
+
+ drawLabel(font, text_left, y, color, right_x);
+
+ LLView::draw();
+}