summaryrefslogtreecommitdiff
path: root/indra/newview/llscriptfloater.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llscriptfloater.h')
-rw-r--r--indra/newview/llscriptfloater.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h
index 0e1a7f36b7..95ec5a4d9c 100644
--- a/indra/newview/llscriptfloater.h
+++ b/indra/newview/llscriptfloater.h
@@ -43,6 +43,9 @@ class LLToastNotifyPanel;
*/
class LLScriptFloaterManager : public LLSingleton<LLScriptFloaterManager>
{
+ // *TODO
+ // LLScriptFloaterManager and LLScriptFloater will need some refactoring after we
+ // know how script notifications should look like.
public:
/**
@@ -67,7 +70,9 @@ public:
* Toggles script floater.
* Removes "new message" icon from chiclet and removes notification toast.
*/
- void toggleScriptFloater(const LLUUID& object_id);
+ void toggleScriptFloater(const LLUUID& object_id, bool set_new_message = false);
+
+ LLUUID findObjectId(const LLUUID& notification_id);
LLUUID findNotificationId(const LLUUID& object_id);
@@ -83,6 +88,11 @@ public:
*/
static void onToastButtonClick(const LLSD&notification, const LLSD&response);
+ typedef boost::signals2::signal<void(const LLSD&)> object_signal_t;
+
+ boost::signals2::connection addNewObjectCallback(const object_signal_t::slot_type& cb) { return mNewObjectSignal.connect(cb); }
+ boost::signals2::connection addToggleObjectFloaterCallback(const object_signal_t::slot_type& cb) { return mToggleFloaterSignal.connect(cb); }
+
private:
struct LLNotificationData
@@ -95,6 +105,9 @@ private:
typedef std::map<LLUUID, LLNotificationData> script_notification_map_t;
script_notification_map_t mNotifications;
+
+ object_signal_t mNewObjectSignal;
+ object_signal_t mToggleFloaterSignal;
};
/**
@@ -102,7 +115,7 @@ private:
* LLScriptFloater will create script form based on notification data and
* will auto fit the form.
*/
-class LLScriptFloater : public LLTransientDockableFloater
+class LLScriptFloater : public LLDockableFloater
{
public:
@@ -125,6 +138,8 @@ public:
const LLUUID& getObjectId() { return mObjectId; }
+ void setObjectId(const LLUUID& id) { mObjectId = id; }
+
/**
* Close notification if script floater is closed.
*/
@@ -154,8 +169,6 @@ protected:
*/
static void hideToastsIfNeeded();
- void setObjectId(const LLUUID& id) { mObjectId = id; }
-
private:
LLToastNotifyPanel* mScriptForm;
LLUUID mObjectId;