diff --git a/extras/package/macosx/VLC.xcodeproj/project.pbxproj b/extras/package/macosx/VLC.xcodeproj/project.pbxproj index 4a3b38cf9a..dc8c13bfce 100644 --- a/extras/package/macosx/VLC.xcodeproj/project.pbxproj +++ b/extras/package/macosx/VLC.xcodeproj/project.pbxproj @@ -88,6 +88,7 @@ 534E73E229D2EDB1009982DE /* VLCBookmarksTableViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 534E73E129D2EDB1009982DE /* VLCBookmarksTableViewDelegate.m */; }; 534E73E529D2FF07009982DE /* VLCBookmark.m in Sources */ = {isa = PBXBuildFile; fileRef = 534E73E429D2FF07009982DE /* VLCBookmark.m */; }; 534E8E3A29A06325009503F8 /* VLCMainVideoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 534E8E3929A06325009503F8 /* VLCMainVideoViewController.m */; }; + 535053EE2B610C3400D7EAF2 /* VLCLoadingOverlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 535053ED2B610C3400D7EAF2 /* VLCLoadingOverlayView.m */; }; 5350E4EE2B1B21A700F276CB /* VLCLibraryHomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5350E4ED2B1B21A700F276CB /* VLCLibraryHomeViewController.m */; }; 5352B37329DF29BF0011CE03 /* VLCMainVideoViewControlsBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 5352B37229DF29BF0011CE03 /* VLCMainVideoViewControlsBar.m */; }; 5352B37629E149AC0011CE03 /* VLCLibraryWindowPersistentPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 5352B37529E149AC0011CE03 /* VLCLibraryWindowPersistentPreferences.m */; }; @@ -301,6 +302,8 @@ 534E8E3729A04F95009503F8 /* VLCMainVideoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VLCMainVideoView.xib; sourceTree = ""; }; 534E8E3829A06325009503F8 /* VLCMainVideoViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCMainVideoViewController.h; sourceTree = ""; }; 534E8E3929A06325009503F8 /* VLCMainVideoViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCMainVideoViewController.m; sourceTree = ""; }; + 535053EC2B610C3400D7EAF2 /* VLCLoadingOverlayView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLoadingOverlayView.h; sourceTree = ""; }; + 535053ED2B610C3400D7EAF2 /* VLCLoadingOverlayView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLoadingOverlayView.m; sourceTree = ""; }; 5350E4EC2B1B21A700F276CB /* VLCLibraryHomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCLibraryHomeViewController.h; sourceTree = ""; }; 5350E4ED2B1B21A700F276CB /* VLCLibraryHomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryHomeViewController.m; sourceTree = ""; }; 5352B37129DF29BF0011CE03 /* VLCMainVideoViewControlsBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCMainVideoViewControlsBar.h; sourceTree = ""; }; @@ -1061,6 +1064,8 @@ 7DFBDCB6226CDFD600B700A5 /* VLCImageView.m */, 7D2FFA3E227B8A5B0085D649 /* VLCLinearProgressIndicator.h */, 7D2FFA3F227B8A5B0085D649 /* VLCLinearProgressIndicator.m */, + 535053EC2B610C3400D7EAF2 /* VLCLoadingOverlayView.h */, + 535053ED2B610C3400D7EAF2 /* VLCLoadingOverlayView.m */, 7D1BF28822A153E20027C50F /* VLCRoundedCornerTextField.h */, 7D1BF28922A153E20027C50F /* VLCRoundedCornerTextField.m */, 6B13E2A61BC67678001AD24A /* VLCScrollingClipView.h */, @@ -2168,6 +2173,7 @@ 1C3113AD1E508C6900D4DD76 /* VLCExtensionsManager.m in Sources */, 7DFBDCBB226CED6300B700A5 /* VLCMediaSourceProvider.m in Sources */, 7D66D4362200BC340040D04A /* VLCClickerManager.m in Sources */, + 535053EE2B610C3400D7EAF2 /* VLCLoadingOverlayView.m in Sources */, 53B447F9293BB47B00857588 /* VLCLibraryVideoDataSource.m in Sources */, 53F020A12A91115D00E79705 /* VLCLibraryWindowSplitViewController.m in Sources */, 53B447F9293BB47B00857588 /* VLCLibraryVideoTableViewDataSource.m in Sources */, diff --git a/modules/gui/macosx/Makefile.am b/modules/gui/macosx/Makefile.am index a50893d76b..1045cb6816 100644 --- a/modules/gui/macosx/Makefile.am +++ b/modules/gui/macosx/Makefile.am @@ -342,6 +342,8 @@ libmacosx_plugin_la_SOURCES = \ gui/macosx/views/VLCImageView.m \ gui/macosx/views/VLCLinearProgressIndicator.h \ gui/macosx/views/VLCLinearProgressIndicator.m \ + gui/macosx/views/VLCLoadingOverlayView.h \ + gui/macosx/views/VLCLoadingOverlayView.m \ gui/macosx/views/VLCRoundedCornerTextField.h \ gui/macosx/views/VLCRoundedCornerTextField.m \ gui/macosx/views/VLCScrollingClipView.h \ diff --git a/modules/gui/macosx/views/VLCLoadingOverlayView.h b/modules/gui/macosx/views/VLCLoadingOverlayView.h new file mode 100644 index 0000000000..a658c94173 --- /dev/null +++ b/modules/gui/macosx/views/VLCLoadingOverlayView.h @@ -0,0 +1,31 @@ +/***************************************************************************** + * VLCLoadingOverlayView.h: MacOS X interface module + ***************************************************************************** + * Copyright (C) 2024 VLC authors and VideoLAN + * + * Authors: Claudio Cambra + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface VLCLoadingOverlayView : NSVisualEffectView + +@end + +NS_ASSUME_NONNULL_END diff --git a/modules/gui/macosx/views/VLCLoadingOverlayView.m b/modules/gui/macosx/views/VLCLoadingOverlayView.m new file mode 100644 index 0000000000..0e9598f7f7 --- /dev/null +++ b/modules/gui/macosx/views/VLCLoadingOverlayView.m @@ -0,0 +1,33 @@ +/***************************************************************************** + * VLCLoadingOverlayView.m: MacOS X interface module + ***************************************************************************** + * Copyright (C) 2024 VLC authors and VideoLAN + * + * Authors: Claudio Cambra + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#import "VLCLoadingOverlayView.h" + +@implementation VLCLoadingOverlayView + +- (void)drawRect:(NSRect)dirtyRect { + [super drawRect:dirtyRect]; + + // Drawing code here. +} + +@end