diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llui/llfloaterreglistener.cpp | 13 | ||||
| -rw-r--r-- | indra/llui/llfloaterreglistener.h | 1 | 
2 files changed, 14 insertions, 0 deletions
diff --git a/indra/llui/llfloaterreglistener.cpp b/indra/llui/llfloaterreglistener.cpp index 821d4543ae..ec2ac6834e 100644 --- a/indra/llui/llfloaterreglistener.cpp +++ b/indra/llui/llfloaterreglistener.cpp @@ -60,6 +60,11 @@ LLFloaterRegListener::LLFloaterRegListener():          "Ask to toggle the state of the floater specified in [\"name\"]",          &LLFloaterRegListener::toggleInstance,          requiredName); +    add("instanceVisible", +        "Return on [\"reply\"] an event whose [\"visible\"] indicates the visibility " +        "of the floater specified in [\"name\"]", +        &LLFloaterRegListener::instanceVisible, +        requiredName);      LLSD requiredNameButton;      requiredNameButton["name"] = LLSD();      requiredNameButton["button"] = LLSD(); @@ -104,6 +109,14 @@ void LLFloaterRegListener::toggleInstance(const LLSD& event) const      LLFloaterReg::toggleInstance(event["name"], event["key"]);  } +void LLFloaterRegListener::instanceVisible(const LLSD& event) const +{ +    LLReqID reqID(event); +    LLSD reply(reqID.makeResponse()); +    reply["visible"] = LLFloaterReg::instanceVisible(event["name"], event["key"]); +    LLEventPumps::instance().obtain(event["reply"]).post(reply); +} +  void LLFloaterRegListener::clickButton(const LLSD& event) const  {      // If the caller requests a reply, build the reply. diff --git a/indra/llui/llfloaterreglistener.h b/indra/llui/llfloaterreglistener.h index 586656667c..24311a2dfa 100644 --- a/indra/llui/llfloaterreglistener.h +++ b/indra/llui/llfloaterreglistener.h @@ -47,6 +47,7 @@ private:      void showInstance(const LLSD& event) const;      void hideInstance(const LLSD& event) const;      void toggleInstance(const LLSD& event) const; +    void instanceVisible(const LLSD& event) const;      void clickButton(const LLSD& event) const;  };  | 
