diff options
Diffstat (limited to 'indra')
23 files changed, 342 insertions, 105 deletions
diff --git a/indra/llui/llaccordionctrl.cpp b/indra/llui/llaccordionctrl.cpp index 2ed1082f56..cdcf780d2e 100644 --- a/indra/llui/llaccordionctrl.cpp +++ b/indra/llui/llaccordionctrl.cpp @@ -372,11 +372,33 @@ void LLAccordionCtrl::arrangeSinge() } else { - panel_height = expanded_height; + if(mFitParent) + { + panel_height = expanded_height; + } + else + { + if(accordion_tab->getAccordionView()) + { + panel_height = accordion_tab->getAccordionView()->getRect().getHeight() + + accordion_tab->getHeaderHeight() + 2*BORDER_MARGIN; + } + else + { + panel_height = accordion_tab->getRect().getHeight(); + } + } } + + // make sure at least header is shown + panel_height = llmax(panel_height, accordion_tab->getHeaderHeight()); + ctrlSetLeftTopAndSize(mAccordionTabs[i], panel_left, panel_top, panel_width, panel_height); panel_top-=mAccordionTabs[i]->getRect().getHeight(); } + + show_hide_scrollbar(getRect().getWidth(), getRect().getHeight()); + updateLayout(getRect().getWidth(), getRect().getHeight()); } void LLAccordionCtrl::arrangeMultiple() diff --git a/indra/llui/llscrollingpanellist.cpp b/indra/llui/llscrollingpanellist.cpp index 4f55c0507c..b7840d1b59 100644 --- a/indra/llui/llscrollingpanellist.cpp +++ b/indra/llui/llscrollingpanellist.cpp @@ -47,7 +47,12 @@ void LLScrollingPanelList::clearPanels() { deleteAllChildren(); mPanelList.clear(); - reshape( 1, 1, FALSE ); + + LLRect rc = getRect(); + rc.setLeftTopAndSize(rc.mLeft, rc.mTop, 1, 1); + setRect(rc); + + notifySizeChanged(rc.getHeight()); } S32 LLScrollingPanelList::addPanel( LLScrollingPanel* panel ) @@ -67,7 +72,11 @@ S32 LLScrollingPanelList::addPanel( LLScrollingPanel* panel ) max_width = llmax( max_width, childp->getRect().getWidth() ); cur_gap = GAP_BETWEEN_PANELS; } - reshape( max_width, total_height, FALSE ); + LLRect rc = getRect(); + rc.setLeftTopAndSize(rc.mLeft, rc.mTop, max_width, total_height); + setRect(rc); + + notifySizeChanged(rc.getHeight()); // Reposition each of the child views S32 cur_y = total_height; @@ -131,7 +140,11 @@ void LLScrollingPanelList::removePanel( U32 panel_index ) max_width = llmax( max_width, childp->getRect().getWidth() ); cur_gap = GAP_BETWEEN_PANELS; } - reshape( max_width, total_height, FALSE ); + LLRect rc = getRect(); + rc.setLeftTopAndSize(rc.mLeft, rc.mTop, max_width, total_height); + setRect(rc); + + notifySizeChanged(rc.getHeight()); // Reposition each of the child views S32 cur_y = total_height; @@ -200,3 +213,12 @@ void LLScrollingPanelList::draw() LLUICtrl::draw(); } +void LLScrollingPanelList::notifySizeChanged(S32 height) +{ + LLSD info; + info["action"] = "size_changes"; + info["height"] = height; + notifyParent(info); +} + +// EOF diff --git a/indra/llui/llscrollingpanellist.h b/indra/llui/llscrollingpanellist.h index 3abfbcbbe7..5f1996159b 100644 --- a/indra/llui/llscrollingpanellist.h +++ b/indra/llui/llscrollingpanellist.h @@ -61,7 +61,6 @@ public: Params() { name = "scrolling_panel_list"; - follows.flags = FOLLOWS_LEFT | FOLLOWS_BOTTOM; } }; LLScrollingPanelList(const Params& p) @@ -86,6 +85,11 @@ public: private: void updatePanelVisiblilty(); + /** + * Notify parent about size change, makes sense when used inside accordion + */ + void notifySizeChanged(S32 height); + panel_list_t mPanelList; }; diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index c38e38c900..d7666ca4c3 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -499,6 +499,35 @@ std::string LLUrlEntryInventory::getLabel(const std::string &url, const LLUrlLab return LLURI::unescape(label.empty() ? url : label); } +// +// LLUrlEntryObjectIM Describes a Second Life inspector for the object Url, e.g., +// secondlife:///app/objectim/7bcd7864-da6b-e43f-4486-91d28a28d95b?name=Object&owner=3de548e1-57be-cfea-2b78-83ae3ad95998&slurl=Danger!%20Danger!/200/200/30/&groupowned=1 +// +LLUrlEntryObjectIM::LLUrlEntryObjectIM() +{ + mPattern = boost::regex("secondlife:///app/objectim/[\\da-f-]+\?.*", + boost::regex::perl|boost::regex::icase); + mMenuName = "menu_url_objectim.xml"; +} + +std::string LLUrlEntryObjectIM::getLabel(const std::string &url, const LLUrlLabelCallback &cb) +{ + LLURI uri(url); + LLSD query_map = uri.queryMap(); + if (query_map.has("name")) + return query_map["name"]; + return unescapeUrl(url); +} + +std::string LLUrlEntryObjectIM::getLocation(const std::string &url) const +{ + LLURI uri(url); + LLSD query_map = uri.queryMap(); + if (query_map.has("slurl")) + return query_map["slurl"]; + return LLUrlEntryBase::getLocation(url); +} + /// /// LLUrlEntryParcel Describes a Second Life parcel Url, e.g., /// secondlife:///app/parcel/0000060e-4b39-e00b-d0c3-d98b1934e3a8/about diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index 84d0968779..29575d752c 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -201,6 +201,18 @@ public: private: }; +/// +/// LLUrlEntryObjectIM Describes a Second Life inspector for the object Url, e.g., +/// secondlife:///app/objectim/7bcd7864-da6b-e43f-4486-91d28a28d95b?name=Object&owner=3de548e1-57be-cfea-2b78-83ae3ad95998&slurl=Danger!%20Danger!/200/200/30/&groupowned=1 +/// +class LLUrlEntryObjectIM : public LLUrlEntryBase +{ +public: + LLUrlEntryObjectIM(); + /*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); + /*virtual*/ std::string getLocation(const std::string &url) const; +private: +}; /// /// LLUrlEntryParcel Describes a Second Life parcel Url, e.g., diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index faa02e1904..7e09a5a919 100644 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -55,6 +55,7 @@ LLUrlRegistry::LLUrlRegistry() registerUrl(new LLUrlEntryWorldMap()); registerUrl(new LLUrlEntryPlace()); registerUrl(new LLUrlEntryInventory()); + registerUrl(new LLUrlEntryObjectIM()); //LLUrlEntrySL and LLUrlEntrySLLabel have more common pattern, //so it should be registered in the end of list registerUrl(new LLUrlEntrySL()); diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 1e404d611c..31feabe722 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -93,7 +93,7 @@ public: payload["object_id"] = object_id; payload["owner_id"] = query_map["owner"]; payload["name"] = query_map["name"]; - payload["slurl"] = query_map["slurl"]; + payload["slurl"] = LLWeb::escapeURL(query_map["slurl"]); payload["group_owned"] = query_map["groupowned"]; LLFloaterReg::showInstance("inspect_remote_object", payload); return true; @@ -632,7 +632,14 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL if (use_plain_text_chat_history) { - mEditor->appendText("[" + chat.mTimeStr + "] ", mEditor->getText().size() != 0, style_params); + LLStyle::Params timestamp_style(style_params); + if (!message_from_log) + { + LLColor4 timestamp_color = LLUIColorTable::instance().getColor("ChatTimestampColor"); + timestamp_style.color(timestamp_color); + timestamp_style.readonly_color(timestamp_color); + } + mEditor->appendText("[" + chat.mTimeStr + "] ", mEditor->getText().size() != 0, timestamp_style); if (utf8str_trim(chat.mFromName).size() != 0) { diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 3a73037ae8..804ef609ec 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -501,13 +501,15 @@ void LLFloaterPreference::onOpen(const LLSD& key) // if they're not adult or a god, they shouldn't see the adult selection, so delete it if (!gAgent.isAdult() && !gAgent.isGodlike()) { - // we're going to remove the adult entry from the combo. This obviously depends - // on the order of items in the XML file, but there doesn't seem to be a reasonable - // way to depend on the field in XML called 'name'. - maturity_combo->remove(0); + // we're going to remove the adult entry from the combo + LLScrollListCtrl* maturity_list = maturity_combo->findChild<LLScrollListCtrl>("ComboBox"); + if (maturity_list) + { + maturity_list->deleteItems(LLSD(SIM_ACCESS_ADULT)); + } } childSetVisible("maturity_desired_combobox", true); - childSetVisible("maturity_desired_textbox", false); + childSetVisible("maturity_desired_textbox", false); } else { diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 3b4a4a1344..936e6ed316 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -390,8 +390,8 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p) mAddLandmarkTooltip = LLTrans::getString("LocationCtrlAddLandmarkTooltip"); mEditLandmarkTooltip = LLTrans::getString("LocationCtrlEditLandmarkTooltip"); - getChild<LLView>("Location History")->setToolTip(LLTrans::getString("LocationCtrlComboBtnTooltip")); - getChild<LLView>("Place Information")->setToolTip(LLTrans::getString("LocationCtrlInfoBtnTooltip")); + mButton->setToolTip(LLTrans::getString("LocationCtrlComboBtnTooltip")); + mInfoBtn->setToolTip(LLTrans::getString("LocationCtrlInfoBtnTooltip")); } LLLocationInputCtrl::~LLLocationInputCtrl() diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp index 805016f089..c0528da999 100644 --- a/indra/newview/llpaneleditwearable.cpp +++ b/indra/newview/llpaneleditwearable.cpp @@ -489,7 +489,6 @@ void LLPanelEditWearable::initializePanel() updateScrollingPanelUI(); } - } void LLPanelEditWearable::updateScrollingPanelUI() @@ -640,14 +639,9 @@ void LLPanelEditWearable::buildParamList(LLScrollingPanelList *panel_list, value { LLPanel::Params p; p.name("LLScrollingPanelParam"); - p.rect(LLRect(0, LLScrollingPanelParam::PARAM_PANEL_HEIGHT, LLScrollingPanelParam::PARAM_PANEL_WIDTH, 0 )); LLScrollingPanelParam* panel_param = new LLScrollingPanelParam( p, NULL, (*it).second, TRUE, this->getWearable()); height = panel_list->addPanel( panel_param ); } - - S32 width = tab->getRect().getWidth(); - - tab->reshape(width,height + tab->getHeaderHeight()+10,FALSE); } } diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp index ba22adc01c..2b25c544e3 100644 --- a/indra/newview/llpaneloutfitedit.cpp +++ b/indra/newview/llpaneloutfitedit.cpp @@ -413,7 +413,11 @@ void LLPanelOutfitEdit::onLookItemSelectionChange(void) { S32 left_offset = -4; S32 top_offset = -10; - LLRect rect = mLookContents->getLastSelectedItem()->getRect(); + LLScrollListItem* item = mLookContents->getLastSelectedItem(); + if (!item) + return; + + LLRect rect = item->getRect(); LLRect btn_rect( left_offset + rect.mRight - 50, top_offset + rect.mTop, diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index b951434010..a80687da4d 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -297,6 +297,8 @@ void LLSidepanelAppearance::toggleWearableEditPanel(BOOL visible, LLWearable *we return; } + mCurrOutfitPanel->setVisible(!visible); + mEditWearable->setVisible(visible); mEditWearable->setWearable(wearable); mFilterEditor->setVisible(!visible); diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index 60a89c02e4..60657d3fa7 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -41,6 +41,16 @@ using namespace LLNotificationsUI; +/*virtual*/ +BOOL LLToastLifeTimer::tick() +{ + if (mEventTimer.hasExpired()) + { + mToast->expire(); + } + return FALSE; +} + //-------------------------------------------------------------------------- LLToast::Params::Params() : can_fade("can_fade", true), @@ -57,7 +67,6 @@ LLToast::Params::Params() LLToast::LLToast(const LLToast::Params& p) : LLModalDialog(LLSD(), p.is_modal), mPanel(p.panel), - mToastLifetime(p.lifetime_secs), mToastFadingTime(p.fading_time_secs), mNotificationID(p.notif_id), mSessionID(p.session_id), @@ -71,6 +80,8 @@ LLToast::LLToast(const LLToast::Params& p) mIsTip(p.is_tip), mWrapperPanel(NULL) { + mTimer.reset(new LLToastLifeTimer(this, p.lifetime_secs)); + LLUICtrlFactory::getInstance()->buildFloater(this, "panel_toast.xml", NULL); setCanDrag(FALSE); @@ -105,7 +116,7 @@ BOOL LLToast::postBuild() { if(!mCanFade) { - mTimer.stop(); + mTimer->stop(); } if (mIsTip) @@ -145,38 +156,10 @@ LLToast::~LLToast() } //-------------------------------------------------------------------------- -void LLToast::setAndStartTimer(F32 period) -{ - if(mCanFade) - { - mToastLifetime = period; - mTimer.start(); - } -} - -//-------------------------------------------------------------------------- -bool LLToast::lifetimeHasExpired() -{ - if (mTimer.getStarted()) - { - F32 elapsed_time = mTimer.getElapsedTimeF32(); - if ((mToastLifetime - elapsed_time) <= mToastFadingTime) - { - setBackgroundOpaque(FALSE); - } - if (elapsed_time > mToastLifetime) - { - return true; - } - } - return false; -} - -//-------------------------------------------------------------------------- void LLToast::hide() { setVisible(FALSE); - mTimer.stop(); + mTimer->stop(); mIsHidden = true; mOnFadeSignal(this); } @@ -222,12 +205,13 @@ void LLToast::setCanFade(bool can_fade) { mCanFade = can_fade; if(!mCanFade) - mTimer.stop(); + mTimer->stop(); } //-------------------------------------------------------------------------- -void LLToast::tick() +void LLToast::expire() { + // if toast has fade property - hide it if(mCanFade) { hide(); @@ -263,11 +247,6 @@ void LLToast::insertPanel(LLPanel* panel) //-------------------------------------------------------------------------- void LLToast::draw() { - if(lifetimeHasExpired()) - { - tick(); - } - LLFloater::draw(); if(!isBackgroundVisible()) @@ -300,9 +279,9 @@ void LLToast::setVisible(BOOL show) if(show) { setBackgroundOpaque(TRUE); - if(!mTimer.getStarted() && mCanFade) + if(!mTimer->getStarted() && mCanFade) { - mTimer.start(); + mTimer->start(); } LLModalDialog::setFrontmost(FALSE); } diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h index 64855020a9..20198a9398 100644 --- a/indra/newview/lltoast.h +++ b/indra/newview/lltoast.h @@ -36,7 +36,7 @@ #include "llpanel.h" #include "llmodaldialog.h" -#include "lltimer.h" +#include "lleventtimer.h" #include "llnotificationptr.h" #include "llviewercontrol.h" @@ -48,12 +48,32 @@ namespace LLNotificationsUI { +class LLToast; +/** + * Timer for toasts. + */ +class LLToastLifeTimer: public LLEventTimer +{ +public: + LLToastLifeTimer(LLToast* toast, F32 period) : mToast(toast), LLEventTimer(period){} + + /*virtual*/ + BOOL tick(); + void stop() { mEventTimer.stop(); } + void start() { mEventTimer.start(); } + void restart() {mEventTimer.reset(); } + BOOL getStarted() { return mEventTimer.getStarted(); } +private : + LLToast* mToast; +}; + /** * Represents toast pop-up. * This is a parent view for all toast panels. */ class LLToast : public LLModalDialog { + friend class LLToastLifeTimer; public: typedef boost::function<void (LLToast* toast)> toast_callback_t; typedef boost::signals2::signal<void (LLToast* toast)> toast_signal_t; @@ -107,12 +127,10 @@ public: LLPanel* getPanel() { return mPanel; } // enable/disable Toast's Hide button void setHideButtonEnabled(bool enabled); - // initialize and start Toast's timer - void setAndStartTimer(F32 period); // - void resetTimer() { mTimer.start(); } + void resetTimer() { mTimer->start(); } // - void stopTimer() { mTimer.stop(); } + void stopTimer() { mTimer->stop(); } // virtual void draw(); // @@ -176,10 +194,7 @@ private: void handleTipToastClick(S32 x, S32 y, MASK mask); - // check timer - bool lifetimeHasExpired(); - // on timer finished function - void tick(); + void expire(); LLUUID mNotificationID; LLUUID mSessionID; @@ -188,8 +203,8 @@ private: LLPanel* mWrapperPanel; // timer counts a lifetime of a toast - LLTimer mTimer; - F32 mToastLifetime; // in seconds + std::auto_ptr<LLToastLifeTimer> mTimer; + F32 mToastFadingTime; // in seconds LLPanel* mPanel; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index a8b1257cf6..e8d064a59f 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5330,6 +5330,16 @@ class LLWorldCreateLandmark : public view_listener_t } }; +class LLWorldPlaceProfile : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + LLSideTray::getInstance()->showPanel("panel_places", LLSD().with("type", "agent")); + + return true; + } +}; + void handle_look_at_selection(const LLSD& param) { const F32 PADDING_FACTOR = 1.75f; @@ -7739,6 +7749,7 @@ void initialize_menus() commit.add("World.Chat", boost::bind(&handle_chat, (void*)NULL)); view_listener_t::addMenu(new LLWorldAlwaysRun(), "World.AlwaysRun"); view_listener_t::addMenu(new LLWorldCreateLandmark(), "World.CreateLandmark"); + view_listener_t::addMenu(new LLWorldPlaceProfile(), "World.PlaceProfile"); view_listener_t::addMenu(new LLWorldSetHomeLocation(), "World.SetHomeLocation"); view_listener_t::addMenu(new LLWorldTeleportHome(), "World.TeleportHome"); view_listener_t::addMenu(new LLWorldSetAway(), "World.SetAway"); diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 0a906a8063..72b571991a 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -731,7 +731,10 @@ <color name="ChatToastAgentNameColor" reference="EmphasisColor" /> - <color + <color name="ColorSwatchBorderColor" value="0.45098 0.517647 0.607843 1"/> + <color + name="ChatTimestampColor" + reference="White" /> </colors> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 8b4554502a..8a062f867a 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -220,6 +220,13 @@ name="Land" tear_off="true"> <menu_item_call + label="Place Profile" + layout="topleft" + name="Place Profile"> + <menu_item_call.on_click + function="World.PlaceProfile" /> + </menu_item_call> + <menu_item_call label="About Land" name="About Land"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/panel_edit_shape.xml b/indra/newview/skins/default/xui/en/panel_edit_shape.xml index 45c4b92338..9a3b5c26ec 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_shape.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_shape.xml @@ -1,38 +1,43 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel + background_visible="true" follows="all" height="400" layout="topleft" left="10" name="edit_shape_panel" top_pad="10" - width="313" > + width="333" > <panel - border="true" + border="false" + bg_alpha_color="DkGray2" + bg_opaque_color="DkGray2" + background_visible="true" + background_opaque="true" follows="top|left" height="50" left="10" layout="topleft" name="avatar_sex_panel" - top="10" - width="293" > + top="0" + width="313" > <text follows="top|left" height="16" layout="topleft" left="10" name="gender_text" - width="303"> + width="313"> Gender: </text> <radio_group - follows="all" + follows="left|top|right" left="10" - height="34" + height="28" layout="topleft" name="sex_radio" top_pad="3" - width="200" > + width="303" > <radio_item follows="all" height="16" @@ -51,21 +56,41 @@ width="82" /> </radio_group> </panel> + <panel + border="false" + bg_alpha_color="DkGray2" + bg_opaque_color="DkGray2" + background_visible="true" + background_opaque="true" + follows="all" + height="345" + label="Shirt" + layout="topleft" + left="10" + name="accordion_panel" + top_pad="10" + width="313"> <accordion - follows="left|top|right|bottom" - height ="330" - left="10" + layout="topleft" + follows="all" + height ="345" + left="0" name="wearable_accordion" - top_pad="10" - width="303"> + top="0" + single_expansion="true" + fit_parent="false" + width="313"> <accordion_tab layout="topleft" min_height="150" name="shape_body_tab" + fit_panel="false" title="Body"> <scrolling_panel_list + layout="topleft" follows="all" left="0" + height="300" name="shape_body_param_list" top="0" width="303" /> @@ -73,11 +98,13 @@ <accordion_tab layout="topleft" min_height="150" + fit_panel="false" name="shape_head_tab" title="Head"> - <scrolling_panel_list + <scrolling_panel_list + layout="topleft" follows="all" - left="0" + left="10" name="shape_head_param_list" top="0" width="303" /> @@ -85,9 +112,11 @@ <accordion_tab layout="topleft" min_height="150" + fit_panel="false" name="shape_eyes_tab" title="Eyes"> - <scrolling_panel_list + <scrolling_panel_list + layout="topleft" follows="all" left="0" name="shape_eyes_param_list" @@ -97,9 +126,11 @@ <accordion_tab layout="topleft" min_height="150" + fit_panel="false" name="shape_ears_tab" title="Ears"> - <scrolling_panel_list + <scrolling_panel_list + layout="topleft" follows="all" left="0" name="shape_ears_param_list" @@ -110,8 +141,10 @@ layout="topleft" min_height="150" name="shape_nose_tab" + fit_panel="false" title="Nose"> - <scrolling_panel_list + <scrolling_panel_list + layout="topleft" follows="all" left="0" name="shape_nose_param_list" @@ -122,8 +155,10 @@ layout="topleft" min_height="150" name="shape_mouth_tab" + fit_panel="false" title="Mouth"> - <scrolling_panel_list + <scrolling_panel_list + layout="topleft" follows="all" left="0" name="shape_mouth_param_list" @@ -134,8 +169,10 @@ layout="topleft" min_height="150" name="shape_chin_tab" + fit_panel="false" title="Chin"> - <scrolling_panel_list + <scrolling_panel_list + layout="topleft" follows="all" left="0" name="shape_chin_param_list" @@ -146,8 +183,10 @@ layout="topleft" min_height="150" name="shape_torso_tab" + fit_panel="false" title="Torso"> - <scrolling_panel_list + <scrolling_panel_list + layout="topleft" follows="all" left="0" name="shape_torso_param_list" @@ -158,8 +197,10 @@ layout="topleft" min_height="150" name="shape_legs_tab" + fit_panel="false" title="Legs"> - <scrolling_panel_list + <scrolling_panel_list + layout="topleft" follows="all" left="0" name="shape_legs_param_list" @@ -167,5 +208,6 @@ width="303" /> </accordion_tab> </accordion> + </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml index f76a56bda4..b4272bb10a 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml @@ -150,7 +150,11 @@ left="0" value="Editing Shape" width="270" /> <panel - border="true" + border="false" + bg_alpha_color="DkGray2" + bg_opaque_color="DkGray2" + background_visible="true" + background_opaque="true" follows="top|left" height="60" label="Shirt" @@ -335,30 +339,76 @@ left="0" visible="false" width="333" /> </panel> + <panel + follows="left|right|bottom" + height="38" + label="gear_buttom_panel" + layout="bottom|left|right" + left="0" + bottom="25" + name="gear_buttom_panel" + width="333"> + <button + follows="bottom|left" + tool_tip="Options" + height="18" + image_disabled="OptionsMenu_Disabled" + image_selected="OptionsMenu_Press" + image_unselected="OptionsMenu_Off" + layout="topleft" + left="10" + name="friends_viewsort_btn" + top="10" + width="18" /> + <button + follows="bottom|left" + height="18" + image_selected="AddItem_Press" + image_unselected="AddItem_Off" + image_disabled="AddItem_Disabled" + layout="topleft" + left_pad="10" + name="add_btn" + tool_tip="TODO" + width="18" /> + <button + follows="bottom|left" + height="18" + image_selected="TrashItem_Press" + image_unselected="TrashItem_Off" + image_disabled="TrashItem_Disabled" + layout="topleft" + left_pad="10" + right="-10" + name="del_btn" + tool_tip="TODO" + top_delta="0" + width="18" /> + </panel> <panel - follows="all" + follows="bottom|left|right" height="25" layout="bottom|left|right" left="0" name="button_panel" - top_pad="10" + bottom="5" width="333" > <button follows="bottomleft" layout="topleft" height="23" label="Save As" - left="10" + left="8" name="save_as_button" top="0" - width="100" /> + width="153" /> <button follows="bottomleft" layout="topleft" height="23" label="Revert" - left_pad="10" + left_pad="7" name="revert_button" - width="100" /> + width="153" /> </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml index 701a14e1c5..789d69bc68 100644 --- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml @@ -98,6 +98,7 @@ background_visible="true" left="0" top="0" single_expansion="true" + fit_parent="true" follows="all" layout="topleft" name="groups_accordion"> diff --git a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml index 7d7e21d4b0..29c6a17c31 100644 --- a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml @@ -150,7 +150,7 @@ <button follows="left|top|right" height="23" - label="Leave Call" + label="End Call" name="end_call_btn" width="100" /> </layout_panel> diff --git a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml index 44afadf65a..f9c86fc75b 100644 --- a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml +++ b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml @@ -5,7 +5,7 @@ left="0" name="LLScrollingPanelParam" top="152" - width="270"> + width="290"> <text follows="left|top" height="16" @@ -46,6 +46,36 @@ width="128"> Loading... </text> + <view_border + layout="topleft" + follows="left|top" + left="2" + top="0" + width="132" + height="132" + thickness="2" + shadow_light_color="LtGray_50" + highlight_light_color="LtGray_50" + highlight_dark_color="LtGray_50" + shadow_dark_color="LtGray_50" + bevel_style="in" + name="left_border" + /> + <view_border + layout="topleft" + follows="left|top" + left_pad="2" + top_delta="0" + width="132" + height="132" + thickness="2" + shadow_light_color="LtGray_50" + highlight_light_color="LtGray_50" + highlight_dark_color="LtGray_50" + shadow_dark_color="LtGray_50" + bevel_style="in" + name="right_border" + /> <button enabled="false" height="132" diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml index 20a1de59fc..c5efa2e221 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml @@ -120,6 +120,6 @@ width="333"> layout="topleft" left="0" name="panel_edit_wearable" - top="35" + top="0" visible="false" /> </panel> |