summaryrefslogtreecommitdiff
path: root/indra/newview/llmediactrl.h
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2024-05-15 11:16:27 +0300
committerAndrey Lihatskiy <alihatskiy@productengine.com>2024-05-15 11:16:27 +0300
commitbccc10db9a90d365c353baebf443fde2030ce970 (patch)
tree2c2e1fd94b29667a809f8d7285d049f5ff5d424d /indra/newview/llmediactrl.h
parent531cd34f670170ade57f8813fe48012b61a1d3c2 (diff)
parentbb3c36f5cbc0c3b542045fd27255eee24e03da22 (diff)
Merge branch 'main' into marchcat/x-b-merge
# Conflicts: # autobuild.xml # indra/cmake/ConfigurePkgConfig.cmake # indra/cmake/ICU4C.cmake # indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp # indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h # indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h # indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp # indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h # indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp # indra/newview/llappviewerlinux_api.h # indra/newview/llappviewerlinux_api_dbus.cpp # indra/newview/llappviewerlinux_api_dbus.h # indra/newview/llfloateremojipicker.cpp # indra/newview/lloutfitslist.cpp
Diffstat (limited to 'indra/newview/llmediactrl.h')
-rw-r--r--indra/newview/llmediactrl.h322
1 files changed, 161 insertions, 161 deletions
diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h
index 487c654adc..899eab1fea 100644
--- a/indra/newview/llmediactrl.h
+++ b/indra/newview/llmediactrl.h
@@ -5,21 +5,21 @@
* $LicenseInfo:firstyear=2006&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$
*/
@@ -40,185 +40,185 @@ class LLContextMenu;
////////////////////////////////////////////////////////////////////////////////
//
class LLMediaCtrl :
- public LLPanel,
- public LLViewerMediaObserver,
- public LLViewerMediaEventEmitter,
- public LLInstanceTracker<LLMediaCtrl, LLUUID>
+ public LLPanel,
+ public LLViewerMediaObserver,
+ public LLViewerMediaEventEmitter,
+ public LLInstanceTracker<LLMediaCtrl, LLUUID>
{
- LOG_CLASS(LLMediaCtrl);
+ LOG_CLASS(LLMediaCtrl);
public:
- struct Params : public LLInitParam::Block<Params, LLPanel::Params>
- {
- Optional<std::string> start_url;
-
- Optional<bool> border_visible,
- hide_loading,
- decouple_texture_size,
- trusted_content,
- focus_on_click;
-
- Optional<S32> texture_width,
- texture_height;
-
- Optional<LLUIColor> caret_color;
-
- Optional<std::string> initial_mime_type;
- Optional<std::string> media_id;
- Optional<std::string> error_page_url;
-
- Params();
- };
-
+ struct Params : public LLInitParam::Block<Params, LLPanel::Params>
+ {
+ Optional<std::string> start_url;
+
+ Optional<bool> border_visible,
+ hide_loading,
+ decouple_texture_size,
+ trusted_content,
+ focus_on_click;
+
+ Optional<S32> texture_width,
+ texture_height;
+
+ Optional<LLUIColor> caret_color;
+
+ Optional<std::string> initial_mime_type;
+ Optional<std::string> media_id;
+ Optional<std::string> error_page_url;
+
+ Params();
+ };
+
protected:
- LLMediaCtrl(const Params&);
- friend class LLUICtrlFactory;
+ LLMediaCtrl(const Params&);
+ friend class LLUICtrlFactory;
public:
- virtual ~LLMediaCtrl();
-
- void setBorderVisible( BOOL border_visible );
-
- // For the tutorial window, we don't want to take focus on clicks,
- // as the examples include how to move around with the arrow
- // keys. Thus we keep focus on the app by setting this false.
- // Defaults to true.
- void setTakeFocusOnClick( bool take_focus );
-
- // handle mouse related methods
- virtual BOOL handleHover( S32 x, S32 y, MASK mask );
- virtual BOOL handleMouseUp( S32 x, S32 y, MASK mask );
- virtual BOOL handleMouseDown( S32 x, S32 y, MASK mask );
- virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
- virtual BOOL handleRightMouseUp(S32 x, S32 y, MASK mask);
- virtual BOOL handleDoubleClick( S32 x, S32 y, MASK mask );
- virtual BOOL handleScrollWheel( S32 x, S32 y, S32 clicks );
- virtual BOOL handleScrollHWheel( S32 x, S32 y, S32 clicks );
- virtual BOOL handleToolTip(S32 x, S32 y, MASK mask);
-
- // navigation
- void navigateTo( std::string url_in, std::string mime_type = "", bool clean_browser = false);
- void navigateBack();
- void navigateHome();
- void navigateForward();
- void navigateStop();
- void navigateToLocalPage( const std::string& subdir, const std::string& filename_in );
- bool canNavigateBack();
- bool canNavigateForward();
- std::string getCurrentNavUrl();
-
- // By default, we do not handle "secondlife:///app/" SLURLs, because
- // those can cause teleports, open windows, etc. We cannot be sure
- // that each "click" is actually due to a user action, versus
- // Javascript or some other mechanism. However, we need the search
- // floater and login page to handle these URLs. Those are safe
- // because we control the page content. See DEV-9530. JC.
- void setHomePageUrl( const std::string& urlIn, const std::string& mime_type = LLStringUtil::null );
- std::string getHomePageUrl();
-
- void setTarget(const std::string& target);
-
- void setErrorPageURL(const std::string& url);
- const std::string& getErrorPageURL();
-
- // Clear the browser cache when the instance gets loaded
- void clearCache();
-
- // accessor/mutator for flag that indicates if frequent updates to texture happen
- bool getFrequentUpdates() { return mFrequentUpdates; };
- void setFrequentUpdates( bool frequentUpdatesIn ) { mFrequentUpdates = frequentUpdatesIn; };
-
- void setAlwaysRefresh(bool refresh) { mAlwaysRefresh = refresh; }
- bool getAlwaysRefresh() { return mAlwaysRefresh; }
-
- void setForceUpdate(bool force_update) { mForceUpdate = force_update; }
- bool getForceUpdate() { return mForceUpdate; }
-
- bool ensureMediaSourceExists();
- void unloadMediaSource();
-
- LLPluginClassMedia* getMediaPlugin();
-
- bool setCaretColor( unsigned int red, unsigned int green, unsigned int blue );
-
- void setDecoupleTextureSize(bool decouple) { mDecoupleTextureSize = decouple; }
- bool getDecoupleTextureSize() { return mDecoupleTextureSize; }
-
- void setTextureSize(S32 width, S32 height);
-
- void showNotification(LLNotificationPtr notify);
- void hideNotification();
-
- void setTrustedContent(bool trusted);
+ virtual ~LLMediaCtrl();
+
+ void setBorderVisible( BOOL border_visible );
+
+ // For the tutorial window, we don't want to take focus on clicks,
+ // as the examples include how to move around with the arrow
+ // keys. Thus we keep focus on the app by setting this false.
+ // Defaults to true.
+ void setTakeFocusOnClick( bool take_focus );
+
+ // handle mouse related methods
+ virtual BOOL handleHover( S32 x, S32 y, MASK mask );
+ virtual BOOL handleMouseUp( S32 x, S32 y, MASK mask );
+ virtual BOOL handleMouseDown( S32 x, S32 y, MASK mask );
+ virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
+ virtual BOOL handleRightMouseUp(S32 x, S32 y, MASK mask);
+ virtual BOOL handleDoubleClick( S32 x, S32 y, MASK mask );
+ virtual BOOL handleScrollWheel( S32 x, S32 y, S32 clicks );
+ virtual BOOL handleScrollHWheel( S32 x, S32 y, S32 clicks );
+ virtual BOOL handleToolTip(S32 x, S32 y, MASK mask);
+
+ // navigation
+ void navigateTo( std::string url_in, std::string mime_type = "", bool clean_browser = false);
+ void navigateBack();
+ void navigateHome();
+ void navigateForward();
+ void navigateStop();
+ void navigateToLocalPage( const std::string& subdir, const std::string& filename_in );
+ bool canNavigateBack();
+ bool canNavigateForward();
+ std::string getCurrentNavUrl();
+
+ // By default, we do not handle "secondlife:///app/" SLURLs, because
+ // those can cause teleports, open windows, etc. We cannot be sure
+ // that each "click" is actually due to a user action, versus
+ // Javascript or some other mechanism. However, we need the search
+ // floater and login page to handle these URLs. Those are safe
+ // because we control the page content. See DEV-9530. JC.
+ void setHomePageUrl( const std::string& urlIn, const std::string& mime_type = LLStringUtil::null );
+ std::string getHomePageUrl();
+
+ void setTarget(const std::string& target);
+
+ void setErrorPageURL(const std::string& url);
+ const std::string& getErrorPageURL();
+
+ // Clear the browser cache when the instance gets loaded
+ void clearCache();
+
+ // accessor/mutator for flag that indicates if frequent updates to texture happen
+ bool getFrequentUpdates() { return mFrequentUpdates; };
+ void setFrequentUpdates( bool frequentUpdatesIn ) { mFrequentUpdates = frequentUpdatesIn; };
+
+ void setAlwaysRefresh(bool refresh) { mAlwaysRefresh = refresh; }
+ bool getAlwaysRefresh() { return mAlwaysRefresh; }
+
+ void setForceUpdate(bool force_update) { mForceUpdate = force_update; }
+ bool getForceUpdate() { return mForceUpdate; }
+
+ bool ensureMediaSourceExists();
+ void unloadMediaSource();
+
+ LLPluginClassMedia* getMediaPlugin();
+
+ bool setCaretColor( unsigned int red, unsigned int green, unsigned int blue );
+
+ void setDecoupleTextureSize(bool decouple) { mDecoupleTextureSize = decouple; }
+ bool getDecoupleTextureSize() { return mDecoupleTextureSize; }
+
+ void setTextureSize(S32 width, S32 height);
+
+ void showNotification(LLNotificationPtr notify);
+ void hideNotification();
+
+ void setTrustedContent(bool trusted);
void setAllowFileDownload(bool allow) { mAllowFileDownload = allow; }
- // over-rides
- virtual BOOL handleKeyHere( KEY key, MASK mask);
- virtual BOOL handleKeyUpHere(KEY key, MASK mask);
- virtual void onVisibilityChange ( BOOL new_visibility );
- virtual BOOL handleUnicodeCharHere(llwchar uni_char);
- virtual void reshape( S32 width, S32 height, BOOL called_from_parent = TRUE);
- virtual void draw();
- virtual BOOL postBuild();
+ // over-rides
+ virtual BOOL handleKeyHere( KEY key, MASK mask);
+ virtual BOOL handleKeyUpHere(KEY key, MASK mask);
+ virtual void onVisibilityChange ( BOOL new_visibility );
+ virtual BOOL handleUnicodeCharHere(llwchar uni_char);
+ virtual void reshape( S32 width, S32 height, BOOL called_from_parent = TRUE);
+ virtual void draw();
+ virtual BOOL postBuild();
- // focus overrides
- void onFocusLost();
- void onFocusReceived();
-
- // Incoming media event dispatcher
- virtual void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event);
+ // focus overrides
+ void onFocusLost();
+ void onFocusReceived();
- // right click debugging item
- void onOpenWebInspector();
+ // Incoming media event dispatcher
+ virtual void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event);
- LLUUID getTextureID() {return mMediaTextureID;}
+ // right click debugging item
+ void onOpenWebInspector();
+
+ LLUUID getTextureID() {return mMediaTextureID;}
// The Browser windows want keyup and keydown events. Overridden from LLFocusableElement to return true.
virtual bool wantsKeyUpKeyDown() const;
virtual bool wantsReturnKey() const;
- virtual BOOL acceptsTextInput() const {return TRUE;}
+ virtual BOOL acceptsTextInput() const {return TRUE;}
+
+ protected:
+ void convertInputCoords(S32& x, S32& y);
- protected:
- void convertInputCoords(S32& x, S32& y);
+ private:
+ void calcOffsetsAndSize(S32 *x_offset, S32 *y_offset, S32 *width, S32 *height);
private:
- void calcOffsetsAndSize(S32 *x_offset, S32 *y_offset, S32 *width, S32 *height);
-
- private:
- void onVisibilityChanged ( const LLSD& new_visibility );
- void onPopup(const LLSD& notification, const LLSD& response);
-
- const S32 mTextureDepthBytes;
- LLUUID mMediaTextureID;
- LLViewBorder* mBorder;
- bool mFrequentUpdates,
- mForceUpdate,
- mTrusted,
- mAlwaysRefresh,
- mTakeFocusOnClick,
- mStretchToFill,
- mMaintainAspectRatio,
- mHideLoading,
- mHidingInitialLoad,
- mClearCache,
- mHoverTextChanged,
- mDecoupleTextureSize,
- mUpdateScrolls,
+ void onVisibilityChanged ( const LLSD& new_visibility );
+ void onPopup(const LLSD& notification, const LLSD& response);
+
+ const S32 mTextureDepthBytes;
+ LLUUID mMediaTextureID;
+ LLViewBorder* mBorder;
+ bool mFrequentUpdates,
+ mForceUpdate,
+ mTrusted,
+ mAlwaysRefresh,
+ mTakeFocusOnClick,
+ mStretchToFill,
+ mMaintainAspectRatio,
+ mHideLoading,
+ mHidingInitialLoad,
+ mClearCache,
+ mHoverTextChanged,
+ mDecoupleTextureSize,
+ mUpdateScrolls,
mAllowFileDownload;
- std::string mHomePageUrl,
- mHomePageMimeType,
- mCurrentNavUrl,
- mErrorPageURL,
- mTarget;
- viewer_media_t mMediaSource;
- S32 mTextureWidth,
- mTextureHeight;
-
- class LLWindowShade* mWindowShade;
- LLHandle<LLContextMenu> mContextMenuHandle;
+ std::string mHomePageUrl,
+ mHomePageMimeType,
+ mCurrentNavUrl,
+ mErrorPageURL,
+ mTarget;
+ viewer_media_t mMediaSource;
+ S32 mTextureWidth,
+ mTextureHeight;
+
+ class LLWindowShade* mWindowShade;
+ LLHandle<LLContextMenu> mContextMenuHandle;
};
#endif // LL_LLMediaCtrl_H