From 812d18515ddefd11fe8c5fc7f655280a231670f5 Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Tue, 17 Nov 2009 13:03:08 +0200 Subject: Completed major sub-task EXT-991 (Update bottom bar behavior on resize) - added possibility to shrink/extend buttons (gestures, move, view) while resizing - I had to add LLLayoutStack::getPanelMinSize interface to validate width of Layout panels with these buttons --HG-- branch : product-engine --- indra/llui/lllayoutstack.cpp | 13 +++++++++++++ indra/llui/lllayoutstack.h | 8 ++++++++ 2 files changed, 21 insertions(+) (limited to 'indra/llui') diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp index 14a6ddb7e0..1fb618adee 100644 --- a/indra/llui/lllayoutstack.cpp +++ b/indra/llui/lllayoutstack.cpp @@ -413,6 +413,19 @@ void LLLayoutStack::updatePanelAutoResize(const std::string& panel_name, BOOL au } } +bool LLLayoutStack::getPanelMinSize(const std::string& panel_name, S32* min_widthp, S32* min_heightp) +{ + LayoutPanel* panel = findEmbeddedPanelByName(panel_name); + + if (panel) + { + if (min_widthp) *min_widthp = panel->mMinWidth; + if (min_heightp) *min_heightp = panel->mMinHeight; + } + + return NULL != panel; +} + static LLFastTimer::DeclareTimer FTM_UPDATE_LAYOUT("Update LayoutStacks"); void LLLayoutStack::updateLayout(BOOL force_resize) { diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h index 9cbcb285dc..abd5436018 100644 --- a/indra/llui/lllayoutstack.h +++ b/indra/llui/lllayoutstack.h @@ -82,6 +82,14 @@ public: void updatePanelAutoResize(const std::string& panel_name, BOOL auto_resize); + /** + * Gets minimal width and/or height of the specified by name panel. + * + * If it is necessary to get only the one dimension pass NULL for another one. + * @returns true if specified by panel_name internal panel exists, false otherwise. + */ + bool getPanelMinSize(const std::string& panel_name, S32* min_widthp, S32* min_heightp); + void updateLayout(BOOL force_resize = FALSE); static void updateClass(); -- cgit v1.2.3 From d43e33400a2ef9d89ed6d13067055b5b1edbde78 Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Tue, 17 Nov 2009 14:33:07 +0200 Subject: implemented EXT-2515 "Docked floaters should be resizeable"; --HG-- branch : product-engine --- indra/llui/lldockablefloater.cpp | 10 ++++++++++ indra/llui/lldockablefloater.h | 1 + indra/llui/lldockcontrol.cpp | 5 +++++ indra/llui/lldockcontrol.h | 1 + 4 files changed, 17 insertions(+) (limited to 'indra/llui') diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index c3dd4ae647..9be3d49023 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -217,6 +217,16 @@ void LLDockableFloater::draw() LLFloater::draw(); } +void LLDockableFloater::reshape(S32 width, S32 height, BOOL called_from_parent) +{ + if (isDocked()) + { + setDocked(false); + } + + LLFloater::reshape(width, height, called_from_parent); +} + void LLDockableFloater::setDockControl(LLDockControl* dockControl) { mDockControl.reset(dockControl); diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h index 46491d8a29..e5f94dca91 100644 --- a/indra/llui/lldockablefloater.h +++ b/indra/llui/lldockablefloater.h @@ -65,6 +65,7 @@ public: /* virtula */BOOL postBuild(); /* virtual */void setDocked(bool docked, bool pop_on_undock = true); /* virtual */void draw(); + /* virtual */void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); /** * If descendant class overrides setVisible() then it must still invoke its diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp index 045505af5b..456a2925a3 100644 --- a/indra/llui/lldockcontrol.cpp +++ b/indra/llui/lldockcontrol.cpp @@ -266,6 +266,11 @@ void LLDockControl::off() mEnabled = false; } +void LLDockControl::forceRecalculatePosition() +{ + mRecalculateDocablePosition = true; +} + void LLDockControl::drawToungue() { if (mEnabled) diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h index eaedb4c307..30a45bedc7 100644 --- a/indra/llui/lldockcontrol.h +++ b/indra/llui/lldockcontrol.h @@ -63,6 +63,7 @@ public: public: void on(); void off(); + void forceRecalculatePosition(); void setDock(LLView* dockWidget); LLView* getDock() { -- cgit v1.2.3 From a66aa0fd9a7aa20484521bf9b3809297e31466b0 Mon Sep 17 00:00:00 2001 From: Igor Borovkov Date: Tue, 17 Nov 2009 18:42:51 +0200 Subject: fixed major EXT-2551 Nearby Chat undocs after minimizing and opening (being docked before) --HG-- branch : product-engine --- indra/llui/lldockablefloater.cpp | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'indra/llui') diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index 9be3d49023..9a2f2ab4d3 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -136,21 +136,10 @@ void LLDockableFloater::setVisible(BOOL visible) void LLDockableFloater::setMinimized(BOOL minimize) { - if(minimize && isDocked()) + if(minimize) { setVisible(FALSE); } - - if (minimize) - { - setCanDock(false); - } - else if (!minimize && mDockControl.get() != NULL && mDockControl.get()->isDockVisible()) - { - setCanDock(true); - } - - LLFloater::setMinimized(minimize); } LLView * LLDockableFloater::getDockWidget() -- cgit v1.2.3