Commit 1672cb91 authored by Derk-Jan Hartman's avatar Derk-Jan Hartman

* THANKS: hungarian translator and designer of OSX intf controller added

 * modules/LIST: updated
 * Makefile.am: include new OS X art in the dist.
 * NEWS: updated
 * */.cvsignore: added and improved some of these.
 * modules/gui/macosx/prefs_widgets.?:
   - new config controls much like in the wxwindows module. not yet in use.
   - beware not tested irl. but it compiles :)
parent bbf92477
...@@ -177,17 +177,32 @@ EXTRA_DIST += \ ...@@ -177,17 +177,32 @@ EXTRA_DIST += \
extras/MacOSX/Resources/vob.icns \ extras/MacOSX/Resources/vob.icns \
extras/MacOSX/Resources/wma.icns \ extras/MacOSX/Resources/wma.icns \
extras/MacOSX/Resources/wmv.icns \ extras/MacOSX/Resources/wmv.icns \
extras/MacOSX/Resources/back.png \
extras/MacOSX/Resources/begin.png \
extras/MacOSX/Resources/end.png \
extras/MacOSX/Resources/forw.png \
extras/MacOSX/Resources/list.png \
extras/MacOSX/Resources/pause.png \ extras/MacOSX/Resources/pause.png \
extras/MacOSX/Resources/pause_blue.png \
extras/MacOSX/Resources/play.png \ extras/MacOSX/Resources/play.png \
extras/MacOSX/Resources/prefs.png \ extras/MacOSX/Resources/play_blue.png \
extras/MacOSX/Resources/slow.png \
extras/MacOSX/Resources/stop.png \ extras/MacOSX/Resources/stop.png \
extras/MacOSX/Resources/vlc_hg.png \ extras/MacOSX/Resources/stop_blue.png \
extras/MacOSX/Resources/display.png \
extras/MacOSX/Resources/display_slider.png \
extras/MacOSX/Resources/display_track.png \
extras/MacOSX/Resources/fullscreen_active.png \
extras/MacOSX/Resources/fullscreen_blue.png \
extras/MacOSX/Resources/next_active.png \
extras/MacOSX/Resources/next_blue.png \
extras/MacOSX/Resources/playlistdrawer_active.png \
extras/MacOSX/Resources/playlistdrawer_blue.png \
extras/MacOSX/Resources/previous_active.png \
extras/MacOSX/Resources/previous_blue.png \
extras/MacOSX/Resources/skip_forward_active.png \
extras/MacOSX/Resources/skip_forward_blue.png \
extras/MacOSX/Resources/skip_previous_active.png \
extras/MacOSX/Resources/skip_previous_blue.png \
extras/MacOSX/Resources/volume_high.png \
extras/MacOSX/Resources/volume_low.png \
extras/MacOSX/Resources/volumeslider_blue.png \
extras/MacOSX/Resources/volumeslider_normal.png \
extras/MacOSX/Resources/volumetrack.png \
extras/MacOSX/Resources/about_bg.png \ extras/MacOSX/Resources/about_bg.png \
extras/MacOSX/Resources/vlc.scriptSuite \ extras/MacOSX/Resources/vlc.scriptSuite \
extras/MacOSX/Resources/README \ extras/MacOSX/Resources/README \
......
$Id: NEWS,v 1.71 2003/11/07 13:31:26 massiot Exp $ $Id: NEWS,v 1.72 2003/11/17 06:31:22 hartman Exp $
Changes between 0.6.2 and 0.6.3: Changes between 0.6.2 and 0.6.3:
--------------------------------- ---------------------------------
...@@ -9,84 +9,73 @@ Core support: ...@@ -9,84 +9,73 @@ Core support:
* Fixed the video filters. Video should no longer go black when these are used. * Fixed the video filters. Video should no longer go black when these are used.
* New input core. Advantages are: better seeking, more responsive, support for subtitle files at the core, and much much more. * New input core. Advantages are: better seeking, more responsive, support for subtitle files at the core, and much much more.
* Added a repeat mode to repeat a single file over and over. * Added a repeat mode to repeat a single file over and over.
* Improved playlist core.
Stream output:
* Added packetization for MPEG AAC ADTS streams.
* Improved mp4 muxing and added AAC/MP4V support when transcoding.
* Improved Ogg muxing and added theora, speex and subtitles support.
* Theora video encoding.
* MPEG TS muxer follows the ATSC/DVB specs for embedded A52 audio.
* RTP output mixer
Input: Input:
* MPEG TS demuxer also handles A52 audio in DVB streams. * MPEG TS demuxer also handles A52 audio in DVB streams.
* Fixed seeking support in FLAC files. * Fixed seeking support in FLAC files.
* cddax and vcdx plugins using libcdio, libvcd and libvcdinfo. * cddax and vcdx plugins using libcdio, libvcd and libvcdinfo. (Linux only)
* Reworked DVB tuning. * Reworked DVB tuning.
* Better Icecast support. * Better Icecast support.
* Support for framerate setting in Video4Linux * rtp/rtsp support.
* PVR input now supports all video connection types
Demuxers:
* ID3 tag parsing
* Vobsub subtitles support
* SSA decoding
* DVB Subtitles decoder
Codecs: Codecs:
* Support for Speex audio. * Support for Speex audio.
* Support for AAC + SBR. * Support for AAC + SBR.
* MPEG 2.5 support. * MPEG 2.5 support.
* Support for I422 chroma
* removed old a52, mpeg_video and mpeg_audio codecs, since we are using others now. * removed old a52, mpeg_video and mpeg_audio codecs, since we are using others now.
Interface core: Interface:
* Allow on the fly switching of the main interface. * Bug fixes / improvements in the skins (eg. "stay on top" option).
* Hotkeys support
Skins interface
* Bug fixes
* Stay on top option
WxWindows interfae:
* Improvements to the wxwindows playlist (Sort,Search, mode buttons). * Improvements to the wxwindows playlist (Sort,Search, mode buttons).
* Help in the preferences window. * Help in the wxwindows preferences window.
* New standardized and customizable hotkeys.
HTTP Interface: * OSD ( OS X and hotkeys only atm ).
* Stream seeking, playlist sorting and fullscreen support * Improvements to the Web interface.
* Improved default pages * Fixes of the SAP interface.
Mac OS X port: Mac OS X port:
* Mozilla plugin for Mac OS X (experimental). * New controller designed by Max Rudberg from www.maxthemes.com
* Save playlist. * Save playlist.
* Works on 10.1.x again. Apologies for that problem. * Works on 10.1.x again. Apologies for that problem.
* Use XCode * Support for Panther.
* Support for raw dumping of streams to disk.
* Mozilla plugin for Mac OS X (experimental).
Win32 port: Win32 port:
* New DirectShow input module (for video acquisition cards, webcams...). * New DirectShow input module (for video acquisition cards, webcams...).
* VLC can be installed as a Windows NT service. * VLC can be installed as a Windows NT service.
* Allow on the fly switching of the main interface.
* Support for 3F2R in audio output. * Support for 3F2R in audio output.
* New --one-instance option to "force" only one running instance of VLC. * New --one-instance option to "force" only one running instance of VLC.
* Mozilla plugin for Windows (experimental). * Mozilla plugin for Windows (experimental).
iPaq port: Stream output:
* Improvements in the GTK2 interface * Added packetization for MPEG AAC ADTS streams.
* Improved mp4 muxing and added AAC/MP4V support when transcoding.
* Improved Ogg muxing and added theora, speex and subtitles support.
* Theora video encoding.
* MPEG TS muxer follows the ATSC/DVB specs for embedded A52 audio.
* --sout-keep option to keep the stream open while changing input.
* Preliminary rtp support.
* Fixes to SAP announces.
Subtitles: Subtitles:
* Text subtitles now have a black outline. * Text subtitles now have a black outline.
* Text subtitles autodetection. * Text subtitles autodetection.
* Text subtitles charset autodetection. * Text subtitles charset autodetection.
* Text subtitles for videofiles. Result may vary. * Text subtitles for all videofiles. Results may vary.
* Text subtitles in Hebrew are supported. Arabic partially.
* Automatic fontsize selection for text subtitles. * Automatic fontsize selection for text subtitles.
* Fixed SAMI text subtitles support.
* Support for subtitles in Matroska files.
* Support for subtitles in DVB streams.
Miscellaneous: Miscellaneous:
* Audio visual effects filters (spectrum, scope and random). * Audio visual effects filters (spectrum, scope and random).
* Audio visual effects filter using goom. * Audio visual effects filter using goom.
* Spanish and Portugese Brazilian translations. * Spanish, Portuguese Brazilian and Hungarian translations.
* SAP now supports HTTP streams. * SAP now supports HTTP streams.
* VLC can now stream from the Dreambox. * libcaca video output (colored ascii)
Changes between 0.6.1 and 0.6.2: Changes between 0.6.1 and 0.6.2:
--------------------------------- ---------------------------------
...@@ -123,6 +112,33 @@ Miscellaneous: ...@@ -123,6 +112,33 @@ Miscellaneous:
Changes between 0.6.0 and 0.6.1: Changes between 0.6.0 and 0.6.1:
--------------------------------- ---------------------------------
Core support:
* There should be less bogus resampling, particularly on DVDs.
* VLC will now wait for the medium to wake up before starting its clock
after a pause.
Stream output:
* Added vorbis audio support in Ogg streaming.
* Added vorbis audio transcoding support.
* Added mp3 audio transcoding support (when ffmpeg is compiled with mp3lame).
UNIX ports:
* ALSA multi-channel support fixed and tested.
* Fixed fullscreen with gnome metacity.
Win32 port:
* Fixed VCD support which was broken on some machines.
iPaq port:
* Familiar interface with Gtk+-1.2 and GPE support removed (deprecreated).
Miscellaneous:
* Text subtitles now centered on the picture.
* Ffmpeg decoder now generates proper pts and can be used to play
mpeg1/2 videos.
Changes between 0.6.0 and 0.6.1:
---------------------------------
Core support: Core support:
* There should be less bogus resampling, particularly on DVDs. * There should be less bogus resampling, particularly on DVDs.
* VLC will now wait for the medium to wake up before starting its clock * VLC will now wait for the medium to wake up before starting its clock
...@@ -510,33 +526,6 @@ Miscellaneous: ...@@ -510,33 +526,6 @@ Miscellaneous:
* Mozilla plugin based on libvlc for embedded playback in webpages of any * Mozilla plugin based on libvlc for embedded playback in webpages of any
format that VLC can play format that VLC can play
* new swedish translation * new swedish translation
* updated french, german, dutch and italian translations
GNU/Linux, *BSD & misc. UNIX ports:
* OSS and ALSA audio output modules support A/52 over S/PDIF output
* OSS support for multi-channel (up to 6) analog sound cards
Mac OS X port:
* localization support via GNU gettext software
* completely revamped Cocoa interface
* new preferences panel
* new open panel with full features
* video output screen can be chosen in the Video menu
* audio device and channels configuration can be chosen in the Audio menu
* new playlist drawer and messages windows
Win32 port:
* preferences dialog box redesigned
* waveout module supports multi-channel audio output and A52 over S/PDIF
* support for VCDs
* new dialog box to select avi subtitles
* some new shortcuts (in particular to play/pause or stay on top)
* new menu entry to spawn another interface
* rc interface is partly fixed and useable
BeOS port:
* new settings window for adjusting post-processing, brightness,
contrast, etc
* enhancements of the playlist window * enhancements of the playlist window
* new messages window to see debug info * new messages window to see debug info
* fixed a few crashes * fixed a few crashes
......
$Id: THANKS,v 1.11 2003/08/17 20:58:44 alexis Exp $ $Id: THANKS,v 1.12 2003/11/17 06:31:22 hartman Exp $
VLC makes extensive use of the following persons' code: VLC makes extensive use of the following persons' code:
...@@ -23,8 +23,9 @@ Christopher Johnson <cjohnson@mint.net> - Qt fix in vlc.spec ...@@ -23,8 +23,9 @@ Christopher Johnson <cjohnson@mint.net> - Qt fix in vlc.spec
Colin Simmonds <colin_simmonds@Mac.lover.org> - compile fix for Mac OS X Colin Simmonds <colin_simmonds@Mac.lover.org> - compile fix for Mac OS X
Damian Ivereigh <damian@cisco.com> - ac3dec uninitialized data structure fix Damian Ivereigh <damian@cisco.com> - ac3dec uninitialized data structure fix
David Kennedy <dkennedy@tinytoad.com> - X11 fullscreen patch David Kennedy <dkennedy@tinytoad.com> - X11 fullscreen patch
David Weber <david_weber@gmx.de> - Mac OS X interface design & graphics David Weber <david_weber@gmx.de> - Mac OS X interface design & graphics (v0.5.0)
Davor Orel <syntheticamac at yahoo.it> - Mac OS X icons Davor Orel <syntheticamac at yahoo.it> - Mac OS X icons
DirektX <direktx at freemail.hu> - Hungarian translation
Emmanuel Blindauer <manu@agat.net> - aRts audio output Emmanuel Blindauer <manu@agat.net> - aRts audio output
Espen Skoglund <esk@ira.uka.de> - FreeBSD autoconf and Makefile patches Espen Skoglund <esk@ira.uka.de> - FreeBSD autoconf and Makefile patches
Ethan C. Baldridge <BaldridgeE@cadmus.com> - directory browsing code Ethan C. Baldridge <BaldridgeE@cadmus.com> - directory browsing code
...@@ -36,7 +37,7 @@ Jean-Philippe Grimaldi <jeanphi@via.ecp.fr> - bug fixes ...@@ -36,7 +37,7 @@ Jean-Philippe Grimaldi <jeanphi@via.ecp.fr> - bug fixes
Jean-Pierre Kuypers <Kuypers@sri.ucl.ac.be> - French translation Jean-Pierre Kuypers <Kuypers@sri.ucl.ac.be> - French translation
Jeffrey Baker <jwbaker@acm.org> - port of the ALSA plugin to the ALSA 1.0 API Jeffrey Baker <jwbaker@acm.org> - port of the ALSA plugin to the ALSA 1.0 API
Joel Arvidsson <dogai@privat.utfors.se> - Swedish translation Joel Arvidsson <dogai@privat.utfors.se> - Swedish translation
Joeri van Dooren <joeri@van.dooren.be> - OS X icon Joeri van Dooren <joeri@van.dooren.be> - OS X icon (v0.4.0)
Johen Michael Zorko <zorko@att.net> - fix for delay issues in udp sout Johen Michael Zorko <zorko@att.net> - fix for delay issues in udp sout
John Paul Lorenti <jpl31@columbia.edu> - ALSA device selection patch John Paul Lorenti <jpl31@columbia.edu> - ALSA device selection patch
Julien Blache <jb@technologeek.org> - disc ejection code Julien Blache <jb@technologeek.org> - disc ejection code
...@@ -44,6 +45,7 @@ Mark Gritter <mgritter@kealia.com> - fix for netlist packet leak in demuxPSI ...@@ -44,6 +45,7 @@ Mark Gritter <mgritter@kealia.com> - fix for netlist packet leak in demuxPSI
Markus Kuespert <ltlBeBoy@beosmail.com> - BeOS CSS support Markus Kuespert <ltlBeBoy@beosmail.com> - BeOS CSS support
Mathias Kretschmer <mathias@research.att.com> - IP Multicast support Mathias Kretschmer <mathias@research.att.com> - IP Multicast support
Matthieu Lochegnies <lochegm1@cti.ecp.fr> - MPEG audio emphasis fix Matthieu Lochegnies <lochegm1@cti.ecp.fr> - MPEG audio emphasis fix
Max Rudberg <max_08 at mac.com> - Mac OS X controller art (v0.7.0)
Michael Mondragon <mammon@lokmail.net> - ncurses compilation fix Michael Mondragon <mammon@lokmail.net> - ncurses compilation fix
Michel Lanners <mlan@cpu.lu> - fixed typos and AltiVec detection Michel Lanners <mlan@cpu.lu> - fixed typos and AltiVec detection
Nilmoni Deb <ndeb@ece.cmu.edu> - autoconf and Makefile fixes Nilmoni Deb <ndeb@ece.cmu.edu> - autoconf and Makefile fixes
......
...@@ -9,4 +9,4 @@ sbin ...@@ -9,4 +9,4 @@ sbin
share share
vlc-lib vlc-lib
config.mak config.mak
contrib.tar.bz2 contrib*.tar.bz2
*.tar.gz *.tar.gz
*.tar.bz2 *.tar.bz2
.*
List of vlc plugins (221) List of vlc plugins (221)
$Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $ $Id: LIST,v 1.17 2003/11/17 06:31:22 hartman Exp $
* a52: A/52 basic parser/packetizer * a52: A/52 basic parser/packetizer
...@@ -55,13 +55,15 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $ ...@@ -55,13 +55,15 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $
* avi: AVI File stream demuxer * avi: AVI File stream demuxer
* bandlimited_resampler: Badnlimited interpolation audio resampler * bandlimited_resampler: Bandlimited interpolation audio resampler
* beos: Audio output, video output and interface module for BeOS. * beos: Audio output, video output and interface module for BeOS.
* caca: color ASCII art video output using libcaca
* cdda: input module to read audio CDs * cdda: input module to read audio CDs
* cddax: input module to read audio CDs vi libcdio * cddax: input module to read audio CDs via libcdio
* cinepak: Cinepack video decoder * cinepak: Cinepack video decoder
...@@ -95,20 +97,22 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $ ...@@ -95,20 +97,22 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $
* dummy: dummy audio output, video output, interface and input modules. * dummy: dummy audio output, video output, interface and input modules.
* dv: DV video decoder
* dvb: input module for DVB-S/C/T streaming using v4l2 API * dvb: input module for DVB-S/C/T streaming using v4l2 API
* dvbsub: decoder module for subs in dvb streams.
* dvd: input module for accessing DVDs. * dvd: input module for accessing DVDs.
* dvdplay: access module for accessing DVDs using libdvdplay * dvdplay: access module for accessing DVDs using libdvdplay
* dvdread: input module for accessing DVDs, uses libdvdread. * dvdread: input module for accessing DVDs, uses libdvdread.
* dv: DV video decoder
* esd: audio output module using the Esound sound daemon.
* es: input module for MPEG ES decapsulation. * es: input module for MPEG ES decapsulation.
* esd: audio output module using the Esound sound daemon.
* faad: AAC decoder using libfaad2 * faad: AAC decoder using libfaad2
* fb: video output module for the Linux framebuffer. * fb: video output module for the Linux framebuffer.
...@@ -164,16 +168,16 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $ ...@@ -164,16 +168,16 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $
* headphone_channel_mixer: * headphone_channel_mixer:
headphone channel mixer with virtual spatialization effect. headphone channel mixer with virtual spatialization effect.
* hotkeys : hotkeys control module * hotkeys: hotkeys control module
* http: HTTP remote control webinterface
* httpd: HTTP server * httpd: HTTP server
* http: HTTP remote control interface * i420_rgb: planar YUV to packed RGB conversion functions.
* i420_rgb_mmx: MMX accelerated version of i420_rgb. * i420_rgb_mmx: MMX accelerated version of i420_rgb.
* i420_rgb: planar YUV to packed RGB conversion functions.
* i420_ymga_mmx: MMX accelerated version of i420_ymga * i420_ymga_mmx: MMX accelerated version of i420_ymga
* i420_ymga: YUV to YUC conversion functions * i420_ymga: YUV to YUC conversion functions
...@@ -206,6 +210,8 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $ ...@@ -206,6 +210,8 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $
* lirc: Linux infrared control module * lirc: Linux infrared control module
* livedotcom: rtp demux based on liveMedia (live.com)
* logger: file logger plugin * logger: file logger plugin
* logo: video filter to put a logo on the video * logo: video filter to put a logo on the video
...@@ -216,7 +222,7 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $ ...@@ -216,7 +222,7 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $
* m4v: MPEG-4 Video Stream demuxer * m4v: MPEG-4 Video Stream demuxer
* macosx: Audio output, Video output, and nterface module for Mac OS X. * macosx: Video output, and interface module for Mac OS X.
* memcpy3dn: 3D Now! accelerated version of memcpy. * memcpy3dn: 3D Now! accelerated version of memcpy.
...@@ -322,8 +328,6 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $ ...@@ -322,8 +328,6 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $
* screensaver: screensaver disabling module * screensaver: screensaver disabling module
* sdp: SDP file demuxer
* skins: Skinnable interface * skins: Skinnable interface
* slp: input module to access SLP registered sessions * slp: input module to access SLP registered sessions
...@@ -350,6 +354,8 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $ ...@@ -350,6 +354,8 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $
* stream_out_transcode: audio & video transcoder using ffmpeg * stream_out_transcode: audio & video transcoder using ffmpeg
* stream_out_transrate: audio & video transrater using ffmpeg
* subsdec: Another SPU decoder for text subtitles * subsdec: Another SPU decoder for text subtitles
* svgalib: SGVAlib output plugin * svgalib: SGVAlib output plugin
...@@ -403,10 +409,10 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $ ...@@ -403,10 +409,10 @@ $Id: LIST,v 1.16 2003/11/07 13:31:26 massiot Exp $
* wall: image wall filter. * wall: image wall filter.
* waveout: simple audio output module for Windows.
* wav: Wav demuxer * wav: Wav demuxer
* waveout: simple audio output module for Windows.
* wingdi: WIN 32 / WIN CE GDI video output * wingdi: WIN 32 / WIN CE GDI video output
* wxwindows: interface module using the cross-platform wxWindows library. * wxwindows: interface module using the cross-platform wxWindows library.
......
...@@ -18,6 +18,8 @@ SOURCES_macosx = \ ...@@ -18,6 +18,8 @@ SOURCES_macosx = \
playlist.h \ playlist.h \
prefs.m \ prefs.m \
prefs.h \ prefs.h \
prefs_widgets.h \
prefs_widgets.m \
output.h \ output.h \
output.m \ output.m \
vout.m \ vout.m \
......
/*****************************************************************************
* prefs_widgets.h: Preferences controls
*****************************************************************************
* Copyright (C) 2002-2003 VideoLAN
* $Id: prefs_widgets.h,v 1.1 2003/11/17 06:31:22 hartman Exp $
*
* Authors: Derk-Jan Hartman <hartman at videolan.org>
*
* 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
* GNU General Public License for more details.
*
* 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.
*****************************************************************************/
@interface VLCConfigControl : NSBox
{
vlc_object_t *p_this;
char *psz_name;
NSTextField *o_label;
int i_type;
vlc_bool_t b_advanced;
}
+ (VLCConfigControl *)newControl: (module_config_t *)p_item withView: (NSView *)o_parent_view withObject: (vlc_object_t *)p_this;
- (id)initWithFrame: (NSRect)frame item: (module_config_t *)p_item withObject: (vlc_object_t *)_p_this;
- (NSString *)getName;
- (int)getType;
- (BOOL)isAdvanced;
- (int)intValue;
- (float)floatValue;
- (char *)stringValue;
@end
@interface KeyConfigControl : VLCConfigControl
{
NSMatrix *o_matrix;
NSComboBox *o_combo;
}
@end
@interface ModuleConfigControl : VLCConfigControl
{
NSPopUpButton *o_popup;
}
@end
@interface StringConfigControl : VLCConfigControl
{
NSTextField *o_textfield;
}
@end
@interface StringListConfigControl : VLCConfigControl
{
NSComboBox *o_combo;
}
@end
@interface FileConfigControl : VLCConfigControl
{
NSTextField *o_textfield;
NSButton *o_button;
BOOL b_directory;
}
- (IBAction)openFileDialog: (id)sender;
- (void)pathChosenInPanel:(NSOpenPanel *)o_sheet withReturn:(int)i_return_code contextInfo:(void *)o_context_info;
@end
@interface IntegerConfigControl : VLCConfigControl
{
NSTextField *o_textfield;
NSStepper *o_stepper;
}
- (IBAction)stepperChanged:(id)sender;
- (void)textfieldChanged:(NSNotification *)o_notification;
@end
@interface IntegerListConfigControl : VLCConfigControl
{
NSComboBox *o_combo;
}
@end
@interface RangedIntegerConfigControl : VLCConfigControl
{
NSSlider *o_slider;
NSTextField *o_textfield;
NSTextField *o_textfield_min;
NSTextField *o_textfield_max;
}
- (IBAction)sliderChanged:(id)sender;
- (void)textfieldChanged:(NSNotification *)o_notification;
@end
@interface FloatConfigControl : VLCConfigControl
{
NSTextField *o_textfield;
}
@end
@interface RangedFloatConfigControl : VLCConfigControl
{
NSSlider *o_slider;
NSTextField *o_textfield;
NSTextField *o_textfield_min;
NSTextField *o_textfield_max;
}
- (IBAction)sliderChanged:(id)sender;
- (void)textfieldChanged:(NSNotification *)o_notification;
@end
@interface BoolConfigControl : VLCConfigControl
{
NSButton *o_checkbox;
}
@end
/*****************************************************************************
* prefs_widgets.m: Preferences controls
*****************************************************************************
* Copyright (C) 2002-2003 VideoLAN
* $Id: prefs_widgets.m,v 1.1 2003/11/17 06:31:22 hartman Exp $
*
* Authors: Derk-Jan Hartman <hartman at videolan.org>
*
* 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
* GNU General Public License for more details.
*
* 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.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <stdlib.h> /* malloc(), free() */
#include <string.h>
#include <vlc/vlc.h>
#include "vlc_keys.h"
#include "intf.h"
#include "prefs_widgets.h"
#define PREFS_WRAP 300
#define OFFSET_RIGHT 20
#define OFFSET_BETWEEN 10
@implementation VLCConfigControl
- (id)initWithFrame: (NSRect)frame
{
return [self initWithFrame: frame
item: nil
withObject: nil];
}
- (id)initWithFrame: (NSRect)frame
item: (module_config_t *)p_item
withObject: (vlc_object_t *)_p_this
{
self = [super initWithFrame: frame];
if( self != nil )
{
p_this = _p_this;
o_label = NULL;
psz_name = strdup( p_item->psz_name );
i_type = p_item->i_type;
b_advanced = p_item->b_advanced;
[self setAutoresizingMask:NSViewWidthSizable | NSViewMinYMargin ];
}
return (self);
}
- (void)dealloc
{
if( o_label ) [o_label release];
if( psz_name ) free( psz_name );
[super dealloc];
}
+ (VLCConfigControl *)newControl: (module_config_t *)p_item withView: (NSView *)o_parent_view withObject: (vlc_object_t *)_p_this
{
VLCConfigControl *p_control = NULL;
NSRect frame = [o_parent_view bounds];
switch( p_item->i_type )
{
case CONFIG_ITEM_MODULE:
p_control = [[ModuleConfigControl alloc] initWithFrame: frame item: p_item withObject: _p_this ];
break;
case CONFIG_ITEM_STRING:
if( !p_item->i_list )
{
p_control = [[StringConfigControl alloc] initWithFrame: frame item: p_item withObject: _p_this ];
}
else
{
p_control = [[StringListConfigControl alloc] initWithFrame: frame item: p_item withObject: _p_this ];
}
break;
case CONFIG_ITEM_FILE:
case CONFIG_ITEM_DIRECTORY:
p_control = [[FileConfigControl alloc] initWithFrame: frame item: p_item withObject: _p_this ];
break;
case CONFIG_ITEM_INTEGER:
if( p_item->i_list )
{
p_control = [[IntegerListConfigControl alloc] initWithFrame: frame item: p_item withObject: _p_this ];
}
else if( p_item->i_min != 0 || p_item->i_max != 0 )
{
p_control = [[RangedIntegerConfigControl alloc] initWithFrame: frame item: p_item withObject: _p_this ];
}
else