* finished the time slider
authorFelix Paul Kühne <fkuehne@videolan.org>
Sun, 1 Oct 2006 20:05:50 +0000 (20:05 +0000)
committerFelix Paul Kühne <fkuehne@videolan.org>
Sun, 1 Oct 2006 20:05:50 +0000 (20:05 +0000)
For the records: please don't re-invent the wheel, also if there are only 2 places which already do the exact same thing and you're going to add the 3rd place!!

THANKS
modules/gui/macosx/fspanel.h
modules/gui/macosx/fspanel.m
modules/gui/macosx/intf.m

diff --git a/THANKS b/THANKS
index 438f82e..73e19a9 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -136,7 +136,7 @@ Rudolf Cornelissen <rag.cornelissen at inter.nl.net> - BeOS fixes
 Scott Caudle <dorkmanzcot at gmail dot com> - Visualization, WX 
 improvements
 Sebastien Chaumat <Sebastien.Chaumat at ens-lyon.fr> - YOPY port tests
-Simon Damkj¾r Andersen <simondamkjaer at gmail.com>    - playmode icons for the OSX GUI (v0.8.6)
+Simon Damkj¾r Andersen <simondamkjaer at gmail.com>    - playmode icons and the entire Fullscreen Panel design for the OSX GUI (v0.9.0)
 Steve Lhomme <steve dot lhomme at free dot fr> - MSVC fixes and Matroska enhancements
 Steve Brown <sbrown at cortland.com> - fix for optional PES size bug
 Steven M. Schultz <sms at TO.GD-ES.COM> - BSD/OS port
index df41eb2..f5f0e03 100644 (file)
@@ -42,7 +42,8 @@
 - (void)setPlay;\r
 - (void)setPause;\r
 - (void)setStreamTitle:(NSString *)o_title;\r
-- (void)setStreamPos:(float) f_pos setSeconds:(int)i_seconds;\r
+- (void)setStreamPos:(float) f_pos andTime:(NSString *)o_time;\r
+- (void)setSeekable:(BOOL) b_seekable;\r
 \r
 - (void)focus:(NSTimer *)timer;\r
 - (void)unfocus:(NSTimer *)timer;\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
+    NSSlider *o_fs_timeSlider;\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
+- (void)setPlay;\r
+- (void)setPause;\r
+- (void)setStreamTitle: (NSString *)o_title;\r
+- (void)setStreamPos:(float) f_pos andTime:(NSString *)o_time;\r
+- (void)setSeekable: (BOOL)b_seekable; \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
+- (IBAction)fsTimeSliderUpdate:(id)sender;\r
 \r
 @end\r
 \r
index 6c36c2b..b27fab7 100644 (file)
     return YES;\r
 }\r
 \r
+- (BOOL)mouseDownCanMoveWindow\r
+{\r
+    return YES;\r
+}\r
+\r
 -(void)dealloc\r
 {\r
     if( hideAgainTimer )\r
     [[self contentView] setStreamTitle: o_title];\r
 }\r
 \r
-- (void)setStreamPos:(float) f_pos setSeconds:(int)i_seconds;\r
+- (void)setStreamPos:(float) f_pos andTime:(NSString *)o_time\r
+{\r
+    [[self contentView] setStreamPos:f_pos andTime: o_time];\r
+}\r
+\r
+- (void)setSeekable:(BOOL) b_seekable;\r
 {\r
-    [[self contentView] setStreamPos:f_pos setSeconds:i_seconds];\r
+    [[self contentView] setSeekable: b_seekable];\r
 }\r
 \r
 /* This routine is called repeatedly when the mouse enters the window from outside it. */\r
     s_rc.origin.y = 53;\r
     s_rc.size.width = 518;\r
     s_rc.size.height = 9;\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
+    o_fs_timeSlider = [[VLCFSTimeSlider alloc] initWithFrame: s_rc];\r
+    [o_fs_timeSlider setMinValue:0];\r
+    [o_fs_timeSlider setMaxValue:10000];\r
+    [o_fs_timeSlider setFloatValue: 0];\r
+    [o_fs_timeSlider setContinuous: YES];\r
+    [o_fs_timeSlider setTarget: self];\r
+    [o_fs_timeSlider setAction: @selector(fsTimeSliderUpdate:)];\r
+    [self addSubview: o_fs_timeSlider];\r
     \r
     s_rc = [self frame];\r
     s_rc.origin.x = 98;\r
     return view;\r
 }\r
 \r
+- (void)dealloc\r
+{\r
+    [o_fs_timeSlider release];\r
+    [super dealloc];\r
+}\r
+\r
 - (void)setPlay\r
 {\r
     NSBundle *bundle = [NSBundle mainBundle];\r
     [o_textfield setStringValue: o_title];\r
 }\r
 \r
-- (void)setStreamPos:(float) f_pos setSeconds:(int)i_seconds\r
+- (void)setStreamPos:(float) f_pos andTime:(NSString *)o_time\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
+    [o_textPos setStringValue: o_time];\r
+    [o_fs_timeSlider setFloatValue: f_pos];\r
+}\r
 \r
-    [o_textPos setStringValue: o_pos];\r
-    [o_time_slider setFloatValue: f_pos];\r
+- (void)setSeekable:(BOOL)b_seekable\r
+{\r
+    [o_slow setEnabled: b_seekable];\r
+    [o_fast setEnabled: b_seekable];\r
+    [o_fs_timeSlider setEnabled: b_seekable];\r
 }\r
 \r
 - (IBAction)play:(id)sender\r
     [[[VLCMain sharedInstance] getControls] windowAction: sender];\r
 }\r
 \r
-- (IBAction)timesliderUpdate:(id)sender\r
+- (IBAction)fsTimeSliderUpdate:(id)sender\r
 {\r
     [[VLCMain sharedInstance] timesliderUpdate: sender];\r
 }\r
index 4c8161f..046b74f 100644 (file)
@@ -1094,7 +1094,8 @@ static VLCMain *_o_sharedMainInstance = nil;
         [o_timeslider setFloatValue: 0.0];
         [o_timeslider setEnabled: b_seekable];
         [o_timefield setStringValue: @"0:00:00"];
-        [[[self getControls] getFSPanel] setStreamPos: 0 setSeconds: 0];
+        [[[self getControls] getFSPanel] setStreamPos: 0 andTime: @"0:00:00"];
+        [[[self getControls] getFSPanel] setSeekable: b_seekable];
 
         [o_embedded_window setSeekable: b_seekable];
 
@@ -1197,7 +1198,7 @@ static VLCMain *_o_sharedMainInstance = nil;
                             (int) (i_seconds / 60 % 60),
                             (int) (i_seconds % 60)];
             [o_timefield setStringValue: o_time];
-            [[[self getControls] getFSPanel] setStreamPos: pos.f_float setSeconds: i_seconds];
+            [[[self getControls] getFSPanel] setStreamPos: f_updated andTime: o_time];
             [o_embedded_window setTime: o_time position: f_updated];
         }
 
@@ -1503,7 +1504,7 @@ static VLCMain *_o_sharedMainInstance = nil;
                         (int) (i_seconds / 60 % 60),
                         (int) (i_seconds % 60)];
         [o_timefield setStringValue: o_time];
-        [[[self getControls] getFSPanel] setStreamPos: pos.f_float setSeconds: i_seconds];
+        [[[self getControls] getFSPanel] setStreamPos: f_updated andTime: o_time];
         [o_embedded_window setTime: o_time position: f_updated];
     }
 #undef p_input