]> git.sesse.net Git - vlc/commitdiff
macosx: Fix font chooser.
authorPierre d'Herbemont <pdherbemont@videolan.org>
Thu, 18 Sep 2008 22:31:37 +0000 (00:31 +0200)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Thu, 18 Sep 2008 22:37:29 +0000 (00:37 +0200)
Switch back to quartztext, and use the NSFontPanel.

extras/package/macosx/Resources/English.lproj/Preferences.nib/classes.nib
extras/package/macosx/Resources/English.lproj/Preferences.nib/info.nib
extras/package/macosx/Resources/English.lproj/Preferences.nib/keyedobjects.nib
modules/gui/macosx/simple_prefs.h
modules/gui/macosx/simple_prefs.m

index fc633785506c23eca363221e08f86486f5199df2..905af6a5494cec66002efa5ed0955a6ca53c0087 100644 (file)
-{
-    IBClasses =     (
-                {
-            CLASS = FirstResponder;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSObject;
-        },
-                {
-            CLASS = NSApplication;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSResponder;
-        },
-                {
-            CLASS = NSObject;
-            LANGUAGE = ObjC;
-        },
-                {
-            CLASS = VLCHotkeyChangeWindow;
-            LANGUAGE = ObjC;
-            SUPERCLASS = NSWindow;
-        },
-                {
-            ACTIONS =             {
-                buttonAction = id;
-                closePrefs = id;
-                resetAll = id;
-                savePrefs = id;
-            };
-            CLASS = VLCPrefs;
-            LANGUAGE = ObjC;
-            OUTLETS =             {
-                "o_basicFull_matrix" = id;
-                "o_cancel_btn" = id;
-                "o_prefs_view" = id;
-                "o_prefs_window" = id;
-                "o_reset_btn" = id;
-                "o_save_btn" = id;
-                "o_title" = id;
-                "o_tree" = id;
-            };
-            SUPERCLASS = NSObject;
-        },
-                {
-            ACTIONS =             {
-                audioSettingChanged = id;
-                buttonAction = id;
-                hotkeySettingChanged = id;
-                inputSettingChanged = id;
-                interfaceSettingChanged = id;
-                osdSettingChanged = id;
-                videoSettingChanged = id;
-            };
-            CLASS = VLCSimplePrefs;
-            LANGUAGE = ObjC;
-            OUTLETS =             {
-                "o_audio_dolby_pop" = id;
-                "o_audio_dolby_txt" = id;
-                "o_audio_effects_box" = id;
-                "o_audio_enable_ckb" = id;
-                "o_audio_general_box" = id;
-                "o_audio_headphone_ckb" = id;
-                "o_audio_lang_fld" = id;
-                "o_audio_lang_txt" = id;
-                "o_audio_last_box" = id;
-                "o_audio_last_ckb" = id;
-                "o_audio_lastpwd_sfld" = id;
-                "o_audio_lastpwd_txt" = id;
-                "o_audio_lastuser_fld" = id;
-                "o_audio_lastuser_txt" = id;
-                "o_audio_norm_ckb" = id;
-                "o_audio_norm_fld" = id;
-                "o_audio_spdif_ckb" = id;
-                "o_audio_view" = id;
-                "o_audio_visual_pop" = id;
-                "o_audio_visual_txt" = id;
-                "o_audio_vol_fld" = id;
-                "o_audio_vol_sld" = id;
-                "o_audio_vol_txt" = id;
-                "o_hotkeys_change_btn" = id;
-                "o_hotkeys_change_cancel_btn" = id;
-                "o_hotkeys_change_keys_lbl" = id;
-                "o_hotkeys_change_lbl" = id;
-                "o_hotkeys_change_ok_btn" = id;
-                "o_hotkeys_change_taken_lbl" = id;
-                "o_hotkeys_change_win" = id;
-                "o_hotkeys_clear_btn" = id;
-                "o_hotkeys_lbl" = id;
-                "o_hotkeys_listbox" = id;
-                "o_hotkeys_view" = id;
-                "o_input_access_box" = id;
-                "o_input_avi_pop" = id;
-                "o_input_avi_txt" = id;
-                "o_input_bandwidth_ckb" = id;
-                "o_input_cachelevel_custom_txt" = id;
-                "o_input_cachelevel_pop" = id;
-                "o_input_cachelevel_txt" = id;
-                "o_input_caching_box" = id;
-                "o_input_dump_ckb" = id;
-                "o_input_httpproxy_fld" = id;
-                "o_input_httpproxy_txt" = id;
-                "o_input_httpproxypwd_sfld" = id;
-                "o_input_httpproxypwd_txt" = id;
-                "o_input_mux_box" = id;
-                "o_input_net_box" = id;
-                "o_input_postproc_fld" = id;
-                "o_input_postproc_txt" = id;
-                "o_input_record_ckb" = id;
-                "o_input_rtsp_ckb" = id;
-                "o_input_serverport_fld" = id;
-                "o_input_serverport_txt" = id;
-                "o_input_timeshift_ckb" = id;
-                "o_input_view" = id;
-                "o_intf_art_pop" = id;
-                "o_intf_art_txt" = id;
-                "o_intf_embedded_ckb" = id;
-                "o_intf_fspanel_ckb" = id;
-                "o_intf_lang_pop" = id;
-                "o_intf_lang_txt" = id;
-                "o_intf_network_box" = id;
-                "o_intf_view" = id;
-                "o_osd_encoding_pop" = id;
-                "o_osd_encoding_txt" = id;
-                "o_osd_font_box" = id;
-                "o_osd_font_btn" = id;
-                "o_osd_font_color_pop" = id;
-                "o_osd_font_color_txt" = id;
-                "o_osd_font_fld" = id;
-                "o_osd_font_size_pop" = id;
-                "o_osd_font_size_txt" = id;
-                "o_osd_font_txt" = id;
-                "o_osd_lang_box" = id;
-                "o_osd_lang_fld" = id;
-                "o_osd_lang_txt" = id;
-                "o_osd_osd_box" = id;
-                "o_osd_osd_ckb" = id;
-                "o_osd_view" = id;
-                "o_sprefs_basicFull_matrix" = id;
-                "o_sprefs_basic_box" = id;
-                "o_sprefs_cancel_btn" = id;
-                "o_sprefs_controls_box" = id;
-                "o_sprefs_reset_btn" = id;
-                "o_sprefs_save_btn" = id;
-                "o_sprefs_win" = id;
-                "o_video_black_ckb" = id;
-                "o_video_device_pop" = id;
-                "o_video_device_txt" = id;
-                "o_video_display_box" = id;
-                "o_video_enable_ckb" = id;
-                "o_video_fullscreen_ckb" = id;
-                "o_video_onTop_ckb" = id;
-                "o_video_output_pop" = id;
-                "o_video_output_txt" = id;
-                "o_video_skipFrames_ckb" = id;
-                "o_video_snap_box" = id;
-                "o_video_snap_folder_btn" = id;
-                "o_video_snap_folder_fld" = id;
-                "o_video_snap_folder_txt" = id;
-                "o_video_snap_format_pop" = id;
-                "o_video_snap_format_txt" = id;
-                "o_video_snap_prefix_fld" = id;
-                "o_video_snap_prefix_txt" = id;
-                "o_video_snap_seqnum_ckb" = id;
-                "o_video_view" = id;
-            };
-            SUPERCLASS = NSObject;
-        }
-    );
-    IBVersion = 1;
-}
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>IBClasses</key>
+       <array>
+               <dict>
+                       <key>CLASS</key>
+                       <string>NSApplication</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>SUPERCLASS</key>
+                       <string>NSResponder</string>
+               </dict>
+               <dict>
+                       <key>CLASS</key>
+                       <string>VLCHotkeyChangeWindow</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>SUPERCLASS</key>
+                       <string>NSWindow</string>
+               </dict>
+               <dict>
+                       <key>ACTIONS</key>
+                       <dict>
+                               <key>audioSettingChanged</key>
+                               <string>id</string>
+                               <key>buttonAction</key>
+                               <string>id</string>
+                               <key>hotkeySettingChanged</key>
+                               <string>id</string>
+                               <key>inputSettingChanged</key>
+                               <string>id</string>
+                               <key>interfaceSettingChanged</key>
+                               <string>id</string>
+                               <key>osdSettingChanged</key>
+                               <string>id</string>
+                               <key>showFontPicker</key>
+                               <string>id</string>
+                               <key>videoSettingChanged</key>
+                               <string>id</string>
+                       </dict>
+                       <key>CLASS</key>
+                       <string>VLCSimplePrefs</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>OUTLETS</key>
+                       <dict>
+                               <key>o_audio_dolby_pop</key>
+                               <string>id</string>
+                               <key>o_audio_dolby_txt</key>
+                               <string>id</string>
+                               <key>o_audio_effects_box</key>
+                               <string>id</string>
+                               <key>o_audio_enable_ckb</key>
+                               <string>id</string>
+                               <key>o_audio_general_box</key>
+                               <string>id</string>
+                               <key>o_audio_headphone_ckb</key>
+                               <string>id</string>
+                               <key>o_audio_lang_fld</key>
+                               <string>id</string>
+                               <key>o_audio_lang_txt</key>
+                               <string>id</string>
+                               <key>o_audio_last_box</key>
+                               <string>id</string>
+                               <key>o_audio_last_ckb</key>
+                               <string>id</string>
+                               <key>o_audio_lastpwd_sfld</key>
+                               <string>id</string>
+                               <key>o_audio_lastpwd_txt</key>
+                               <string>id</string>
+                               <key>o_audio_lastuser_fld</key>
+                               <string>id</string>
+                               <key>o_audio_lastuser_txt</key>
+                               <string>id</string>
+                               <key>o_audio_norm_ckb</key>
+                               <string>id</string>
+                               <key>o_audio_norm_fld</key>
+                               <string>id</string>
+                               <key>o_audio_spdif_ckb</key>
+                               <string>id</string>
+                               <key>o_audio_view</key>
+                               <string>id</string>
+                               <key>o_audio_visual_pop</key>
+                               <string>id</string>
+                               <key>o_audio_visual_txt</key>
+                               <string>id</string>
+                               <key>o_audio_vol_fld</key>
+                               <string>id</string>
+                               <key>o_audio_vol_sld</key>
+                               <string>id</string>
+                               <key>o_audio_vol_txt</key>
+                               <string>id</string>
+                               <key>o_currentlyShownCategoryView</key>
+                               <string>id</string>
+                               <key>o_hotkeys_change_btn</key>
+                               <string>id</string>
+                               <key>o_hotkeys_change_cancel_btn</key>
+                               <string>id</string>
+                               <key>o_hotkeys_change_keys_lbl</key>
+                               <string>id</string>
+                               <key>o_hotkeys_change_lbl</key>
+                               <string>id</string>
+                               <key>o_hotkeys_change_ok_btn</key>
+                               <string>id</string>
+                               <key>o_hotkeys_change_taken_lbl</key>
+                               <string>id</string>
+                               <key>o_hotkeys_change_win</key>
+                               <string>id</string>
+                               <key>o_hotkeys_clear_btn</key>
+                               <string>id</string>
+                               <key>o_hotkeys_lbl</key>
+                               <string>id</string>
+                               <key>o_hotkeys_listbox</key>
+                               <string>id</string>
+                               <key>o_hotkeys_view</key>
+                               <string>id</string>
+                               <key>o_input_access_box</key>
+                               <string>id</string>
+                               <key>o_input_avi_pop</key>
+                               <string>id</string>
+                               <key>o_input_avi_txt</key>
+                               <string>id</string>
+                               <key>o_input_bandwidth_ckb</key>
+                               <string>id</string>
+                               <key>o_input_cachelevel_custom_txt</key>
+                               <string>id</string>
+                               <key>o_input_cachelevel_pop</key>
+                               <string>id</string>
+                               <key>o_input_cachelevel_txt</key>
+                               <string>id</string>
+                               <key>o_input_caching_box</key>
+                               <string>id</string>
+                               <key>o_input_dump_ckb</key>
+                               <string>id</string>
+                               <key>o_input_httpproxy_fld</key>
+                               <string>id</string>
+                               <key>o_input_httpproxy_txt</key>
+                               <string>id</string>
+                               <key>o_input_httpproxypwd_sfld</key>
+                               <string>id</string>
+                               <key>o_input_httpproxypwd_txt</key>
+                               <string>id</string>
+                               <key>o_input_mux_box</key>
+                               <string>id</string>
+                               <key>o_input_net_box</key>
+                               <string>id</string>
+                               <key>o_input_postproc_fld</key>
+                               <string>id</string>
+                               <key>o_input_postproc_txt</key>
+                               <string>id</string>
+                               <key>o_input_record_ckb</key>
+                               <string>id</string>
+                               <key>o_input_rtsp_ckb</key>
+                               <string>id</string>
+                               <key>o_input_serverport_fld</key>
+                               <string>id</string>
+                               <key>o_input_serverport_txt</key>
+                               <string>id</string>
+                               <key>o_input_timeshift_ckb</key>
+                               <string>id</string>
+                               <key>o_input_view</key>
+                               <string>id</string>
+                               <key>o_intf_art_pop</key>
+                               <string>id</string>
+                               <key>o_intf_art_txt</key>
+                               <string>id</string>
+                               <key>o_intf_embedded_ckb</key>
+                               <string>id</string>
+                               <key>o_intf_fspanel_ckb</key>
+                               <string>id</string>
+                               <key>o_intf_lang_pop</key>
+                               <string>id</string>
+                               <key>o_intf_lang_txt</key>
+                               <string>id</string>
+                               <key>o_intf_network_box</key>
+                               <string>id</string>
+                               <key>o_intf_view</key>
+                               <string>id</string>
+                               <key>o_osd_encoding_pop</key>
+                               <string>id</string>
+                               <key>o_osd_encoding_txt</key>
+                               <string>id</string>
+                               <key>o_osd_font_box</key>
+                               <string>id</string>
+                               <key>o_osd_font_btn</key>
+                               <string>id</string>
+                               <key>o_osd_font_color_pop</key>
+                               <string>id</string>
+                               <key>o_osd_font_color_txt</key>
+                               <string>id</string>
+                               <key>o_osd_font_fld</key>
+                               <string>id</string>
+                               <key>o_osd_font_size_pop</key>
+                               <string>id</string>
+                               <key>o_osd_font_size_txt</key>
+                               <string>id</string>
+                               <key>o_osd_font_txt</key>
+                               <string>id</string>
+                               <key>o_osd_lang_box</key>
+                               <string>id</string>
+                               <key>o_osd_lang_fld</key>
+                               <string>id</string>
+                               <key>o_osd_lang_txt</key>
+                               <string>id</string>
+                               <key>o_osd_osd_box</key>
+                               <string>id</string>
+                               <key>o_osd_osd_ckb</key>
+                               <string>id</string>
+                               <key>o_osd_view</key>
+                               <string>id</string>
+                               <key>o_sprefs_basicFull_matrix</key>
+                               <string>id</string>
+                               <key>o_sprefs_basic_box</key>
+                               <string>id</string>
+                               <key>o_sprefs_cancel_btn</key>
+                               <string>id</string>
+                               <key>o_sprefs_controls_box</key>
+                               <string>id</string>
+                               <key>o_sprefs_reset_btn</key>
+                               <string>id</string>
+                               <key>o_sprefs_save_btn</key>
+                               <string>id</string>
+                               <key>o_sprefs_win</key>
+                               <string>id</string>
+                               <key>o_video_black_ckb</key>
+                               <string>id</string>
+                               <key>o_video_device_pop</key>
+                               <string>id</string>
+                               <key>o_video_device_txt</key>
+                               <string>id</string>
+                               <key>o_video_display_box</key>
+                               <string>id</string>
+                               <key>o_video_enable_ckb</key>
+                               <string>id</string>
+                               <key>o_video_fullscreen_ckb</key>
+                               <string>id</string>
+                               <key>o_video_onTop_ckb</key>
+                               <string>id</string>
+                               <key>o_video_output_pop</key>
+                               <string>id</string>
+                               <key>o_video_output_txt</key>
+                               <string>id</string>
+                               <key>o_video_skipFrames_ckb</key>
+                               <string>id</string>
+                               <key>o_video_snap_box</key>
+                               <string>id</string>
+                               <key>o_video_snap_folder_btn</key>
+                               <string>id</string>
+                               <key>o_video_snap_folder_fld</key>
+                               <string>id</string>
+                               <key>o_video_snap_folder_txt</key>
+                               <string>id</string>
+                               <key>o_video_snap_format_pop</key>
+                               <string>id</string>
+                               <key>o_video_snap_format_txt</key>
+                               <string>id</string>
+                               <key>o_video_snap_prefix_fld</key>
+                               <string>id</string>
+                               <key>o_video_snap_prefix_txt</key>
+                               <string>id</string>
+                               <key>o_video_snap_seqnum_ckb</key>
+                               <string>id</string>
+                               <key>o_video_view</key>
+                               <string>id</string>
+                       </dict>
+                       <key>SUPERCLASS</key>
+                       <string>NSObject</string>
+               </dict>
+               <dict>
+                       <key>CLASS</key>
+                       <string>FirstResponder</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>SUPERCLASS</key>
+                       <string>NSObject</string>
+               </dict>
+               <dict>
+                       <key>CLASS</key>
+                       <string>NSObject</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+               </dict>
+               <dict>
+                       <key>ACTIONS</key>
+                       <dict>
+                               <key>buttonAction</key>
+                               <string>id</string>
+                               <key>closePrefs</key>
+                               <string>id</string>
+                               <key>resetAll</key>
+                               <string>id</string>
+                               <key>savePrefs</key>
+                               <string>id</string>
+                       </dict>
+                       <key>CLASS</key>
+                       <string>VLCPrefs</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>OUTLETS</key>
+                       <dict>
+                               <key>o_basicFull_matrix</key>
+                               <string>id</string>
+                               <key>o_cancel_btn</key>
+                               <string>id</string>
+                               <key>o_prefs_view</key>
+                               <string>id</string>
+                               <key>o_prefs_window</key>
+                               <string>id</string>
+                               <key>o_reset_btn</key>
+                               <string>id</string>
+                               <key>o_save_btn</key>
+                               <string>id</string>
+                               <key>o_title</key>
+                               <string>id</string>
+                               <key>o_tree</key>
+                               <string>id</string>
+                       </dict>
+                       <key>SUPERCLASS</key>
+                       <string>NSObject</string>
+               </dict>
+       </array>
+       <key>IBVersion</key>
+       <string>1</string>
+</dict>
+</plist>
index f5aa4b432d838476fa1468cbd55e65db36662ee2..d98f2e2a0a30c54f9b6ad2081932be7dee8b2a6c 100644 (file)
@@ -2,39 +2,22 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-       <key>IBDocumentLocation</key>
-       <string>48 424 356 240 0 0 1280 778 </string>
-       <key>IBEditorPositions</key>
-       <dict>
-               <key>2311</key>
-               <string>345 425 590 230 0 0 1280 778 </string>
-               <key>2330</key>
-               <string>345 221 590 502 0 0 1280 778 </string>
-               <key>2440</key>
-               <string>345 307 590 389 0 0 1280 778 </string>
-               <key>2523</key>
-               <string>345 348 590 343 0 0 1280 778 </string>
-               <key>2562</key>
-               <string>345 219 590 505 0 0 1280 778 </string>
-               <key>2668</key>
-               <string>345 255 590 457 0 0 1280 778 </string>
-       </dict>
        <key>IBFramework Version</key>
