EXP-1207 : LLToolbarView skeleton, nothing operational yet...

master
Merov Linden 2011-09-21 14:24:38 -07:00
parent 3df9545017
commit 7bc6e626f4
6 changed files with 184 additions and 0 deletions

View File

@ -100,6 +100,7 @@ set(llui_SOURCE_FILES
lltransutil.cpp
lltoggleablemenu.cpp
lltoolbar.cpp
lltoolbarview.cpp
lltooltip.cpp
llui.cpp
lluicolortable.cpp
@ -202,6 +203,7 @@ set(llui_HEADER_FILES
lltimectrl.h
lltoggleablemenu.h
lltoolbar.h
lltoolbarview.h
lltooltip.h
lltransutil.h
lluicolortable.h

View File

@ -0,0 +1,74 @@
/**
* @file lltoolbarview.cpp
* @author Merov Linden
* @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 "lltoolbarview.h"
#include "llbutton.h"
LLToolBarView* gToolBarView = NULL;
static LLDefaultChildRegistry::Register<LLToolBarView> r("toolbar_view");
LLToolBarView::LLToolBarView(const Params& p)
: LLUICtrl(p)
{
}
BOOL LLToolBarView::postBuild()
{
LLButton* btn = getChild<LLButton>("color_pipette");
btn->setVisible(TRUE);
LLRect ctrl_rect = getRect();
LLRect btn_rect = btn->getRect();
llinfos << "Merov debug : control rect = " << ctrl_rect.mLeft << ", " << ctrl_rect.mTop << ", " << ctrl_rect.mRight << ", " << ctrl_rect.mBottom << llendl;
llinfos << "Merov debug : button rect = " << btn_rect.mLeft << ", " << btn_rect.mTop << ", " << btn_rect.mRight << ", " << btn_rect.mBottom << llendl;
btn_rect.mLeft = 0;
btn_rect.mTop = ctrl_rect.getHeight();
btn_rect.mRight = 28;
btn_rect.mBottom = btn_rect.mTop - 28;
btn->setRect(btn_rect);
btn_rect = btn->getRect();
llinfos << "Merov debug : button rect = " << btn_rect.mLeft << ", " << btn_rect.mTop << ", " << btn_rect.mRight << ", " << btn_rect.mBottom << llendl;
return TRUE;
}
void LLToolBarView::draw()
{
LLButton* btn = getChild<LLButton>("color_pipette");
btn->setVisible(TRUE);
static bool debug_print = true;
if (debug_print)
{
LLRect ctrl_rect = getRect();
LLRect btn_rect = btn->getRect();
llinfos << "Merov debug : draw control rect = " << ctrl_rect.mLeft << ", " << ctrl_rect.mTop << ", " << ctrl_rect.mRight << ", " << ctrl_rect.mBottom << llendl;
llinfos << "Merov debug : draw button rect = " << btn_rect.mLeft << ", " << btn_rect.mTop << ", " << btn_rect.mRight << ", " << btn_rect.mBottom << llendl;
debug_print = false;
}
LLUICtrl::draw();
}

View File

@ -0,0 +1,52 @@
/**
* @file lltoolbarview.h
* @author Merov Linden
* @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_LLTOOLBARVIEW_H
#define LL_LLTOOLBARVIEW_H
#include "lluictrl.h"
// Parent of all LLToolBar
class LLToolBarView : public LLUICtrl
{
public:
struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> {};
void draw();
/*virtual*/ BOOL postBuild();
protected:
friend class LLUICtrlFactory;
LLToolBarView(const Params&);
private:
LLHandle<LLView> mSnapView;
};
extern LLToolBarView* gToolBarView;
#endif // LL_LLTOOLBARVIEW_H

View File

@ -2652,6 +2652,17 @@
<key>Value</key>
<integer>-1</integer>
</map>
<key>DebugToolbarFUI</key>
<map>
<key>Comment</key>
<string>Turn on the FUI Toolbars</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>DebugViews</key>
<map>
<key>Comment</key>

View File

@ -76,6 +76,7 @@
#include "lltimer.h"
#include "timing.h"
#include "llviewermenu.h"
#include "lltoolbarview.h"
#include "lltooltip.h"
#include "llmediaentry.h"
#include "llurldispatcher.h"
@ -1778,6 +1779,14 @@ void LLViewerWindow::initBase()
mHintHolder = main_view->getChild<LLView>("hint_holder")->getHandle();
mLoginPanelHolder = main_view->getChild<LLView>("login_panel_holder")->getHandle();
// Update the toolbar global holder
// *TODO: Eventually, suppress the existence of this debug setting and turn toolbar FUI on permanently
if (gSavedSettings.getBOOL("DebugToolbarFUI"))
{
gToolBarView = main_view->getChild<LLToolBarView>("Toolbar View");
}
// Constrain floaters to inside the menu and status bar regions.
gFloaterView = main_view->getChild<LLFloaterView>("Floater View");
gFloaterView->setFloaterSnapView(main_view->getChild<LLView>("floater_snap_region")->getHandle());
@ -2000,6 +2009,7 @@ void LLViewerWindow::shutdownViews()
gIMMgr = NULL;
gToolTipView = NULL;
gToolBarView = NULL;
gFloaterView = NULL;
gMorphView = NULL;

View File

@ -162,6 +162,41 @@
top="0"
width="1024"/>
</panel>
<panel follows="left|top"
layout="topleft"
height="500"
left="0"
mouse_opaque="false"
name="toolbar_view_holder"
tab_stop="false"
top="0"
visible="true"
width="1024">
<toolbar_view follows="left|top"
layout="topleft"
height="100"
left="100"
mouse_opaque="false"
name="Toolbar View"
tab_stop="false"
top="100"
visible="true"
width="512">
<button
follows="left|top"
height="28"
image_selected="eye_button_active.tga"
image_unselected="eye_button_inactive.tga"
layout="topleft"
top="0"
left="0"
name="color_pipette"
width="28"
visible="true" />
</toolbar_view>
</panel>
</layout_panel>
</layout_stack>
<panel mouse_opaque="false"