X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fmacosx%2Fintf.h;h=718a83bdab36dab8468b8d4ebe648b493d19efdf;hb=96b4ee1ee2da310e9ea951a29672a7609dbf831e;hp=d1f552a4174a89ad1bbb7c148720f843bb2838d4;hpb=7c07687a585668e65bf68a0d320011dac5650cdc;p=vlc diff --git a/modules/gui/macosx/intf.h b/modules/gui/macosx/intf.h index d1f552a417..718a83bdab 100644 --- a/modules/gui/macosx/intf.h +++ b/modules/gui/macosx/intf.h @@ -1,12 +1,13 @@ /***************************************************************************** * intf.h: MacOS X interface module ***************************************************************************** - * Copyright (C) 2002-2005 VideoLAN + * Copyright (C) 2002-2008 the VideoLAN team * $Id$ * * Authors: Jon Lech Johansen * Christophe Massiot * Derk-Jan Hartman + * Felix Paul Kühne * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,21 +21,31 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#include -#include -#include -#include -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include +#include #include +/* this was introduced in Darwin 9. We need to declare it to prevent both + * compilation warnings and errors */ +#ifndef NSInteger +#define NSInteger int +#endif + /***************************************************************************** * Local prototypes. *****************************************************************************/ -int ExecuteOnMainThread( id target, SEL sel, void * p_arg ); unsigned int CocoaKeyToVLC( unichar i_key ); #define VLCIntf [[VLCMain sharedInstance] getIntf] @@ -45,31 +56,34 @@ unsigned int CocoaKeyToVLC( unichar i_key ); * the translated string. the translation should be '1:translatedstring' though */ #define _ANS(s) [[[VLCMain sharedInstance] localizedString: _(s)] substringFromIndex:2] +#define MACOS_VERSION [[[NSDictionary dictionaryWithContentsOfFile: \ + @"/System/Library/CoreServices/SystemVersion.plist"] \ + objectForKey: @"ProductVersion"] floatValue] + /***************************************************************************** * intf_sys_t: description and status of the interface *****************************************************************************/ struct intf_sys_t { NSAutoreleasePool * o_pool; - NSPort * o_sendport; - - /* the current input */ - input_thread_t * p_input; /* special actions */ - vlc_bool_t b_mute; + bool b_mute; int i_play_status; /* interface update */ - vlc_bool_t b_intf_update; - vlc_bool_t b_playlist_update; - vlc_bool_t b_current_title_update; - vlc_bool_t b_fullscreen_update; + bool b_intf_update; + bool b_playlist_update; + bool b_playmode_update; + bool b_current_title_update; + bool b_fullscreen_update; + bool b_volume_update; + bool b_intf_show; /* menus handlers */ - vlc_bool_t b_input_update; - vlc_bool_t b_aout_update; - vlc_bool_t b_vout_update; + bool b_input_update; + bool b_aout_update; + bool b_vout_update; /* The messages window */ msg_subscription_t * p_sub; @@ -78,31 +92,55 @@ struct intf_sys_t /***************************************************************************** * VLCMain interface *****************************************************************************/ +@class AppleRemote; +@class VLCInformation; @interface VLCMain : NSObject { intf_thread_t *p_intf; /* The main intf object */ id o_prefs; /* VLCPrefs */ + id o_sprefs; /* VLCSimplePrefs */ id o_about; /* VLAboutBox */ id o_open; /* VLCOpen */ - BOOL nib_open_loaded; /* reference to the open-nib */ + id o_wizard; /* VLCWizard */ + id o_extended; /* VLCExtended */ + id o_bookmarks; /* VLCBookmarks */ + id o_embedded_list; /* VLCEmbeddedList*/ + id o_interaction_list; /* VLCInteractionList*/ + VLCInformation * o_info; /* VLCInformation */ +#ifdef UPDATE_CHECK + id o_update; /* VLCUpdate */ +#endif + id o_eyetv; /* VLCEyeTVController */ + BOOL nib_main_loaded; /* main nibfile */ + BOOL nib_open_loaded; /* open nibfile */ + BOOL nib_about_loaded; /* about nibfile */ + BOOL nib_wizard_loaded; /* wizard nibfile */ + BOOL nib_extended_loaded; /* extended nibfile */ + BOOL nib_bookmarks_loaded; /* bookmarks nibfile */ + BOOL nib_prefs_loaded; /* preferences nibfile */ + BOOL nib_update_loaded; /* update nibfile */ + BOOL nib_info_loaded; /* information panel nibfile */ IBOutlet id o_window; /* main window */ IBOutlet id o_playlist_view;/* playlist view */ IBOutlet id o_scrollfield; /* info field */ IBOutlet id o_timefield; /* time field */ IBOutlet id o_timeslider; /* time slider */ + IBOutlet id o_embedded_window; /* Embedded Vout Window */ float f_slider; /* slider value */ float f_slider_old; /* old slider val */ IBOutlet id o_volumeslider; /* volume slider */ + IBOutlet id o_main_pgbar; /* playlist window progress bar */ IBOutlet id o_btn_prev; /* btn previous */ IBOutlet id o_btn_rewind; /* btn rewind */ IBOutlet id o_btn_play; /* btn play */ IBOutlet id o_btn_stop; /* btn stop */ IBOutlet id o_btn_ff; /* btn fast forward */ IBOutlet id o_btn_next; /* btn next */ - IBOutlet id o_btn_fullscreen;/* btn fullscreen */ + IBOutlet id o_btn_fullscreen;/* btn fullscreen (embedded vout window) */ IBOutlet id o_btn_playlist; /* btn playlist */ + IBOutlet id o_btn_equalizer; /* eq btn */ NSImage * o_img_play; /* btn play img */ NSImage * o_img_pause; /* btn pause img */ @@ -111,7 +149,6 @@ struct intf_sys_t IBOutlet id o_controls; /* VLCControls */ IBOutlet id o_playlist; /* VLCPlaylist */ - IBOutlet id o_info; /* VLCInfo */ IBOutlet id o_messages; /* messages tv */ IBOutlet id o_msgs_panel; /* messages panel */ @@ -119,20 +156,12 @@ struct intf_sys_t NSLock * o_msg_lock; /* messages lock */ IBOutlet id o_msgs_btn_crashlog; /* messages open crashlog */ - IBOutlet id o_error; /* error panel */ - IBOutlet id o_err_msg; /* NSTextView */ - IBOutlet id o_err_lbl; - IBOutlet id o_err_bug_lbl; - IBOutlet id o_err_btn_msgs; /* Open Messages */ - IBOutlet id o_err_btn_dismiss; - IBOutlet id o_err_ckbk_surpress; - - IBOutlet id o_info_window; /* Info panel */ - /* main menu */ IBOutlet id o_mi_about; IBOutlet id o_mi_prefs; + IBOutlet id o_mi_sprefs; + IBOutlet id o_mi_checkForUpdate; IBOutlet id o_mi_add_intf; IBOutlet id o_mu_add_intf; IBOutlet id o_mi_services; @@ -146,8 +175,10 @@ struct intf_sys_t IBOutlet id o_mi_open_generic; IBOutlet id o_mi_open_disc; IBOutlet id o_mi_open_net; + IBOutlet id o_mi_open_capture; IBOutlet id o_mi_open_recent; IBOutlet id o_mi_open_recent_cm; + IBOutlet id o_mi_open_wizard; IBOutlet id o_mu_edit; IBOutlet id o_mi_cut; @@ -204,6 +235,10 @@ struct intf_sys_t IBOutlet id o_mu_videotrack; IBOutlet id o_mi_screen; IBOutlet id o_mu_screen; + IBOutlet id o_mi_aspect_ratio; + IBOutlet id o_mu_aspect_ratio; + IBOutlet id o_mi_crop; + IBOutlet id o_mu_crop; IBOutlet id o_mi_subtitle; IBOutlet id o_mu_subtitle; IBOutlet id o_mi_deinterlace; @@ -216,17 +251,22 @@ struct intf_sys_t IBOutlet id o_mi_close_window; IBOutlet id o_mi_controller; IBOutlet id o_mi_equalizer; + IBOutlet id o_mi_extended; + IBOutlet id o_mi_bookmarks; IBOutlet id o_mi_playlist; IBOutlet id o_mi_info; IBOutlet id o_mi_messages; IBOutlet id o_mi_bring_atf; IBOutlet id o_mu_help; + IBOutlet id o_mi_help; IBOutlet id o_mi_readme; IBOutlet id o_mi_documentation; - IBOutlet id o_mi_reportabug; - IBOutlet id o_mi_website; IBOutlet id o_mi_license; + IBOutlet id o_mi_website; + IBOutlet id o_mi_donation; + IBOutlet id o_mi_forum; + IBOutlet id o_mi_errorsAndWarnings; /* dock menu */ IBOutlet id o_dmi_play; @@ -234,9 +274,38 @@ struct intf_sys_t IBOutlet id o_dmi_next; IBOutlet id o_dmi_previous; IBOutlet id o_dmi_mute; - + + /* vout menu */ + IBOutlet id o_vout_menu; + IBOutlet id o_vmi_play; + IBOutlet id o_vmi_stop; + IBOutlet id o_vmi_prev; + IBOutlet id o_vmi_next; + IBOutlet id o_vmi_volup; + IBOutlet id o_vmi_voldown; + IBOutlet id o_vmi_mute; + IBOutlet id o_vmi_fullscreen; + IBOutlet id o_vmi_snapshot; + bool b_small_window; - + + bool b_restore_size; + NSRect o_restore_rect; + + mtime_t i_end_scroll; + + NSSize o_size_with_playlist; + + int i_lastShownVolume; + + /* the manage thread */ + pthread_t manage_thread; + + /* The timer that update the interface */ + NSTimer * interfaceTimer; + + AppleRemote * o_remote; + BOOL b_remote_button_hold; /* true as long as the user holds the left,right,plus or minus on the remote control */ } + (VLCMain *)sharedInstance; @@ -244,11 +313,23 @@ struct intf_sys_t - (intf_thread_t *)getIntf; - (void)setIntf:(intf_thread_t *)p_mainintf; +- (void)controlTintChanged; + - (id)getControls; +- (id)getSimplePreferences; +- (id)getPreferences; - (id)getPlaylist; - (id)getInfo; -- (void)terminate; -- (NSString *)localizedString:(char *)psz; +- (id)getWizard; +- (id)getBookmarks; +- (id)getEmbeddedList; +- (id)getInteractionList; +- (id)getMainIntfPgbar; +- (id)getControllerWindow; +- (id)getVoutMenu; +- (id)getEyeTVController; +- (void)applicationWillTerminate:(NSNotification *)notification; +- (NSString *)localizedString:(const char *)psz; - (char *)delocalizeString:(NSString *)psz; - (NSString *)wrapString: (NSString *)o_in_string toWidth: (int)i_width; - (BOOL)hasDefinedShortcutKey:(NSEvent *)o_event; @@ -258,6 +339,9 @@ struct intf_sys_t - (void)manage; - (void)manageIntf:(NSTimer *)o_timer; - (void)setupMenus; +- (void)refreshVoutDeviceMenu:(NSNotification *)o_notification; +- (void)setScrollField:(NSString *)o_string stopAfter:(int )timeout; +- (void)resetScrollField; - (void)updateMessageArray; - (void)playStatusUpdated:(int) i_status; @@ -272,16 +356,26 @@ struct intf_sys_t - (IBAction)intfOpenFileGeneric:(id)sender; - (IBAction)intfOpenDisc:(id)sender; - (IBAction)intfOpenNet:(id)sender; +- (IBAction)intfOpenCapture:(id)sender; + +- (IBAction)showWizard:(id)sender; +- (IBAction)showExtended:(id)sender; +- (IBAction)showBookmarks:(id)sender; - (IBAction)viewAbout:(id)sender; +- (IBAction)showLicense:(id)sender; - (IBAction)viewPreferences:(id)sender; -- (IBAction)closeError:(id)sender; +- (IBAction)checkForUpdate:(id)sender; +- (IBAction)viewHelp:(id)sender; - (IBAction)openReadMe:(id)sender; - (IBAction)openDocumentation:(id)sender; -- (IBAction)reportABug:(id)sender; - (IBAction)openWebsite:(id)sender; -- (IBAction)openLicense:(id)sender; +- (IBAction)openForum:(id)sender; +- (IBAction)openDonate:(id)sender; - (IBAction)openCrashLog:(id)sender; +- (IBAction)viewErrorsAndWarnings:(id)sender; +- (IBAction)showMessagesPanel:(id)sender; +- (IBAction)showInformationPanel:(id)sender; - (IBAction)togglePlaylist:(id)sender; - (void)updateTogglePlaylistState;