-       <string>489.0</string>
+       <string>644</string>
        <key>IBLastKnownRelativeProjectPath</key>
        <string>../../vlc.xcodeproj</string>
        <key>IBOldestOS</key>
        <integer>5</integer>
        <key>IBOpenObjects</key>
        <array>
+               <integer>1530</integer>
                <integer>2677</integer>
                <integer>2330</integer>
-               <integer>2668</integer>
-               <integer>2523</integer>
-               <integer>1530</integer>
+               <integer>2311</integer>
                <integer>2562</integer>
+               <integer>2537</integer>
                <integer>2265</integer>
-               <integer>2311</integer>
+               <integer>2668</integer>
        </array>
        <key>IBSystem Version</key>
        <string>9E17</string>
index dfbfb5c4ea05b3ce396113d6726ad149400baf36..b140a64e99db175af16bdeb05491fcf3fa537c20 100644 (file)
Binary files a/extras/package/macosx/Resources/English.lproj/Preferences.nib/keyedobjects.nib and b/extras/package/macosx/Resources/English.lproj/Preferences.nib/keyedobjects.nib differ
index 60539e07b63d7e58f58af2dfd29fb30d369e39bd..b019d900febe288846a70d6f76a1db9c95a84053 100644 (file)
 
 /* OSD / subtitles */
 - (IBAction)osdSettingChanged:(id)sender;
