diff options
Diffstat (limited to 'indra/newview/llpanelnearbymedia.h')
-rw-r--r-- | indra/newview/llpanelnearbymedia.h | 362 |
1 files changed, 181 insertions, 181 deletions
diff --git a/indra/newview/llpanelnearbymedia.h b/indra/newview/llpanelnearbymedia.h index 22f154f388..e4ce91703c 100644 --- a/indra/newview/llpanelnearbymedia.h +++ b/indra/newview/llpanelnearbymedia.h @@ -1,181 +1,181 @@ -/** - * @file llpanelnearbymedia.h - * @brief Management interface for muting and controlling nearby media - * - * $LicenseInfo:firstyear=2005&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_LLPANELNEARBYMEDIA_H -#define LL_LLPANELNEARBYMEDIA_H - -#include "llpanelpulldown.h" - -class LLPanelNearbyMedia; -class LLButton; -class LLScrollListCtrl; -class LLSlider; -class LLSliderCtrl; -class LLCheckBoxCtrl; -class LLTextBox; -class LLToggleableMenu; -class LLComboBox; -class LLViewerMediaImpl; - -class LLPanelNearByMedia : public LLPanelPulldown -{ -public: - - bool postBuild() override; - void draw() override; - void reshape(S32 width, S32 height, bool called_from_parent) override; - bool handleHover(S32 x, S32 y, MASK mask) override; - bool handleRightMouseDown(S32 x, S32 y, MASK mask) override; - void onVisibilityChange(bool new_visibility) override; - - // this is part of the nearby media *dialog* so we can track whether - // the user *implicitly* wants audio on or off via their *explicit* - // interaction with our buttons. - bool getParcelAudioAutoStart(); - - // callback for when the auto play media preference changes - // to update mParcelAudioAutoStart - void handleMediaAutoPlayChanged(const LLSD& newvalue); - - LLPanelNearByMedia(); - virtual ~LLPanelNearByMedia(); - -private: - - enum ColumnIndex { - CHECKBOX_COLUMN = 0, - PROXIMITY_COLUMN = 1, - VISIBILITY_COLUMN = 2, - CLASS_COLUMN = 3, - NAME_COLUMN = 4, - DEBUG_COLUMN = 5 - }; - - // Media "class" enumeration - enum MediaClass { - MEDIA_CLASS_ALL = 0, - MEDIA_CLASS_FOCUSED = 1, - MEDIA_CLASS_WITHIN_PARCEL = 2, - MEDIA_CLASS_OUTSIDE_PARCEL = 3, - MEDIA_CLASS_ON_OTHERS = 4 - }; - - // Add/remove an LLViewerMediaImpl to/from the list - LLScrollListItem* addListItem(const LLUUID &id); - void updateListItem(LLScrollListItem* item, LLViewerMediaImpl* impl); - void updateListItem(LLScrollListItem* item, - const std::string &item_name, - const std::string &item_tooltip, - S32 proximity, - bool is_disabled, - bool has_media, - bool is_time_based_and_playing, - MediaClass media_class, - const std::string &debug_str); - void removeListItem(const LLUUID &id); - - // Refresh the list in the UI - void refreshList(); - - void refreshParcelItems(); - - // UI Callbacks - void onClickEnableAll(); - void onClickDisableAll(); - void onClickEnableParcelMedia(); - void onClickDisableParcelMedia(); - void onClickParcelMediaPlay(); - void onClickParcelMediaStop(); - void onClickParcelMediaPause(); - void onClickParcelAudioPlay(); - void onClickParcelAudioStop(); - void onClickParcelAudioPause(); - void onAdvancedButtonClick(); - void onMoreLess(); - - void onCheckItem(LLUICtrl* ctrl, const LLUUID &row_id); - - static void onZoomMedia(void* user_data); - -private: - bool setDisabled(const LLUUID &id, bool disabled); - - static void getNameAndUrlHelper(LLViewerMediaImpl* impl, std::string& name, std::string & url, const std::string &defaultName); - std::string getSelectedUrl(); - - void updateColumns(); - - bool shouldShow(LLViewerMediaImpl* impl); - - void showBasicControls(bool playing, bool include_zoom, bool is_zoomed, bool muted, F32 volume); - void showTimeBasedControls(bool playing, bool include_zoom, bool is_zoomed, bool muted, F32 volume); - void showDisabledControls(); - void updateControls(); - - void onClickSelectedMediaStop(); - void onClickSelectedMediaPlay(); - void onClickSelectedMediaPause(); - void onClickSelectedMediaMute(); - void onCommitSelectedMediaVolume(); - void onClickSelectedMediaZoom(); - void onClickSelectedMediaUnzoom(); - void onMenuAction(const LLSD& userdata); - bool onMenuVisible(const LLSD& userdata); - - LLUICtrl* mNearbyMediaPanel; - LLScrollListCtrl* mMediaList; - LLUICtrl* mEnableAllCtrl; - LLUICtrl* mDisableAllCtrl; - LLComboBox* mShowCtrl; - - // Dynamic (selection-dependent) controls - LLUICtrl* mStopCtrl; - LLUICtrl* mPlayCtrl; - LLUICtrl* mPauseCtrl; - LLUICtrl* mMuteCtrl; - LLUICtrl* mVolumeSliderCtrl; - LLUICtrl* mZoomCtrl; - LLUICtrl* mUnzoomCtrl; - LLSlider* mVolumeSlider; - LLButton* mMuteBtn; - LLButton* mMoreLessBtn; - - bool mDebugInfoVisible; - bool mParcelAudioAutoStart; - std::string mEmptyNameString; - std::string mPlayingString; - std::string mParcelMediaName; - std::string mParcelAudioName; - - LLRect mMoreRect; - LLRect mLessRect; - LLScrollListItem* mParcelMediaItem; - LLScrollListItem* mParcelAudioItem; - LLToggleableMenu* mContextMenu; -}; - - -#endif // LL_LLPANELNEARBYMEDIA_H +/**
+ * @file llpanelnearbymedia.h
+ * @brief Management interface for muting and controlling nearby media
+ *
+ * $LicenseInfo:firstyear=2005&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_LLPANELNEARBYMEDIA_H
+#define LL_LLPANELNEARBYMEDIA_H
+
+#include "llpanelpulldown.h"
+
+class LLPanelNearbyMedia;
+class LLButton;
+class LLScrollListCtrl;
+class LLSlider;
+class LLSliderCtrl;
+class LLCheckBoxCtrl;
+class LLTextBox;
+class LLToggleableMenu;
+class LLComboBox;
+class LLViewerMediaImpl;
+
+class LLPanelNearByMedia : public LLPanelPulldown
+{
+public:
+
+ bool postBuild() override;
+ void draw() override;
+ void reshape(S32 width, S32 height, bool called_from_parent) override;
+ bool handleHover(S32 x, S32 y, MASK mask) override;
+ bool handleRightMouseDown(S32 x, S32 y, MASK mask) override;
+ void onVisibilityChange(bool new_visibility) override;
+
+ // this is part of the nearby media *dialog* so we can track whether
+ // the user *implicitly* wants audio on or off via their *explicit*
+ // interaction with our buttons.
+ bool getParcelAudioAutoStart();
+
+ // callback for when the auto play media preference changes
+ // to update mParcelAudioAutoStart
+ void handleMediaAutoPlayChanged(const LLSD& newvalue);
+
+ LLPanelNearByMedia();
+ virtual ~LLPanelNearByMedia();
+
+private:
+
+ enum ColumnIndex {
+ CHECKBOX_COLUMN = 0,
+ PROXIMITY_COLUMN = 1,
+ VISIBILITY_COLUMN = 2,
+ CLASS_COLUMN = 3,
+ NAME_COLUMN = 4,
+ DEBUG_COLUMN = 5
+ };
+
+ // Media "class" enumeration
+ enum MediaClass {
+ MEDIA_CLASS_ALL = 0,
+ MEDIA_CLASS_FOCUSED = 1,
+ MEDIA_CLASS_WITHIN_PARCEL = 2,
+ MEDIA_CLASS_OUTSIDE_PARCEL = 3,
+ MEDIA_CLASS_ON_OTHERS = 4
+ };
+
+ // Add/remove an LLViewerMediaImpl to/from the list
+ LLScrollListItem* addListItem(const LLUUID &id);
+ void updateListItem(LLScrollListItem* item, LLViewerMediaImpl* impl);
+ void updateListItem(LLScrollListItem* item,
+ const std::string &item_name,
+ const std::string &item_tooltip,
+ S32 proximity,
+ bool is_disabled,
+ bool has_media,
+ bool is_time_based_and_playing,
+ MediaClass media_class,
+ const std::string &debug_str);
+ void removeListItem(const LLUUID &id);
+
+ // Refresh the list in the UI
+ void refreshList();
+
+ void refreshParcelItems();
+
+ // UI Callbacks
+ void onClickEnableAll();
+ void onClickDisableAll();
+ void onClickEnableParcelMedia();
+ void onClickDisableParcelMedia();
+ void onClickParcelMediaPlay();
+ void onClickParcelMediaStop();
+ void onClickParcelMediaPause();
+ void onClickParcelAudioPlay();
+ void onClickParcelAudioStop();
+ void onClickParcelAudioPause();
+ void onAdvancedButtonClick();
+ void onMoreLess();
+
+ void onCheckItem(LLUICtrl* ctrl, const LLUUID &row_id);
+
+ static void onZoomMedia(void* user_data);
+
+private:
+ bool setDisabled(const LLUUID &id, bool disabled);
+
+ static void getNameAndUrlHelper(LLViewerMediaImpl* impl, std::string& name, std::string & url, const std::string &defaultName);
+ std::string getSelectedUrl();
+
+ void updateColumns();
+
+ bool shouldShow(LLViewerMediaImpl* impl);
+
+ void showBasicControls(bool playing, bool include_zoom, bool is_zoomed, bool muted, F32 volume);
+ void showTimeBasedControls(bool playing, bool include_zoom, bool is_zoomed, bool muted, F32 volume);
+ void showDisabledControls();
+ void updateControls();
+
+ void onClickSelectedMediaStop();
+ void onClickSelectedMediaPlay();
+ void onClickSelectedMediaPause();
+ void onClickSelectedMediaMute();
+ void onCommitSelectedMediaVolume();
+ void onClickSelectedMediaZoom();
+ void onClickSelectedMediaUnzoom();
+ void onMenuAction(const LLSD& userdata);
+ bool onMenuVisible(const LLSD& userdata);
+
+ LLUICtrl* mNearbyMediaPanel;
+ LLScrollListCtrl* mMediaList;
+ LLUICtrl* mEnableAllCtrl;
+ LLUICtrl* mDisableAllCtrl;
+ LLComboBox* mShowCtrl;
+
+ // Dynamic (selection-dependent) controls
+ LLUICtrl* mStopCtrl;
+ LLUICtrl* mPlayCtrl;
+ LLUICtrl* mPauseCtrl;
+ LLUICtrl* mMuteCtrl;
+ LLUICtrl* mVolumeSliderCtrl;
+ LLUICtrl* mZoomCtrl;
+ LLUICtrl* mUnzoomCtrl;
+ LLSlider* mVolumeSlider;
+ LLButton* mMuteBtn;
+ LLButton* mMoreLessBtn;
+
+ bool mDebugInfoVisible;
+ bool mParcelAudioAutoStart;
+ std::string mEmptyNameString;
+ std::string mPlayingString;
+ std::string mParcelMediaName;
+ std::string mParcelAudioName;
+
+ LLRect mMoreRect;
+ LLRect mLessRect;
+ LLScrollListItem* mParcelMediaItem;
+ LLScrollListItem* mParcelAudioItem;
+ LLToggleableMenu* mContextMenu;
+};
+
+
+#endif // LL_LLPANELNEARBYMEDIA_H
|