summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorYchebotarev ProductEngine <ychebotarev@productengine.com>2010-02-22 13:58:00 +0200
committerYchebotarev ProductEngine <ychebotarev@productengine.com>2010-02-22 13:58:00 +0200
commit6f98e0b9721515065b84d32428b0e55a4bde89d3 (patch)
tree3e5f613d4ed88cfc1d991b88658f5ba646a17e6f /indra
parenta8e9f7ab5010bd4f9d80fbd0002a16bcb802716c (diff)
fix for EXT-5128 Groups accordions should all appear on-screen w/out scrolling (open accordion should fill space)
fix is not complete since we got horizontal scrolbar which I think is not intended...need to fix croll_container. --HG-- branch : product-engine
Diffstat (limited to 'indra')
-rw-r--r--indra/llui/llaccordionctrl.cpp97
-rw-r--r--indra/llui/llaccordionctrl.h3
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_general.xml5
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml161
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_land_money.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_notices.xml5
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_roles.xml5
7 files changed, 193 insertions, 86 deletions
diff --git a/indra/llui/llaccordionctrl.cpp b/indra/llui/llaccordionctrl.cpp
index d0c73fbfbc..ae218c28c4 100644
--- a/indra/llui/llaccordionctrl.cpp
+++ b/indra/llui/llaccordionctrl.cpp
@@ -103,6 +103,13 @@ void LLAccordionCtrl::draw()
LLLocalClipRect clip(local_rect);
LLPanel::draw();
+ /*
+ S32 width = getRect().getWidth();
+ S32 height = getRect().getHeight();
+
+ gl_rect_2d(0, 0 , width - 1 ,height - 1,LLColor4::green,true);
+ gl_line_2d(0, 0 , width - 1 ,height - 1,LLColor4::black);
+ */
}
@@ -338,36 +345,55 @@ void LLAccordionCtrl::addCollapsibleCtrl(LLView* view)
}
-
-void LLAccordionCtrl::arrange()
+void LLAccordionCtrl::arrangeSinge()
{
- if( mAccordionTabs.size() == 0)
- {
- //We do not arrange if we do not have what should be arranged
- return;
- }
-
- //Calculate params
S32 panel_left = BORDER_MARGIN; // Margin from left side of Splitter
S32 panel_top = getRect().getHeight() - BORDER_MARGIN; // Top coordinate of the first panel
S32 panel_width = getRect().getWidth() - 4; // Top coordinate of the first panel
+ S32 panel_height;
-
- if(mAccordionTabs.size() == 1)
+ S32 collapsed_height = 0;
+
+ for(size_t i=0;i<mAccordionTabs.size();++i)
{
- LLAccordionCtrlTab* accordion_tab = dynamic_cast<LLAccordionCtrlTab*>(mAccordionTabs[0]);
-
- LLRect panel_rect = accordion_tab->getRect();
+ LLAccordionCtrlTab* accordion_tab = dynamic_cast<LLAccordionCtrlTab*>(mAccordionTabs[i]);
- S32 panel_height = getRect().getHeight() - 2*BORDER_MARGIN;
+ if(accordion_tab->getVisible() == false) //skip hidden accordion tabs
+ continue;
+ if(!accordion_tab->isExpanded() )
+ {
+ collapsed_height+=mAccordionTabs[i]->getRect().getHeight();
+ }
+ }
- ctrlSetLeftTopAndSize(accordion_tab,panel_rect.mLeft,panel_top,panel_width,panel_height);
+ S32 expanded_height = getRect().getHeight() - BORDER_MARGIN - collapsed_height;
+
+ for(size_t i=0;i<mAccordionTabs.size();++i)
+ {
+ LLAccordionCtrlTab* accordion_tab = dynamic_cast<LLAccordionCtrlTab*>(mAccordionTabs[i]);
- show_hide_scrollbar(getRect().getWidth(),getRect().getHeight());
- return;
-
+ if(accordion_tab->getVisible() == false) //skip hidden accordion tabs
+ continue;
+ if(!accordion_tab->isExpanded() )
+ {
+ panel_height = accordion_tab->getRect().getHeight();
+ }
+ else
+ {
+ panel_height = expanded_height;
+ }
+ ctrlSetLeftTopAndSize(mAccordionTabs[i], panel_left, panel_top, panel_width, panel_height);
+ panel_top-=mAccordionTabs[i]->getRect().getHeight();
}
+}
+
+void LLAccordionCtrl::arrangeMultiple()
+{
+ S32 panel_left = BORDER_MARGIN; // Margin from left side of Splitter
+ S32 panel_top = getRect().getHeight() - BORDER_MARGIN; // Top coordinate of the first panel
+ S32 panel_width = getRect().getWidth() - 4; // Top coordinate of the first panel
+ //Calculate params
for(size_t i = 0; i < mAccordionTabs.size(); i++ )
{
LLAccordionCtrlTab* accordion_tab = dynamic_cast<LLAccordionCtrlTab*>(mAccordionTabs[i]);
@@ -415,7 +441,40 @@ void LLAccordionCtrl::arrange()
show_hide_scrollbar(getRect().getWidth(),getRect().getHeight());
updateLayout(getRect().getWidth(),getRect().getHeight());
+}
+
+
+void LLAccordionCtrl::arrange()
+{
+ if( mAccordionTabs.size() == 0)
+ {
+ //We do not arrange if we do not have what should be arranged
+ return;
+ }
+
+ if(mAccordionTabs.size() == 1)
+ {
+ S32 panel_top = getRect().getHeight() - BORDER_MARGIN; // Top coordinate of the first panel
+ S32 panel_width = getRect().getWidth() - 4; // Top coordinate of the first panel
+
+ LLAccordionCtrlTab* accordion_tab = dynamic_cast<LLAccordionCtrlTab*>(mAccordionTabs[0]);
+
+ LLRect panel_rect = accordion_tab->getRect();
+
+ S32 panel_height = getRect().getHeight() - 2*BORDER_MARGIN;
+
+ ctrlSetLeftTopAndSize(accordion_tab,panel_rect.mLeft,panel_top,panel_width,panel_height);
+
+ show_hide_scrollbar(getRect().getWidth(),getRect().getHeight());
+ return;
+
+ }
+
+ if(mSingleExpansion)
+ arrangeSinge ();
+ else
+ arrangeMultiple ();
}
//---------------------------------------------------------------------------------
diff --git a/indra/llui/llaccordionctrl.h b/indra/llui/llaccordionctrl.h
index d57a42df32..7c29e545b7 100644
--- a/indra/llui/llaccordionctrl.h
+++ b/indra/llui/llaccordionctrl.h
@@ -105,6 +105,9 @@ public:
void reset ();
private:
+ void arrangeSinge();
+ void arrangeMultiple();
+
// Calc Splitter's height that is necessary to display all child content
S32 calcRecuiredHeight();
S32 getRecuiredHeight() const { return mInnerRect.getHeight(); }
diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml
index 41e53be29e..f913c58cc9 100644
--- a/indra/newview/skins/default/xui/en/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_general.xml
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
label="General"
- follows="all"
height="604"
- width="303"
+ width="304"
class="panel_group_general"
name="general_tab">
<panel.string
@@ -26,7 +25,7 @@ Hover your mouse over the options for more help.
top="0"
left="0"
height="129"
- width="313"
+ width="304"
layout="topleft">
<texture_picker
follows="left|top"
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 b196d8eeb7..4e57b428bd 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
@@ -81,80 +81,129 @@ background_visible="true"
width="292"
border_size="0">
<layout_panel
- bg_alpha_color="DkGray2"
- bg_opaque_color="DkGray2"
- background_visible="true"
- background_opaque="true"
- name="group_accordions"
- follows="all"
- layout="topleft"
- auto_resize="true"
- >
+ bg_alpha_color="DkGray2"
+ bg_opaque_color="DkGray2"
+ background_visible="true"
+ background_opaque="true"
+ name="group_accordions"
+ follows="all"
+ layout="topleft"
+ auto_resize="true">
<accordion
left="0"
top="0"
- single_expansion="true"
- follows="all"
- layout="topleft"
- name="groups_accordion">
- <accordion_tab
+ single_expansion="true"
+ follows="all"
+ layout="topleft"
+ name="groups_accordion">
+ <accordion_tab
expanded="true"
layout="topleft"
name="group_general_tab"
title="General">
- <panel
- border="false"
- class="panel_group_general"
- filename="panel_group_general.xml"
- layout="topleft"
- left="0"
- follows="all"
- help_topic="group_general_tab"
- name="group_general_tab_panel"
- top="0" />
+ <scroll_container
+ color="DkGray2"
+ follows="all"
+ layout="topleft"
+ left="0"
+ name="profile_scroll"
+ opaque="true"
+ height="604"
+ width="304"
+ top="0">
+ <panel
+ border="false"
+ class="panel_group_general"
+ filename="panel_group_general.xml"
+ layout="topleft"
+ left="0"
+ follows="left|top|right"
+ help_topic="group_general_tab"
+ name="group_general_tab_panel"
+ top="0" />
+ </scroll_container>
</accordion_tab>
<accordion_tab
expanded="false"
layout="topleft"
name="group_roles_tab"
title="Roles">
- <panel
- border="false"
- class="panel_group_roles"
- filename="panel_group_roles.xml"
- layout="topleft"
- left="0"
- name="group_roles_tab_panel"
- top="0" />
+ <scroll_container
+ color="DkGray2"
+ follows="all"
+ layout="topleft"
+ left="0"
+ name="profile_scroll"
+ opaque="true"
+ height="680"
+ width="304"
+ top="0">
+
+ <panel
+ border="false"
+ class="panel_group_roles"
+ filename="panel_group_roles.xml"
+ follows="left|top|right"
+ layout="topleft"
+ left="0"
+ name="group_roles_tab_panel"
+ top="0" />
+ </scroll_container>
</accordion_tab>
<accordion_tab
- expanded="false"
+ expanded="false"
+ layout="topleft"
+ name="group_notices_tab"
+ title="Notices">
+ <scroll_container
+ color="DkGray2"
+ follows="all"
layout="topleft"
- name="group_notices_tab"
- title="Notices">
- <panel
- border="false"
- class="panel_group_notices"
- filename="panel_group_notices.xml"
- layout="topleft"
- left="0"
- help_topic="group_notices_tab"
- name="group_notices_tab_panel"
- top="0" />
+ left="0"
+ name="profile_scroll"
+ opaque="true"
+ height="530"
+ width="304"
+ top="0">
+
+ <panel
+ border="false"
+ class="panel_group_notices"
+ filename="panel_group_notices.xml"
+ follows="left|top|right"
+ layout="topleft"
+ left="0"
+ help_topic="group_notices_tab"
+ name="group_notices_tab_panel"
+ top="0" />
+ </scroll_container>
</accordion_tab>
- <accordion_tab
- expanded="false"
+ <accordion_tab
+ expanded="false"
+ layout="topleft"
+ name="group_land_tab"
+ title="Land/Assets">
+ <scroll_container
+ color="DkGray2"
+ follows="all"
layout="topleft"
- name="group_land_tab"
- title="Land/Assets">
- <panel
- border="false"
- class="panel_group_land_money"
- filename="panel_group_land_money.xml"
- layout="topleft"
- left="0"
- name="group_land_tab_panel"
- top="0" />
+ left="0"
+ name="profile_scroll"
+ opaque="true"
+ height="500"
+ width="304"
+ top="0">
+
+ <panel
+ border="false"
+ class="panel_group_land_money"
+ filename="panel_group_land_money.xml"
+ follows="left|top|right"
+ layout="topleft"
+ left="0"
+ name="group_land_tab_panel"
+ top="0" />
+ </scroll_container>
</accordion_tab>
</accordion>
</layout_panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
index 38b0f234d5..7996a89e72 100644
--- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
@@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
border="false"
- follows="all"
height="500"
label="Land &amp; L$"
layout="topleft"
left="0"
name="land_money_tab"
top="0"
- width="313">
+ width="304">
<panel.string
name="help_text">
A warning appears until the Total Land in Use is less than or = to the Total Contribution.
diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml
index 5f46ad7860..731b3c119c 100644
--- a/indra/newview/skins/default/xui/en/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml
@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
- follows="all"
height="530"
label="Notices"
layout="topleft"
left="0"
name="notices_tab"
top="0"
- width="313">
+ width="304">
<panel.string
name="help_text">
Notices let you send a message and an optionally attached item.
@@ -44,7 +43,7 @@ Maximum 200 per group daily
right="-1"
name="notice_list"
top_pad="0"
- width="313">
+ width="304">
<scroll_list.columns
label=""
name="icon"
diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml
index 7557e2cc5e..19c0da4f08 100644
--- a/indra/newview/skins/default/xui/en/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml
@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
- follows="all"
height="680"
label="Members &amp; Roles"
layout="topleft"
left="0"
top="0"
name="roles_tab"
- width="313">
+ width="304">
<panel.string
name="default_needs_apply_text">
There are unsaved changes
@@ -31,7 +30,7 @@
tab_height="22"
tab_min_width="90"
top="0"
- width="313">
+ width="304">
<panel
border="false"
follows="all"