]> git.sesse.net Git - vlc/commitdiff
* implemented the previously committed playmode buttons and fixed the playmode saving
authorFelix Paul Kühne <fkuehne@videolan.org>
Sun, 17 Sep 2006 22:32:39 +0000 (22:32 +0000)
committerFelix Paul Kühne <fkuehne@videolan.org>
Sun, 17 Sep 2006 22:32:39 +0000 (22:32 +0000)
extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
modules/gui/macosx/controls.h
modules/gui/macosx/controls.m
modules/gui/macosx/intf.m
modules/gui/macosx/playlist.h
modules/gui/macosx/playlist.m

index e420b2b50cf595a395e29f77991f0f6d37135728..8728980030640aa4e5629fcda21b267707f1aee6 100644 (file)
@@ -22,6 +22,7 @@
                 prev = id; 
                 random = id; 
                 repeat = id; 
+                repeatButtonAction = id; 
                 slower = id; 
                 stop = id; 
                 toggleVar = id; 
@@ -33,6 +34,9 @@
             CLASS = VLCControls; 
             LANGUAGE = ObjC; 
             OUTLETS = {
+                "o_btn_addNode" = id; 
+                "o_btn_repeat" = id; 
+                "o_btn_shuffle" = id; 
                 "o_fs_panel" = id; 
                 "o_main" = id; 
                 "o_specificTime_cancel_btn" = id; 
             ACTIONS = {
                 addNode = id; 
                 deleteItem = id; 
-                handlePopUp = id; 
                 playItem = id; 
                 preparseItem = id; 
                 recursiveExpandNode = id; 
index 55c60c43af89ea6688073cfe830e50d2ce84fc6d..b5c860c02c2973a854126f7bc19b3c95c0e746cf 100644 (file)
        <key>IBOpenObjects</key>
        <array>
                <integer>21</integer>
-               <integer>2197</integer>
-               <integer>2416</integer>
                <integer>2730</integer>
+               <integer>2197</integer>
                <integer>29</integer>
-               <integer>2769</integer>
        </array>
        <key>IBSystem Version</key>
        <string>8J135</string>
index 9558cf51dad046907d0dc70e693c77a55eae7b15..3006014dfc9d26718cc46ef2ba6d921deb6474dd 100644 (file)
Binary files a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/keyedobjects.nib and b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/keyedobjects.nib differ
index 311645a9d1391a82e00e090126c620f5b33b918b..a95d5067fdb3e67bca738a5b8bec7239ab36a0eb 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * controls.h: MacOS X interface module
  *****************************************************************************
- * Copyright (C) 2002-2005 the VideoLAN team
+ * Copyright (C) 2002-2006 the VideoLAN team
  * $Id$
  *
  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
 
     IBOutlet id o_btn_fullscreen;
     IBOutlet id o_volumeslider;
+    
+    IBOutlet id o_btn_shuffle;
+    IBOutlet id o_btn_addNode;
+    IBOutlet id o_btn_repeat;
 
     IBOutlet id o_specificTime_cancel_btn;
     IBOutlet id o_specificTime_enter_fld;
 - (IBAction)random:(id)sender;
 - (IBAction)repeat:(id)sender;
 - (IBAction)loop:(id)sender;
+- (IBAction)repeatButtonAction:(id)sender;
+
+/* the three ugly helpers again */
+- (void)repeatOne;
+- (void)repeatAll;
+- (void)repeatOff;
+- (void)shuffle;
 
 - (IBAction)forward:(id)sender;
 - (IBAction)backward:(id)sender;
index 1e1627d60ac86aa66ee34fa1ebe6d2664dfee31e..d78236a7c4ee017d132d8a1a5397572d6fe35a93 100644 (file)
 #include <sys/param.h>                                    /* for MAXPATHLEN */
 #include <string.h>
 
-#include "intf.h"
-#include "vout.h"
-#include "open.h"
-#include "controls.h"
+#import "intf.h"
+#import "vout.h"
+#import "open.h"
+#import "controls.h"
+#import "playlist.h"
 #include <vlc_osd.h>
 
 
     vlc_object_release( p_playlist );
 }
 
+/* three little ugly helpers */
+- (void)repeatOne
+{
+    [o_btn_repeat setImage: [[NSImage alloc] initWithContentsOfFile:
+    [[NSBundle mainBundle] pathForImageResource:@"repeat_single_embedded_blue.png"]]];
+    [o_btn_repeat setAlternateImage: [[NSImage alloc] initWithContentsOfFile:
+        [[NSBundle mainBundle] pathForImageResource:@"repeat_embedded_blue.png"]]];
+}
+- (void)repeatAll
+{
+    [o_btn_repeat setImage: [[NSImage alloc] initWithContentsOfFile:
+        [[NSBundle mainBundle] pathForImageResource:@"repeat_embedded_blue.png"]]];
+    [o_btn_repeat setAlternateImage: [[NSImage alloc] initWithContentsOfFile:
+        [[NSBundle mainBundle] pathForImageResource:@"repeat_embedded.png"]]];
+}
+- (void)repeatOff
+{
+    [o_btn_repeat setImage: [[NSImage alloc] initWithContentsOfFile:
+        [[NSBundle mainBundle] pathForImageResource:@"repeat_embedded.png"]]];
+    [o_btn_repeat setAlternateImage: [[NSImage alloc] initWithContentsOfFile:
+    [[NSBundle mainBundle] pathForImageResource:@"repeat_single_embedded_blue.png"]]];
+}
+- (void)shuffle
+{
+    vlc_value_t val;
+    playlist_t *p_playlist = pl_Yield( VLCIntf );
+    var_Get( p_playlist, "random", &val );
+    [o_btn_shuffle setState: val.b_bool];
+    vlc_object_release( p_playlist );
+}
+
+- (IBAction)repeatButtonAction:(id)sender
+{
+    vlc_value_t looping,repeating;
+    intf_thread_t * p_intf = VLCIntf;
+    playlist_t * p_playlist = pl_Yield( p_intf );
+
+    var_Get( p_playlist, "repeat", &repeating );
+    var_Get( p_playlist, "loop", &looping );
+
+    [[o_btn_repeat image] release];
+    [[o_btn_repeat alternateImage] release];
+
+    if( !repeating.b_bool && !looping.b_bool )
+    {
+        /* was: no repeating at all, switching to Repeat One */
+        
+        /* set our button's look */
+        [self repeatOne];
+        
+        /* prepare core communication */
+        repeating.b_bool = VLC_TRUE;
+        looping.b_bool = VLC_FALSE;
+        config_PutInt( p_playlist, "repeat", 1 );
+        config_PutInt( p_playlist, "loop", 0 ); 
+        
+        /* show the change */
+        vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat One" ) );
+    }
+    else if( repeating.b_bool && !looping.b_bool )
+    {
+        /* was: Repeat One, switching to Repeat All */
+        
+        /* set our button's look */
+        [self repeatAll];
+        
+        /* prepare core communication */
+        repeating.b_bool = VLC_FALSE;
+        looping.b_bool = VLC_TRUE;
+        config_PutInt( p_playlist, "repeat", 0 ); 
+        config_PutInt( p_playlist, "loop", 1 ); 
+        
+        /* show the change */
+        vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat All" ) );
+    }
+    else
+    {
+        /* was: Repeat All or bug in VLC, switching to Repeat Off */
+        
+        /* set our button's look */
+        [self repeatOff];
+        
+        /* prepare core communication */
+        repeating.b_bool = VLC_FALSE;
+        looping.b_bool = VLC_FALSE;
+        config_PutInt( p_playlist, "repeat", 0 ); 
+        config_PutInt( p_playlist, "loop", 0 ); 
+        
+        /* show the change */
+        vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat Off" ) );
+    }
+
+    /* communicate with core and the main intf loop */
+    var_Set( p_playlist, "repeat", repeating );
+    var_Set( p_playlist, "loop", looping );    
+    p_intf->p_sys->b_playmode_update = VLC_TRUE;
+    p_intf->p_sys->b_intf_update = VLC_TRUE;
+
+    vlc_object_release( p_playlist );
+}
+
+
 - (IBAction)repeat:(id)sender
 {
     vlc_value_t val;
index ed4d5cb53fdf73480041b5c0d5f48b8ad030d3ff..e89796e2ec6b74eebcbfcc737f10152d99acaca6 100644 (file)
@@ -477,8 +477,8 @@ static VLCMain *_o_sharedMainInstance = nil;
     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.
+    /* update the playmode stuff */
+    p_intf->p_sys->b_playmode_update = VLC_TRUE;
 
     nib_main_loaded = TRUE;
 }
@@ -916,7 +916,9 @@ static VLCMain *_o_sharedMainInstance = nil;
 
 - (id)getPlaylist
 {
-    return o_playlist;
+    if( o_playlist )
+        return o_playlist;
+    return nil;
 }
 
 - (id)getInfo
index 31d33e9c59900a7ae125114ba59667b124a13819..46e425cdf53f29d24af2e3c5ed8690f1e3e49dff 100644 (file)
@@ -73,8 +73,6 @@
     IBOutlet id o_playlist_view;
     IBOutlet id o_status_field;
     IBOutlet id o_search_field;
-    IBOutlet id o_random_ckb;
-    IBOutlet id o_loop_popup;
     IBOutlet id o_mi_save_playlist;
     IBOutlet id o_ctx_menu;
 
 - (void)searchfieldChanged:(NSNotification *)o_notification;
 - (NSMenu *)menuForEvent:(NSEvent *)o_event;
 
-- (IBAction)handlePopUp:(id)sender;
 - (IBAction)searchItem:(id)sender;
 
 - (void)playlistUpdated;
index a7af30c95840580ee4c3b8452d996cbebc50aa3e..a2c99976f0715bf57f0e23425ad4d9893a2ebbae 100644 (file)
 #include <sys/mount.h>
 #include <vlc_keys.h>
 
-#include "intf.h"
+#import "intf.h"
 #import "wizard.h"
 #import "bookmarks.h"
 #import "playlistinfo.h"
-#include "playlist.h"
-#include "controls.h"
-#include "vlc_osd.h"
-#include "misc.h"
+#import "playlist.h"
+#import "controls.h"
+#import "vlc_osd.h"
+#import "misc.h"
 #import <vlc_interaction.h>
 
 /*****************************************************************************
@@ -204,7 +204,7 @@ NSLog( @"%d children for %s", i_return, p_item->p_input->psz_name );
     if( o_value == nil )
     {
         o_value = [[NSValue valueWithPointer: p_return] retain];
-        msg_Err( VLCIntf, @"missing playlist item's pointer value" );
+        msg_Err( VLCIntf, "missing playlist item's pointer value" );
     }
     return o_value;
 }
@@ -428,14 +428,10 @@ NSLog( @"expandable" );
     [o_status_field setStringValue: [NSString stringWithFormat:
                         _NS("No items in the playlist")]];
 
-    [o_random_ckb setTitle: _NS("Random")];
 #if 0
     [o_search_button setTitle: _NS("Search")];
 #endif
     [o_search_field setToolTip: _NS("Search in Playlist")];
-    [[o_loop_popup itemAtIndex:0] setTitle: _NS("Standard Play")];
-    [[o_loop_popup itemAtIndex:1] setTitle: _NS("Repeat One")];
-    [[o_loop_popup itemAtIndex:2] setTitle: _NS("Repeat All")];
     [o_mi_addNode setTitle: _NS("Add Folder to Playlist")];
 
     [o_save_accessory_text setStringValue: _NS("File Format:")];
@@ -492,19 +488,18 @@ NSLog( @"expandable" );
     var_Get( p_playlist, "repeat", &val );
     if( val.b_bool == VLC_TRUE )
     {
-        [o_loop_popup selectItemAtIndex: 1];
+        [[[VLCMain sharedInstance] getControls] repeatOne];
    }
     else if( val2.b_bool == VLC_TRUE )
     {
-        [o_loop_popup selectItemAtIndex: 2];
+        [[[VLCMain sharedInstance] getControls] repeatAll];
     }
     else
     {
-        [o_loop_popup selectItemAtIndex: 0];
+        [[[VLCMain sharedInstance] getControls] repeatOff];
     }
 
-    var_Get( p_playlist, "random", &val );
-    [o_random_ckb setState: val.b_bool];
+    [[[VLCMain sharedInstance] getControls] shuffle];
 
     vlc_object_release( p_playlist );
 }
@@ -1072,7 +1067,7 @@ NSLog( @"expandable" );
     [self playlistUpdated];
     vlc_object_release( p_playlist );
 }
-
+/* FIXME!!
 - (IBAction)handlePopUp:(id)sender
 
 {
@@ -1114,7 +1109,7 @@ NSLog( @"expandable" );
      vlc_object_release( p_playlist );
      [self playlistUpdated];
 }
-
+*/
 - (NSMutableArray *)subSearchItem:(playlist_item_t *)p_item
 {
     playlist_t *p_playlist = pl_Yield( VLCIntf );