master
Richard Nelson 2010-03-10 18:22:26 -08:00
commit dcbf0ab31b
8 changed files with 46 additions and 22 deletions

View File

@ -1354,7 +1354,6 @@ void LLFloater::bringToFront( S32 x, S32 y )
// virtual
void LLFloater::setVisibleAndFrontmost(BOOL take_focus)
{
LLUI::clearPopups();
setVisible(TRUE);
setFrontmost(take_focus);
}

View File

@ -3455,7 +3455,7 @@ LLView* const LLMenuHolderGL::getVisibleMenu() const
for ( child_list_const_iter_t child_it = getChildList()->begin(); child_it != getChildList()->end(); ++child_it)
{
LLView* viewp = *child_it;
if (viewp->getVisible() && dynamic_cast<LLMenuBarGL*>(viewp) == NULL)
if (viewp->getVisible() && dynamic_cast<LLMenuGL*>(viewp) != NULL)
{
return viewp;
}
@ -3478,8 +3478,7 @@ BOOL LLMenuHolderGL::hideMenus()
for ( child_list_const_iter_t child_it = getChildList()->begin(); child_it != getChildList()->end(); ++child_it)
{
LLView* viewp = *child_it;
// clicks off of menu do not hide menu bar
if (dynamic_cast<LLMenuBarGL*>(viewp) == NULL && viewp->getVisible())
if (dynamic_cast<LLMenuGL*>(viewp) != NULL && viewp->getVisible())
{
viewp->setVisible(FALSE);
}

View File

@ -246,7 +246,7 @@ LLTextBase::~LLTextBase()
{
// Menu, like any other LLUICtrl, is deleted by its parent - gMenuHolder
clearSegments();
mSegments.clear();
}
void LLTextBase::initFromParams(const LLTextBase::Params& p)

View File

@ -68,15 +68,16 @@ const F32 TOTAL_LOGIN_TIME = 10.f; // seconds, wild guess at time from GL contex
S32 gLastStartAnimationFrame = 0; // human-style indexing, first image = 1
const S32 ANIMATION_FRAMES = 1; //13;
static LLRegisterPanelClassWrapper<LLProgressView> r("progress_view");
// XUI: Translate
LLProgressView::LLProgressView(const LLRect &rect)
LLProgressView::LLProgressView()
: LLPanel(),
mPercentDone( 0.f ),
mMouseDownInActiveArea( false ),
mUpdateEvents("LLProgressView")
{
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_progress.xml");
reshape(rect.getWidth(), rect.getHeight());
mUpdateEvents.listen("self", boost::bind(&LLProgressView::handleUpdate, this, _1));
}
@ -92,6 +93,9 @@ BOOL LLProgressView::postBuild()
getChild<LLTextBox>("message_text")->setClickedCallback(onClickMessage, this);
// hidden initially, until we need it
LLPanel::setVisible(FALSE);
sInstance = this;
return TRUE;
}
@ -126,19 +130,23 @@ BOOL LLProgressView::handleKeyHere(KEY key, MASK mask)
void LLProgressView::setVisible(BOOL visible)
{
// hiding progress view
if (getVisible() && !visible)
{
mFadeTimer.start();
// hiding progress view, so show menu bars
LLUI::getRootView()->getChildView("menu_bar_holder")->setVisible(TRUE);
}
// showing progress view
else if (!getVisible() && visible)
{
gViewerWindow->addPopup(this);
// showing progress view, so hide menu bars
LLUI::getRootView()->getChildView("menu_bar_holder")->setVisible(FALSE);
setFocus(TRUE);
mFadeTimer.stop();
mProgressTimer.start();
LLPanel::setVisible(visible);
LLPanel::setVisible(TRUE);
}
}
@ -148,7 +156,7 @@ void LLProgressView::draw()
static LLTimer timer;
// Paint bitmap if we've got one
glPushMatrix();
glPushMatrix();
if (gStartTexture)
{
LLGLSUIDefault gls_ui;
@ -189,7 +197,7 @@ void LLProgressView::draw()
// Fade is complete, release focus
gFocusMgr.releaseFocusIfNeeded( this );
LLPanel::setVisible(FALSE);
gViewerWindow->removePopup(this);
mFadeTimer.stop();
gStartTexture = NULL;
}

View File

@ -44,7 +44,7 @@ class LLProgressBar;
class LLProgressView : public LLPanel
{
public:
LLProgressView(const LLRect& rect);
LLProgressView();
virtual ~LLProgressView();
BOOL postBuild();

View File

@ -434,7 +434,8 @@ void init_menus()
gMenuBarView->setRect(LLRect(0, top, 0, top - MENU_BAR_HEIGHT));
gMenuBarView->setBackgroundColor( color );
gMenuHolder->addChild(gMenuBarView);
LLView* menu_bar_holder = gViewerWindow->getRootView()->getChildView("menu_bar_holder");
menu_bar_holder->addChild(gMenuBarView);
gViewerWindow->setMenuBackgroundColor(false,
LLViewerLogin::getInstance()->isInProductionGrid());
@ -469,9 +470,10 @@ void init_menus()
gLoginMenuBarView = LLUICtrlFactory::getInstance()->createFromFile<LLMenuBarGL>("menu_login.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
gLoginMenuBarView->arrangeAndClear();
LLRect menuBarRect = gLoginMenuBarView->getRect();
gLoginMenuBarView->setRect(LLRect(menuBarRect.mLeft, menuBarRect.mTop, gViewerWindow->getRootView()->getRect().getWidth() - menuBarRect.mLeft, menuBarRect.mBottom));
menuBarRect.setLeftTopAndSize(0, menu_bar_holder->getRect().getHeight(), menuBarRect.getWidth(), menuBarRect.getHeight());
gLoginMenuBarView->setRect(menuBarRect);
gLoginMenuBarView->setBackgroundColor( color );
gMenuHolder->addChild(gLoginMenuBarView);
menu_bar_holder->addChild(gLoginMenuBarView);
// tooltips are on top of EVERYTHING, including menus
gViewerWindow->getRootView()->sendChildToFront(gToolTipView);

View File

@ -1351,7 +1351,8 @@ LLViewerWindow::LLViewerWindow(
mStatesDirty(false),
mIsFullscreenChecked(false),
mCurrResolutionIndex(0),
mViewerWindowListener(new LLViewerWindowListener(this))
mViewerWindowListener(new LLViewerWindowListener(this)),
mProgressView(NULL)
{
LLNotificationChannel::buildChannel("VW_alerts", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alert"));
LLNotificationChannel::buildChannel("VW_alertmodal", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alertmodal"));
@ -1588,8 +1589,7 @@ void LLViewerWindow::initBase()
gToolTipView = getRootView()->getChild<LLToolTipView>("tooltip view");
// Add the progress bar view (startup view), which overrides everything
mProgressView = new LLProgressView(full_window);
getRootView()->addChild(mProgressView);
mProgressView = getRootView()->getChild<LLProgressView>("progress_view");
setShowProgress(FALSE);
setProgressCancelButtonVisible(FALSE);

View File

@ -143,12 +143,19 @@
<panel mouse_opaque="false"
follows="left|right|top"
name="status_bar_container"
tab_stop="false"
tab_stop="false"
height="19"
left="0"
top="0"
width="1024"
visible="false"/>
<view mouse_opaque="false"
follows="all"
name="menu_bar_holder"
left="0"
top="0"
width="1024"
height="768"/>
<notify_box_view top="0"
follows="all"
height="768"
@ -156,6 +163,15 @@
name="notify_container"
tab_group="-2"
width="1024"/>
<panel top="0"
follows="all"
height="768"
mouse_opaque="true"
name="progress_view"
filename="panel_progress.xml"
class="progress_view"
width="1024"
visible="false"/>
<panel top="0"
follows="all"
height="768"