+- (IBAction)showFontPicker:(id)sender;
 - (void)showOSDSettings;
 
 /* input & codecs */
index d307ce9e317ce7718cea2e09873ea1f5a6fe438d..549c61ee0088f29858b84873d91dd34ebb5fb429 100644 (file)
@@ -269,7 +269,7 @@ create_toolbar_item( NSString * o_itemIdent, NSString * o_name, NSString * o_des
     /* Subtitles and OSD */
     [o_osd_encoding_txt setStringValue: _NS("Default Encoding")];
     [o_osd_font_box setTitle: _NS("Display Settings")];
-    [o_osd_font_btn setTitle: _NS("Browse...")];
+    [o_osd_font_btn setTitle: _NS("Choose...")];
     [o_osd_font_color_txt setStringValue: _NS("Font Color")];
     [o_osd_font_size_txt setStringValue: _NS("Font Size")];
     [o_osd_font_txt setStringValue: _NS("Font")];
@@ -569,11 +569,11 @@ create_toolbar_item( NSString * o_itemIdent, NSString * o_name, NSString * o_des
     [self setupButton: o_osd_encoding_pop forStringList: "subsdec-encoding"];
     
     [o_osd_lang_fld setStringValue: [NSString stringWithUTF8String: config_GetPsz( p_intf, "sub-language" ) ?: ""]];
-    if( config_GetPsz( p_intf, "freetype-font" ) != NULL )
-        [o_osd_font_fld setStringValue: [NSString stringWithUTF8String: config_GetPsz( p_intf, "freetype-font" ) ?: ""]];
+    if( config_GetPsz( p_intf, "quartztext-font" ) != NULL )
+        [o_osd_font_fld setStringValue: [NSString stringWithUTF8String: config_GetPsz( p_intf, "quartztext-font" ) ?: ""]];
 
-    [self setupButton: o_osd_font_color_pop forIntList: "freetype-color"];
-    [self setupButton: o_osd_font_size_pop forIntList: "freetype-rel-fontsize"];
+    [self setupButton: o_osd_font_color_pop forIntList: "quartztext-color"];
+    [self setupButton: o_osd_font_size_pop forIntList: "quartztext-rel-fontsize"];
 
     /********************
      * hotkeys settings *
@@ -930,10 +930,10 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch
             config_PutPsz( p_intf, "subsdec-encoding", [[[o_osd_encoding_pop selectedItem] title] UTF8String] );
 
         config_PutPsz( p_intf, "sub-language", [[o_osd_lang_fld stringValue] UTF8String] );
-        config_PutPsz( p_intf, "freetype-font", [[o_osd_font_fld stringValue] UTF8String] );
+        config_PutPsz( p_intf, "quartztext-font", [[o_osd_font_fld stringValue] UTF8String] );
 
-        SaveIntList( o_osd_font_color_pop, "freetype-color" );
-        SaveIntList( o_osd_font_size_pop, "freetype-rel-fontsize" );
+        SaveIntList( o_osd_font_color_pop, "quartztext-color" );
+        SaveIntList( o_osd_font_size_pop, "quartztext-rel-fontsize" );
 
         i = config_SaveConfigFile( p_intf, NULL );
 
@@ -1096,24 +1096,7 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch
 
 - (IBAction)osdSettingChanged:(id)sender
 {
-    if( sender == o_osd_font_btn )
-    {
-        o_selectFolderPanel = [[NSOpenPanel alloc] init];
-        [o_selectFolderPanel setCanChooseDirectories: NO];
-        [o_selectFolderPanel setCanChooseFiles: YES];
-        [o_selectFolderPanel setResolvesAliases: YES];
-        [o_selectFolderPanel setAllowsMultipleSelection: NO];
-        [o_selectFolderPanel setMessage: _NS("Choose the font to display your Subtitles with.")];
-        [o_selectFolderPanel setCanCreateDirectories: NO];
-        [o_selectFolderPanel setPrompt: _NS("Choose")];
-        [o_selectFolderPanel setAllowedFileTypes: [NSArray arrayWithObjects: @"dfont", @"ttf", @"otf", @"FFIL", nil]];
-        [o_selectFolderPanel beginSheetForDirectory: @"/System/Library/Fonts/" file: nil modalForWindow: o_sprefs_win 
-                                      modalDelegate: self 
-                                     didEndSelector: @selector(savePanelDidEnd:returnCode:contextInfo:)
-                                        contextInfo: o_osd_font_btn];
-    }
-    else
-        b_osdSettingChanged = YES;
+    b_osdSettingChanged = YES;
 }
 
 - (void)showOSDSettings
@@ -1121,6 +1104,28 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch
     [self showSettingsForCategory: o_osd_view];
 }
 
+- (IBAction)showFontPicker:(id)sender
+{
+    char * font = config_GetPsz( p_intf, "quartztext-font" );
+    NSString * fontFamilyName = font ? [NSString stringWithUTF8String: font] : nil;
+    free(font);
+    if( fontFamilyName )
+    {
+        NSFontDescriptor * fd = [NSFontDescriptor fontDescriptorWithFontAttributes:nil];
+        NSFont * font = [NSFont fontWithDescriptor:[fd fontDescriptorWithFamily:fontFamilyName] textTransform:nil];
+        [[NSFontManager sharedFontManager] setSelectedFont:font isMultiple:NO];
+    }
+    [[NSFontManager sharedFontManager] setTarget:self];
+    [[NSFontPanel sharedFontPanel] orderFront:self];
+}
+
+- (void)changeFont:(id)sender
+{
+    NSFont * font = [sender convertFont:[[NSFontManager sharedFontManager] selectedFont]];
+    [o_osd_font_fld setStringValue:[font familyName]];
+    [self osdSettingChanged:self];
+}
+
 - (IBAction)inputSettingChanged:(id)sender
 {
     if( sender == o_input_cachelevel_pop )