CHUI-808 FIXED Draggable separator between conversations and message pane is not discoverable:
- final solution;meow-7.2.2
parent
4106d203e0
commit
0193a7b74c
|
|
@ -214,8 +214,15 @@ LLLayoutStack::Params::Params()
|
|||
open_time_constant("open_time_constant", 0.02f),
|
||||
close_time_constant("close_time_constant", 0.03f),
|
||||
resize_bar_overlap("resize_bar_overlap", 1),
|
||||
border_size("border_size", LLCachedControl<S32>(*LLUI::sSettingGroups["config"], "UIResizeBarHeight", 0))
|
||||
{}
|
||||
border_size("border_size", LLCachedControl<S32>(*LLUI::sSettingGroups["config"], "UIResizeBarHeight", 0)),
|
||||
show_drag_handle("show_drag_handle", false),
|
||||
drag_handle_first_indent("drag_handle_first_indent", 0),
|
||||
drag_handle_second_indent("drag_handle_second_indent", 0),
|
||||
drag_handle_thickness("drag_handle_thickness", 5),
|
||||
drag_handle_shift("drag_handle_shift", 2)
|
||||
{
|
||||
addSynonym(border_size, "drag_handle_gap");
|
||||
}
|
||||
|
||||
LLLayoutStack::LLLayoutStack(const LLLayoutStack::Params& p)
|
||||
: LLView(p),
|
||||
|
|
@ -227,8 +234,14 @@ LLLayoutStack::LLLayoutStack(const LLLayoutStack::Params& p)
|
|||
mClip(p.clip),
|
||||
mOpenTimeConstant(p.open_time_constant),
|
||||
mCloseTimeConstant(p.close_time_constant),
|
||||
mResizeBarOverlap(p.resize_bar_overlap)
|
||||
{}
|
||||
mResizeBarOverlap(p.resize_bar_overlap),
|
||||
mShowDragHandle(p.show_drag_handle),
|
||||
mDragHandleFirstIndent(p.drag_handle_first_indent),
|
||||
mDragHandleSecondIndent(p.drag_handle_second_indent),
|
||||
mDragHandleThickness(p.drag_handle_thickness),
|
||||
mDragHandleShift(p.drag_handle_shift)
|
||||
{
|
||||
}
|
||||
|
||||
LLLayoutStack::~LLLayoutStack()
|
||||
{
|
||||
|
|
@ -262,6 +275,26 @@ void LLLayoutStack::draw()
|
|||
drawChild(panelp, 0, 0, !clip_rect.isEmpty());
|
||||
}
|
||||
}
|
||||
|
||||
const LLView::child_list_t * child_listp = getChildList();
|
||||
BOOST_FOREACH(LLView * childp, * child_listp)
|
||||
{
|
||||
LLResizeBar * resize_barp = dynamic_cast<LLResizeBar*>(childp);
|
||||
if (resize_barp && resize_barp->isShowDragHandle() && resize_barp->getVisible() && resize_barp->getRect().isValid())
|
||||
{
|
||||
LLRect screen_rect = resize_barp->calcScreenRect();
|
||||
if (LLUI::getRootView()->getLocalRect().overlaps(screen_rect) && LLUI::sDirtyRect.overlaps(screen_rect))
|
||||
{
|
||||
LLUI::pushMatrix();
|
||||
{
|
||||
const LLRect& rb_rect(resize_barp->getRect());
|
||||
LLUI::translate(rb_rect.mLeft, rb_rect.mBottom);
|
||||
resize_barp->draw();
|
||||
}
|
||||
LLUI::popMatrix();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLLayoutStack::removeChild(LLView* view)
|
||||
|
|
@ -390,7 +423,6 @@ void LLLayoutStack::updateLayout()
|
|||
BOOST_FOREACH(LLLayoutPanel* panelp, mPanels)
|
||||
{
|
||||
F32 panel_dim = llmax(panelp->getExpandedMinDim(), panelp->mTargetDim);
|
||||
F32 panel_visible_dim = panelp->getVisibleDim();
|
||||
|
||||
LLRect panel_rect;
|
||||
if (mOrientation == HORIZONTAL)
|
||||
|
|
@ -407,27 +439,61 @@ void LLLayoutStack::updateLayout()
|
|||
getRect().getWidth(),
|
||||
llround(panel_dim));
|
||||
}
|
||||
panelp->setIgnoreReshape(true);
|
||||
panelp->setShape(panel_rect);
|
||||
panelp->setIgnoreReshape(false);
|
||||
|
||||
LLRect resize_bar_rect(panel_rect);
|
||||
|
||||
LLResizeBar * resize_barp = panelp->getResizeBar();
|
||||
bool show_drag_handle = resize_barp->isShowDragHandle();
|
||||
F32 panel_spacing = (F32)mPanelSpacing * panelp->getVisibleAmount();
|
||||
F32 panel_visible_dim = panelp->getVisibleDim();
|
||||
S32 panel_spacing_round = (S32)(llround(panel_spacing));
|
||||
|
||||
if (mOrientation == HORIZONTAL)
|
||||
{
|
||||
resize_bar_rect.mLeft = panel_rect.mRight - mResizeBarOverlap;
|
||||
resize_bar_rect.mRight = panel_rect.mRight + (S32)(llround(panel_spacing)) + mResizeBarOverlap;
|
||||
|
||||
cur_pos += panel_visible_dim + panel_spacing;
|
||||
|
||||
if (show_drag_handle && panel_spacing_round > mDragHandleThickness)
|
||||
{
|
||||
resize_bar_rect.mLeft = panel_rect.mRight + mDragHandleShift;
|
||||
resize_bar_rect.mRight = resize_bar_rect.mLeft + mDragHandleThickness;
|
||||
}
|
||||
else
|
||||
{
|
||||
resize_bar_rect.mLeft = panel_rect.mRight - mResizeBarOverlap;
|
||||
resize_bar_rect.mRight = panel_rect.mRight + panel_spacing_round + mResizeBarOverlap;
|
||||
}
|
||||
|
||||
if (show_drag_handle)
|
||||
{
|
||||
resize_bar_rect.mBottom += mDragHandleSecondIndent;
|
||||
resize_bar_rect.mTop -= mDragHandleFirstIndent;
|
||||
}
|
||||
|
||||
}
|
||||
else //VERTICAL
|
||||
{
|
||||
resize_bar_rect.mTop = panel_rect.mBottom + mResizeBarOverlap;
|
||||
resize_bar_rect.mBottom = panel_rect.mBottom - (S32)(llround(panel_spacing)) - mResizeBarOverlap;
|
||||
|
||||
cur_pos -= panel_visible_dim + panel_spacing;
|
||||
|
||||
if (show_drag_handle && panel_spacing_round > mDragHandleThickness)
|
||||
{
|
||||
resize_bar_rect.mTop = panel_rect.mBottom - mDragHandleShift;
|
||||
resize_bar_rect.mBottom = resize_bar_rect.mTop - mDragHandleThickness;
|
||||
}
|
||||
else
|
||||
{
|
||||
resize_bar_rect.mTop = panel_rect.mBottom + mResizeBarOverlap;
|
||||
resize_bar_rect.mBottom = panel_rect.mBottom - panel_spacing_round - mResizeBarOverlap;
|
||||
}
|
||||
|
||||
if (show_drag_handle)
|
||||
{
|
||||
resize_bar_rect.mLeft += mDragHandleFirstIndent;
|
||||
resize_bar_rect.mRight -= mDragHandleSecondIndent;
|
||||
}
|
||||
}
|
||||
|
||||
panelp->setIgnoreReshape(true);
|
||||
panelp->setShape(panel_rect);
|
||||
panelp->setIgnoreReshape(false);
|
||||
panelp->mResizeBar->setShape(resize_bar_rect);
|
||||
}
|
||||
|
||||
|
|
@ -475,15 +541,13 @@ void LLLayoutStack::createResizeBar(LLLayoutPanel* panelp)
|
|||
{
|
||||
if (lp->mResizeBar == NULL)
|
||||
{
|
||||
LLResizeBar::Side side = (mOrientation == HORIZONTAL) ? LLResizeBar::RIGHT : LLResizeBar::BOTTOM;
|
||||
LLRect resize_bar_rect = getRect();
|
||||
|
||||
LLResizeBar::Params resize_params;
|
||||
resize_params.name("resize");
|
||||
resize_params.resizing_view(lp);
|
||||
resize_params.min_size(lp->getRelevantMinDim());
|
||||
resize_params.side(side);
|
||||
resize_params.side((mOrientation == HORIZONTAL) ? LLResizeBar::RIGHT : LLResizeBar::BOTTOM);
|
||||
resize_params.snapping_enabled(false);
|
||||
resize_params.show_drag_handle(mShowDragHandle);
|
||||
LLResizeBar* resize_bar = LLUICtrlFactory::create<LLResizeBar>(resize_params);
|
||||
lp->mResizeBar = resize_bar;
|
||||
LLView::addChild(resize_bar, 0);
|
||||
|
|
@ -865,3 +929,4 @@ void LLLayoutStack::updateResizeBarLimits()
|
|||
previous_visible_panelp = visible_panelp;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -62,6 +62,11 @@ public:
|
|||
Optional<F32> open_time_constant,
|
||||
close_time_constant;
|
||||
Optional<S32> resize_bar_overlap;
|
||||
Optional<bool> show_drag_handle;
|
||||
Optional<S32> drag_handle_first_indent;
|
||||
Optional<S32> drag_handle_second_indent;
|
||||
Optional<S32> drag_handle_thickness;
|
||||
Optional<S32> drag_handle_shift;
|
||||
|
||||
Params();
|
||||
};
|
||||
|
|
@ -126,6 +131,11 @@ private:
|
|||
F32 mCloseTimeConstant;
|
||||
bool mNeedsLayout;
|
||||
S32 mResizeBarOverlap;
|
||||
bool mShowDragHandle;
|
||||
S32 mDragHandleFirstIndent;
|
||||
S32 mDragHandleSecondIndent;
|
||||
S32 mDragHandleThickness;
|
||||
S32 mDragHandleShift;
|
||||
}; // end class LLLayoutStack
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -28,14 +28,53 @@
|
|||
|
||||
#include "llresizebar.h"
|
||||
|
||||
#include "lllocalcliprect.h"
|
||||
#include "llmath.h"
|
||||
#include "llui.h"
|
||||
#include "llmenugl.h"
|
||||
#include "llfocusmgr.h"
|
||||
#include "llwindow.h"
|
||||
|
||||
class LLImagePanel : public LLPanel
|
||||
{
|
||||
public:
|
||||
struct Params : public LLInitParam::Block<Params, LLPanel::Params>
|
||||
{
|
||||
Optional<bool> horizontal;
|
||||
Params() : horizontal("horizontal", false) {}
|
||||
};
|
||||
LLImagePanel(const Params& p) : LLPanel(p), mHorizontal(p.horizontal) {}
|
||||
virtual ~LLImagePanel() {}
|
||||
|
||||
void draw()
|
||||
{
|
||||
const LLRect& parent_rect = getParent()->getRect();
|
||||
const LLRect& rect = getRect();
|
||||
LLRect clip_rect( -rect.mLeft, parent_rect.getHeight() - rect.mBottom - 2
|
||||
, parent_rect.getWidth() - rect.mLeft - (mHorizontal ? 2 : 0), -rect.mBottom);
|
||||
LLLocalClipRect clip(clip_rect);
|
||||
LLPanel::draw();
|
||||
}
|
||||
|
||||
private:
|
||||
bool mHorizontal;
|
||||
};
|
||||
|
||||
static LLDefaultChildRegistry::Register<LLImagePanel> t1("resize_bar_image_panel");
|
||||
|
||||
LLResizeBar::Params::Params()
|
||||
: max_size("max_size", S32_MAX),
|
||||
snapping_enabled("snapping_enabled", true),
|
||||
resizing_view("resizing_view"),
|
||||
side("side"),
|
||||
allow_double_click_snapping("allow_double_click_snapping", true),
|
||||
show_drag_handle("show_drag_handle", false)
|
||||
{
|
||||
name = "resize_bar";
|
||||
}
|
||||
|
||||
LLResizeBar::LLResizeBar(const LLResizeBar::Params& p)
|
||||
: LLView(p),
|
||||
: LLPanel(p),
|
||||
mDragLastScreenX( 0 ),
|
||||
mDragLastScreenY( 0 ),
|
||||
mLastMouseScreenX( 0 ),
|
||||
|
|
@ -46,7 +85,9 @@ LLResizeBar::LLResizeBar(const LLResizeBar::Params& p)
|
|||
mSnappingEnabled(p.snapping_enabled),
|
||||
mAllowDoubleClickSnapping(p.allow_double_click_snapping),
|
||||
mResizingView(p.resizing_view),
|
||||
mResizeListener(NULL)
|
||||
mResizeListener(NULL),
|
||||
mShowDragHandle(p.show_drag_handle),
|
||||
mImagePanel(NULL)
|
||||
{
|
||||
setFollowsNone();
|
||||
// set up some generically good follow code.
|
||||
|
|
@ -75,8 +116,37 @@ LLResizeBar::LLResizeBar(const LLResizeBar::Params& p)
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (mShowDragHandle)
|
||||
{
|
||||
LLViewBorder::Params border_params;
|
||||
border_params.border_thickness = 1;
|
||||
border_params.highlight_light_color = LLUIColorTable::instance().getColor("ResizebarBorderlight");
|
||||
border_params.shadow_dark_color = LLUIColorTable::instance().getColor("ResizebarBorderDark");
|
||||
|
||||
addBorder(border_params);
|
||||
setBorderVisible(TRUE);
|
||||
|
||||
LLImagePanel::Params image_panel;
|
||||
mDragHandleImage = LLUI::getUIImage(LLResizeBar::RIGHT == mSide ? "Vertical Drag Handle" : "Horizontal Drag Handle");
|
||||
image_panel.bg_alpha_image = mDragHandleImage;
|
||||
image_panel.background_visible = true;
|
||||
image_panel.horizontal = (LLResizeBar::BOTTOM == mSide);
|
||||
mImagePanel = LLUICtrlFactory::create<LLImagePanel>(image_panel);
|
||||
setImagePanel(mImagePanel);
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLResizeBar::postBuild()
|
||||
{
|
||||
if (mShowDragHandle)
|
||||
{
|
||||
setBackgroundVisible(TRUE);
|
||||
setTransparentColor(LLUIColorTable::instance().getColor("ResizebarBody"));
|
||||
}
|
||||
|
||||
return LLPanel::postBuild();
|
||||
}
|
||||
|
||||
BOOL LLResizeBar::handleMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
|
|
@ -342,3 +412,39 @@ BOOL LLResizeBar::handleDoubleClick(S32 x, S32 y, MASK mask)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void LLResizeBar::setImagePanel(LLPanel * panelp)
|
||||
{
|
||||
const LLView::child_list_t * children = getChildList();
|
||||
if (getChildCount() == 2)
|
||||
{
|
||||
LLPanel * image_panelp = dynamic_cast<LLPanel*>(children->back());
|
||||
if (image_panelp)
|
||||
{
|
||||
removeChild(image_panelp);
|
||||
delete image_panelp;
|
||||
}
|
||||
}
|
||||
|
||||
addChild(panelp);
|
||||
sendChildToBack(panelp);
|
||||
}
|
||||
|
||||
LLPanel * LLResizeBar::getImagePanel() const
|
||||
{
|
||||
return getChildCount() > 0 ? (LLPanel *)getChildList()->back() : NULL;
|
||||
}
|
||||
|
||||
void LLResizeBar::draw()
|
||||
{
|
||||
if (mShowDragHandle)
|
||||
{
|
||||
S32 image_width = mDragHandleImage->getTextureWidth();
|
||||
S32 image_height = mDragHandleImage->getTextureHeight();
|
||||
const LLRect& panel_rect = getRect();
|
||||
S32 image_left = (panel_rect.getWidth() - image_width) / 2 - 1;
|
||||
S32 image_bottom = (panel_rect.getHeight() - image_height) / 2;
|
||||
mImagePanel->setRect(LLRect(image_left, image_bottom + image_height, image_left + image_width, image_bottom));
|
||||
}
|
||||
|
||||
LLPanel::draw();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,15 +27,14 @@
|
|||
#ifndef LL_RESIZEBAR_H
|
||||
#define LL_RESIZEBAR_H
|
||||
|
||||
#include "llview.h"
|
||||
#include "llcoord.h"
|
||||
#include "llpanel.h"
|
||||
|
||||
class LLResizeBar : public LLView
|
||||
class LLResizeBar : public LLPanel
|
||||
{
|
||||
public:
|
||||
enum Side { LEFT, TOP, RIGHT, BOTTOM };
|
||||
|
||||
struct Params : public LLInitParam::Block<Params, LLView::Params>
|
||||
struct Params : public LLInitParam::Block<Params, LLPanel::Params>
|
||||
{
|
||||
Mandatory<LLView*> resizing_view;
|
||||
Mandatory<Side> side;
|
||||
|
|
@ -44,24 +43,19 @@ public:
|
|||
Optional<S32> max_size;
|
||||
Optional<bool> snapping_enabled;
|
||||
Optional<bool> allow_double_click_snapping;
|
||||
Optional<bool> show_drag_handle;
|
||||
|
||||
Params()
|
||||
: max_size("max_size", S32_MAX),
|
||||
snapping_enabled("snapping_enabled", true),
|
||||
resizing_view("resizing_view"),
|
||||
side("side"),
|
||||
allow_double_click_snapping("allow_double_click_snapping", true)
|
||||
{
|
||||
name = "resize_bar";
|
||||
}
|
||||
Params();
|
||||
};
|
||||
|
||||
protected:
|
||||
LLResizeBar(const LLResizeBar::Params& p);
|
||||
friend class LLUICtrlFactory;
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
public:
|
||||
|
||||
// virtual void draw(); No appearance
|
||||
virtual void draw();
|
||||
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
|
||||
|
|
@ -72,20 +66,26 @@ public:
|
|||
void setAllowDoubleClickSnapping(BOOL allow) { mAllowDoubleClickSnapping = allow; }
|
||||
bool canResize() { return getEnabled() && mMaxSize > mMinSize; }
|
||||
void setResizeListener(boost::function<void(void*)> listener) {mResizeListener = listener;}
|
||||
BOOL isShowDragHandle() const { return mShowDragHandle; }
|
||||
void setImagePanel(LLPanel * panelp);
|
||||
LLPanel * getImagePanel() const;
|
||||
|
||||
private:
|
||||
S32 mDragLastScreenX;
|
||||
S32 mDragLastScreenY;
|
||||
S32 mLastMouseScreenX;
|
||||
S32 mLastMouseScreenY;
|
||||
LLCoordGL mLastMouseDir;
|
||||
S32 mMinSize;
|
||||
S32 mMaxSize;
|
||||
const Side mSide;
|
||||
BOOL mSnappingEnabled;
|
||||
BOOL mAllowDoubleClickSnapping;
|
||||
LLView* mResizingView;
|
||||
boost::function<void(void*)> mResizeListener;
|
||||
S32 mDragLastScreenX;
|
||||
S32 mDragLastScreenY;
|
||||
S32 mLastMouseScreenX;
|
||||
S32 mLastMouseScreenY;
|
||||
LLCoordGL mLastMouseDir;
|
||||
S32 mMinSize;
|
||||
S32 mMaxSize;
|
||||
const Side mSide;
|
||||
BOOL mSnappingEnabled;
|
||||
BOOL mAllowDoubleClickSnapping;
|
||||
BOOL mShowDragHandle;
|
||||
LLView* mResizingView;
|
||||
boost::function<void(void*)> mResizeListener;
|
||||
LLPointer<LLUIImage> mDragHandleImage;
|
||||
LLPanel * mImagePanel;
|
||||
};
|
||||
|
||||
#endif // LL_RESIZEBAR_H
|
||||
|
|
|
|||
|
|
@ -817,15 +817,12 @@ void LLFloaterIMContainer::assignResizeLimits()
|
|||
bool is_conv_pane_expanded = !mConversationsPane->isCollapsed();
|
||||
bool is_msg_pane_expanded = !mMessagesPane->isCollapsed();
|
||||
|
||||
// With two panels visible number of borders is three, because the borders
|
||||
// between the panels are merged into one
|
||||
S32 number_of_visible_borders = llmin((is_conv_pane_expanded? 2 : 0) + (is_msg_pane_expanded? 2 : 0), 3);
|
||||
S32 summary_width_of_visible_borders = number_of_visible_borders * LLPANEL_BORDER_WIDTH;
|
||||
S32 conv_pane_target_width = is_conv_pane_expanded?
|
||||
(is_msg_pane_expanded?
|
||||
mConversationsPane->getRect().getWidth()
|
||||
: mConversationsPane->getExpandedMinDim())
|
||||
: mConversationsPane->getMinDim();
|
||||
S32 summary_width_of_visible_borders = (is_msg_pane_expanded ? mConversationsStack->getPanelSpacing() : 0) + 1;
|
||||
|
||||
S32 conv_pane_target_width = is_conv_pane_expanded
|
||||
? ( is_msg_pane_expanded?mConversationsPane->getRect().getWidth():mConversationsPane->getExpandedMinDim() )
|
||||
: mConversationsPane->getMinDim();
|
||||
|
||||
S32 msg_pane_min_width = is_msg_pane_expanded ? mMessagesPane->getExpandedMinDim() : 0;
|
||||
S32 new_min_width = conv_pane_target_width + msg_pane_min_width + summary_width_of_visible_borders;
|
||||
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ void LLFloaterIMSessionTab::assignResizeLimits()
|
|||
mRightPartPanel->setIgnoreReshape(is_participants_pane_collapsed);
|
||||
|
||||
S32 participants_pane_target_width = is_participants_pane_collapsed?
|
||||
0 : (mParticipantListPanel->getRect().getWidth() + LLPANEL_BORDER_WIDTH);
|
||||
0 : (mParticipantListPanel->getRect().getWidth() + mParticipantListAndHistoryStack->getPanelSpacing());
|
||||
|
||||
S32 new_min_width = participants_pane_target_width + mRightPartPanel->getExpandedMinDim() + mFloaterExtraWidth;
|
||||
|
||||
|
|
|
|||
|
|
@ -864,4 +864,19 @@
|
|||
<color
|
||||
name="blue"
|
||||
value="0 0 1 1"/>
|
||||
|
||||
<!--Resize bar colors -->
|
||||
|
||||
<color
|
||||
name="ResizebarBorderlight"
|
||||
value="0.231 0.231 0.231 1"/>
|
||||
|
||||
<color
|
||||
name="ResizebarBorderDark"
|
||||
value="0.133 0.133 0.133 1"/>
|
||||
|
||||
<color
|
||||
name="ResizebarBody"
|
||||
value="0.208 0.208 0.208 1"/>
|
||||
|
||||
</colors>
|
||||
|
|
|
|||
|
|
@ -776,4 +776,7 @@ with the same filename but different name
|
|||
<texture name="Popup_Caution" file_name="icons/pop_up_caution.png"/>
|
||||
<texture name="Camera_Drag_Dot" file_name="world/CameraDragDot.png"/>
|
||||
<texture name="NavBar Separator" file_name="navbar/separator.png"/>
|
||||
|
||||
<texture name="Horizontal Drag Handle" file_name="widgets/horizontal_drag_handle.png"/>
|
||||
<texture name="Vertical Drag Handle" file_name="widgets/vertical_drag_handle.png"/>
|
||||
</textures>
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 197 B |
Binary file not shown.
|
After Width: | Height: | Size: 196 B |
|
|
@ -25,23 +25,27 @@
|
|||
<layout_stack
|
||||
animate="true"
|
||||
bottom="-1"
|
||||
drag_handle_gap="6"
|
||||
drag_handle_first_indent="27"
|
||||
drag_handle_second_indent="10"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="conversations_stack"
|
||||
orientation="horizontal"
|
||||
right="-1"
|
||||
show_drag_handle="true"
|
||||
top="0">
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
name="conversations_layout_panel"
|
||||
min_dim="38"
|
||||
expanded_min_dim="156">
|
||||
expanded_min_dim="136">
|
||||
<layout_stack
|
||||
animate="false"
|
||||
follows="left|top|right"
|
||||
height="35"
|
||||
height="27"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="conversations_pane_buttons_stack"
|
||||
|
|
@ -50,7 +54,6 @@
|
|||
top="0">
|
||||
<layout_panel
|
||||
auto_resize="true"
|
||||
height="35"
|
||||
name="conversations_pane_buttons_expanded">
|
||||
<menu_button
|
||||
follows="top|left"
|
||||
|
|
@ -64,7 +67,7 @@
|
|||
left="5"
|
||||
name="sort_btn"
|
||||
tool_tip="View/sort options"
|
||||
top="5"
|
||||
top="1"
|
||||
width="31" />
|
||||
<button
|
||||
follows="top|left"
|
||||
|
|
@ -74,7 +77,7 @@
|
|||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
top="1"
|
||||
left_pad="2"
|
||||
name="add_btn"
|
||||
tool_tip="Start a new conversation"
|
||||
|
|
@ -87,7 +90,7 @@
|
|||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
top="1"
|
||||
left_pad="2"
|
||||
name="speak_btn"
|
||||
tool_tip="Speak with people using your microphone"
|
||||
|
|
@ -95,9 +98,8 @@
|
|||
</layout_panel>
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
height="35"
|
||||
name="conversations_pane_buttons_collapsed"
|
||||
width="41">
|
||||
width="31">
|
||||
<button
|
||||
follows="right|top"
|
||||
height="25"
|
||||
|
|
@ -106,8 +108,8 @@
|
|||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
left="1"
|
||||
top="1"
|
||||
left="0"
|
||||
name="expand_collapse_btn"
|
||||
tool_tip="Collapse/Expand this list"
|
||||
width="31" />
|
||||
|
|
@ -119,7 +121,7 @@
|
|||
layout="topleft"
|
||||
name="conversations_list_panel"
|
||||
opaque="true"
|
||||
top="35"
|
||||
top_pad="0"
|
||||
left="5"
|
||||
right="-1"/>
|
||||
</layout_panel>
|
||||
|
|
@ -127,7 +129,7 @@
|
|||
auto_resize="true"
|
||||
user_resize="true"
|
||||
name="messages_layout_panel"
|
||||
expanded_min_dim="222">
|
||||
expanded_min_dim="232">
|
||||
<panel_container
|
||||
bottom="-1"
|
||||
follows="all"
|
||||
|
|
@ -136,44 +138,44 @@
|
|||
name="im_box_tab_container"
|
||||
right="-1"
|
||||
top="0">
|
||||
<panel
|
||||
bottom="-1"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
name="stub_panel"
|
||||
opaque="true"
|
||||
top_pad="0"
|
||||
left="0"
|
||||
right="-1">
|
||||
<button
|
||||
follows="right|top"
|
||||
height="25"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="Conv_toolbar_collapse"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
<panel
|
||||
bottom="-1"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
right="-10"
|
||||
name="stub_collapse_btn"
|
||||
tool_tip="Collapse this pane"
|
||||
width="31" />
|
||||
<text
|
||||
type="string"
|
||||
clip_partial="false"
|
||||
follows="left|top|right"
|
||||
layout="topleft"
|
||||
left="15"
|
||||
right="-15"
|
||||
name="stub_textbox"
|
||||
top="25"
|
||||
height="40"
|
||||
valign="center"
|
||||
parse_urls="true"
|
||||
wrap="true">
|
||||
This conversation is in a separate window. [secondlife:/// Bring it back.]
|
||||
</text>
|
||||
</panel>
|
||||
name="stub_panel"
|
||||
opaque="true"
|
||||
top_pad="0"
|
||||
left="0"
|
||||
right="-1">
|
||||
<button
|
||||
follows="right|top"
|
||||
height="25"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="Conv_toolbar_collapse"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="1"
|
||||
right="-10"
|
||||
name="stub_collapse_btn"
|
||||
tool_tip="Collapse this pane"
|
||||
width="31" />
|
||||
<text
|
||||
type="string"
|
||||
clip_partial="false"
|
||||
follows="left|top|right"
|
||||
layout="topleft"
|
||||
left="15"
|
||||
right="-15"
|
||||
name="stub_textbox"
|
||||
top="25"
|
||||
height="40"
|
||||
valign="center"
|
||||
parse_urls="true"
|
||||
wrap="true">
|
||||
This conversation is in a separate window. [secondlife:/// Bring it back.]
|
||||
</text>
|
||||
</panel>
|
||||
</panel_container>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
|
|
|
|||
|
|
@ -70,27 +70,23 @@
|
|||
top="0"
|
||||
left="0"
|
||||
right="-1"
|
||||
bottom="-3">
|
||||
bottom="-1">
|
||||
<layout_stack
|
||||
animate="false"
|
||||
bottom="-1"
|
||||
default_tab_group="2"
|
||||
follows="all"
|
||||
right="-5"
|
||||
bottom="-1"
|
||||
top="0"
|
||||
left="3"
|
||||
border_size="0"
|
||||
layout="topleft"
|
||||
orientation="vertical"
|
||||
name="main_stack"
|
||||
tab_group="1">
|
||||
right="-3"
|
||||
orientation="vertical"
|
||||
tab_group="1"
|
||||
top="0">
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
name="toolbar_panel"
|
||||
height="35"
|
||||
right="-1"
|
||||
left="1">
|
||||
height="25">
|
||||
<menu_button
|
||||
menu_filename="menu_im_session_showmodes.xml"
|
||||
follows="top|left"
|
||||
|
|
@ -103,7 +99,7 @@
|
|||
left="5"
|
||||
name="view_options_btn"
|
||||
tool_tip="View/sort options"
|
||||
top="5"
|
||||
top="1"
|
||||
width="31" />
|
||||
<menu_button
|
||||
menu_filename="menu_im_conversation.xml"
|
||||
|
|
@ -114,7 +110,7 @@
|
|||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
top="1"
|
||||
left_pad="2"
|
||||
name="gear_btn"
|
||||
visible="false"
|
||||
|
|
@ -129,7 +125,7 @@
|
|||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
top="1"
|
||||
left_pad="2"
|
||||
name="add_btn"
|
||||
tool_tip="Add someone to this conversation"
|
||||
|
|
@ -142,7 +138,7 @@
|
|||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
top="1"
|
||||
left_pad="2"
|
||||
name="voice_call_btn"
|
||||
tool_tip="Open voice connection"
|
||||
|
|
@ -167,8 +163,8 @@
|
|||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
right="-67"
|
||||
top="1"
|
||||
right="-70"
|
||||
name="close_btn"
|
||||
tool_tip="End this conversation"
|
||||
width="31" />
|
||||
|
|
@ -180,7 +176,7 @@
|
|||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
top="1"
|
||||
left_pad="2"
|
||||
name="expand_collapse_btn"
|
||||
tool_tip="Collapse/Expand this pane"
|
||||
|
|
@ -195,20 +191,21 @@
|
|||
layout="topleft"
|
||||
left_pad="2"
|
||||
name="tear_off_btn"
|
||||
top="5"
|
||||
top="1"
|
||||
width="31" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
name="body_panel"
|
||||
top="1"
|
||||
bottom="-1"
|
||||
auto_resize="true"
|
||||
user_resize="false">
|
||||
height="235">
|
||||
<layout_stack
|
||||
default_tab_group="2"
|
||||
drag_handle_gap="6"
|
||||
drag_handle_first_indent="0"
|
||||
drag_handle_second_indent="1"
|
||||
follows="all"
|
||||
orientation="horizontal"
|
||||
name="im_panels"
|
||||
show_drag_handle="true"
|
||||
tab_group="1"
|
||||
top="0"
|
||||
right="-1"
|
||||
|
|
@ -220,14 +217,12 @@
|
|||
min_dim="0"
|
||||
width="150"
|
||||
user_resize="true"
|
||||
auto_resize="false"
|
||||
bottom="-1" />
|
||||
auto_resize="false" />
|
||||
<layout_panel
|
||||
default_tab_group="3"
|
||||
tab_group="2"
|
||||
name="right_part_holder"
|
||||
min_width="221"
|
||||
bottom="-1">
|
||||
min_width="221">
|
||||
<layout_stack
|
||||
animate="true"
|
||||
default_tab_group="2"
|
||||
|
|
@ -236,7 +231,7 @@
|
|||
name="translate_and_chat_stack"
|
||||
tab_group="1"
|
||||
top="0"
|
||||
left="0"
|
||||
left="1"
|
||||
right="-1"
|
||||
bottom="-1">
|
||||
<layout_panel
|
||||
|
|
@ -262,7 +257,7 @@
|
|||
parse_highlights="true"
|
||||
parse_urls="true"
|
||||
right="-1"
|
||||
left="5"
|
||||
left="0"
|
||||
top="0"
|
||||
bottom="-1" />
|
||||
</layout_panel>
|
||||
|
|
@ -271,12 +266,8 @@
|
|||
</layout_stack>
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
top_delta="0"
|
||||
top="0"
|
||||
height="30"
|
||||
bottom="-1"
|
||||
height="35"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
name="chat_layout_panel">
|
||||
<layout_stack
|
||||
animate="false"
|
||||
|
|
@ -285,15 +276,11 @@
|
|||
orientation="horizontal"
|
||||
name="input_panels"
|
||||
top="0"
|
||||
bottom="-2"
|
||||
bottom="-1"
|
||||
left="0"
|
||||
right="-1">
|
||||
<layout_panel
|
||||
name="input_editor_layout_panel"
|
||||
auto_resize="true"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
bottom="-1">
|
||||
name="input_editor_layout_panel">
|
||||
<chat_editor
|
||||
layout="topleft"
|
||||
expand_lines_count="5"
|
||||
|
|
@ -306,32 +293,27 @@
|
|||
max_length="1023"
|
||||
spellcheck="true"
|
||||
tab_group="3"
|
||||
top="1"
|
||||
bottom="-2"
|
||||
left="4"
|
||||
right="-4"
|
||||
bottom="-8"
|
||||
left="5"
|
||||
right="-5"
|
||||
wrap="true" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
name="input_button_layout_panel"
|
||||
width="30"
|
||||
top="0"
|
||||
bottom="-1">
|
||||
width="32">
|
||||
<button
|
||||
layout="topleft"
|
||||
left="1"
|
||||
right="-1"
|
||||
top="1"
|
||||
height="22"
|
||||
top="4"
|
||||
height="25"
|
||||
follows="left|right|top"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="Conv_expand_one_line"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
name="minz_btn"
|
||||
tool_tip="Shows/hides message panel" />
|
||||
tool_tip="Shows/hides message panel"
|
||||
width="28" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
|
|
|
|||
Loading…
Reference in New Issue