master
Richard Linden 2010-03-18 16:39:27 -07:00
commit 41c51a07eb
3 changed files with 11 additions and 14 deletions

View File

@ -96,11 +96,7 @@ LLGestureComboList::LLGestureComboList(const LLGestureComboList::Params& p)
params.commit_on_keyboard_movement(false);
mList = LLUICtrlFactory::create<LLScrollListCtrl>(params);
// *HACK: adding list as a child to FloaterViewHolder to make it fully visible without
// making it top control (because it would cause problems).
gViewerWindow->getFloaterViewHolder()->addChild(mList);
mList->setVisible(FALSE);
addChild(mList);
//****************************Gesture Part********************************/
@ -115,7 +111,7 @@ LLGestureComboList::LLGestureComboList(const LLGestureComboList::Params& p)
setFocusLostCallback(boost::bind(&LLGestureComboList::hideList, this));
}
BOOL LLGestureComboList::handleKey(KEY key, MASK mask, BOOL called_from_parent)
BOOL LLGestureComboList::handleKeyHere(KEY key, MASK mask)
{
BOOL handled = FALSE;
@ -126,7 +122,7 @@ BOOL LLGestureComboList::handleKey(KEY key, MASK mask, BOOL called_from_parent)
}
else
{
handled = mList->handleKey(key, mask, called_from_parent);
handled = mList->handleKeyHere(key, mask);
}
return handled;
@ -135,18 +131,17 @@ BOOL LLGestureComboList::handleKey(KEY key, MASK mask, BOOL called_from_parent)
void LLGestureComboList::showList()
{
LLRect rect = mList->getRect();
LLRect screen;
mButton->localRectToScreen(getRect(), &screen);
LLRect button_rect = mButton->getRect();
// Calculating amount of space between the navigation bar and gestures combo
LLNavigationBar* nb = LLNavigationBar::getInstance();
S32 x, nb_bottom;
nb->localPointToScreen(0, 0, &x, &nb_bottom);
nb->localPointToOtherView(0, 0, &x, &nb_bottom, this);
S32 max_height = nb_bottom - screen.mTop;
S32 max_height = nb_bottom - button_rect.mTop;
mList->calcColumnWidths();
rect.setOriginAndSize(screen.mLeft, screen.mTop, llmax(mList->getMaxContentWidth(),mButton->getRect().getWidth()), max_height);
rect.setOriginAndSize(button_rect.mLeft, button_rect.mTop, llmax(mList->getMaxContentWidth(),mButton->getRect().getWidth()), max_height);
mList->setRect(rect);
mList->fitContents( llmax(mList->getMaxContentWidth(),mButton->getRect().getWidth()), max_height);
@ -156,6 +151,7 @@ void LLGestureComboList::showList()
// Show the list and push the button down
mButton->setToggleState(TRUE);
mList->setVisible(TRUE);
LLUI::addPopup(mList);
}
void LLGestureComboList::onButtonCommit()
@ -188,6 +184,7 @@ void LLGestureComboList::hideList()
mButton->setToggleState(FALSE);
mList->setVisible(FALSE);
mList->mouseOverHighlightNthItem(-1);
LLUI::removePopup(mList);
gFocusMgr.setKeyboardFocus(NULL);
}
}

View File

@ -70,7 +70,7 @@ public:
LLCtrlListInterface* getListInterface() { return (LLCtrlListInterface*)mList; };
virtual void showList();
virtual void hideList();
virtual BOOL handleKey(KEY key, MASK mask, BOOL called_from_parent);
virtual BOOL handleKeyHere(KEY key, MASK mask);
S32 getCurrentIndex() const;
void onItemSelected(const LLSD& data);

View File

@ -283,7 +283,7 @@
layout="topleft"
left_delta="0"
name="external"
value="true"
value="1"
tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen."
top_delta="20"
width="480" />