summaryrefslogtreecommitdiff
path: root/indra/llui/llfloater.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui/llfloater.h')
-rw-r--r--indra/llui/llfloater.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index 50edffbb8d..814bebeb95 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -113,8 +113,6 @@ struct LLCoordFloater : LLCoord<LL_COORD_FLOATER>
bool operator!=(const LLCoordFloater& other) const { return !(*this == other); }
void setFloater(LLFloater& floater);
-
-
};
class LLFloater : public LLPanel, public LLInstanceTracker<LLFloater>
@@ -165,7 +163,8 @@ public:
save_visibility,
save_dock_state,
can_dock,
- show_title;
+ show_title,
+ auto_close;
Optional<LLFloaterEnums::EOpenPositioning> positioning;
@@ -238,6 +237,7 @@ public:
virtual void closeHostedFloater();
/*virtual*/ void reshape(S32 width, S32 height, bool called_from_parent = true);
+ /*virtual*/ void translate(S32 x, S32 y);
// Release keyboard and mouse focus
void releaseFocus();
@@ -256,10 +256,11 @@ public:
std::string getShortTitle() const;
virtual void setMinimized(bool b);
void moveResizeHandlesToFront();
- void addDependentFloater(LLFloater* dependent, bool reposition = true);
- void addDependentFloater(LLHandle<LLFloater> dependent_handle, bool reposition = true);
+ void addDependentFloater(LLFloater* dependent, bool reposition = true, bool resize = false);
+ void addDependentFloater(LLHandle<LLFloater> dependent_handle, bool reposition = true, bool resize = false);
LLFloater* getDependee() { return (LLFloater*)mDependeeHandle.get(); }
- void removeDependentFloater(LLFloater* dependent);
+ void removeDependentFloater(LLFloater* dependent);
+ void fitWithDependentsOnScreen(const LLRect& left, const LLRect& bottom, const LLRect& right, const LLRect& constraint, S32 min_overlap_pixels);
bool isMinimized() const { return mMinimized; }
/// isShown() differs from getVisible() in that isShown() also considers
/// isMinimized(). isShown() is true only if visible and not minimized.
@@ -314,8 +315,11 @@ public:
/*virtual*/ void setVisible(bool visible); // do not override
/*virtual*/ void onVisibilityChange ( bool new_visibility ); // do not override
+ bool canFocusStealFrontmost() const { return mFocusStealsFrontmost; }
+ void setFocusStealsFrontmost(bool wants_frontmost) { mFocusStealsFrontmost = wants_frontmost; }
+
void setFrontmost(bool take_focus = true, bool restore = true);
- virtual void setVisibleAndFrontmost(bool take_focus=true, const LLSD& key = LLSD());
+ virtual void setVisibleAndFrontmost(bool take_focus = true, const LLSD& key = LLSD());
// Defaults to false.
virtual bool canSaveAs() const { return false; }
@@ -387,6 +391,7 @@ protected:
void setInstanceName(const std::string& name);
virtual void bringToFront(S32 x, S32 y);
+ virtual void goneFromFront();
void setExpandedRect(const LLRect& rect) { mExpandedRect = rect; } // size when not minimized
const LLRect& getExpandedRect() const { return mExpandedRect; }
@@ -482,8 +487,10 @@ private:
bool mCanTearOff;
bool mCanMinimize;
bool mCanClose;
+ bool mFocusStealsFrontmost = true; // false if we don't want the currently focused floater to cover this floater without user interaction
bool mDragOnLeft;
bool mResizable;
+ bool mAutoClose;
LLFloaterEnums::EOpenPositioning mPositioning;
LLCoordFloater mPosition;
@@ -503,6 +510,7 @@ private:
typedef std::set<LLHandle<LLFloater> > handle_set_t;
typedef std::set<LLHandle<LLFloater> >::iterator handle_set_iter_t;
handle_set_t mDependents;
+ bool mTranslateWithDependents { false };
bool mButtonsEnabled[BUTTON_COUNT];
F32 mButtonScale;
@@ -599,6 +607,7 @@ public:
LLFloater* getFrontmostClosableFloater();
void setToolbarRect(LLToolBarEnums::EToolBarLocation tb, const LLRect& toolbar_rect);
+ void onDestroyFloater(LLFloater* floater);
private:
void hiddenFloaterClosed(LLFloater* floater);