summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorRichard Nelson <richard@lindenlab.com>2011-09-30 18:51:17 -0700
committerRichard Nelson <richard@lindenlab.com>2011-09-30 18:51:17 -0700
commit63a8fce12b1e1c0d40d97e2f029776fed6e300fb (patch)
tree46897674d28a0a5e4ab76281d09c388f281a53f8 /indra/llui
parentf787208903a4f5a7b641859ba991b8b2e63e2a32 (diff)
made toolbars conform to visual specs
added ability to specify clip rects in textures.xml
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/lltoolbar.cpp17
-rw-r--r--indra/llui/lltoolbar.h23
2 files changed, 22 insertions, 18 deletions
diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp
index 2592fd1229..c62bbe4e71 100644
--- a/indra/llui/lltoolbar.cpp
+++ b/indra/llui/lltoolbar.cpp
@@ -82,9 +82,6 @@ LLToolBar::Params::Params()
button_icon_and_text("button_icon_and_text"),
read_only("read_only", false),
wrap("wrap", true),
- min_button_width("min_button_width", 0),
- max_button_width("max_button_width", S32_MAX),
- button_height("button_height"),
pad_left("pad_left"),
pad_top("pad_top"),
pad_right("pad_right"),
@@ -102,9 +99,6 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p)
mNeedsLayout(false),
mButtonPanel(NULL),
mCenteringStack(NULL),
- mMinButtonWidth(llmin(p.min_button_width(), p.max_button_width())),
- mMaxButtonWidth(llmax(p.max_button_width(), p.min_button_width())),
- mButtonHeight(p.button_height),
mPadLeft(p.pad_left),
mPadRight(p.pad_right),
mPadTop(p.pad_top),
@@ -325,7 +319,7 @@ void LLToolBar::resizeButtonsInRow(std::vector<LLToolBarButton*>& buttons_in_row
{
if (getOrientation(mSideType) == LLLayoutStack::HORIZONTAL)
{
- button->reshape(llclamp(button->getRect().getWidth(), mMinButtonWidth, mMaxButtonWidth), max_row_girth);
+ button->reshape(llclamp(button->getRect().getWidth(), button->mMinWidth, button->mMaxWidth), max_row_girth);
}
else // VERTICAL
{
@@ -384,10 +378,10 @@ void LLToolBar::updateLayoutAsNeeded()
BOOST_FOREACH(LLToolBarButton* button, mButtons)
{
- button->reshape(mMinButtonWidth, mButtonHeight);
+ button->reshape(button->mMinWidth, button->mDesiredHeight);
button->autoResize();
- S32 button_clamped_width = llclamp(button->getRect().getWidth(), mMinButtonWidth, mMaxButtonWidth);
+ S32 button_clamped_width = llclamp(button->getRect().getWidth(), button->mMinWidth, button->mMaxWidth);
S32 button_length = (orientation == LLLayoutStack::HORIZONTAL)
? button_clamped_width
: button->getRect().getHeight();
@@ -402,7 +396,7 @@ void LLToolBar::updateLayoutAsNeeded()
{
if (orientation == LLLayoutStack::VERTICAL)
{ // row girth (width in this case) is clamped to allowable button widths
- max_row_girth = llclamp(max_row_girth, mMinButtonWidth, mMaxButtonWidth);
+ max_row_girth = llclamp(max_row_girth, button->mMinWidth, button->mMaxWidth);
}
// make buttons in current row all same girth
@@ -546,6 +540,9 @@ LLToolBarButton::LLToolBarButton(const Params& p)
: LLButton(p),
mMouseDownX(0),
mMouseDownY(0),
+ mMinWidth(p.min_button_width),
+ mMaxWidth(p.max_button_width),
+ mDesiredHeight(p.desired_height),
mId("")
{}
diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h
index 0bb95f4e9c..5d64630fa6 100644
--- a/indra/llui/lltoolbar.h
+++ b/indra/llui/lltoolbar.h
@@ -37,9 +37,20 @@
class LLToolBarButton : public LLButton
{
+ friend class LLToolBar;
public:
struct Params : public LLInitParam::Block<Params, LLButton::Params>
{
+ Optional<S32> min_button_width,
+ max_button_width,
+ desired_height;
+
+ Params()
+ : min_button_width("min_button_width", 0),
+ max_button_width("max_button_width", S32_MAX),
+ desired_height("desired_height", 20)
+ {}
+
};
LLToolBarButton(const Params& p);
@@ -51,6 +62,9 @@ private:
LLCommandId mId;
S32 mMouseDownX;
S32 mMouseDownY;
+ S32 mMinWidth;
+ S32 mMaxWidth;
+ S32 mDesiredHeight;
};
@@ -106,10 +120,6 @@ public:
Optional<bool> read_only,
wrap;
- Optional<S32> min_button_width,
- max_button_width,
- button_height;
-
Optional<S32> pad_left,
pad_top,
pad_right,
@@ -171,10 +181,7 @@ private:
bool mWrap;
bool mNeedsLayout;
- S32 mMinButtonWidth,
- mMaxButtonWidth,
- mButtonHeight,
- mPadLeft,
+ S32 mPadLeft,
mPadRight,
mPadTop,
mPadBottom,