diff options
-rwxr-xr-x | indra/newview/llloginhandler.cpp | 27 | ||||
-rwxr-xr-x | indra/newview/llpanellogin.cpp | 220 | ||||
-rwxr-xr-x | indra/newview/llpanellogin.h | 13 | ||||
-rwxr-xr-x | indra/newview/skins/default/textures/textures.xml | 8 | ||||
-rw-r--r-- | indra/newview/skins/default/textures/widgets/PushButton_Login_On.png | bin | 0 -> 542 bytes | |||
-rw-r--r-- | indra/newview/skins/default/textures/widgets/PushButton_Login_On_Selected.png | bin | 0 -> 563 bytes | |||
-rw-r--r-- | indra/newview/skins/default/textures/windows/first_login_image_left.png | bin | 0 -> 311306 bytes | |||
-rw-r--r-- | indra/newview/skins/default/textures/windows/first_login_image_right.png | bin | 0 -> 329170 bytes | |||
-rw-r--r-- | indra/newview/skins/default/textures/windows/login_sl_logo.png | bin | 0 -> 21797 bytes | |||
-rwxr-xr-x | indra/newview/skins/default/xui/en/main_view.xml | 1 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/panel_login.xml | 637 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_login_first.xml | 260 | ||||
-rwxr-xr-x | indra/newview/skins/default/xui/en/widgets/combo_box.xml | 2 |
13 files changed, 764 insertions, 404 deletions
diff --git a/indra/newview/llloginhandler.cpp b/indra/newview/llloginhandler.cpp index 9b4f146332..39f3c0f113 100755 --- a/indra/newview/llloginhandler.cpp +++ b/indra/newview/llloginhandler.cpp @@ -96,33 +96,6 @@ bool LLLoginHandler::handle(const LLSD& tokens, return true; } - if (tokens.size() == 1 - && tokens[0].asString() == "show") - { - // We're using reg-in-client, so show the XUI login widgets - LLPanelLogin::showLoginWidgets(); - return true; - } - - if (tokens.size() == 1 - && tokens[0].asString() == "reg") - { - LLWindow* window = gViewerWindow->getWindow(); - window->incBusyCount(); - window->setCursor(UI_CURSOR_ARROW); - - // Do this first, as it may be slow and we want to keep something - // on the user's screen as long as possible - LLWeb::loadURLExternal( "http://join.eniac15.lindenlab.com/" ); - - window->decBusyCount(); - window->setCursor(UI_CURSOR_ARROW); - - // Then hide the window - window->minimize(); - return true; - } - // Make sure window is visible LLWindow* window = gViewerWindow->getWindow(); if (window->getMinimized()) diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 911ecaad9d..420166ba7d 100755 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -82,20 +82,86 @@ const S32 MAX_PASSWORD = 16; LLPanelLogin *LLPanelLogin::sInstance = NULL; BOOL LLPanelLogin::sCapslockDidNotification = FALSE; -class LLLoginRefreshHandler : public LLCommandHandler +class LLLoginLocationAutoHandler : public LLCommandHandler { public: // don't allow from external browsers - LLLoginRefreshHandler() : LLCommandHandler("login_refresh", UNTRUSTED_BLOCK) { } + LLLoginLocationAutoHandler() : LLCommandHandler("location_login", UNTRUSTED_BLOCK) { } bool handle(const LLSD& tokens, const LLSD& query_map, LLMediaCtrl* web) - { + { if (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP) { - LLPanelLogin::loadLoginPage(); - } + if ( tokens.size() == 0 || tokens.size() > 4 ) + return false; + + // unescape is important - uris with spaces are escaped in this code path + // (e.g. space -> %20) and the code to log into a region doesn't support that. + const std::string region = LLURI::unescape( tokens[0].asString() ); + + // just region name as payload + if ( tokens.size() == 1 ) + { + // region name only - slurl will end up as center of region + LLSLURL slurl(region); + LLPanelLogin::autologinToLocation(slurl); + } + else + // region name and x coord as payload + if ( tokens.size() == 2 ) + { + // invalid to only specify region and x coordinate + // slurl code will revert to same as region only, so do this anyway + LLSLURL slurl(region); + LLPanelLogin::autologinToLocation(slurl); + } + else + // region name and x/y coord as payload + if ( tokens.size() == 3 ) + { + // region and x/y specified - default z to 0 + F32 xpos; + std::istringstream codec(tokens[1].asString()); + codec >> xpos; + + F32 ypos; + codec.clear(); + codec.str(tokens[2].asString()); + codec >> ypos; + + const LLVector3 location(xpos, ypos, 0.0f); + LLSLURL slurl(region, location); + + LLPanelLogin::autologinToLocation(slurl); + } + else + // region name and x/y/z coord as payload + if ( tokens.size() == 4 ) + { + // region and x/y/z specified - ok + F32 xpos; + std::istringstream codec(tokens[1].asString()); + codec >> xpos; + + F32 ypos; + codec.clear(); + codec.str(tokens[2].asString()); + codec >> ypos; + + F32 zpos; + codec.clear(); + codec.str(tokens[3].asString()); + codec >> zpos; + + const LLVector3 location(xpos, ypos, zpos); + LLSLURL slurl(region, location); + + LLPanelLogin::autologinToLocation(slurl); + }; + } return true; } }; +LLLoginLocationAutoHandler gLoginLocationAutoHandler; //--------------------------------------------------------------------------- // Public methods @@ -104,7 +170,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, void (*callback)(S32 option, void* user_data), void *cb_data) : LLPanel(), - mLogoImage(), mCallback(callback), mCallbackData(cb_data), mListener(new LLPanelLoginListener(this)) @@ -131,17 +196,21 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, login_holder->addChild(this); } - // Logo - mLogoImage = LLUI::getUIImage("startup_logo"); - - buildFromFile( "panel_login.xml"); + if (gSavedSettings.getBOOL("FirstLoginThisInstall")) + { + buildFromFile( "panel_login_first.xml"); + } + else + { + buildFromFile( "panel_login.xml"); + } reshape(rect.getWidth(), rect.getHeight()); LLLineEditor* password_edit(getChild<LLLineEditor>("password_edit")); password_edit->setKeystrokeCallback(onPassKey, this); // STEAM-14: When user presses Enter with this field in focus, initiate login - password_edit->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnect, this)); + password_edit->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnectLast, this)); // change z sort of clickable text to be behind buttons sendChildToBack(getChildView("forgot_password_text")); @@ -199,7 +268,9 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, LLPanelLogin::onUpdateStartSLURL(start_slurl); // updates grid if needed } - childSetAction("connect_btn", onClickConnect, this); + childSetAction("connect_btn", onClickConnectLast, this); + childSetAction("connect_favorite_btn", onClickConnectFavorite, this); + childSetAction("connect_location_btn", onClickConnectLocation, this); getChild<LLPanel>("links_login_panel")->setDefaultBtn("connect_btn"); @@ -211,8 +282,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, LLTextBox* forgot_password_text = getChild<LLTextBox>("forgot_password_text"); forgot_password_text->setClickedCallback(onClickForgotPassword, NULL); - childSetAction("create_new_account_btn", onClickNewAccount, NULL); - LLTextBox* need_help_text = getChild<LLTextBox>("login_help"); need_help_text->setClickedCallback(onClickHelp, NULL); @@ -220,8 +289,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("login_html"); web_browser->addObserver(this); - reshapeBrowser(); - loadLoginPage(); // Show last logged in user favorites in "Start at" combo. @@ -298,21 +365,6 @@ void LLPanelLogin::addFavoritesToStartLocation() } } -// force the size to be correct (XML doesn't seem to be sufficient to do this) -// (with some padding so the other login screen doesn't show through) -void LLPanelLogin::reshapeBrowser() -{ - LLMediaCtrl* web_browser = getChild<LLMediaCtrl>("login_html"); - LLRect rect = gViewerWindow->getWindowRectScaled(); - LLRect html_rect; - html_rect.setCenterAndSize( - rect.getCenterX() - 2, rect.getCenterY() + 40, - rect.getWidth() + 6, rect.getHeight() - 78 ); - web_browser->setRect( html_rect ); - web_browser->reshape( html_rect.getWidth(), html_rect.getHeight(), TRUE ); - reshape( rect.getWidth(), rect.getHeight(), 1 ); -} - LLPanelLogin::~LLPanelLogin() { LLPanelLogin::sInstance = NULL; @@ -322,50 +374,6 @@ LLPanelLogin::~LLPanelLogin() gFocusMgr.setDefaultKeyboardFocus(NULL); } -// virtual -void LLPanelLogin::draw() -{ - gGL.pushMatrix(); - { - F32 image_aspect = 1.333333f; - F32 view_aspect = (F32)getRect().getWidth() / (F32)getRect().getHeight(); - // stretch image to maintain aspect ratio - if (image_aspect > view_aspect) - { - gGL.translatef(-0.5f * (image_aspect / view_aspect - 1.f) * getRect().getWidth(), 0.f, 0.f); - gGL.scalef(image_aspect / view_aspect, 1.f, 1.f); - } - - S32 width = getRect().getWidth(); - S32 height = getRect().getHeight(); - - if (getChild<LLView>("login_widgets")->getVisible()) - { - // draw a background box in black - gl_rect_2d( 0, height - 264, width, 264, LLColor4::black ); - // draw the bottom part of the background image - // just the blue background to the native client UI - mLogoImage->draw(0, -264, width + 8, mLogoImage->getHeight()); - }; - } - gGL.popMatrix(); - - LLPanel::draw(); -} - -// virtual -BOOL LLPanelLogin::handleKeyHere(KEY key, MASK mask) -{ - if ( KEY_F1 == key ) - { - LLViewerHelp* vhelp = LLViewerHelp::getInstance(); - vhelp->showTopic(vhelp->f1HelpTopic()); - return TRUE; - } - - return LLPanel::handleKeyHere(key, mask); -} - // virtual void LLPanelLogin::setFocus(BOOL b) { @@ -421,24 +429,6 @@ void LLPanelLogin::giveFocus() } // static -void LLPanelLogin::showLoginWidgets() -{ - if (sInstance) - { - // *NOTE: Mani - This may or may not be obselete code. - // It seems to be part of the defunct? reg-in-client project. - sInstance->getChildView("login_widgets")->setVisible( true); - LLMediaCtrl* web_browser = sInstance->getChild<LLMediaCtrl>("login_html"); - sInstance->reshapeBrowser(); - // *TODO: Append all the usual login parameters, like first_login=Y etc. - std::string splash_screen_url = LLGridManager::getInstance()->getLoginPage(); - web_browser->navigateTo( splash_screen_url, "text/html" ); - LLUICtrl* username_combo = sInstance->getChild<LLUICtrl>("username_combo"); - username_combo->setFocus(TRUE); - } -} - -// static void LLPanelLogin::show(const LLRect &rect, void (*callback)(S32 option, void* user_data), void* callback_data) @@ -714,6 +704,19 @@ void LLPanelLogin::setLocation(const LLSLURL& slurl) LLStartUp::setStartSLURL(slurl); // calls onUpdateStartSLURL, above } +void LLPanelLogin::autologinToLocation(const LLSLURL& slurl) +{ + LL_DEBUGS("AppInit")<<"automatically logging into Location "<<slurl.asString()<<LL_ENDL; + LLStartUp::setStartSLURL(slurl); // calls onUpdateStartSLURL, above + + if ( LLPanelLogin::sInstance != NULL ) + { + void* unused_parameter = 0; + LLPanelLogin::sInstance->onClickConnect(unused_parameter); + } +} + + // static void LLPanelLogin::closePanel() { @@ -797,6 +800,27 @@ void LLPanelLogin::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent ev //--------------------------------------------------------------------------- // Protected methods //--------------------------------------------------------------------------- +// static +void LLPanelLogin::onClickConnectLast(void *) +{ + std::string location = LLSLURL::SIM_LOCATION_LAST; + LLStartUp::setStartSLURL(location); + + void* unused_parameter = 0; + LLPanelLogin::sInstance->onClickConnect(unused_parameter); +} + +void LLPanelLogin::onClickConnectFavorite(void *) +{ + LLPanelLogin::sInstance->onLocationSLURL(); + + void* unused_parameter = 0; + LLPanelLogin::sInstance->onClickConnect(unused_parameter); +} + +void LLPanelLogin::onClickConnectLocation(void *) +{ +} // static void LLPanelLogin::onClickConnect(void *) @@ -866,16 +890,6 @@ void LLPanelLogin::onClickConnect(void *) } // static -void LLPanelLogin::onClickNewAccount(void*) -{ - if (sInstance) - { - LLWeb::loadURLExternal(LLTrans::getString("create_account_url")); - } -} - - -// static void LLPanelLogin::onClickVersion(void*) { LLFloaterReg::showInstance("sl_about"); diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h index c71cfc3783..072924c3f8 100755 --- a/indra/newview/llpanellogin.h +++ b/indra/newview/llpanellogin.h @@ -49,14 +49,8 @@ public: void *callback_data); ~LLPanelLogin(); - virtual BOOL handleKeyHere(KEY key, MASK mask); - virtual void draw(); virtual void setFocus( BOOL b ); - // Show the XUI first name, last name, and password widgets. They are - // hidden on startup for reg-in-client - static void showLoginWidgets(); - static void show(const LLRect &rect, void (*callback)(S32 option, void* user_data), void* callback_data); @@ -67,6 +61,7 @@ public: static BOOL areCredentialFieldsDirty(); static void setLocation(const LLSLURL& slurl); + static void autologinToLocation(const LLSLURL& slurl); /// Call when preferences that control visibility may have changed static void updateLocationSelectorsVisibility(); @@ -88,12 +83,14 @@ public: private: friend class LLPanelLoginListener; - void reshapeBrowser(); void addFavoritesToStartLocation(); void addUsersWithFavoritesToUsername(); void onSelectServer(); void onLocationSLURL(); + static void onClickConnectLast(void*); + static void onClickConnectFavorite(void*); + static void onClickConnectLocation(void*); static void onClickConnect(void*); static void onClickNewAccount(void*); static void onClickVersion(void*); @@ -103,7 +100,6 @@ private: static void updateServerCombo(); private: - LLPointer<LLUIImage> mLogoImage; boost::scoped_ptr<LLPanelLoginListener> mListener; void (*mCallback)(S32 option, void *userdata); @@ -113,6 +109,7 @@ private: static LLPanelLogin* sInstance; static BOOL sCapslockDidNotification; + bool mFirstLoginThisInstall; }; #endif diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 94c187e21a..4e643493de 100755 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -486,6 +486,10 @@ with the same filename but different name <texture name="PushButton_Selected_Press" file_name="widgets/PushButton_Selected_Press.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" /> <texture name="PushButton_Selected_Disabled" file_name="widgets/PushButton_Selected_Disabled.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" /> + <texture name="PushButton_Login_On" file_name="widgets/PushButton_Login_On.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" /> + <texture name="PushButton_Login_On_Selected" file_name="widgets/PushButton_Login_On_Selected.png" preload="true" scale.left="4" scale.top="19" scale.right="28" scale.bottom="4" /> + + <texture name="RadioButton_Press" file_name="widgets/RadioButton_Press.png" preload="true" /> <texture name="RadioButton_On_Press" file_name="widgets/RadioButton_On_Press.png" preload="true" /> <texture name="RadioButton_Off" file_name="widgets/RadioButton_Off.png" preload="true" /> @@ -574,6 +578,10 @@ with the same filename but different name <texture name="startup_logo" file_name="windows/startup_logo.png" preload="true" /> + <texture name="login_sl_logo" file_name="windows/login_sl_logo.png" preload="true" /> + <texture name="first_login_image_left" file_name="windows/first_login_image_left.png" preload="true" /> + <texture name="first_login_image_right" file_name="windows/first_login_image_right.png" preload="true" /> + <texture name="Stepper_Down_Off" file_name="widgets/Stepper_Down_Off.png" preload="false" /> <texture name="Stepper_Down_Press" file_name="widgets/Stepper_Down_Press.png" preload="false" /> <texture name="Stepper_Up_Off" file_name="widgets/Stepper_Up_Off.png" preload="false" /> diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Login_On.png b/indra/newview/skins/default/textures/widgets/PushButton_Login_On.png Binary files differnew file mode 100644 index 0000000000..3ccf888632 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/PushButton_Login_On.png diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Login_On_Selected.png b/indra/newview/skins/default/textures/widgets/PushButton_Login_On_Selected.png Binary files differnew file mode 100644 index 0000000000..257fed1764 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/PushButton_Login_On_Selected.png diff --git a/indra/newview/skins/default/textures/windows/first_login_image_left.png b/indra/newview/skins/default/textures/windows/first_login_image_left.png Binary files differnew file mode 100644 index 0000000000..b405a88245 --- /dev/null +++ b/indra/newview/skins/default/textures/windows/first_login_image_left.png diff --git a/indra/newview/skins/default/textures/windows/first_login_image_right.png b/indra/newview/skins/default/textures/windows/first_login_image_right.png Binary files differnew file mode 100644 index 0000000000..22a6dd8a53 --- /dev/null +++ b/indra/newview/skins/default/textures/windows/first_login_image_right.png diff --git a/indra/newview/skins/default/textures/windows/login_sl_logo.png b/indra/newview/skins/default/textures/windows/login_sl_logo.png Binary files differnew file mode 100644 index 0000000000..9810d00237 --- /dev/null +++ b/indra/newview/skins/default/textures/windows/login_sl_logo.png diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml index a87027a113..9885e37cea 100755 --- a/indra/newview/skins/default/xui/en/main_view.xml +++ b/indra/newview/skins/default/xui/en/main_view.xml @@ -68,6 +68,7 @@ left="0" follows="all" height="500" + layout="topleft" mouse_opaque="false" name="login_panel_holder" width="1024"/> diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index 134ca75018..cf469a9aad 100755 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -1,265 +1,372 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel - follows="all" - height="600" - layout="topleft" - left="0" - name="panel_login" - focus_root="true" - top="600" - width="1130"> - <string name="reg_in_client_url" translate="false"> - http://secondlife.eniac15.lindenlab.com/reg-in-client/ - </string> - <panel.string - name="forgot_password_url"> - http://secondlife.com/account/request.php - </panel.string> - <!-- *NOTE: Custom resize logic for login_html in llpanellogin.cpp --> - <web_browser - tab_stop="false" - trusted_content="true" - bg_opaque_color="Black" - border_visible="false" - bottom="600" - follows="all" - left="0" - name="login_html" - start_url="" - top="0" - height="600" - width="996"/> - <layout_stack - animate="false" - clip="false" - follows="left|bottom|right" - name="login_widgets" - layout="topleft" - orientation="horizontal" - top="519" - width="1130" - height="80"> - <layout_panel - auto_resize="false" - follows="left|bottom" - name="login" - layout="topleft" - width="310" - min_width="310" - height="80"> - <text - follows="left|bottom" - font="SansSerif" - font.style="BOLD" - font.size="Large" - height="16" - name="log_in_text" - top="8" - left="15" - width="150"> - LOG IN - </text> - <text - follows="left|bottom" - font="SansSerifSmall" - height="16" - name="username_text" - top="35" - left="15" - width="150"> - Username: - </text> - <!-- STEAM-14: Turn off commit_on_focus_lost so if user presses Enter - with focus in this combo_box, we can use commit action to initiate - login --> - <combo_box - allow_text_entry="true" - follows="left|bottom" - height="22" - left_delta="0" - max_chars="128" - commit_on_focus_lost="false" - combo_editor.prevalidate_callback="ascii" - tool_tip="The username you chose when you registered, like bobsmith12 or Steller Sunshine" - top_pad="0" - name="username_combo" - width="178"> -<!-- empirically, displayed width is 150 anyway?!? --> - <combo_box.combo_button - visible ="false"/> - <combo_box.drop_down_button - visible ="false"/> - </combo_box> -<!-- left="175" based on actual "username_combo" width of 150 vs. 178 --> - <text - follows="left|bottom" - font="SansSerifSmall" - height="16" - name="password_text" - top="35" - left="175" - width="150"> - Password: - </text> - <!-- STEAM-14: Turn off commit_on_focus_lost so if user presses Enter - with focus in this line_editor, we can use commit action to - initiate login --> - <line_editor - follows="left|bottom" - height="22" - max_length_bytes="16" - name="password_edit" - is_password="true" - select_on_focus="true" - commit_on_focus_lost="false" - top_pad="0" - width="135" /> - </layout_panel> - <layout_panel - auto_resize="false" - follows="left|bottom" - name="start_location_panel" - layout="topleft" - width="175" - min_width="175" - height="80"> - <text - follows="left|bottom" - font="SansSerifSmall" - height="16" - left="10" - name="start_location_text" - top="35" - width="130"> - Start at: - </text> - <combo_box - allow_text_entry="true" - control_name="NextLoginLocation" - follows="left|bottom" - height="22" - max_chars="128" - top_pad="0" - name="start_location_combo" - width="165"> - <combo_box.item - label="My last location" - name="MyLastLocation" - value="last" /> - <combo_box.item - label="My home" - name="MyHome" - value="home" /> - <combo_box.item - label="<Type region name>" - name="Typeregionname" value="" /> - </combo_box> - </layout_panel> - <layout_panel - auto_resize="false" - follows="left|bottom" - name="grid_panel" - layout="topleft" - width="145" - height="80" - visible="false"> - <combo_box - allow_text_entry="false" - font="SansSerifSmall" - follows="left|right|bottom" - height="23" - max_chars="256" - left="10" - top="51" - layout="topleft" - top_pad="2" - name="server_combo" - width="135" /> - </layout_panel> - <layout_panel - auto_resize="false" - follows="left|bottom" - name="links_login_panel" - layout="topleft" - width="290" - height="80"> - <text - follows="left|bottom" - font="SansSerifSmall" - text_color="EmphasisColor" - left="10" - height="16" - name="login_help" - top="19" - width="280"> - Need help logging in? - </text> - <text - follows="left|bottom" - font="SansSerifSmall" - text_color="EmphasisColor" - height="16" - name="forgot_password_text" - top="35" - width="280"> - Forgot your username or password? - </text> - <button - follows="left|bottom" - top_pad="0" - height="23" - image_unselected="PushButton_On" - image_selected="PushButton_On_Selected" - label="Log In" - label_color="White" - layout="topleft" - name="connect_btn" - width="90" /> - <check_box - control_name="RememberPassword" - follows="left|bottom" - font="SansSerifSmall" - left="110" - top="56" - height="16" - label="Remember password" - top_pad="3" - name="remember_check" - width="145" /> - </layout_panel> - <layout_panel - tab_stop="false" - follows="right|bottom" - name="links" - width="210" - min_width="100" - height="80"> - <text - follows="right|bottom" - font="SansSerif" - font.style="BOLD" - font.size="Large" - halign="right" - height="16" - name="create_account_text" - top="8" - right="-15" - width="200"> - CREATE YOUR ACCOUNT - </text> - <button - follows="right|bottom" - top="35" - right="-15" - height="23" - image_unselected="PushButton_On" - image_selected="PushButton_On_Selected" - label="Start now" - label_color="White" - layout="topleft" - left_pad="10" - name="create_new_account_btn" - width="90" /> - </layout_panel> - </layout_stack> -</panel> +<panel
+ follows="all"
+ height="768"
+ layout="topleft"
+ name="panel_login"
+ focus_root="true"
+ background_visible="true"
+ bg_opaque_color="0.16 0.16 0.16 1"
+ background_opaque="true"
+ width="1024">
+ <panel.string
+ name="forgot_password_url">
+ http://secondlife.com/account/request.php
+ </panel.string>
+ <layout_stack
+ follows="left|right|top|bottom"
+ width="1024"
+ height="768"
+ left="0"
+ name="logo_stack"
+ orientation="vertical"
+ top="0">
+ <layout_panel
+ height="30"
+ auto_resize="false"
+ name="page_top"
+ width="1024" />
+ <!-- start of logo stack -->
+ <layout_panel
+ height="110"
+ min_height="10"
+ auto_resize="false"
+ name="parent_panel"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="100"
+ left="0"
+ name="logo_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="100"
+ min_height="0"
+ auto_resize="true"
+ name="logo_left"
+ width="300" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|right|top"
+ name="logo_container"
+ width="225"
+ left="0"
+ top="0"
+ height="94">
+ <icon
+ height="94"
+ image_name="login_sl_logo"
+ left="0"
+ name="sl_logo"
+ top="0" />
+ </layout_panel>
+ <layout_panel
+ height="100"
+ name="logo_right"
+ auto_resize="true"
+ width="300" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of logo stack -->
+ <!-- start of widget1 stack -->
+ <layout_panel
+ height="80"
+ min_height="10"
+ auto_resize="false"
+ name="parent_panel2"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="80"
+ left="0"
+ name="widget_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="100"
+ min_height="10"
+ auto_resize="true"
+ name="widget_left"
+ width="100" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|top"
+ name="username_panel"
+ width="204"
+ top="0"
+ height="80">
+ <combo_box
+ allow_text_entry="true"
+ follows="left|bottom"
+ height="32"
+ left="0"
+ label="Username"
+ combo_editor.font="SansSerifLarge"
+ max_chars="128"
+ top="0"
+ commit_on_focus_lost="false"
+ combo_editor.prevalidate_callback="ascii"
+ tool_tip="The username you chose when you registered, like bobsmith12 or Steller Sunshine"
+ name="username_combo"
+ width="232">
+ <combo_box.combo_editor
+ text_pad_left="8" />
+ <combo_box.combo_button
+ visible="false" />
+ <combo_box.drop_down_button
+ visible="false" />
+ </combo_box>
+ <check_box
+ control_name="RememberPassword"
+ follows="left|top"
+ font="SansSerifLarge"
+ left="0"
+ top="32"
+ height="24"
+ label="Remember me"
+ check_button.bottom="3"
+ name="remember_check"
+ width="145" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="false"
+ follows="left|top"
+ name="panel_spacer_1"
+ width="16"
+ top="0"
+ height="80" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|top"
+ name="password_panel"
+ width="200"
+ top="0"
+ height="80">
+ <line_editor
+ follows="left|top"
+ height="32"
+ left="0"
+ max_length_bytes="16"
+ text_pad_left="8"
+ name="password_edit"
+ label="Password"
+ font="SansSerifLarge"
+ is_password="true"
+ select_on_focus="true"
+ commit_on_focus_lost="false"
+ top="0"
+ width="200" />
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="EmphasisColor"
+ height="16"
+ name="forgot_password_text"
+ left="0"
+ top="34"
+ width="200">
+ Forgotten password
+ </text>
+ </layout_panel>
+ <layout_panel
+ auto_resize="false"
+ follows="left|top"
+ name="panel_spacer_1"
+ width="16"
+ top="0"
+ height="80" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|top"
+ name="grid_panel"
+ width="128"
+ top="0"
+ height="80">
+ <combo_box
+ allow_text_entry="false"
+ font="SansSerifTiny"
+ follows="left|top"
+ height="32"
+ max_chars="128"
+ left="0"
+ top="0"
+ layout="topleft"
+ top_pad="2"
+ name="server_combo"
+ width="128" />
+ </layout_panel>
+ <layout_panel
+ height="20"
+ name="widget_right"
+ auto_resize="true"
+ width="100" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of widget1 stack -->
+ <!-- start of widget2 stack -->
+ <layout_panel
+ height="58"
+ min_height="10"
+ auto_resize="false"
+ name="parent_panel3"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="50"
+ left="0"
+ name="widget_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="50"
+ min_height="10"
+ auto_resize="true"
+ name="widget_left"
+ width="200" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|right|top"
+ name="widget_container"
+ width="832"
+ left="0"
+ top="0"
+ height="50">
+ <button
+ follows="left|top"
+ image_unselected="PushButton_Login_On"
+ image_selected="PushButton_Login_On_Selected"
+ label="Log In"
+ label_color="White"
+ font="SansSerifMedium"
+ name="connect_btn"
+ left="0"
+ width="64"
+ height="30"
+ top="0" />
+ <text
+ follows="left|top"
+ font="SansSerifMedium"
+ height="24"
+ name="At_My_Last_Location_Label"
+ left="72"
+ top="8"
+ width="200">
+ At my last location
+ </text>
+ <combo_box
+ control_name="NextLoginLocation"
+ follows="left|bottom"
+ label="My favorites"
+ height="30"
+ max_chars="128"
+ combo_editor.font="SansSerifMedium"
+ left="290"
+ top="0"
+ name="start_location_combo"
+ width="175"
+ combo_button.scale_image="true">
+ <combo_box.item
+ label="My home"
+ name="MyHome"
+ value="home" />
+ </combo_box>
+ <button
+ follows="left|top"
+ image_unselected="PushButton_Login_On"
+ image_selected="PushButton_Login_On_Selected"
+ label="Log In"
+ label_color="White"
+ font="SansSerifMedium"
+ name="connect_favorite_btn"
+ left="470"
+ width="64"
+ height="30"
+ top="0" />
+ <line_editor
+ follows="left|top"
+ width="170"
+ height="30"
+ left="590"
+ text_pad_left="8"
+ name="location_edit"
+ label="Type a location"
+ font="SansSerifMedium"
+ select_on_focus="true"
+ commit_on_focus_lost="false"
+ top="0" />
+ <button
+ follows="left|top"
+ image_unselected="PushButton_Login_On"
+ image_selected="PushButton_Login_On_Selected"
+ label="Log In"
+ label_color="White"
+ font="SansSerifMedium"
+ name="connect_location_btn"
+ left="768"
+ width="64"
+ height="30"
+ top="0" />
+ </layout_panel>
+ <layout_panel
+ height="100"
+ name="widget_right"
+ auto_resize="true"
+ width="200" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of widget2 stack -->
+ <!-- start of browser stack -->
+ <layout_panel
+ height="400"
+ min_height="10"
+ auto_resize="false"
+ name="parent_pane4"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="400"
+ left="0"
+ name="browser_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="400"
+ min_height="0"
+ auto_resize="true"
+ name="browser_left"
+ width="300" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|right|top"
+ name="browser_container"
+ width="850"
+ left="0"
+ top="0"
+ height="400">
+ <web_browser
+ tab_stop="false"
+ trusted_content="true"
+ bg_opaque_color="Black"
+ border_visible="false"
+ follows="all"
+ left="0"
+ name="login_html"
+ start_url=""
+ top="0"
+ height="400"
+ width="850" />
+ </layout_panel>
+ <layout_panel
+ height="400"
+ name="browser_right"
+ auto_resize="true"
+ width="300" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of browser stack -->
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_login_first.xml b/indra/newview/skins/default/xui/en/panel_login_first.xml new file mode 100644 index 0000000000..2ad5afe956 --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_login_first.xml @@ -0,0 +1,260 @@ +<panel
+ follows="all"
+ height="768"
+ layout="topleft"
+ name="panel_login"
+ focus_root="true"
+ background_visible="true"
+ bg_opaque_color="0.16 0.16 0.16 1"
+ background_opaque="true"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ width="1024"
+ height="768"
+ left="0"
+ name="logo_stack"
+ orientation="vertical"
+ top="0">
+ <layout_panel
+ height="18"
+ auto_resize="false"
+ name="page_top"
+ width="1024" />
+ <!-- start of logo stack -->
+ <layout_panel
+ height="130"
+ min_height="10"
+ auto_resize="false"
+ name="parent_panel"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="100"
+ left="0"
+ name="logo_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="110"
+ min_height="10"
+ auto_resize="true"
+ name="logo_left"
+ width="300" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|right|top"
+ name="logo_container"
+ width="225"
+ left="0"
+ top="0"
+ height="105">
+ <icon
+ height="94"
+ image_name="login_sl_logo"
+ left="0"
+ name="sl_logo"
+ top="0" />
+ </layout_panel>
+ <layout_panel
+ height="100"
+ name="logo_right"
+ auto_resize="true"
+ width="300" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of logo stack -->
+ <!-- start of widget stack -->
+ <layout_panel
+ height="100"
+ min_height="10"
+ auto_resize="false"
+ name="parent_panel2"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="80"
+ left="0"
+ name="widget_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="80"
+ min_height="10"
+ auto_resize="true"
+ name="widget_left"
+ width="200" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|right|top"
+ name="widget_container"
+ width="532"
+ left="0"
+ top="0"
+ height="80">
+ <combo_box
+ allow_text_entry="true"
+ follows="left|bottom"
+ height="32"
+ left="0"
+ label="Username"
+ combo_editor.font="SansSerifLarge"
+ max_chars="128"
+ top="0"
+ commit_on_focus_lost="false"
+ combo_editor.prevalidate_callback="ascii"
+ tool_tip="The username you chose when you registered, like bobsmith12 or Steller Sunshine"
+ name="username_combo"
+ width="232">
+ <combo_box.combo_editor
+ text_pad_left="8" />
+ <combo_box.combo_button
+ visible ="false"/>
+ <combo_box.drop_down_button
+ visible ="false"/>
+ </combo_box>
+ <line_editor
+ follows="left|top"
+ width="200"
+ height="32"
+ left="220"
+ max_length_bytes="16"
+ name="password_edit"
+ label="Password"
+ text_pad_left="8"
+ font="SansSerifLarge"
+ is_password="true"
+ select_on_focus="true"
+ commit_on_focus_lost="false"
+ top="0" />
+ <button
+ follows="left|top"
+ image_unselected="PushButton_Login_On"
+ image_selected="PushButton_Login_On_Selected"
+ label="Log In"
+ label_color="White"
+ font="SansSerifLarge"
+ name="connect_btn"
+ left="432"
+ width="100"
+ height="32"
+ top="0" />
+ <check_box
+ control_name="RememberPassword"
+ follows="left|top"
+ font="SansSerifLarge"
+ left="0"
+ top="32"
+ height="24"
+ label="Remember me"
+ check_button.bottom="3"
+ name="remember_check"
+ width="145" />
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="EmphasisColor"
+ height="16"
+ name="forgot_password_text"
+ left="216"
+ top="34"
+ width="200">
+ Forgotten password
+ </text>
+ </layout_panel>
+ <layout_panel
+ height="100"
+ name="widget_right"
+ auto_resize="true"
+ width="200" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of widget stack -->
+ <!-- start of images stack -->
+ <layout_panel
+ height="500"
+ min_height="10"
+ auto_resize="false"
+ name="parent_panel3"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="500"
+ left="0"
+ name="images_stack"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ height="500"
+ min_height="10"
+ auto_resize="true"
+ name="images_left"
+ width="96" />
+ <layout_panel
+ auto_resize="false"
+ follows="left|right|top"
+ name="images_container"
+ width="832"
+ left="0"
+ top="0"
+ height="500">
+ <icon
+ height="400"
+ width="400"
+ image_name="first_login_image_left"
+ left="0"
+ name="image_left"
+ top="0" />
+ <icon
+ height="400"
+ width="400"
+ image_name="first_login_image_right"
+ left_pad="32"
+ name="image_right"
+ top="0" />
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="White"
+ height="64"
+ name="image_caption_left"
+ left="0"
+ halign="center"
+ top="408"
+ word_wrap="true"
+ width="400">
+ Your first step is Learning Island. Find the exit portal!
+ </text>
+ <text
+ follows="left|top"
+ font="SansSerifLarge"
+ text_color="White"
+ height="64"
+ name="image_caption_left"
+ left="432"
+ halign="center"
+ top="408"
+ word_wrap="true"
+ width="400">
+ Then explore Social Island and meet other new residents!
+ </text>
+ </layout_panel>
+ <layout_panel
+ height="100"
+ name="images_right"
+ auto_resize="true"
+ width="96" />
+ </layout_stack>
+ </layout_panel>
+ <!-- end of images stack -->
+ <layout_panel
+ height="400"
+ min_height="10"
+ auto_resize="true"
+ name="page_bottom"
+ width="1024" />
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/widgets/combo_box.xml b/indra/newview/skins/default/xui/en/widgets/combo_box.xml index 82d620d1e6..65f9a143e9 100755 --- a/indra/newview/skins/default/xui/en/widgets/combo_box.xml +++ b/indra/newview/skins/default/xui/en/widgets/combo_box.xml @@ -7,7 +7,7 @@ <combo_box.combo_button name="Combobox Button" hover_glow_amount="0.15" font="SansSerifSmall" - scale_image="false" + scale_image="true" image_unselected="ComboButton_Off" image_selected="ComboButton_Selected" image_disabled="ComboButton_Disabled" /> |