summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorRichard Nelson <richard@lindenlab.com>2011-09-26 17:36:07 -0700
committerRichard Nelson <richard@lindenlab.com>2011-09-26 17:36:07 -0700
commita465f816b8e7674aa3f22023d7708106ca35b350 (patch)
treea9c767df415ba156b7528a27ffb06402002e08db /indra/llui
parent16fead6429eba35bdfb8ef01610780a508e062df (diff)
EXP-1239 FIX make toolbars wrap when there is not enough room
toolbars resize to fit buttons toolbar view uses layout stacks to organize toolbars reviewed by Leslie
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llcommandmanager.cpp2
-rw-r--r--indra/llui/lldockcontrol.cpp3
-rw-r--r--indra/llui/lltoolbar.cpp27
-rw-r--r--indra/llui/lltoolbarview.cpp3
4 files changed, 12 insertions, 23 deletions
diff --git a/indra/llui/llcommandmanager.cpp b/indra/llui/llcommandmanager.cpp
index 6be616b980..071ab24cda 100644
--- a/indra/llui/llcommandmanager.cpp
+++ b/indra/llui/llcommandmanager.cpp
@@ -109,7 +109,7 @@ void LLCommandManager::addCommand(LLCommand * command)
mCommandIndices[command->name()] = mCommands.size();
mCommands.push_back(command);
- llinfos << "Successfully added command: " << command->name() << llendl;
+ lldebugs << "Successfully added command: " << command->name() << llendl;
}
//static
diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp
index b1c27126d9..6e39fcd714 100644
--- a/indra/llui/lldockcontrol.cpp
+++ b/indra/llui/lldockcontrol.cpp
@@ -97,6 +97,7 @@ void LLDockControl::getAllowedRect(LLRect& rect)
void LLDockControl::repositionDockable()
{
+ if (!mDockWidget) return;
LLRect dockRect = mDockWidget->calcScreenRect();
LLRect rootRect;
mGetAllowedRectCallback(rootRect);
@@ -160,7 +161,7 @@ bool LLDockControl::isDockVisible()
case TOP:
{
// check is dock inside parent rect
- // assume that parent for all dockable flaoters
+ // assume that parent for all dockable floaters
// is the root view
LLRect dockParentRect =
mDockWidget->getRootView()->calcScreenRect();
diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp
index 31a18dc707..90ade136e8 100644
--- a/indra/llui/lltoolbar.cpp
+++ b/indra/llui/lltoolbar.cpp
@@ -122,6 +122,7 @@ void LLToolBar::initFromParams(const LLToolBar::Params& p)
centering_stack_p.rect = getLocalRect();
centering_stack_p.follows.flags = FOLLOWS_ALL;
centering_stack_p.orientation = orientation;
+ centering_stack_p.mouse_opaque = false;
mCenteringStack = LLUICtrlFactory::create<LLLayoutStack>(centering_stack_p);
addChild(mCenteringStack);
@@ -131,6 +132,7 @@ void LLToolBar::initFromParams(const LLToolBar::Params& p)
border_panel_p.rect = getLocalRect();
border_panel_p.auto_resize = true;
border_panel_p.user_resize = false;
+ border_panel_p.mouse_opaque = false;
mCenteringStack->addChild(LLUICtrlFactory::create<LLLayoutPanel>(border_panel_p));
@@ -145,21 +147,7 @@ void LLToolBar::initFromParams(const LLToolBar::Params& p)
LLPanel::Params button_panel_p(p.button_panel);
button_panel_p.rect = center_panel->getLocalRect();
- switch(p.side())
- {
- case SIDE_LEFT:
- button_panel_p.follows.flags = FOLLOWS_BOTTOM|FOLLOWS_LEFT;
- break;
- case SIDE_RIGHT:
- button_panel_p.follows.flags = FOLLOWS_BOTTOM|FOLLOWS_RIGHT;
- break;
- case SIDE_TOP:
- button_panel_p.follows.flags = FOLLOWS_TOP|FOLLOWS_LEFT;
- break;
- case SIDE_BOTTOM:
- button_panel_p.follows.flags = FOLLOWS_BOTTOM|FOLLOWS_LEFT;
- break;
- }
+ button_panel_p.follows.flags = FOLLOWS_BOTTOM|FOLLOWS_LEFT;
mButtonPanel = LLUICtrlFactory::create<LLPanel>(button_panel_p);
center_panel->addChild(mButtonPanel);
@@ -329,19 +317,22 @@ void LLToolBar::updateLayoutAsNeeded()
{
if (mSideType == SIDE_TOP)
{ // shift down to maintain top edge
- mButtonPanel->translate(0, mButtonPanel->getRect().getHeight() - total_girth);
+ translate(0, getRect().getHeight() - total_girth);
}
+ reshape(getRect().getWidth(), total_girth);
mButtonPanel->reshape(max_row_length, total_girth);
}
else // VERTICAL
{
if (mSideType == SIDE_RIGHT)
{ // shift left to maintain right edge
- mButtonPanel->translate(mButtonPanel->getRect().getWidth() - total_girth, 0);
+ translate(getRect().getWidth() - total_girth, 0);
}
+
+ reshape(total_girth, getRect().getHeight());
mButtonPanel->reshape(total_girth, max_row_length);
- }
+ }
// re-center toolbar buttons
mCenteringStack->updateLayout();
diff --git a/indra/llui/lltoolbarview.cpp b/indra/llui/lltoolbarview.cpp
index c99b573b35..27d67184d8 100644
--- a/indra/llui/lltoolbarview.cpp
+++ b/indra/llui/lltoolbarview.cpp
@@ -60,12 +60,10 @@ void LLToolBarView::draw()
LLToolBar* toolbar_bottom = getChild<LLToolBar>("toolbar_bottom");
LLToolBar* toolbar_left = getChild<LLToolBar>("toolbar_left");
LLToolBar* toolbar_right = getChild<LLToolBar>("toolbar_right");
- LLPanel* sizer_left = getChild<LLPanel>("sizer_left");
LLRect bottom_rect = toolbar_bottom->getRect();
LLRect left_rect = toolbar_left->getRect();
LLRect right_rect = toolbar_right->getRect();
- LLRect sizer_left_rect = sizer_left->getRect();
if ((old_width != getRect().getWidth()) || (old_height != getRect().getHeight()))
debug_print = true;
@@ -76,7 +74,6 @@ void LLToolBarView::draw()
llinfos << "Merov debug : draw bottom rect = " << bottom_rect.mLeft << ", " << bottom_rect.mTop << ", " << bottom_rect.mRight << ", " << bottom_rect.mBottom << llendl;
llinfos << "Merov debug : draw left rect = " << left_rect.mLeft << ", " << left_rect.mTop << ", " << left_rect.mRight << ", " << left_rect.mBottom << llendl;
llinfos << "Merov debug : draw right rect = " << right_rect.mLeft << ", " << right_rect.mTop << ", " << right_rect.mRight << ", " << right_rect.mBottom << llendl;
- llinfos << "Merov debug : draw s left rect = " << sizer_left_rect.mLeft << ", " << sizer_left_rect.mTop << ", " << sizer_left_rect.mRight << ", " << sizer_left_rect.mBottom << llendl;
old_width = ctrl_rect.getWidth();
old_height = ctrl_rect.getHeight();
debug_print = false;