00001 /***************************************************************************** 00002 * vout.h: MacOS X interface module 00003 ***************************************************************************** 00004 * Copyright (C) 2001-2007 the VideoLAN team 00005 * $Id: 6b57f7a523e0f5303fae5698c55162bc7f1551c6 $ 00006 * 00007 * Authors: Colin Delacroix <colin@zoy.org> 00008 * Florian G. Pflug <fgp@phlo.org> 00009 * Jon Lech Johansen <jon-vl@nanocrew.net> 00010 * Eric Petit <titer@m0k.org> 00011 * Benjamin Pracht <bigben at videolan dot org> 00012 * 00013 * This program is free software; you can redistribute it and/or modify 00014 * it under the terms of the GNU General Public License as published by 00015 * the Free Software Foundation; either version 2 of the License, or 00016 * (at your option) any later version. 00017 * 00018 * This program is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 * GNU General Public License for more details. 00022 * 00023 * You should have received a copy of the GNU General Public License 00024 * along with this program; if not, write to the Free Software 00025 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 00026 *****************************************************************************/ 00027 00028 #import "misc.h" 00029 /***************************************************************************** 00030 * VLCEmbeddedList interface 00031 *****************************************************************************/ 00032 @interface VLCEmbeddedList : NSObject 00033 { 00034 NSMutableArray * o_embedded_array; 00035 } 00036 00037 - (id)embeddedVout; 00038 - (void)releaseEmbeddedVout: (id)o_vout_view; 00039 - (void)addEmbeddedVout: (id)o_vout_view; 00040 - (BOOL)windowContainsEmbedded: (id)o_window; 00041 - (id)viewForWindow: (id)o_window; 00042 00043 @end 00044 00045 /***************************************************************************** 00046 * VLCVoutView interface 00047 *****************************************************************************/ 00048 @protocol VLCVoutViewResetting 00049 + (void)resetVout: (vout_thread_t *)p_vout; 00050 @end 00051 00052 @interface VLCVoutView : NSView 00053 { 00054 vout_thread_t * p_vout; 00055 NSRect * s_frame; 00056 00057 NSView <VLCVoutViewResetting> * o_view; 00058 00059 vout_thread_t * p_real_vout; 00060 id o_window; 00061 } 00062 - (BOOL)setVout: (vout_thread_t *) p_arg_vout subView: (NSView *) view 00063 frame: (NSRect *) s_arg_frame; 00064 - (void)closeVout; 00065 - (void)updateTitle; 00066 - (void)manage; 00067 - (void)scaleWindowWithFactor: (float)factor animate: (BOOL)animate; 00068 - (void)setOnTop:(BOOL)b_on_top; 00069 - (void)toggleFloatOnTop; 00070 - (void)toggleFullscreen; 00071 - (BOOL)isFullscreen; 00072 - (void)snapshot; 00073 - (id)voutWindow; 00074 00075 + (id)voutView: (vout_thread_t *)p_vout subView: (NSView *) view 00076 frame: (NSRect *) s_frame; 00077 + (vout_thread_t *)realVout: (vout_thread_t *)p_vout; 00078 00079 - (void)enterFullscreen; 00080 - (void)leaveFullscreen; 00081 @end 00082 00083 /***************************************************************************** 00084 * VLCVoutDetachedView interface 00085 *****************************************************************************/ 00086 00087 @interface VLCDetachedVoutView : VLCVoutView 00088 { 00089 mtime_t i_time_mouse_last_moved; 00090 } 00091 00092 - (void)hideMouse: (BOOL)b_hide; 00093 00094 @end 00095 00096 /***************************************************************************** 00097 * VLCEmbeddedView interface 00098 *****************************************************************************/ 00099 00100 @interface VLCEmbeddedVoutView : VLCVoutView 00101 { 00102 BOOL b_used; 00103 id o_embeddedwindow; 00104 } 00105 00106 - (void)setUsed: (BOOL)b_new_used; 00107 - (BOOL)isUsed; 00108 00109 @end 00110 00111 /***************************************************************************** 00112 * VLCVoutWindow interface 00113 *****************************************************************************/ 00114 @interface VLCVoutWindow : VLCWindow 00115 { 00116 vout_thread_t * p_vout; 00117 VLCVoutView * o_view; 00118 NSRect * s_frame; 00119 00120 bool b_init_ok; 00121 BOOL fullscreen; 00122 NSRect initialFrame; 00123 } 00124 00125 - (id) initWithVout: (vout_thread_t *) p_vout view: (VLCVoutView *) view 00126 frame: (NSRect *) s_frame; 00127 - (id)initMainThread: (id) sender; 00128 - (void)leaveFullscreen; 00129 - (void)enterFullscreen; 00130 - (id)voutView; 00131 @end
1.5.6