CLASS = VLCControls;
LANGUAGE = ObjC;
OUTLETS = {
+ "o_fs_panel" = id;
"o_main" = id;
"o_specificTime_cancel_btn" = id;
"o_specificTime_enter_fld" = id;
};
SUPERCLASS = NSObject;
},
+ {CLASS = VLCFSPanel; LANGUAGE = ObjC; SUPERCLASS = NSWindow; },
+ {
+ ACTIONS = {faster = id; next = id; play = id; prev = id; slower = id; };
+ CLASS = VLCFSPanelView;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSView;
+ },
+ {CLASS = VLCFSTimeSlider; LANGUAGE = ObjC; SUPERCLASS = NSSlider; },
{
ACTIONS = {
createOutlineGroup = id;
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
- <string>361 41 478 430 0 0 1440 878 </string>
+ <string>443 64 478 430 0 0 1440 878 </string>
<key>IBEditorPositions</key>
<dict>
<key>1617</key>
<array/>
<key>IBOpenObjects</key>
<array>
- <integer>2416</integer>
- <integer>29</integer>
<integer>21</integer>
- <integer>2730</integer>
<integer>2197</integer>
+ <integer>2416</integer>
+ <integer>2730</integer>
+ <integer>29</integer>
+ <integer>2769</integer>
</array>
<key>IBSystem Version</key>
<string>8J135</string>
1058C7AFFEA557BF11CA2CBB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
2A16E08006C5074F00C87B09 /* equalizerdrawer_active.png in Resources */ = {isa = PBXBuildFile; fileRef = 2A16E07E06C5074F00C87B09 /* equalizerdrawer_active.png */; };
2A16E08106C5074F00C87B09 /* equalizerdrawer_blue.png in Resources */ = {isa = PBXBuildFile; fileRef = 2A16E07F06C5074F00C87B09 /* equalizerdrawer_blue.png */; };
+ 2AEF85F709A6623A00130822 /* FSBase.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85D309A6623A00130822 /* FSBase.tif */; };
+ 2AEF85F809A6623A00130822 /* FSExitOff.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85D409A6623A00130822 /* FSExitOff.tif */; };
+ 2AEF85F909A6623A00130822 /* FSExitOn.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85D509A6623A00130822 /* FSExitOn.tif */; };
+ 2AEF85FA09A6623A00130822 /* FSFastForwardOff.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85D609A6623A00130822 /* FSFastForwardOff.tif */; };
+ 2AEF85FB09A6623A00130822 /* FSFastForwardOn.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85D709A6623A00130822 /* FSFastForwardOn.tif */; };
+ 2AEF85FC09A6623A00130822 /* FSGotoBeginningOff.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85D809A6623A00130822 /* FSGotoBeginningOff.tif */; };
+ 2AEF85FD09A6623A00130822 /* FSGotoBeginningOn.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85D909A6623A00130822 /* FSGotoBeginningOn.tif */; };
+ 2AEF85FE09A6623A00130822 /* FSGotoEndOff.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85DA09A6623A00130822 /* FSGotoEndOff.tif */; };
+ 2AEF85FF09A6623A00130822 /* FSGotoEndOn.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85DB09A6623A00130822 /* FSGotoEndOn.tif */; };
+ 2AEF860009A6623A00130822 /* FSLCDChapterPopUp.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85DC09A6623A00130822 /* FSLCDChapterPopUp.tif */; };
+ 2AEF860109A6623A00130822 /* FSLCDSliderCenter.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85DD09A6623A00130822 /* FSLCDSliderCenter.tif */; };
+ 2AEF860209A6623A00130822 /* FSLCDSliderLeft.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85DE09A6623A00130822 /* FSLCDSliderLeft.tif */; };
+ 2AEF860309A6623A00130822 /* FSLCDSliderPlayHead.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85DF09A6623A00130822 /* FSLCDSliderPlayHead.tif */; };
+ 2AEF860409A6623A00130822 /* FSLCDSliderProgressiveDownloadCenter.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E009A6623A00130822 /* FSLCDSliderProgressiveDownloadCenter.tif */; };
+ 2AEF860509A6623A00130822 /* FSLCDSliderProgressiveDownloadLeft.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E109A6623A00130822 /* FSLCDSliderProgressiveDownloadLeft.tif */; };
+ 2AEF860609A6623A00130822 /* FSLCDSliderProgressiveDownloadRight.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E209A6623A00130822 /* FSLCDSliderProgressiveDownloadRight.tif */; };
+ 2AEF860709A6623A00130822 /* FSLCDSliderRight.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E309A6623A00130822 /* FSLCDSliderRight.tif */; };
+ 2AEF860809A6623A00130822 /* FSLCDTimeBackground.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E409A6623A00130822 /* FSLCDTimeBackground.tif */; };
+ 2AEF860909A6623A00130822 /* FSPauseOff.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E509A6623A00130822 /* FSPauseOff.tif */; };
+ 2AEF860A09A6623A00130822 /* FSPauseOn.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E609A6623A00130822 /* FSPauseOn.tif */; };
+ 2AEF860B09A6623A00130822 /* FSPlayOff.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E709A6623A00130822 /* FSPlayOff.tif */; };
+ 2AEF860C09A6623A00130822 /* FSPlayOn.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E809A6623A00130822 /* FSPlayOn.tif */; };
+ 2AEF860D09A6623A00130822 /* FSRewindOff.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85E909A6623A00130822 /* FSRewindOff.tif */; };
+ 2AEF860E09A6623A00130822 /* FSRewindOn.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85EA09A6623A00130822 /* FSRewindOn.tif */; };
+ 2AEF860F09A6623A00130822 /* FSVolumeBackground.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85EB09A6623A00130822 /* FSVolumeBackground.tif */; };
+ 2AEF861009A6623A00130822 /* FSVolumeThumbOff.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85EC09A6623A00130822 /* FSVolumeThumbOff.tif */; };
+ 2AEF861109A6623A00130822 /* FSVolumeThumbOn.tif in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF85ED09A6623A00130822 /* FSVolumeThumbOn.tif */; };
+ 2AEF861F09A6665700130822 /* qt.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AEF861E09A6665700130822 /* qt.png */; };
8E445F9D04728A700059A3A7 /* a52.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8E445F8704728A700059A3A7 /* a52.icns */; };
8E445F9E04728A700059A3A7 /* aac.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8E445F8804728A700059A3A7 /* aac.icns */; };
8E445F9F04728A700059A3A7 /* asf.icns in Resources */ = {isa = PBXBuildFile; fileRef = 8E445F8904728A700059A3A7 /* asf.icns */; };
2A16E04006C4F08700C87B09 /* equalizer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = equalizer.m; path = ../../modules/gui/macosx/equalizer.m; sourceTree = SOURCE_ROOT; };
2A16E07E06C5074F00C87B09 /* equalizerdrawer_active.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = equalizerdrawer_active.png; path = Resources/equalizerdrawer_active.png; sourceTree = "<group>"; };
2A16E07F06C5074F00C87B09 /* equalizerdrawer_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = equalizerdrawer_blue.png; path = Resources/equalizerdrawer_blue.png; sourceTree = "<group>"; };
+ 2AEF857609A5FEC900130822 /* fspanel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = fspanel.h; path = ../../modules/gui/macosx/fspanel.h; sourceTree = SOURCE_ROOT; };
+ 2AEF857709A5FEC900130822 /* fspanel.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = fspanel.m; path = ../../modules/gui/macosx/fspanel.m; sourceTree = SOURCE_ROOT; };
+ 2AEF85D309A6623A00130822 /* FSBase.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSBase.tif; path = Resources/FSBase.tif; sourceTree = "<group>"; };
+ 2AEF85D409A6623A00130822 /* FSExitOff.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSExitOff.tif; path = Resources/FSExitOff.tif; sourceTree = "<group>"; };
+ 2AEF85D509A6623A00130822 /* FSExitOn.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSExitOn.tif; path = Resources/FSExitOn.tif; sourceTree = "<group>"; };
+ 2AEF85D609A6623A00130822 /* FSFastForwardOff.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSFastForwardOff.tif; path = Resources/FSFastForwardOff.tif; sourceTree = "<group>"; };
+ 2AEF85D709A6623A00130822 /* FSFastForwardOn.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSFastForwardOn.tif; path = Resources/FSFastForwardOn.tif; sourceTree = "<group>"; };
+ 2AEF85D809A6623A00130822 /* FSGotoBeginningOff.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSGotoBeginningOff.tif; path = Resources/FSGotoBeginningOff.tif; sourceTree = "<group>"; };
+ 2AEF85D909A6623A00130822 /* FSGotoBeginningOn.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSGotoBeginningOn.tif; path = Resources/FSGotoBeginningOn.tif; sourceTree = "<group>"; };
+ 2AEF85DA09A6623A00130822 /* FSGotoEndOff.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSGotoEndOff.tif; path = Resources/FSGotoEndOff.tif; sourceTree = "<group>"; };
+ 2AEF85DB09A6623A00130822 /* FSGotoEndOn.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSGotoEndOn.tif; path = Resources/FSGotoEndOn.tif; sourceTree = "<group>"; };
+ 2AEF85DC09A6623A00130822 /* FSLCDChapterPopUp.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSLCDChapterPopUp.tif; path = Resources/FSLCDChapterPopUp.tif; sourceTree = "<group>"; };
+ 2AEF85DD09A6623A00130822 /* FSLCDSliderCenter.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSLCDSliderCenter.tif; path = Resources/FSLCDSliderCenter.tif; sourceTree = "<group>"; };
+ 2AEF85DE09A6623A00130822 /* FSLCDSliderLeft.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSLCDSliderLeft.tif; path = Resources/FSLCDSliderLeft.tif; sourceTree = "<group>"; };
+ 2AEF85DF09A6623A00130822 /* FSLCDSliderPlayHead.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSLCDSliderPlayHead.tif; path = Resources/FSLCDSliderPlayHead.tif; sourceTree = "<group>"; };
+ 2AEF85E009A6623A00130822 /* FSLCDSliderProgressiveDownloadCenter.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSLCDSliderProgressiveDownloadCenter.tif; path = Resources/FSLCDSliderProgressiveDownloadCenter.tif; sourceTree = "<group>"; };
+ 2AEF85E109A6623A00130822 /* FSLCDSliderProgressiveDownloadLeft.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSLCDSliderProgressiveDownloadLeft.tif; path = Resources/FSLCDSliderProgressiveDownloadLeft.tif; sourceTree = "<group>"; };
+ 2AEF85E209A6623A00130822 /* FSLCDSliderProgressiveDownloadRight.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSLCDSliderProgressiveDownloadRight.tif; path = Resources/FSLCDSliderProgressiveDownloadRight.tif; sourceTree = "<group>"; };
+ 2AEF85E309A6623A00130822 /* FSLCDSliderRight.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSLCDSliderRight.tif; path = Resources/FSLCDSliderRight.tif; sourceTree = "<group>"; };
+ 2AEF85E409A6623A00130822 /* FSLCDTimeBackground.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSLCDTimeBackground.tif; path = Resources/FSLCDTimeBackground.tif; sourceTree = "<group>"; };
+ 2AEF85E509A6623A00130822 /* FSPauseOff.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSPauseOff.tif; path = Resources/FSPauseOff.tif; sourceTree = "<group>"; };
+ 2AEF85E609A6623A00130822 /* FSPauseOn.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSPauseOn.tif; path = Resources/FSPauseOn.tif; sourceTree = "<group>"; };
+ 2AEF85E709A6623A00130822 /* FSPlayOff.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSPlayOff.tif; path = Resources/FSPlayOff.tif; sourceTree = "<group>"; };
+ 2AEF85E809A6623A00130822 /* FSPlayOn.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSPlayOn.tif; path = Resources/FSPlayOn.tif; sourceTree = "<group>"; };
+ 2AEF85E909A6623A00130822 /* FSRewindOff.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSRewindOff.tif; path = Resources/FSRewindOff.tif; sourceTree = "<group>"; };
+ 2AEF85EA09A6623A00130822 /* FSRewindOn.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSRewindOn.tif; path = Resources/FSRewindOn.tif; sourceTree = "<group>"; };
+ 2AEF85EB09A6623A00130822 /* FSVolumeBackground.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSVolumeBackground.tif; path = Resources/FSVolumeBackground.tif; sourceTree = "<group>"; };
+ 2AEF85EC09A6623A00130822 /* FSVolumeThumbOff.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSVolumeThumbOff.tif; path = Resources/FSVolumeThumbOff.tif; sourceTree = "<group>"; };
+ 2AEF85ED09A6623A00130822 /* FSVolumeThumbOn.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = FSVolumeThumbOn.tif; path = Resources/FSVolumeThumbOn.tif; sourceTree = "<group>"; };
+ 2AEF861E09A6665700130822 /* qt.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = qt.png; path = Resources/qt.png; sourceTree = "<group>"; };
8E445F8704728A700059A3A7 /* a52.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = a52.icns; path = Resources/a52.icns; sourceTree = SOURCE_ROOT; };
8E445F8804728A700059A3A7 /* aac.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = aac.icns; path = Resources/aac.icns; sourceTree = SOURCE_ROOT; };
8E445F8904728A700059A3A7 /* asf.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = asf.icns; path = Resources/asf.icns; sourceTree = SOURCE_ROOT; };
CC26BF3109A7A08C00E94D62 /* update.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = update.h; path = ../../modules/gui/macosx/update.h; sourceTree = SOURCE_ROOT; };
CC26BF3209A7A08C00E94D62 /* update.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = update.m; path = ../../modules/gui/macosx/update.m; sourceTree = SOURCE_ROOT; };
CC3DC89B0A7CDB9600B53F32 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
+ CC6D8D9C0A878DED006F2BBE /* AppleRemote.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppleRemote.h; path = ../../modules/gui/macosx/AppleRemote.h; sourceTree = SOURCE_ROOT; };
+ CC6D8D9D0A878DED006F2BBE /* AppleRemote.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppleRemote.m; path = ../../modules/gui/macosx/AppleRemote.m; sourceTree = SOURCE_ROOT; };
CCF3C64B0923B99D00401862 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = Resources/English.lproj/SFilters.nib; sourceTree = "<group>"; };
CCF3C6500923B9D100401862 /* sfilters.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sfilters.h; path = ../../modules/gui/macosx/sfilters.h; sourceTree = SOURCE_ROOT; };
CCF3C6510923B9D100401862 /* sfilters.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = sfilters.m; path = ../../modules/gui/macosx/sfilters.m; sourceTree = SOURCE_ROOT; };
089C167CFE841241C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
+ 2AEF85D009A661A500130822 /* FSPanel */,
DCF358BC077F1236007DB450 /* nibs */,
DCDA5E6408F94518009D93A8 /* about_bg.png */,
8E445F86047289E50059A3A7 /* fileicons */,
CCF3C6510923B9D100401862 /* sfilters.m */,
CC26BF3109A7A08C00E94D62 /* update.h */,
CC26BF3209A7A08C00E94D62 /* update.m */,
+ CC6D8D9C0A878DED006F2BBE /* AppleRemote.h */,
+ CC6D8D9D0A878DED006F2BBE /* AppleRemote.m */,
+ 2AEF857609A5FEC900130822 /* fspanel.h */,
+ 2AEF857709A5FEC900130822 /* fspanel.m */,
);
name = Classes;
sourceTree = "<group>";
name = Products;
sourceTree = "<group>";
};
+ 2AEF85D009A661A500130822 /* FSPanel */ = {
+ isa = PBXGroup;
+ children = (
+ 2AEF861E09A6665700130822 /* qt.png */,
+ 2AEF85D309A6623A00130822 /* FSBase.tif */,
+ 2AEF85D409A6623A00130822 /* FSExitOff.tif */,
+ 2AEF85D509A6623A00130822 /* FSExitOn.tif */,
+ 2AEF85D609A6623A00130822 /* FSFastForwardOff.tif */,
+ 2AEF85D709A6623A00130822 /* FSFastForwardOn.tif */,
+ 2AEF85D809A6623A00130822 /* FSGotoBeginningOff.tif */,
+ 2AEF85D909A6623A00130822 /* FSGotoBeginningOn.tif */,
+ 2AEF85DA09A6623A00130822 /* FSGotoEndOff.tif */,
+ 2AEF85DB09A6623A00130822 /* FSGotoEndOn.tif */,
+ 2AEF85DC09A6623A00130822 /* FSLCDChapterPopUp.tif */,
+ 2AEF85DD09A6623A00130822 /* FSLCDSliderCenter.tif */,
+ 2AEF85DE09A6623A00130822 /* FSLCDSliderLeft.tif */,
+ 2AEF85DF09A6623A00130822 /* FSLCDSliderPlayHead.tif */,
+ 2AEF85E009A6623A00130822 /* FSLCDSliderProgressiveDownloadCenter.tif */,
+ 2AEF85E109A6623A00130822 /* FSLCDSliderProgressiveDownloadLeft.tif */,
+ 2AEF85E209A6623A00130822 /* FSLCDSliderProgressiveDownloadRight.tif */,
+ 2AEF85E309A6623A00130822 /* FSLCDSliderRight.tif */,
+ 2AEF85E409A6623A00130822 /* FSLCDTimeBackground.tif */,
+ 2AEF85E509A6623A00130822 /* FSPauseOff.tif */,
+ 2AEF85E609A6623A00130822 /* FSPauseOn.tif */,
+ 2AEF85E709A6623A00130822 /* FSPlayOff.tif */,
+ 2AEF85E809A6623A00130822 /* FSPlayOn.tif */,
+ 2AEF85E909A6623A00130822 /* FSRewindOff.tif */,
+ 2AEF85EA09A6623A00130822 /* FSRewindOn.tif */,
+ 2AEF85EB09A6623A00130822 /* FSVolumeBackground.tif */,
+ 2AEF85EC09A6623A00130822 /* FSVolumeThumbOff.tif */,
+ 2AEF85ED09A6623A00130822 /* FSVolumeThumbOn.tif */,
+ );
+ name = FSPanel;
+ sourceTree = "<group>";
+ };
8E445F86047289E50059A3A7 /* fileicons */ = {
isa = PBXGroup;
children = (
C2F2A707095AE51700018C74 /* play_embedded_blue.png in Resources */,
C2F2A708095AE51700018C74 /* skip_forward_embedded_blue.png in Resources */,
C2F2A709095AE51700018C74 /* skip_previous_embedded_blue.png in Resources */,
+ 2AEF85F709A6623A00130822 /* FSBase.tif in Resources */,
+ 2AEF85F809A6623A00130822 /* FSExitOff.tif in Resources */,
+ 2AEF85F909A6623A00130822 /* FSExitOn.tif in Resources */,
+ 2AEF85FA09A6623A00130822 /* FSFastForwardOff.tif in Resources */,
+ 2AEF85FB09A6623A00130822 /* FSFastForwardOn.tif in Resources */,
+ 2AEF85FC09A6623A00130822 /* FSGotoBeginningOff.tif in Resources */,
+ 2AEF85FD09A6623A00130822 /* FSGotoBeginningOn.tif in Resources */,
+ 2AEF85FE09A6623A00130822 /* FSGotoEndOff.tif in Resources */,
+ 2AEF85FF09A6623A00130822 /* FSGotoEndOn.tif in Resources */,
+ 2AEF860009A6623A00130822 /* FSLCDChapterPopUp.tif in Resources */,
+ 2AEF860109A6623A00130822 /* FSLCDSliderCenter.tif in Resources */,
+ 2AEF860209A6623A00130822 /* FSLCDSliderLeft.tif in Resources */,
+ 2AEF860309A6623A00130822 /* FSLCDSliderPlayHead.tif in Resources */,
+ 2AEF860409A6623A00130822 /* FSLCDSliderProgressiveDownloadCenter.tif in Resources */,
+ 2AEF860509A6623A00130822 /* FSLCDSliderProgressiveDownloadLeft.tif in Resources */,
+ 2AEF860609A6623A00130822 /* FSLCDSliderProgressiveDownloadRight.tif in Resources */,
+ 2AEF860709A6623A00130822 /* FSLCDSliderRight.tif in Resources */,
+ 2AEF860809A6623A00130822 /* FSLCDTimeBackground.tif in Resources */,
+ 2AEF860909A6623A00130822 /* FSPauseOff.tif in Resources */,
+ 2AEF860A09A6623A00130822 /* FSPauseOn.tif in Resources */,
+ 2AEF860B09A6623A00130822 /* FSPlayOff.tif in Resources */,
+ 2AEF860C09A6623A00130822 /* FSPlayOn.tif in Resources */,
+ 2AEF860D09A6623A00130822 /* FSRewindOff.tif in Resources */,
+ 2AEF860E09A6623A00130822 /* FSRewindOn.tif in Resources */,
+ 2AEF860F09A6623A00130822 /* FSVolumeBackground.tif in Resources */,
+ 2AEF861009A6623A00130822 /* FSVolumeThumbOff.tif in Resources */,
+ 2AEF861109A6623A00130822 /* FSVolumeThumbOn.tif in Resources */,
+ 2AEF861F09A6665700130822 /* qt.png in Resources */,
CC26BF2C09A7A05000E94D62 /* Update.nib in Resources */,
CC1B4B4D09A8CF9E0078AD2E /* Interaction.nib in Resources */,
CC1AC1BC0A7BDA41002478C3 /* InteractionErrorPanel.nib in Resources */,
sfilters.m \
embeddedwindow.h \
embeddedwindow.m \
+ fspanel.m \
+ fspanel.h \
update.h \
update.m \
$(NULL)
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
+#import "fspanel.h"
+
/*****************************************************************************
* VLCControls interface
*****************************************************************************/
IBOutlet id o_specificTime_sec_lbl;
IBOutlet id o_specificTime_stepper;
IBOutlet id o_specificTime_mi;
+
+ VLCFSPanel *o_fs_panel;
}
- (IBAction)play:(id)sender;
- (IBAction)goToSpecificTime:(id)sender;
+- (id)getFSPanel;
+
@end
/*****************************************************************************
#include <string.h>
#include "intf.h"
+#include "fspanel.h"
#include "vout.h"
#include "open.h"
#include "controls.h"
*****************************************************************************/
@implementation VLCControls
+- (id)init
+{
+ [super init];
+ o_fs_panel = [[VLCFSPanel alloc] init];
+ return self;
+}
+
- (void)awakeFromNib
{
[o_specificTime_mi setTitle: _NS("Jump To Time")];
}
}
+- (id)getFSPanel
+{
+ if( o_fs_panel )
+ return o_fs_panel;
+ else
+ {
+ msg_Err( VLCIntf, "FSPanel is nil" );
+ return NULL;
+ }
+}
+
@end
@implementation VLCControls (NSMenuValidation)
*****************************************************************************/
#include "intf.h"
+#include "fspanel.h"
#include "vout.h"
#include "embeddedwindow.h"
--- /dev/null
+/*****************************************************************************\r
+ * fspanel.h: MacOS X full screen panel\r
+ *****************************************************************************\r
+ * Copyright (C) 2006 the VideoLAN team\r
+ * $Id$\r
+ *\r
+ * Authors: J\8er\99me Decoodt <djc at videolan dot org>\r
+ * Felix K\9fhne <fkuehne at videolan dot org>\r
+ *\r
+ * This program is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.\r
+ *****************************************************************************/\r
+\r
+@interface VLCFSPanel : NSWindow\r
+{\r
+ NSTimer *fadeTimer,*hideAgainTimer;\r
+ NSPoint mouseClic;\r
+ BOOL b_fadeQueued;\r
+ BOOL b_keptVisible;\r
+ BOOL b_alreadyCounting;\r
+ int i_timeToKeepVisibleInSec;\r
+}\r
+- (id)initWithContentRect: (NSRect)contentRect \r
+ styleMask: (unsigned int)aStyle \r
+ backing: (NSBackingStoreType)bufferingType\r
+ defer: (BOOL)flag;\r
+- (void)awakeFromNib;\r
+- (BOOL)canBecomeKeyWindow;\r
+- (void)dealloc;\r
+\r
+- (void)setPlay;\r
+- (void)setPause;\r
+- (void)setStreamTitle:(NSString *)o_title;\r
+- (void)setStreamPos:(float) f_pos setSeconds:(int)i_seconds;\r
+\r
+- (void)focus:(NSTimer *)timer;\r
+- (void)unfocus:(NSTimer *)timer;\r
+- (void)mouseEntered:(NSEvent *)theEvent;\r
+- (void)mouseExited:(NSEvent *)theEvent;\r
+\r
+- (void)fadeIn;\r
+- (void)fadeOut;\r
+\r
+- (NSTimer *)fadeTimer;\r
+- (void)setFadeTimer:(NSTimer *)timer;\r
+- (void)autoHide;\r
+- (void)keepVisible:(NSTimer *)timer;\r
+\r
+- (void)mouseDown:(NSEvent *)theEvent;\r
+- (void)mouseDragged:(NSEvent *)theEvent;\r
+\r
+@end\r
+\r
+@interface VLCFSPanelView : NSView\r
+{\r
+ NSColor *fillColor;\r
+ NSButton *o_prev, *o_next, *o_slow, *o_fast, *o_play, *o_fullscreen;\r
+ NSTextField *o_textfield, *o_textPos;\r
+ NSSlider *o_time_slider;\r
+}\r
+- (id)initWithFrame:(NSRect)frameRect;\r
+- (void)drawRect:(NSRect)rect;\r
+\r
+- (void) setPlay;\r
+- (void) setPause;\r
+- (void) setStreamTitle: (NSString *)o_title;\r
+- (void) setStreamPos:(float) f_pos setSeconds:(int)i_seconds;\r
+- (IBAction)play:(id)sender;\r
+- (IBAction)prev:(id)sender;\r
+- (IBAction)next:(id)sender;\r
+- (IBAction)faster:(id)sender;\r
+- (IBAction)slower:(id)sender;\r
+\r
+@end\r
+\r
+@interface VLCFSTimeSlider : NSSlider\r
+{}\r
+void drawKnobInRect(NSRect knobRect);\r
+void drawFrameInRect(NSRect frameRect);\r
+- (void)drawRect:(NSRect)rect;\r
+\r
+@end\r
--- /dev/null
+/*****************************************************************************\r
+ * fspanel.m: MacOS X full screen panel\r
+ *****************************************************************************\r
+ * Copyright (C) 2006 the VideoLAN team\r
+ * $Id$\r
+ *\r
+ * Authors: J\8er\99me Decoodt <djc at videolan dot org>\r
+ * Felix K\9fhne <fkuehne at videolan dot org>\r
+ *\r
+ * This program is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ * \r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.\r
+ *****************************************************************************/\r
+\r
+/*****************************************************************************\r
+ * Preamble\r
+ *****************************************************************************/\r
+#import "intf.h"\r
+#import "fspanel.h"\r
+\r
+#define KEEP_VISIBLE_AFTER_ACTION 4 /* time in half-sec until this panel will hide again after an user's action */\r
+\r
+/*****************************************************************************\r
+ * VLCFSPanel\r
+ *****************************************************************************/\r
+@implementation VLCFSPanel\r
+// We override this initializer so we can set the NSBorderlessWindowMask styleMask, and set a few other important settings\r
+- (id)initWithContentRect:(NSRect)contentRect \r
+ styleMask:(unsigned int)aStyle \r
+ backing:(NSBackingStoreType)bufferingType \r
+ defer:(BOOL)flag\r
+{\r
+ id win=[super initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:bufferingType defer:flag];\r
+ [win setOpaque:NO];\r
+ [win setHasShadow: NO];\r
+ [win setBackgroundColor:[NSColor clearColor]];\r
+ [win setLevel:NSFloatingWindowLevel]; // Let's make it sit on top of everything else\r
+ [win setAlphaValue:0.2]; // It'll start out mostly transparent\r
+ return win;\r
+}\r
+\r
+- (void)awakeFromNib\r
+{\r
+ [self setContentView:[[VLCFSPanelView alloc] initWithFrame: [self frame]]];\r
+ BOOL isInside=(NSPointInRect([NSEvent mouseLocation],[self frame]));\r
+ [[self contentView] addTrackingRect:[[self contentView] bounds] owner:self userData:nil assumeInside:isInside];\r
+ if (isInside)\r
+ [self mouseEntered:NULL];\r
+ if (!isInside)\r
+ [self mouseExited:NULL];\r
+}\r
+\r
+// Windows created with NSBorderlessWindowMask normally can't be key, but we want ours to be\r
+- (BOOL)canBecomeKeyWindow\r
+{\r
+ return YES;\r
+}\r
+\r
+-(void)dealloc\r
+{\r
+ if( hideAgainTimer )\r
+ [hideAgainTimer release];\r
+ [self setFadeTimer:nil];\r
+ [super dealloc];\r
+}\r
+\r
+- (void)setPlay\r
+{\r
+ [[self contentView] setPlay];\r
+}\r
+\r
+- (void)setPause\r
+{\r
+ [[self contentView] setPause];\r
+}\r
+\r
+- (void)setStreamTitle:(NSString *)o_title\r
+{\r
+ [[self contentView] setStreamTitle: o_title];\r
+}\r
+\r
+- (void)setStreamPos:(float) f_pos setSeconds:(int)i_seconds;\r
+{\r
+ [[self contentView] setStreamPos:f_pos setSeconds:i_seconds];\r
+}\r
+\r
+// This routine is called repeatedly when the mouse enters the window from outside it.\r
+- (void)focus:(NSTimer *)timer\r
+{\r
+ if( [self alphaValue] < 1.0 )\r
+ [self setAlphaValue:[self alphaValue]+0.1];\r
+ if( [self alphaValue] >= 1.0 )\r
+ {\r
+ [self setAlphaValue: 1.0];\r
+ [self setFadeTimer:nil];\r
+ if( b_fadeQueued )\r
+ {\r
+ b_fadeQueued=NO;\r
+ [self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(unfocus:) userInfo:NULL repeats:YES]];\r
+ }\r
+ }\r
+}\r
+\r
+// This routine is called repeatedly when the mouse exits the window from inside it.\r
+- (void)unfocus:(NSTimer *)timer\r
+{\r
+ if( [self alphaValue] > 0.0 )\r
+ [self setAlphaValue:[self alphaValue]-0.1];\r
+ if( [self alphaValue] <= 0.1 )\r
+ {\r
+ [self setAlphaValue:0.0];\r
+ [self setFadeTimer:nil];\r
+ if( b_fadeQueued )\r
+ {\r
+ b_fadeQueued=NO;\r
+ [self setFadeTimer:\r
+ [NSTimer scheduledTimerWithTimeInterval:0.1 \r
+ target:self \r
+ selector:@selector(focus:) \r
+ userInfo:NULL \r
+ repeats:YES]];\r
+ }\r
+ }\r
+}\r
+\r
+// If the mouse enters a window, go make sure we fade in\r
+- (void)mouseEntered:(NSEvent *)theEvent\r
+{\r
+ [self fadeIn];\r
+}\r
+\r
+// If the mouse exits a window, go make sure we fade out\r
+- (void)mouseExited:(NSEvent *)theEvent\r
+{\r
+ /* the user left the window, fade out immediatelly and prevent any timer action */\r
+ if( b_alreadyCounting )\r
+ {\r
+ [hideAgainTimer invalidate];\r
+ [hideAgainTimer release];\r
+ b_alreadyCounting = NO;\r
+ hideAgainTimer = NULL;\r
+ }\r
+\r
+ [self fadeOut];\r
+}\r
+\r
+- (void)fadeIn\r
+{\r
+ if( [self alphaValue] < 1.0 )\r
+ {\r
+ if (![self fadeTimer])\r
+ [self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(focus:) userInfo:[NSNumber numberWithShort:1] repeats:YES]];\r
+ else if ([[[self fadeTimer] userInfo] shortValue]==0)\r
+ b_fadeQueued=YES;\r
+ }\r
+ [self autoHide];\r
+}\r
+\r
+- (void)fadeOut\r
+{\r
+ if(( [self alphaValue] > 0.0 ) && !NSPointInRect( [NSEvent mouseLocation], [self frame] ) )\r
+ {\r
+ if (![self fadeTimer])\r
+ [self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(unfocus:) userInfo:[NSNumber numberWithShort:0] repeats:YES]];\r
+ else if ([[[self fadeTimer] userInfo] shortValue]==1)\r
+ b_fadeQueued=YES;\r
+ }\r
+}\r
+\r
+/* triggers a timer to autoHide us again after some seconds of no activity */\r
+- (void)autoHide\r
+{\r
+ /* this will tell the timer to start over again or to start at all */\r
+ b_keptVisible = YES;\r
+ \r
+ /* get us a valid timer */\r
+ if(! b_alreadyCounting )\r
+ {\r
+ hideAgainTimer = [NSTimer scheduledTimerWithTimeInterval: 0.5\r
+ target: self \r
+ selector: @selector(keepVisible:)\r
+ userInfo: nil \r
+ repeats: YES];\r
+ [hideAgainTimer fire];\r
+ [hideAgainTimer retain];\r
+ b_alreadyCounting = YES;\r
+ }\r
+}\r
+\r
+- (void)keepVisible:(NSTimer *)timer\r
+{\r
+ /* if the user triggered an action, start over again */\r
+ if( b_keptVisible )\r
+ {\r
+ i_timeToKeepVisibleInSec = KEEP_VISIBLE_AFTER_ACTION;\r
+ b_keptVisible = NO;\r
+ }\r
+ \r
+ /* count down until we hide ourselfes again and do so if necessary */\r
+ i_timeToKeepVisibleInSec -= 1;\r
+ if( i_timeToKeepVisibleInSec < 1 )\r
+ {\r
+ [self fadeOut];\r
+ [timer invalidate];\r
+ [timer release];\r
+ b_alreadyCounting = NO;\r
+ timer = NULL;\r
+ }\r
+}\r
+\r
+// A getter and setter for our main timer that handles window fading\r
+- (NSTimer *)fadeTimer\r
+{\r
+ return fadeTimer;\r
+}\r
+\r
+- (void)setFadeTimer:(NSTimer *)timer\r
+{\r
+ [timer retain];\r
+ [fadeTimer invalidate];\r
+ [fadeTimer release];\r
+ fadeTimer=timer;\r
+}\r
+\r
+- (void)mouseDown:(NSEvent *)theEvent\r
+{\r
+ mouseClic = [theEvent locationInWindow];\r
+}\r
+\r
+- (void)mouseDragged:(NSEvent *)theEvent\r
+{\r
+ NSPoint point = [NSEvent mouseLocation];\r
+ point.x -= mouseClic.x;\r
+ point.y -= mouseClic.y;\r
+ [self setFrameOrigin:point];\r
+}\r
+@end\r
+\r
+/*****************************************************************************\r
+ * FSPanelView\r
+ *****************************************************************************/\r
+@implementation VLCFSPanelView\r
+\r
+#define addButton( o_button, imageOff, imageOn, _x, _y, action ) \\r
+ s_rc.origin.x = _x; \\r
+ s_rc.origin.y = _y; \\r
+ o_button = [[NSButton alloc] initWithFrame: s_rc]; \\r
+ [o_button setButtonType: NSMomentaryChangeButton]; \\r
+ [o_button setBezelStyle: NSRegularSquareBezelStyle]; \\r
+ [o_button setBordered: NO]; \\r
+ [o_button setFont:[NSFont systemFontOfSize:0]]; \\r
+ image = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:imageOff]]; \\r
+ [o_button setImage:image]; \\r
+ image = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:imageOn]]; \\r
+ [o_button setAlternateImage:image]; \\r
+ [o_button sizeToFit]; \\r
+ [o_button setTarget: self]; \\r
+ [o_button setAction: @selector(action:)]; \\r
+ [self addSubview:o_button];\r
+\r
+#define addTextfield( o_text, align, font, color, size ) \\r
+ o_text = [[NSTextField alloc] initWithFrame: s_rc]; \\r
+ [o_text setDrawsBackground: NO]; \\r
+ [o_text setBordered: NO]; \\r
+ [o_text setEditable: NO]; \\r
+ [o_text setSelectable: NO]; \\r
+ [o_text setStringValue: _NS("(no item is being played)")]; \\r
+ [o_text setAlignment: align]; \\r
+ [o_text setTextColor: [NSColor color]]; \\r
+ [o_text setFont:[NSFont font:[NSFont smallSystemFontSize] - size]]; \\r
+ [self addSubview:o_text];\r
+\r
+- (id)initWithFrame:(NSRect)frameRect\r
+{\r
+ NSBundle * bundle = [NSBundle mainBundle];\r
+ id view = [super initWithFrame:frameRect];\r
+ fillColor = [[NSColor clearColor] retain];\r
+ NSRect s_rc = [self frame];\r
+ NSImage * image;\r
+ addButton( o_prev, @"FSGotoBeginningOff.tif" , @"FSGotoBeginningOn.tif", 106, 37, prev );\r
+ addButton( o_slow, @"FSRewindOff.tif" , @"FSRewindOn.tif" , 143, 37, slower );\r
+ addButton( o_play, @"FSPlayOff.tif" , @"FSPlayOn.tif" , 191, 37, play );\r
+ addButton( o_fast, @"FSFastForwardOff.tif" , @"FSFastForwardOn.tif" , 238, 37, faster );\r
+ addButton( o_next, @"FSGotoEndOff.tif" , @"FSGotoEndOn.tif" , 286, 37, next );\r
+ addButton( o_fullscreen, @"FSExitOff.tif", @"FSExitOn.tif", 382, 45, windowAction );\r
+// addButton( o_button, @"FSVolumeThumbOff.tif" , @"FSVolumeThumbOn.tif" , 38, 51, something );\r
+\r
+ s_rc = [self frame];\r
+ s_rc.origin.x = 25;\r
+ s_rc.origin.y = 14;\r
+ s_rc.size.width = 329;\r
+ s_rc.size.height = 13;\r
+ o_time_slider = [[[VLCFSTimeSlider alloc] initWithFrame: s_rc] retain];\r
+ [o_time_slider setMinValue:0];\r
+ [o_time_slider setMaxValue:1];\r
+ [o_time_slider setFloatValue: 0];\r
+ [o_time_slider setAction: @selector(timesliderUpdate:)];\r
+ [self addSubview: o_time_slider];\r
+ \r
+ s_rc = [self frame];\r
+ s_rc.origin.x = 25;\r
+ s_rc.origin.y = 83;\r
+ s_rc.size.width = s_rc.size.width - s_rc.origin.x * 2;\r
+ s_rc.size.height = 16;\r
+ addTextfield( o_textfield, NSCenterTextAlignment, systemFontOfSize, whiteColor, 0 );\r
+ s_rc.origin.x = 349;\r
+ s_rc.origin.y = 10;\r
+ s_rc.size.width = 50;\r
+ addTextfield( o_textPos, NSRightTextAlignment, systemFontOfSize, blackColor, 2 );\r
+\r
+ return view;\r
+}\r
+\r
+- (void)setPlay\r
+{\r
+ NSBundle *bundle = [NSBundle mainBundle];\r
+ NSImage *image;\r
+ [[o_play image] release];\r
+ [[o_play alternateImage] release];\r
+ image = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"FSPlayOff.tif"]];\r
+ [o_play setImage:image];\r
+ image = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"FSPlayOn.tif"]];\r
+ [o_play setAlternateImage:image];\r
+}\r
+\r
+- (void)setPause\r
+{\r
+ NSBundle *bundle = [NSBundle mainBundle];\r
+ NSImage *image;\r
+ [[o_play image] release];\r
+ [[o_play alternateImage] release];\r
+ image = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"FSPauseOff.tif"]];\r
+ [o_play setImage:image];\r
+ image = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"FSPauseOn.tif"]];\r
+ [o_play setAlternateImage:image];\r
+}\r
+\r
+- (void)setStreamTitle:(NSString *)o_title\r
+{\r
+ [o_textfield setStringValue: o_title];\r
+}\r
+\r
+- (void)setStreamPos:(float) f_pos setSeconds:(int)i_seconds\r
+{\r
+ NSString *o_pos = [NSString stringWithFormat: @"%d:%02d:%02d",\r
+ (int) (i_seconds / (60 * 60)),\r
+ (int) (i_seconds / 60 % 60),\r
+ (int) (i_seconds % 60)];\r
+\r
+ [o_textPos setStringValue: o_pos];\r
+ [o_time_slider setFloatValue: f_pos];\r
+}\r
+\r
+- (IBAction)play:(id)sender\r
+{\r
+ [[[VLCMain sharedInstance] getControls] play: sender];\r
+}\r
+\r
+- (IBAction)faster:(id)sender\r
+{\r
+ [[[VLCMain sharedInstance] getControls] faster: sender];\r
+}\r
+\r
+- (IBAction)slower:(id)sender\r
+{\r
+ [[[VLCMain sharedInstance] getControls] slower: sender];\r
+}\r
+\r
+- (IBAction)prev:(id)sender\r
+{\r
+ [[[VLCMain sharedInstance] getControls] prev: sender];\r
+}\r
+\r
+- (IBAction)next:(id)sender\r
+{\r
+ [[[VLCMain sharedInstance] getControls] next: sender];\r
+}\r
+\r
+- (IBAction)windowAction:(id)sender\r
+{\r
+ [[[VLCMain sharedInstance] getControls] windowAction: sender];\r
+}\r
+\r
+- (IBAction)timesliderUpdate:(id)sender\r
+{\r
+ [[VLCMain sharedInstance] timesliderUpdate: sender];\r
+}\r
+\r
+#define addImage(image, _x, _y, mode, _width) \\r
+ img = [[[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:image]] autorelease]; \\r
+ image_rect.size = [img size]; \\r
+ image_rect.origin.x = 0; \\r
+ image_rect.origin.y = 0; \\r
+ frame.origin.x = _x; \\r
+ frame.origin.y = _y; \\r
+ frame.size = [img size]; \\r
+ if( _width ) frame.size.width = _width; \\r
+ [img drawInRect:frame fromRect:image_rect operation:mode fraction:1];\r
+\r
+- (void)drawRect:(NSRect)rect\r
+{\r
+ NSBundle *bundle = [NSBundle mainBundle];\r
+ NSRect frame = [self frame];\r
+ NSRect image_rect;\r
+ NSImage *img;\r
+ addImage( @"FSBase.tif", 0, 0, NSCompositeCopy, 0 );\r
+ addImage( @"FSVolumeBackground.tif" , 25, 49, NSCompositeSourceOver, 0 );\r
+ addImage( @"FSLCDTimeBackground.tif", 354, 14, NSCompositeSourceOver, 0 );\r
+}\r
+\r
+@end\r
+\r
+/*****************************************************************************\r
+ * VLCFSTimeSlider\r
+ *****************************************************************************/\r
+@implementation VLCFSTimeSlider\r
+void drawKnobInRect(NSRect knobRect)\r
+{\r
+ NSBundle *bundle = [NSBundle mainBundle];\r
+ NSRect image_rect;\r
+ NSImage *img = [[NSImage alloc] initWithContentsOfFile:[bundle pathForImageResource:@"FSLCDSliderPlayHead"]];\r
+ image_rect.size = [img size];\r
+ image_rect.origin.x = 0;\r
+ image_rect.origin.y = 0;\r
+ knobRect.origin.x += (knobRect.size.width - image_rect.size.width) / 2;\r
+ knobRect.size.width = image_rect.size.width;\r
+ knobRect.size.height = image_rect.size.height;\r
+ [img drawInRect:knobRect fromRect:image_rect operation:NSCompositeSourceOver fraction:1];\r
+}\r
+\r
+void drawFrameInRect(NSRect frameRect)\r
+{\r
+ // Draw frame\r
+ NSBundle *bundle = [NSBundle mainBundle];\r
+ NSRect frame = frameRect;\r
+ NSRect image_rect;\r
+ NSImage *img;\r
+ addImage(@"FSLCDSliderLeft.tif" , 0, 0, NSCompositeSourceOver, 0);\r
+ addImage(@"FSLCDSliderCenter.tif" , 9, 0, NSCompositeSourceOver, 311);\r
+ addImage(@"FSLCDSliderRight.tif" , 320, 0, NSCompositeSourceOver, 0);\r
+}\r
+\r
+- (void)drawRect:(NSRect)rect\r
+{\r
+ // Draw default to make sure the slider behaves correctly\r
+ [[NSGraphicsContext currentContext] saveGraphicsState];\r
+ NSRectClip(NSZeroRect);\r
+ [super drawRect:rect];\r
+ [[NSGraphicsContext currentContext] restoreGraphicsState];\r
+ \r
+ NSRect knobRect = [[self cell] knobRectFlipped:NO];\r
+ knobRect.origin.y+=6;\r
+ [[[NSColor blackColor] colorWithAlphaComponent:0.6] set];\r
+ drawFrameInRect(rect);\r
+ drawKnobInRect(knobRect);\r
+}\r
+\r
+@end\r
IBOutlet id o_msgs_btn_crashlog; /* messages open crashlog */
IBOutlet id o_info_window; /* Info panel */
+ IBOutlet id o_fs_panel; /* Full screen panel*/
/* main menu */
#include <string.h>
#include <vlc_keys.h>
-#include "intf.h"
-#include "vout.h"
-#include "prefs.h"
-#include "playlist.h"
-#include "controls.h"
-#include "about.h"
-#include "open.h"
-#include "wizard.h"
-#include "extended.h"
-#include "bookmarks.h"
-#include "sfilters.h"
-#include "interaction.h"
-#include "embeddedwindow.h"
-#include "update.h"
-#include "AppleRemote.h"
+#import "intf.h"
+#import "fspanel.h"
+#import "vout.h"
+#import "prefs.h"
+#import "playlist.h"
+#import "controls.h"
+#import "about.h"
+#import "open.h"
+#import "wizard.h"
+#import "extended.h"
+#import "bookmarks.h"
+#import "sfilters.h"
+#import "interaction.h"
+#import "embeddedwindow.h"
+#import "update.h"
+#import "AppleRemote.h"
/*****************************************************************************
* Local prototypes.
var_AddCallback( p_intf, "interaction", InteractCallback, self );
p_intf->b_interaction = VLC_TRUE;
+ // First we setup the blue selection box - another window that will be attached as a child window
+ // to this one, and will be moved by timers as needed.
+
nib_main_loaded = TRUE;
}
[o_timeslider setFloatValue: 0.0];
[o_timeslider setEnabled: b_seekable];
[o_timefield setStringValue: @"0:00:00"];
+ [[[self getControls] getFSPanel] setStreamPos: 0 setSeconds: 0];
[o_embedded_window setSeekable: b_seekable];
o_temp = [NSString stringWithCString:
p_playlist->status.p_item->p_input->psz_name];
[self setScrollField: o_temp stopAfter:-1];
+ [[[self getControls] getFSPanel] setStreamTitle: o_temp];
p_vout = vlc_object_find( p_intf->p_sys->p_input, VLC_OBJECT_VOUT,
FIND_PARENT );
(int) (i_seconds / 60 % 60),
(int) (i_seconds % 60)];
[o_timefield setStringValue: o_time];
+ [[[self getControls] getFSPanel] setStreamPos: pos.f_float setSeconds: i_seconds];
[o_embedded_window setTime: o_time position: f_updated];
}
{
if( i_status == PLAYING_S )
{
+ [[[self getControls] getFSPanel] setPause];
[o_btn_play setImage: o_img_pause];
[o_btn_play setAlternateImage: o_img_pause_pressed];
[o_btn_play setToolTip: _NS("Pause")];
}
else
{
+ [[[self getControls] getFSPanel] setPlay];
[o_btn_play setImage: o_img_play];
[o_btn_play setAlternateImage: o_img_play_pressed];
[o_btn_play setToolTip: _NS("Play")];
(int) (i_seconds / 60 % 60),
(int) (i_seconds % 60)];
[o_timefield setStringValue: o_time];
+ [[[self getControls] getFSPanel] setStreamPos: pos.f_float setSeconds: i_seconds];
[o_embedded_window setTime: o_time position: f_updated];
}
#undef p_input
#include <vlc_keys.h>
#include "intf.h"
+#include "fspanel.h"
#include "vout.h"
+#import "controls.h"
/*****************************************************************************
* DeviceCallback: Callback triggered when the video-device variable is changed
var_Get( p_real_vout, "fullscreen", &val );
val.b_bool = !val.b_bool;
var_Set( p_real_vout, "fullscreen", val );
+ if( [self isFullscreen] )
+ [[[[VLCMain sharedInstance] getControls] getFSPanel] orderFront: self];
+ else
+ [[[[VLCMain sharedInstance] getControls] getFSPanel] orderOut: self];
}
- (BOOL)isFullscreen
val.b_bool = VLC_TRUE;
var_Set( p_vout, "mouse-moved", val );
}
+ if( [self isFullscreen] )
+ [[[[VLCMain sharedInstance] getControls] getFSPanel] fadeIn];
}
[super mouseMoved: o_event];
styleMask: NSBorderlessWindowMask
backing: NSBackingStoreBuffered
defer: YES screen: o_screen];
-
+
if( var_GetBool( p_real_vout, "macosx-black" ) )
if( b_black == VLC_TRUE )
{