X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fmacosx%2Fintf.h;h=e8f7ce476492cb42dc707728388af27feb050545;hb=01cb2578c44361abeb4312bf5a26a716159619fe;hp=98d093ec049e693b39b2364d2afeb307f0400918;hpb=ec518727fc898bf1ded6d58d90ff21135f703107;p=vlc diff --git a/modules/gui/macosx/intf.h b/modules/gui/macosx/intf.h index 98d093ec04..e8f7ce4764 100644 --- a/modules/gui/macosx/intf.h +++ b/modules/gui/macosx/intf.h @@ -1,17 +1,18 @@ /***************************************************************************** * intf.h: MacOS X interface plugin ***************************************************************************** - * Copyright (C) 2002 VideoLAN - * $Id: intf.h,v 1.4 2002/12/07 23:50:30 massiot Exp $ + * Copyright (C) 2002-2003 VideoLAN + * $Id: intf.h,v 1.54 2004/01/04 21:44:44 kuehne Exp $ * * Authors: Jon Lech Johansen * Christophe Massiot + * Derk-Jan Hartman * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -25,20 +26,21 @@ #include #include #include +#include #include /***************************************************************************** - * VLCApplication interface + * VLCApplication interface *****************************************************************************/ @interface VLCApplication : NSApplication { - NSStringEncoding i_encoding; intf_thread_t *p_intf; } -- (void)initIntlSupport; - (NSString *)localizedString:(char *)psz; +- (char *)delocalizeString:(NSString *)psz; +- (NSString *)wrapString: (NSString *)o_in_string toWidth: (int)i_width; - (void)setIntf:(intf_thread_t *)p_intf; - (intf_thread_t *)getIntf; @@ -46,6 +48,15 @@ @end #define _NS(s) [NSApp localizedString: _(s)] +/* Get an alternate version of the string. + * This string is stored as '1:string' but when displayed it only displays + * the translated string. the translation should be '1:translatedstring' though */ +#define _ANS(s) [[NSApp localizedString: _(s)] substringFromIndex:2] + +int ExecuteOnMainThread( id target, SEL sel, void * p_arg ); +int PlaylistChanged( vlc_object_t *p_this, const char *psz_variable, + vlc_value_t old_val, vlc_value_t new_val, void *param ); +unsigned int CocoaKeyToVLC( unichar i_key ); /***************************************************************************** * intf_sys_t: description and status of the interface @@ -56,44 +67,71 @@ struct intf_sys_t NSPort * o_sendport; /* special actions */ - vlc_bool_t b_loop; vlc_bool_t b_playing; vlc_bool_t b_mute; + /* interface update */ + vlc_bool_t b_intf_update; + vlc_bool_t b_play_status; + vlc_bool_t b_playlist_update; + vlc_bool_t b_current_title_update; + vlc_bool_t b_fullscreen_update; + /* menus handlers */ - vlc_bool_t b_chapter_update; - vlc_bool_t b_program_update; - vlc_bool_t b_title_update; - vlc_bool_t b_audio_update; - vlc_bool_t b_spu_update; + vlc_bool_t b_input_update; vlc_bool_t b_aout_update; vlc_bool_t b_vout_update; - /* The input thread */ - input_thread_t * p_input; - /* The messages window */ msg_subscription_t * p_sub; - - /* DVD mode */ - int i_part; }; /***************************************************************************** - * VLCMain interface + * VLCMain interface *****************************************************************************/ @interface VLCMain : NSObject { id o_prefs; /* VLCPrefs */ IBOutlet id o_window; /* main window */ + IBOutlet id o_scrollfield; /* info field */ + IBOutlet id o_timefield; /* time field */ + IBOutlet id o_timeslider; /* time slider */ + float f_slider; /* slider value */ + float f_slider_old; /* old slider val */ + IBOutlet id o_volumeslider; /* volume slider */ + + 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 */ + + NSImage * o_img_play; /* btn play img */ + NSImage * o_img_pause; /* btn pause img */ + NSImage * o_img_play_pressed; /* btn play img */ + NSImage * o_img_pause_pressed; /* btn pause img */ 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 */ - IBOutlet id o_msgs_btn_ok; /* messages btn */ + NSMutableArray * o_msg_arr; /* messages array */ + 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_info_window; /* Info panel */ /* main menu */ @@ -106,6 +144,7 @@ struct intf_sys_t IBOutlet id o_mu_file; IBOutlet id o_mi_open_file; + IBOutlet id o_mi_open_generic; IBOutlet id o_mi_open_disc; IBOutlet id o_mi_open_net; IBOutlet id o_mi_open_recent; @@ -118,65 +157,107 @@ struct intf_sys_t IBOutlet id o_mi_clear; IBOutlet id o_mi_select_all; - IBOutlet id o_mu_view; - IBOutlet id o_mi_playlist; - IBOutlet id o_mi_messages; - IBOutlet id o_mu_controls; IBOutlet id o_mi_play; - IBOutlet id o_mi_pause; IBOutlet id o_mi_stop; IBOutlet id o_mi_faster; IBOutlet id o_mi_slower; IBOutlet id o_mi_previous; IBOutlet id o_mi_next; + IBOutlet id o_mi_random; + IBOutlet id o_mi_repeat; IBOutlet id o_mi_loop; + IBOutlet id o_mi_fwd; + IBOutlet id o_mi_bwd; + IBOutlet id o_mi_program; + IBOutlet id o_mu_program; + IBOutlet id o_mi_title; + IBOutlet id o_mu_title; + IBOutlet id o_mi_chapter; + IBOutlet id o_mu_chapter; + + IBOutlet id o_mu_audio; IBOutlet id o_mi_vol_up; IBOutlet id o_mi_vol_down; IBOutlet id o_mi_mute; + IBOutlet id o_mi_audiotrack; + IBOutlet id o_mu_audiotrack; IBOutlet id o_mi_channels; + IBOutlet id o_mu_channels; + IBOutlet id o_mi_device; + IBOutlet id o_mu_device; + IBOutlet id o_mi_visual; + IBOutlet id o_mu_visual; + + IBOutlet id o_mu_video; + IBOutlet id o_mi_half_window; + IBOutlet id o_mi_normal_window; + IBOutlet id o_mi_double_window; + IBOutlet id o_mi_fittoscreen; IBOutlet id o_mi_fullscreen; + IBOutlet id o_mi_floatontop; + IBOutlet id o_mi_videotrack; + IBOutlet id o_mu_videotrack; IBOutlet id o_mi_screen; - IBOutlet id o_mi_deinterlace; - IBOutlet id o_mi_program; - IBOutlet id o_mi_title; - IBOutlet id o_mi_chapter; - IBOutlet id o_mi_language; + IBOutlet id o_mu_screen; IBOutlet id o_mi_subtitle; + IBOutlet id o_mu_subtitle; + IBOutlet id o_mi_deinterlace; + IBOutlet id o_mu_deinterlace; IBOutlet id o_mu_window; IBOutlet id o_mi_minimize; + IBOutlet id o_mi_close_window; + IBOutlet id o_mi_controller; + 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_readme; + IBOutlet id o_mi_documentation; + IBOutlet id o_mi_reportabug; + IBOutlet id o_mi_website; + IBOutlet id o_mi_license; + /* dock menu */ IBOutlet id o_dmi_play; - IBOutlet id o_dmi_pause; IBOutlet id o_dmi_stop; - - id asystm; // MacOSXAudioSystem + IBOutlet id o_dmi_next; + IBOutlet id o_dmi_previous; + IBOutlet id o_dmi_mute; } +- (id)getControls; +- (id)getPlaylist; - (void)terminate; -- (void)manage; -- (void)manageMode; +- (void)initStrings; +- (void)manage; +- (void)manageIntf:(NSTimer *)o_timer; - (void)setupMenus; -- (void)setupLangMenu:(NSMenuItem *)o_mi - es:(es_descriptor_t *)p_es - category:(int)i_cat - selector:(SEL)pf_callback; -- (void)setupVarMenu:(NSMenuItem *)o_mi - target:(vlc_object_t *)p_object - var:(const char *)psz_var - selector:(SEL)pf_callback; + +- (void)updateMessageArray; +- (void)playStatusUpdated:(BOOL)b_pause; +- (void)setSubmenusEnabled:(BOOL)b_enabled; +- (void)manageVolumeSlider; +- (IBAction)timesliderUpdate:(id)sender; - (IBAction)clearRecentItems:(id)sender; - (void)openRecentItem:(id)sender; -//- (void)selectAction:(id)sender; - - (IBAction)viewPreferences:(id)sender; +- (IBAction)closeError:(id)sender; +- (IBAction)openReadMe:(id)sender; +- (IBAction)openDocumentation:(id)sender; +- (IBAction)reportABug:(id)sender; +- (IBAction)openWebsite:(id)sender; +- (IBAction)openLicense:(id)sender; +- (IBAction)openCrashLog:(id)sender; + +- (void)windowDidBecomeKey:(NSNotification *)o_notification; @end