This adds a swaputOverride function, which swaps out the implementation
of a overridden method of a Class with its base implementation from the
superclass.
The implementation of these buttons is nearly the same, so it makes no
sense to have separate classes for them.
Only reason to do so, was the inability to get the button type, which
for now is worked-around by using an IBInspectable BOOL that has to be
set, if the button is a toggle button.
Not the nicest solution, but there is no better way, as far as I know.
This makes it easier to find the relevant code and
additionally has the benefit that imports can be more fine-grained
in the future, instead of just having one misc.h import,
where it is hard to know, without looking at it, what it is
actually needed for.
Put VLCSimplePrefsWindow and VLCHotkeyChangeWindow in their own files
as they do not belong inside the VLCSimplePrefsController and makes
it easier to find these classes.
This simplifies package.mak by removing unnecessary VLC-tmp,
making VLC.app properly depend on install and removing the
VLC-dev.app, as VLC can now be run with the pseudo-bundle
from command-line for development.
This renames the very generic-named icons folder to better match
what it actually contains, File Icons.
App Icons are moved to their own folder as they are not file icons.
This matches the new structure in Xcode better too.
Pref icons folder is renamed to match other folder names and the icons
are renamed to have a simpler name.
This moves the button icons (PDF template images) all to one folder
so it is easier to find them in the sources and having them separate
does not make much sense anyway, given that these icons were not
exclusively used by the menu bar icon.
This is done in preparation for more minimal replacement
classes that do custom drawing for OS X < 10.10 and on
10.10+ we will use the native translucent dark UI provided
by the system.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Limit dragging / moving of fullscreen panel to video content area.
This forbids dragging the fspanel outside of fullscreen. Also make
sure that the fs panel stays inside the video view if dragged, in
case the video view is smaller then the complete screen (this can
happen with macOS split screen feature).
This is a new VLCDefaultSlider which allows setting a default
value, to which the knob will snap and a tick mark will be drawn for.
It's useful in VLC for things like volume sliders, which have a
default value (100%) to which we want the slider to snap.
Additionally this class is controllable with the scrollwheel by default.
This introduces a new fullscreen controller
which uses NSVisualEffectView for it's background
and the icons that are used throughout the rest of
the macOS user interface, hence making it more
consistent with the overall look of VLC.
Additionally the new fullscreen controller is
resizable and, as it already used to be, can be
move around on the screen.
The user interface is now described in a interface
builder file (xib) instead of doing everything in
code. This allows easy usage of autolayout, which
is heavily used to allow adaption of the
buttons/sliders depending on the panel width and
height.
This adds a dialog to choose a renderer discovered with VLCRendererDiscovery, this allows for example to render to Chromecast in the future.
Additionally edited the Makefile for the new classes to be compiled.
Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
This adds a dark Button, Checkbox, Radiobutton and Slider Cell
for use on dark HUD Panels (like the Audio and Video effects panels)
Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
This renames the playlist related class files to match the class name,
which makes it easier to find the which belongs to a certain class and
follows common Cocoa/Obj C file naming conventions.
Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
It was impossible to scroll in the About Scroll Views as the code
was doing automatic scrolling. This patch removes all the related
code and introduces a new NSClipView subclass that handles the
automatic scrolling. If it detects that the user scrolls, the
animation is stopped and the user can scroll it as he wishes.
Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
This improves separation between main menu and the unrelated goto
time window.
Besides that, note that each time bindings are used with the file
owner, this owner needs to be an NSWindowController class. Only in
this case retain cycles are avoided (bindings have a strong
reference to the object used).
Thus, this commit helps to properly deinitialize the VLCMain object.
Create own resume dialog, which acts the same way as a floating
window. Thus it does not disturb the user more than any
other VLC panel and consequently does not block the user in doing
other operations.
This fixes floating behaviour (#13886) any makes it more easy
to implement any other fancy_dialog_whatever we might add later.
Current design is a copy of the currently used alert window.
Also raised the timeout value to 10 secs as users are complaining
6 sec is not long enough.
close#13886