summaryrefslogtreecommitdiff
path: root/indra/newview/llscreenchannel.h
diff options
context:
space:
mode:
authorAnsariel <ansariel.hiller@phoenixviewer.com>2024-05-22 21:25:21 +0200
committerAndrey Lihatskiy <alihatskiy@productengine.com>2024-05-22 22:40:26 +0300
commite2e37cced861b98de8c1a7c9c0d3a50d2d90e433 (patch)
tree1bb897489ce524986f6196201c10ac0d8861aa5f /indra/newview/llscreenchannel.h
parent069ea06848f766466f1a281144c82a0f2bd79f3a (diff)
Fix line endlings
Diffstat (limited to 'indra/newview/llscreenchannel.h')
-rw-r--r--indra/newview/llscreenchannel.h626
1 files changed, 313 insertions, 313 deletions
diff --git a/indra/newview/llscreenchannel.h b/indra/newview/llscreenchannel.h
index f28181f63a..22fb41e559 100644
--- a/indra/newview/llscreenchannel.h
+++ b/indra/newview/llscreenchannel.h
@@ -1,313 +1,313 @@
-/**
- * @file llscreenchannel.h
- * @brief Class implements a channel on a screen in which appropriate toasts may appear.
- *
- * $LicenseInfo:firstyear=2003&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLSCREENCHANNEL_H
-#define LL_LLSCREENCHANNEL_H
-
-#include "lltoast.h"
-
-#include <map>
-#include <boost/shared_ptr.hpp>
-
-namespace LLNotificationsUI
-{
- const LLUUID ALERT_CHANNEL_UUID("F3E07BC8-A973-476D-8C7F-F3B7293975D1");
- const LLUUID NOTIFICATION_CHANNEL_UUID("AEED3193-8709-4693-8558-7452CCA97AE5");
- const LLUUID NEARBY_CHAT_CHANNEL_UUID("E1158BD6-661C-4981-9DAD-4DCBFF062502");
- const LLUUID STARTUP_CHANNEL_UUID("B56AF90D-6684-48E4-B1E4-722D3DEB2CB6");
-
- const S32 NOTIFY_BOX_WIDTH = 305;
-
-typedef enum e_notification_toast_alignment
-{
- NA_TOP,
- NA_CENTRE,
- NA_BOTTOM,
-} EToastAlignment;
-
-typedef enum e_channel_alignment
-{
- CA_LEFT,
- CA_CENTRE,
- CA_RIGHT,
-} EChannelAlignment;
-
-class LLScreenChannelBase : public LLUICtrl
-{
- friend class LLChannelManager;
-public:
- struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
- {
- Mandatory<LLUUID> id;
- Optional<bool> display_toasts_always;
- Optional<EToastAlignment> toast_align;
- Optional<EChannelAlignment> channel_align;
-
- Params()
- : id("id", LLUUID("")),
- display_toasts_always("display_toasts_always", false),
- toast_align("toast_align", NA_BOTTOM),
- channel_align("channel_align", CA_LEFT)
- {}
- };
-
- LLScreenChannelBase(const Params&);
-
- bool postBuild();
-
- void reshape(S32 width, S32 height, bool called_from_parent = true);
-
- // Channel's outfit-functions
- // update channel's size and position in the World View
- virtual void updatePositionAndSize(LLRect rect);
-
- // initialization of channel's shape and position
- virtual void init(S32 channel_left, S32 channel_right);
-
- // kill or modify a toast by its ID
- virtual void killToastByNotificationID(LLUUID id) {};
- virtual void modifyToastNotificationByID(LLUUID id, LLSD data) {};
- virtual void removeToastByNotificationID(LLUUID id){};
-
- // hide all toasts from screen, but not remove them from a channel
- virtual void hideToastsFromScreen() {};
- // removes all toasts from a channel
- virtual void removeToastsFromChannel() {};
-
- // show all toasts in a channel
- virtual void redrawToasts() {};
-
-
- // Channel's behavior-functions
- // set whether a channel will control hovering inside itself or not
- virtual void setControlHovering(bool control) { mControlHovering = control; }
-
-
- bool isHovering();
-
- void setCanStoreToasts(bool store) { mCanStoreToasts = store; }
-
- bool getDisplayToastsAlways() { return mDisplayToastsAlways; }
-
- // get number of hidden notifications from a channel
- S32 getNumberOfHiddenToasts() { return mHiddenToastsNum;}
-
-
- void setShowToasts(bool show) { mShowToasts = show; }
- bool getShowToasts() { return mShowToasts; }
-
- // get toast allignment preset for a channel
- e_notification_toast_alignment getToastAlignment() {return mToastAlignment;}
-
- // get ID of a channel
- LLUUID getChannelID() { return mID; }
- LLHandle<LLScreenChannelBase> getHandle() { return getDerivedHandle<LLScreenChannelBase>(); }
-
-protected:
- void updateRect();
- LLRect getChannelRect();
-
- // Channel's flags
- bool mControlHovering;
- LLToast* mHoveredToast;
- bool mCanStoreToasts;
- bool mDisplayToastsAlways;
- // controls whether a channel shows toasts or not
- bool mShowToasts;
- //
- EToastAlignment mToastAlignment;
- EChannelAlignment mChannelAlignment;
-
- S32 mHiddenToastsNum;
-
- // channel's ID
- LLUUID mID;
-
- LLView* mFloaterSnapRegion;
- LLView* mChicletRegion;
-};
-
-
-/**
- * Screen channel manages toasts visibility and positioning on the screen.
- */
-class LLScreenChannel : public LLScreenChannelBase
-{
- friend class LLChannelManager;
-public:
- LLScreenChannel(const Params&);
- virtual ~LLScreenChannel();
-
- class Matcher
- {
- public:
- Matcher(){}
- virtual ~Matcher() {}
- virtual bool matches(const LLNotificationPtr) const = 0;
- };
-
- std::list<const LLToast*> findToasts(const Matcher& matcher);
-
- // Channel's outfit-functions
- // update channel's size and position in the World View
- void updatePositionAndSize(LLRect new_rect);
- // initialization of channel's shape and position
- void init(S32 channel_left, S32 channel_right);
-
- // Operating with toasts
- // add a toast to a channel
- void addToast(const LLToast::Params& p);
- // kill or modify a toast by its ID
- void killToastByNotificationID(LLUUID id);
- void removeToastByNotificationID(LLUUID id);
- void killMatchedToasts(const Matcher& matcher);
- void modifyToastByNotificationID(LLUUID id, LLPanel* panel);
- // hide all toasts from screen, but not remove them from a channel
- void hideToastsFromScreen();
- // hide toast by notification id
- void hideToast(const LLUUID& notification_id);
-
- /**
- * Closes hidden matched toasts from channel.
- */
- void closeHiddenToasts(const Matcher& matcher);
-
- // removes all toasts from a channel
- void removeToastsFromChannel();
- // show all toasts in a channel
- void redrawToasts();
- //
- void loadStoredToastsToChannel();
- // finds a toast among stored by its Notification ID and throws it on a screen to a channel
- void loadStoredToastByNotificationIDToChannel(LLUUID id);
- // removes from channel all toasts that belongs to the certain IM session
- void removeToastsBySessionID(LLUUID id);
- // remove all storable toasts from screen and store them
- void removeAndStoreAllStorableToasts();
- // close the StartUp Toast
- void closeStartUpToast();
-
-
- /** Stop fading given toast */
- virtual void stopToastTimer(LLToast* toast);
-
- /** Start fading given toast */
- virtual void startToastTimer(LLToast* toast);
-
- // get StartUp Toast's state
- static bool getStartUpToastShown() { return mWasStartUpToastShown; }
- // tell all channels that the StartUp toast was shown and allow them showing of toasts
- static void setStartUpToastShown() { mWasStartUpToastShown = true; }
- // let a channel update its ShowToast flag
- void updateShowToastsState();
-
-
- // Channel's other interface functions functions
- // update number of notifications in the StartUp Toast
- void updateStartUpString(S32 num);
-
- LLToast* getToastByNotificationID(LLUUID id);
-
- // Channel's signals
- // signal on storing of faded toasts event
- typedef boost::signals2::signal<void (LLPanel* info_panel, const LLUUID id)> store_toast_signal_t;
- boost::signals2::connection addOnStoreToastCallback(store_toast_signal_t::slot_type cb) { return mOnStoreToast.connect(cb); }
-
-private:
- store_toast_signal_t mOnStoreToast;
-
- class ToastElem
- {
- public:
- ToastElem(const LLHandle<LLToast>& toast) : mToast(toast)
- {
- }
-
- ToastElem(const ToastElem& toast_elem) : mToast(toast_elem.mToast)
- {
- }
-
- LLToast* getToast() const
- {
- return mToast.get();
- }
-
- LLUUID getID() const
- {
- return mToast.isDead() ? LLUUID() : mToast.get()->getNotificationID();
- }
-
- bool operator == (const LLUUID &id_op) const
- {
- return (getID() == id_op);
- }
-
- bool operator == (LLPanel* panel_op) const
- {
- return (mToast.get() == panel_op);
- }
-
- private:
- LLHandle<LLToast> mToast;
- };
-
- // Channel's handlers
- void onToastHover(LLToast* toast, bool mouse_enter);
- void onToastFade(LLToast* toast);
- void onToastDestroyed(LLToast* toast);
- void onStartUpToastHide();
-
- //
- void storeToast(ToastElem& toast_elem);
- // send signal to observers about destroying of a toast, update channel's Hovering state, close the toast
- void deleteToast(LLToast* toast);
-
- // show-functions depending on allignment of toasts
- void showToastsBottom();
- void showToastsCentre();
- void showToastsTop();
-
- // create the StartUp Toast
- void createStartUpToast(S32 notif_num, F32 timer);
-
- /**
- * Notification channel and World View ratio(0.0 - always show 1 notification, 1.0 - max ratio).
- */
- static F32 getHeightRatio();
-
- // Channel's flags
- static bool mWasStartUpToastShown;
-
- // attributes for the StartUp Toast
- LLToast* mStartUpToastPanel;
-
-
- std::vector<ToastElem> mToastList;
- std::vector<ToastElem> mStoredToastList;
-};
-
-}
-#endif
+/**
+ * @file llscreenchannel.h
+ * @brief Class implements a channel on a screen in which appropriate toasts may appear.
+ *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLSCREENCHANNEL_H
+#define LL_LLSCREENCHANNEL_H
+
+#include "lltoast.h"
+
+#include <map>
+#include <boost/shared_ptr.hpp>
+
+namespace LLNotificationsUI
+{
+ const LLUUID ALERT_CHANNEL_UUID("F3E07BC8-A973-476D-8C7F-F3B7293975D1");
+ const LLUUID NOTIFICATION_CHANNEL_UUID("AEED3193-8709-4693-8558-7452CCA97AE5");
+ const LLUUID NEARBY_CHAT_CHANNEL_UUID("E1158BD6-661C-4981-9DAD-4DCBFF062502");
+ const LLUUID STARTUP_CHANNEL_UUID("B56AF90D-6684-48E4-B1E4-722D3DEB2CB6");
+
+ const S32 NOTIFY_BOX_WIDTH = 305;
+
+typedef enum e_notification_toast_alignment
+{
+ NA_TOP,
+ NA_CENTRE,
+ NA_BOTTOM,
+} EToastAlignment;
+
+typedef enum e_channel_alignment
+{
+ CA_LEFT,
+ CA_CENTRE,
+ CA_RIGHT,
+} EChannelAlignment;
+
+class LLScreenChannelBase : public LLUICtrl
+{
+ friend class LLChannelManager;
+public:
+ struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
+ {
+ Mandatory<LLUUID> id;
+ Optional<bool> display_toasts_always;
+ Optional<EToastAlignment> toast_align;
+ Optional<EChannelAlignment> channel_align;
+
+ Params()
+ : id("id", LLUUID("")),
+ display_toasts_always("display_toasts_always", false),
+ toast_align("toast_align", NA_BOTTOM),
+ channel_align("channel_align", CA_LEFT)
+ {}
+ };
+
+ LLScreenChannelBase(const Params&);
+
+ bool postBuild();
+
+ void reshape(S32 width, S32 height, bool called_from_parent = true);
+
+ // Channel's outfit-functions
+ // update channel's size and position in the World View
+ virtual void updatePositionAndSize(LLRect rect);
+
+ // initialization of channel's shape and position
+ virtual void init(S32 channel_left, S32 channel_right);
+
+ // kill or modify a toast by its ID
+ virtual void killToastByNotificationID(LLUUID id) {};
+ virtual void modifyToastNotificationByID(LLUUID id, LLSD data) {};
+ virtual void removeToastByNotificationID(LLUUID id){};
+
+ // hide all toasts from screen, but not remove them from a channel
+ virtual void hideToastsFromScreen() {};
+ // removes all toasts from a channel
+ virtual void removeToastsFromChannel() {};
+
+ // show all toasts in a channel
+ virtual void redrawToasts() {};
+
+
+ // Channel's behavior-functions
+ // set whether a channel will control hovering inside itself or not
+ virtual void setControlHovering(bool control) { mControlHovering = control; }
+
+
+ bool isHovering();
+
+ void setCanStoreToasts(bool store) { mCanStoreToasts = store; }
+
+ bool getDisplayToastsAlways() { return mDisplayToastsAlways; }
+
+ // get number of hidden notifications from a channel
+ S32 getNumberOfHiddenToasts() { return mHiddenToastsNum;}
+
+
+ void setShowToasts(bool show) { mShowToasts = show; }
+ bool getShowToasts() { return mShowToasts; }
+
+ // get toast allignment preset for a channel
+ e_notification_toast_alignment getToastAlignment() {return mToastAlignment;}
+
+ // get ID of a channel
+ LLUUID getChannelID() { return mID; }
+ LLHandle<LLScreenChannelBase> getHandle() { return getDerivedHandle<LLScreenChannelBase>(); }
+
+protected:
+ void updateRect();
+ LLRect getChannelRect();
+
+ // Channel's flags
+ bool mControlHovering;
+ LLToast* mHoveredToast;
+ bool mCanStoreToasts;
+ bool mDisplayToastsAlways;
+ // controls whether a channel shows toasts or not
+ bool mShowToasts;
+ //
+ EToastAlignment mToastAlignment;
+ EChannelAlignment mChannelAlignment;
+
+ S32 mHiddenToastsNum;
+
+ // channel's ID
+ LLUUID mID;
+
+ LLView* mFloaterSnapRegion;
+ LLView* mChicletRegion;
+};
+
+
+/**
+ * Screen channel manages toasts visibility and positioning on the screen.
+ */
+class LLScreenChannel : public LLScreenChannelBase
+{
+ friend class LLChannelManager;
+public:
+ LLScreenChannel(const Params&);
+ virtual ~LLScreenChannel();
+
+ class Matcher
+ {
+ public:
+ Matcher(){}
+ virtual ~Matcher() {}
+ virtual bool matches(const LLNotificationPtr) const = 0;
+ };
+
+ std::list<const LLToast*> findToasts(const Matcher& matcher);
+
+ // Channel's outfit-functions
+ // update channel's size and position in the World View
+ void updatePositionAndSize(LLRect new_rect);
+ // initialization of channel's shape and position
+ void init(S32 channel_left, S32 channel_right);
+
+ // Operating with toasts
+ // add a toast to a channel
+ void addToast(const LLToast::Params& p);
+ // kill or modify a toast by its ID
+ void killToastByNotificationID(LLUUID id);
+ void removeToastByNotificationID(LLUUID id);
+ void killMatchedToasts(const Matcher& matcher);
+ void modifyToastByNotificationID(LLUUID id, LLPanel* panel);
+ // hide all toasts from screen, but not remove them from a channel
+ void hideToastsFromScreen();
+ // hide toast by notification id
+ void hideToast(const LLUUID& notification_id);
+
+ /**
+ * Closes hidden matched toasts from channel.
+ */
+ void closeHiddenToasts(const Matcher& matcher);
+
+ // removes all toasts from a channel
+ void removeToastsFromChannel();
+ // show all toasts in a channel
+ void redrawToasts();
+ //
+ void loadStoredToastsToChannel();
+ // finds a toast among stored by its Notification ID and throws it on a screen to a channel
+ void loadStoredToastByNotificationIDToChannel(LLUUID id);
+ // removes from channel all toasts that belongs to the certain IM session
+ void removeToastsBySessionID(LLUUID id);
+ // remove all storable toasts from screen and store them
+ void removeAndStoreAllStorableToasts();
+ // close the StartUp Toast
+ void closeStartUpToast();
+
+
+ /** Stop fading given toast */
+ virtual void stopToastTimer(LLToast* toast);
+
+ /** Start fading given toast */
+ virtual void startToastTimer(LLToast* toast);
+
+ // get StartUp Toast's state
+ static bool getStartUpToastShown() { return mWasStartUpToastShown; }
+ // tell all channels that the StartUp toast was shown and allow them showing of toasts
+ static void setStartUpToastShown() { mWasStartUpToastShown = true; }
+ // let a channel update its ShowToast flag
+ void updateShowToastsState();
+
+
+ // Channel's other interface functions functions
+ // update number of notifications in the StartUp Toast
+ void updateStartUpString(S32 num);
+
+ LLToast* getToastByNotificationID(LLUUID id);
+
+ // Channel's signals
+ // signal on storing of faded toasts event
+ typedef boost::signals2::signal<void (LLPanel* info_panel, const LLUUID id)> store_toast_signal_t;
+ boost::signals2::connection addOnStoreToastCallback(store_toast_signal_t::slot_type cb) { return mOnStoreToast.connect(cb); }
+
+private:
+ store_toast_signal_t mOnStoreToast;
+
+ class ToastElem
+ {
+ public:
+ ToastElem(const LLHandle<LLToast>& toast) : mToast(toast)
+ {
+ }
+
+ ToastElem(const ToastElem& toast_elem) : mToast(toast_elem.mToast)
+ {
+ }
+
+ LLToast* getToast() const
+ {
+ return mToast.get();
+ }
+
+ LLUUID getID() const
+ {
+ return mToast.isDead() ? LLUUID() : mToast.get()->getNotificationID();
+ }
+
+ bool operator == (const LLUUID &id_op) const
+ {
+ return (getID() == id_op);
+ }
+
+ bool operator == (LLPanel* panel_op) const
+ {
+ return (mToast.get() == panel_op);
+ }
+
+ private:
+ LLHandle<LLToast> mToast;
+ };
+
+ // Channel's handlers
+ void onToastHover(LLToast* toast, bool mouse_enter);
+ void onToastFade(LLToast* toast);
+ void onToastDestroyed(LLToast* toast);
+ void onStartUpToastHide();
+
+ //
+ void storeToast(ToastElem& toast_elem);
+ // send signal to observers about destroying of a toast, update channel's Hovering state, close the toast
+ void deleteToast(LLToast* toast);
+
+ // show-functions depending on allignment of toasts
+ void showToastsBottom();
+ void showToastsCentre();
+ void showToastsTop();
+
+ // create the StartUp Toast
+ void createStartUpToast(S32 notif_num, F32 timer);
+
+ /**
+ * Notification channel and World View ratio(0.0 - always show 1 notification, 1.0 - max ratio).
+ */
+ static F32 getHeightRatio();
+
+ // Channel's flags
+ static bool mWasStartUpToastShown;
+
+ // attributes for the StartUp Toast
+ LLToast* mStartUpToastPanel;
+
+
+ std::vector<ToastElem> mToastList;
+ std::vector<ToastElem> mStoredToastList;
+};
+
+}
+#endif